chisel:一款快速稳定的隧道工具

 

前言

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语言编写,支持多平台。单一文件无依赖。

缺点:据说因为小众所以免杀,但是写本文章时发现管家报毒了。

总体来说这款工具还是非常好用的。

参考资料

https://github.com/jpillora/chisel

https://idc.wanyunshuju.com/nw/2006.html

(完)