kali流量操控与隧道

mac2025-09-09  32

流量操控与隧道

流量操控技术Traffic manipulation technique

渗透测试中经常遇到访问受限的网络环境 使用隐蔽的手段逃避安全检查措施和溯源追踪 证明看似严格的访问控制仍然存在弱点 在非受信任的网络中实现安全的数据传输 部分概念的实现过程略有烧脑

重定向(Redirection)即Ip、Port的重定向

隧道(Tunneling) 在不受信任的网络环境中实现安全的通信 通常使用多种加密技术建立通信隧道 点到点(IP2IP,通常是边界防火墙到边界防火墙,过了防火墙,在内网数据是没有加密的,如果有中间人攻击就会被嗅探)、端到端(Port2Port,通信全过程都是加密的)隧道 VPN: pptp、I2tp、IPSec、SSL vpn

封装(encapsulation) 通常结合在隧道中使用,使用一种协议封装一种协议(RPC o http、VoIP) 使用网关设备实现不同类型网络的互联互通

重定向

Rinetd 安装:apt-get install rinetd 配置:/etc/rinetd.conf bindadd bindport connectadd connectport 运行:rinetd

应用场景 重定向web流量,突破上网限制 远程桌面重定向 NC重定向获得shell 不兼容FTP等二次连接的协议

安装monowall防火墙

SSH隧道

SSH支持双向通信隧道 将其他TCP端口的通信通过SSH链接来转发 用SSH作为传输层协议,对流量自动加解密 突破防火墙访问规则的限制,可用于fanqiang

SSH本地端口转发 使效果类似于rinetd 将一本地端口与远程服务器建立隧道

建立双向安全隧道 将其他TCP端口的通信通过SSH链接来转发 用SSH作为传输层协议,对流量自动加解密 突破防火墙访问规则的限制,可用于fanqiang

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

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

动态隧道模式

SSH本地端口转发

将一本地端口与远程服务器建立隧道

/etc/ssh/sshd_config PermitRootLogin yes Port 53 PasswordAuthentication yes

service ssh restart

ssh -fCNg -L :: user@ -p ssh -fCNg -L :localhost: user@ -p -f 后台运行进程;-N 不执行登录shell;-g复用访问时作为网关,支持多主机访问本地侦听端口;网关模式转发RDP、nc shell

端口转发基于建立起来的SSH隧道,隧道中断则端口转发中断 只能在建立隧道时创建转发,不能为已有隧道增加端口转发

SSH远程端口转发

由于ACL等原因,SSH与应用连接建立方向相反

本地端口转发 SSH客户端+应用客户端位于FW_端 SSH服务端+应用服务端位于另一端 远程端口转发 SSH客户端、应用客户端位于FW两端 SSH服务端、应用服务端位于FW两端

ssh -fNg -R :: user@ -p

之所以称为远程,是因为SSH侦听端口开在远程的SSH Server上 侦听端口永远开在应用客户端一方

A到C、B到D之间的通信未加密,可嗅探

SSH动态端口转发

本地、远程端口转发都需要固定应用服务器IP、Port 应用端口繁多,逐个转发效率低 某些应用不固定端口 某些网站不支持IP直接访问 使用非受信网络上网时保护流量不被嗅探

本地侦听socks4/5代理端口 由SSH server决定如何转发 作为fanqiang代理使用 配置客户端代理(浏览器) 使用proxychains支持无代理客户端 ssh -CfNg -D 7001 root@1.1.1.1 -p 2121

X协议转发

远程登录Linux GUI运行图形化界面工具:VNC、X Windows 防火墙限制访问时:基于SSH的X转发;ssh -X user@1.1.1.1 -p 53

DNS协议隧道

防火墙禁止TCP出站访问流量 SSH隧道、端口转发全部失效 使用基于UPD协议的隧道 DNS的工作原理适合用于实现隧道

DNS工作原理 DNS隧道原理:注册受自己控制的DNS记录

dns2tcp

利用合法DNS服务器实现DNS隧道 C/S (dns2tcpc/dns2tcpd)结构 通过TXT记录加密传输数据(A记录长度有限) 隧道建立后保持连接 默认记录生存时间TTL值为3秒

