前言
chisel这款工具是在打HTB时接触到的,感觉挺不错的,但是国内并没有太多关于这款工具的资料。正所谓我不入地狱谁入地狱,于是便有了这篇文章。
工具简介
先上github链接
https://github.com/jpillora/chisel
这是一款采用Go编写的工具,支持多平台的使用。
官方的介绍是A fast TCP/UDP tunnel over HTTP
, 使用HTTP传输的快速TCP/UDP隧道。
搬一下官方的架构图
这款工具底层采用了HTTP进行传输,将TCP/UDP链接封装在HTTP隧道中,并且还使用了SSH对通信数据进行加密。(这么解释应该还可以吧~
简单的应用
这里先上一张我梳理过的脑图
程序只有一个二进制文件,客户端和服务端都包含在其中,通过给定参数chisel <client|server>
运行客户端或服务端。添加--help
参数即可看到对应的帮助文档。然后我已经将帮助文档中提到的参数和功能解释都写在脑图里了。但我们并不需要太过注重这些参数,因为这款工具在用作渗透中时并不涉及太多的参数。
下面就拿渗透中比较经典的端口转发和socks代理来演示一下这款工具的应用。
先给出演示的网络图
端口转发
首先我在kali上执行python3 -m http.server --bind 127.0.0.1 8000
启动一个http服务器,并且该服务器只对本地8000
端口开放。
那么为了在win10主机上能访问到这个http服务,我们就需要做端口转发,这是比较经典的场景。
正向连接
kali执行./chisel server -p 12345
win10执行chisel.exe client 192.168.61.128:12345 11111:127.0.0.1:8000
这时我们就将kali的8000
端口转发到win10的11111
端口上了,此时在win10上访问127.0.0.1:11111
可以成功在win10上访问到了kali的http服务。
反向连接
win10执行chisel.exe server -p 12345 --reverse
kali执行./chisel client 192.168.61.129:12345 R:11111:127.0.0.1:8000
此时在win10上访问127.0.0.1:11111
可以成功访问。
socks代理
在渗透中当我们拿下一台内网主机时,往往需要搭建一个通向内网的代理来进行内网渗透。
这里再贴一次网络图,假设kali作为攻击机已经拿下了处于边界的win10主机,接下来演示如何使用chisel搭建通向win10内网的socks代理。
正向连接
win10执行chisel.exe server -p 12345
kali执行./chisel client 192.168.61.129:12345 socks
这时可以看到kali已经在1080
端口上开启了一个socks代理,当然这个端口可以改,使用$port:socks
这时就可以使用代理工具进一步渗透,比如proxychains+nmap
对内网进行扫描,这里因为只是简单的演示我直接用浏览器配置代理
然后访问处于办公网的192.168.10.1
的路由器
成功访问。
反向连接
kali执行./chisel server -p 12345 --reverse
win10执行chisel.exe client 192.168.61.128:12345 R:socks
此时再次尝试访问路由器
成功访问。
结尾
总结
优点:使用SSH加密,有比较好的安全性。具有断开等待和重连机制,有比较好的稳定性(类似的ew长时间不操作就会断开)。Go语言编写,支持多平台。单一文件无依赖。
缺点:据说因为小众所以免杀,但是写本文章时发现管家报毒了。
总体来说这款工具还是非常好用的。