0%

让BurpSuite使用MSF的socks4a代理

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

最近在使用msf转发流量时遇到了个问题,就是使用auxiliary/server/socks4a做代理时,burpsuite不支持socks4a代理,导致无法使用burp去抓包。而使用auxiliary/server/socks5做代理却失败了,可能是脚本的bug,官方issues也有人反馈这个问题。

具体问题

演示环境

我所在的环境比较特殊,工作机(192.168.1.2,Windows)位于A地内网,MSF机器(172.16.1.2,Linux)位于B地内网,两内网不相通,但是可以通过11.11.11.11:22 SSH访问MSF机器,遂用SSH隧道将172.16.1.2:11080端口转发到工作机的127.0.0.1:1083端口,如果不清楚这个操作,可以理解为工作机访问本机127.0.0.1:1083端口等价于访问MSF机172.16.1.2:11080端口。

测试步骤

  1. 在MSF机器启动socks4a代理(前面获取反弹shell、设置路由的步骤略过)
    1
    2
    3
    msf5 auxiliary(server/socks4a) > use auxiliary/server/socks4a 
    msf5 auxiliary(server/socks4a) > set SRVPORT 11080
    msf5 auxiliary(server/socks4a) > exploit
  2. 在配置代理前,我的ip地址是A地公网ip
  3. 使用Firefox配置代理测试转发是否正常,这时ip由联通变成电信了,证明代理转发隧道工作正常

  4. 这个时候,如果直接在burpsuite配置前置socks代理的话是不能使用的,因为burpsuite不支持socks4协议,所以会打不开网页

解决方法

使用sockscap64工具,把socks4a转发为http代理。当然,使用其它工具将socks4a转为http代理或socks5代理也行,比如Linux下的privoxy,socks4a转socks5的工具找了很久都没找到,遂放弃。

步骤

  1. 打开sockscap64工具,创建代理配置,代理服务器为127.0.0.1:1083(MSF socks4a端口地址)


  2. burpsuite配置前置http代理,代理服务地址为127.0.0.1:25378,这个端口是sockscap64监听的端口

  3. 打开Firefox测试,可以看到现在已经是MSF机器的电信ip了,问题成功解决。
  4. 回顾下出口流量走向,如下:

为什么是25378端口

  1. SockScap64支持系统代理
  2. 启用系统代理可发现其使用25378端口做代理服务