关于Chisel
Chisel是一个快速稳定的TCP/UDP隧道工具,该工具基于HTTP实现其功能,并通过SSH保证通信安全。Chisel是一个可执行文件,其中包含了客户端和服务器端,该工具基于Go(golang)语言开发,因此具备较好的跨平台特性。
Chisel主要可以用于绕过防火墙,但也可以用于向网络中提供安全终端节点。
工具的运行机制如下图所示:
功能介绍
易于使用;
高性能;
使用SSH协议对通信连接进行加密(通过crypto/SSH);
连接经过身份验证;
通过用户配置文件进行身份验证的客户端;
通过用户配置文件进行身份验证的客户端连接;
通过指纹匹配进行身份验证的服务器连接;
客户端使用指数回退自动重新连接;
客户端可以通过一个TCP连接创建多个隧道端点;
客户端可以选择通过SOCKS或HTTP连接代理;
反向端口转发;
服务器反向代理;
服务器允许SOCKS5连接;
客户端可以选择允许从反向端口进行SOCKS5连接;
支持ssh-o ProxyCommand通过HTTP提供SSH加密;
工具安装
源码安装
广大研究人员可以点击【https://github.com/jpillora/chisel/releases/latest】访问该项目的Releases页面下载并安装该工具的最新版本,或运行下列命令:
curl https://i.jpillora.com/chisel! | bash
Docker安装
docker run --rm -it jpillora/chisel --help
Fedora
该项目包目前由Fedora社区进行维护,如果你遇到了关于RPM使用的问题,可以使用这个问题跟踪工具【https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&classification=Fedora&component=chisel&list_id=11614537&product=Fedora&product=Fedora%20EPEL】
sudo dnf -y install chisel
源安装
$ go get -v github.com/jpillora/chisel
安全性
通信连接始终启用了加密。当你启动Chisel服务器时,它将会在内存中生成一个ECDSA公钥/私钥对。其中的公钥指纹(Base64编码的SHA256)将在服务器启动时显示。服务器可以选择使用–key选项指定密钥种子,而不是生成随机密钥,该选项将用于为密钥生成种子。当客户端连接时,它们还将显示服务器的公钥指纹。客户端可以使用–fingerprint选项指定特定的指纹。
身份验证
使用–authfile选项,服务器可以选择提供用户.json配置文件以创建接受的用户访问列表。然后,客户端使用–auth选项进行身份验证。我们可以查看users.json以获取认证配置文件样例。使用–help查看更多帮助信息。
在内部,这是使用SSH提供的密码验证方法实现的。点击【http://blog.gopheracademy.com/go-and-ssh/】了解更多关于SSH加密的信息。
Socks5指引
1、开启你的Chisel服务器:
docker run
–name chisel -p 9312:9312
-d --restart always
jpillora/chisel server -p 9312 --socks5 --key supersecret
2、连接你的Chisel客户端(使用服务器的指纹信息):
chisel client --fingerprint ‘rHb55mcxf6vSckL2AezFV09rLs7pfPpavVu++MF7AhQ=’ :9312 socks
3、指向你的Socks5客户端:
:1080
4、现在你的通信将被加密,并通过HTTP实现已认证的Socks5连接。