服务端配置文件 /etc/dns2tcpd.conf或当前目录的.dns2tcprcd listen = 0.0.0.0 port = 53 user = nobody chroot = /tmp key = password123 domain = test.lab.com resources = ssh:127.0.0.1:22 , smtp:127.0.0.1:25 , socks:127.0.0.1:1082 , https:127.0.0.1:8087 , http:127.0.0.1:3128 资源可以是其他地址

启动 dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf F:前端运行,d:debug level 1-3,f:指定配置文件

iodine

与同类工具相比的优点 对下行数据不进行编码,因此性能优 支持多平台:Linux、BSD、Mac OS、Windows 最大16个并发连接 强制密码支持 支持同网段隧道IP (不同于服务器、客户端网段) 主持多种DNS记录类型 丰富的隧道质量检测措施

运行服务端 iodined -f -c 10.0.0.1 test.lab.com -f:前端显示(可选) -c:不检查客户端IP地址 IP:服务器端的隧道IP地址

运行客户端 iodine -f test.lab.com curl --socks5-hostname 127.0.0.1:7001 http://www.sina.com

隧道网络接口 不基于资源的通用隧道,如同本网段内两台相邻的主机 服务器端和客户端分别生成隧道网络接口dns0 隧道两端接口的IP地址应不同于客户端和服务器端网段 基于此隧道可嵌套其他隧道技术 ssh -CfNg -D 7001 root@10.0.0.1

Windows端 安装TAP网卡驱动 客户端http://code.kryo.se/iodine/ iodine -f test.lab.com

NCAT

代理功能 ncat -l 8080 --proxy-type http --proxy-auth user:pass

Broker中介功能 AB不同但AC、BC互通 服务器:ncat -l 333 --broker 客户端之间发送任何信息都会被hub到其他客户端 批量执行命令:ncat 1.1.1.1 --sh-exec “echopwd” 批量传文件:ncat --send-only 1.1.1.1 < inputfile

SOCAT

双向数据流通道工具

连接端口:socat - tcp:1.1.1.1:80 侦听端口:socat - tcp4-listen:22或socat - tcp-l:333 接收文件:socat tcp4-listen:333 open:2.txt,creat,append 发送文件:cat 1.txt | socat - tcp4:1.1.1.1:333

远程shell—服务器端 socat tcp-l:23 exec:sh,pty,stderr 端口转发 socat tcp4-listen:22,fork tcp4:1.1.1.1:22 远程执行命令 服务器:socat -udp-l:2001 客户端:echo “id” 丨 socat - udp4-datagram:1.1.1.1:2001

UDP全端口任意内容发包 for PORT in {1…65535}; do echo “aaaaa” | socat - UDP4-DATAGRAM: 1.1.1.1 :$PORT; sleep .1; done

ptunnel

ping tunnel ICMP隧道工具 通过ICMP echo(ping requests)和reply(ping reply)实现隧道 适用于防火墙只允许ping出站流量的环境 支持多并发连接、性能优 支持身份验证 需要root权限 支持抓包,但需要依赖库 Windows: winpcap; Linux: libpcap 工作过程:Proxy、Client、Destination

服务器ptunnel -x 1234 客户端sudo ptunnel -p -lp 2222 -da -dp 22 -x 1234 嵌套SSH隧道ssh -CNfg -D 7000 root@127.0.0.1 -p 2222 ptunnel直到目前的最新版仍存在拒绝服务漏洞:0.72

proxytunnel

通过标准的HTTP / HTTPS代理创建隧道的工具 通过HTTP CONNECT方法封装信息 适用于内网使用代理并且防火墙只允许代理服务器上网的场景 无法创建DNS隧道和ICMP隧道

sslh

端口分配器 根据客户端第一个包检测协议类型 根据协议检测结果将流量转发给不同目标 支持HTTP, HTTPS, SSH, OpenVPN, tinc, XMPP和其他可基于正则表达式判断的任何协议类型 适用于防火墙允选443端口入站访问流量的环境

配置文件/etc/default/sslh

stunnel4

无需修改源代码的情况下将TCP流量封装于SSL通道内 适用于本身不支持加密传输的应用 支持OpenSSL安全特性 跨平台 性能优

最新回复(0)