Skip to main content

Socks代理

SOCKS代理用于通过代理来交换服务端与客户端的数据包。代理的普遍实现是在web代理中,浏览器连接到代理,中继发送到目标网站的请求以及返回的响应。我们可以将这样的方法用于C2之中,使得C2可以将外部工具隧道到内部网络
这点在我们想利用基于Linux的工具的时候尤其有用,因为Windows没有执行Python的原生功能。因此,在我们自己的系统上使用这些工具并且将通信通过Beacon隧道到内部网络可以扩展我们的军火库。同时,这么做还有OPSEC的优势,不需要将工具和代码带到目标主机上

在Beacon交互中,执行命令socks 1080。如果已经有了一条Beacon链,那么我们在该链上的任意一Beacon上执行该命令都可以,因为Beacon是代理感知的。于是,TS主机的1080端口开启了监听,该端口绑定到了所有网卡上。


不是很多应用可以自身使用socks代理,因为我们可以使用proxychains。这是一个包装器,通过在执行的工具最前面加入proxychains,可以将任何应用的流量通过socks代理进行隧道

当然,我们需要修改一下/etc/proxychains.conf配置文件,使得端口匹配
通过proxychains隧道工具,命令是这样的:proxychains [tool] [args]
例如,通过proxychains隧道nmap的流量,命令应该这样
proxychains nmap -n -Pn -sT -p-

image.png


需要记住的是,不是所有流量都可以被隧道,ICMP与SYN扫描就不可以。因为,我们要跳过主机扫描,并且指定TCP扫描端口


我们可以通过在Windows上运行代理客户端例如Proxifier来隧道GUI应用
打开Proxifier,前往Profile -> Proxy Servers,添加一个新的代理实体,将IP与端口指向CS的SOCKS代理,即10.10.5.120:1080
然后,在Profile -> Profixication Rules中可以自定义规则,例如只有指定的应用发送到指定网段的流量经过代理

image.png

 

 

火狐浏览器加上FoxyProxy插件是将浏览器转向到网络中的理想方案,用于浏览内部的web应用
添加一个新的实体,代理类型选择SOCKS4,然后输入CS的SOCKS代理的端口以及IP
然后就可以浏览网络内部的应用了

image.png

image.png