0x00 前言
这一节将介绍使用 ProxyChains 进行代理转发与使用反向转发的方法。
0x01 使用 ProxyChains 进行代理转发
介绍
使用 ProxyChains 可以使我们为没有代理配置功能的软件强制使用代理
- 和上一节中介绍的一致,开启一个 socks 代理服务
- 配置
/etc/proxychains.conf
文件 - 运行
proxychains + 待执行命令
演示
接下来继续上一节中的演示环境:
攻击机 IP:192.168.175.200
上线主机:外部IP 192.168.175.130、内部IP 192.168.232.133
攻击目标:192.168.232.0/24 地址段
1、设置 socks 代理
首先开启交互模式,之后开启 socks 代理
sleep 0
socks 9527
beacon> sleep 0
[*] Tasked beacon to become interactive
[+] host called home, sent: 16 bytes
beacon> socks 9527
[+] host called home, sent: 16 bytes
[+] started SOCKS4a server on: 9527
2、配置 ProxyChains
在攻击机上,配置 /etc/proxychains.conf
文件的最后一行,根据当前攻击主机 IP 与设置的 Socks 端口,修改如下:
socks4 192.168.175.200 9527
3、开始使用 ProxyChains
根据上一节使用 Metasploit 的扫描可以知道,在 192.168.232.0/24 地址段中存在主机 192.168.232.132 ,接下来使用 nmap 扫描一下常见的端口,这里以 80,443,445,3389 作为演示。
proxychains nmap -sT -Pn 192.168.232.132 -p 80,443,445,3389
-sT:使用 TCP 扫描
-Pn:不使用 Ping
-p:指定扫描端口
注:不加上 -sT -Pn 参数,将无法使用 proxychains 进行代理扫描
> proxychains nmap -sT -Pn 192.168.232.132 -p 80,443,445,3389
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.14
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-07 23:05 EDT
[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:80 ... OK
[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:445 ... OK
[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:3389 ... OK
[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:443 <--denied
Nmap scan report for 192.168.232.132
Host is up (0.19s latency).
PORT STATE SERVICE
80/tcp open http
443/tcp closed https
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 14.35 seconds
通过扫描可以看到目标 80 端口是开放的,接下来使用 curl 作为对比示例。
curl 192.168.232.132
proxychains curl 192.168.232.132
> curl 192.168.232.132
curl: (7) Failed to connect to 192.168.232.132 port 80: No route to host
> proxychains curl 192.168.232.132
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.14
[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:80 ... OK
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
……内容太多,此处省略……
0x02 反向转发
反向转发顾名思义就是和上一节中提到的转发路径相反,之前我们设置的代理是 CS服务端 --> 上线主机 --> 内网主机
,反向转发则是 内网主机 --> 上线主机 --> CS服务端
。
继续使用上面的演示环境,首先右击上线主机会话,选择 Pivoting --> Listener
,除了 Name 选项之外,CS 都会自动配置好,这里直接使用默认的配置信息。
之后生成一个 Windows 可执行文件,选择上一步生成的监听器,如果目标是 64 位则勾选使用 x64 Payload 的选项。
之后将该可执行文件在目标主机上执行即可,在现实环境中可以尝试使用钓鱼邮件的方式诱导目标执行。
当目标执行该文件后,就会发现当前不出网的 192.168.232.132 主机已经上线了。
有一说一,关于这部分网上大部分教程还是 CS 3.x 版本的教程,而在 4.0 的操作中个人感觉要方便很多。
网上关于这部分内容的 CS 4.0 的教程真的是少之又少,一开始在参考 3.x 教程的时候踩了很多坑,最后终于某内部知识库发现了一篇关于这部分内容的 4.0 教程,在该教程的参考下才发现居然如此简单。
参考链接:https://www.bilibili.com/video/BV16b411i7n5
更多信息欢迎关注我的微信公众号:TeamsSix