WebSocat 安装与使用

WebSocat 是一款"支持 WebSocket 协议的 netcat",体积小、零依赖、一条命令即可把任意 TCP/STDIO 流桥接到 ws/wss,也能把 WebSocket 服务转成 TCP/Unix 套接字,是渗透测试、红队、IoT 调试、前端抓包、内网穿透等场景的瑞士军刀。

本文以 Kali Linux x86_64 为例,手把手带你完成"下载 → 安装 → 常用用法 → 进阶技巧"全流程;其他 Linux 发行版只需替换二进制文件名即可照搬。


一、1 分钟完成安装(零依赖静态版)

  1. 拿到官方最新静态二进制(musl 链接,无 glibc 版本烦恼)

    版本:v1.14.0(2024-09)

    地址:https://github.com/vi/websocat/releases/download/v1.14.0/websocat.x86_64-unknown-linux-musl

  2. 一行命令下载并放入全局路径

bash 复制代码
sudo wget -qO /usr/local/bin/websocat \
  https://github.com/vi/websocat/releases/download/v1.14.0/websocat.x86_64-unknown-linux-musl \
  && sudo chmod +x /usr/local/bin/websocat
  1. 验证
bash 复制代码
websocat --version
# 输出:websocat 1.14.0

至此安装完毕,无需 apt、无需 cargo、无需 root 运行,可执行文件仅 3 M 左右。


二、5 条命令掌握 80% 使用场景

目的 命令示例
1. 测试公网回显服务 websocat ws://ws.vi-server.org/mirror
2. 连接自建 WebSocket 服务 websocat ws://127.0.0.1:8080/ws
3. 发送一条消息即退出 `echo '{"msg":"hi"}'
4. 把 WebSocket 转成本地 TCP,供旧工具使用 websocat tcp-l:127.0.0.1:9000 wss://target.com/socket
5. 本地快速起一个 WebSocket 回显服务器 websocat -s 0.0.0.0:1234

三、渗透测试常用技巧

  1. 绕过前端,直接和 WebSocket API 交互
    拿到 JWT 后:
bash 复制代码
Authorization='Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
websocat -H="Authorization: $Authorization" wss://api.site.com/live
  1. 把 WebSocket 流进 nc/hexdump 分析
bash 复制代码
websocat wss://target.com/log | hexdump -C
  1. 与 Burp 联动(Burp 不支持原生 WS 转发时)
    在 Burp 上游选项里设置 SOCKS 代理,然后:
bash 复制代码
websocat -s 127.0.0.1:8086 wss://target.com/socket

浏览器插件 SwitchyOmega 指向 ws://127.0.0.1:8086 即可。

  1. 内网穿透------把内网 WebSocket 映射到公网 VPS
    本地(内网主机)
bash 复制代码
websocat wss://your-vps.com:443 tcp:127.0.0.1:3389

VPS(公网)

bash 复制代码
websocat -s 0.0.0.0:443 ssl:cert.pem:key.pem tcp:127.0.0.1:9999

此时攻击机连 wss://your-vps.com:443 就等于连到内网 3389。


四、命令行速查表

参数 说明
-s IP:PORT 监听 WebSocket 服务器(明文)
-s IP:PORT ssl:cert:key 监听 WSS 服务器
tcp-l:IP:PORT 监听 TCP 端口
tcp:IP:PORT 连接 TCP 端口
stdio: 标准输入输出,可省略
-H="Header: value" 添加自定义 HTTP 头
-v 详细调试,排查握手问题
--binary / --text 强制二进制或文本帧
--exit-on-eof 收到 EOF 立即退出,适合脚本

五、常见问题 FAQ

Q1: 执行报错 cannot execute binary file

→ 下错架构,请 uname -m 确认是 x86_64 还是 aarch64,再对应下载。

Q2: 提示 SSL certificate verify failed

→ 测试环境可加 -k 忽略校验(等同 curl -k):

bash 复制代码
websocat -k wss://self-signed.site.com/socket

Q3: 需要 socks5 代理?

→ 用 proxy-connect 插件:

bash 复制代码
websocat -s 127.0.0.1:9000 socks5://127.0.0.1:1080 wss://target.com/socket

六、结语

WebSocat 把"TCP 世界的祖传工具"与"WebSocket 新世界"无缝黏合:

一条命令即可让 nc、telnet、burp、nmap、sqlmap、metasploit 等老牌工具瞬间获得 ws/wss 能力,也能让 浏览器、小程序、IoT 固件 快速对接传统 TCP 服务。

相关推荐
YUELEI11816 小时前
Springboot WebSocket
spring boot·后端·websocket
Greedy Alg4 天前
Socket编程学习记录
网络·websocket·学习
Cxiaomu4 天前
React Native 项目中 WebSocket 的完整实现方案
websocket·react native·react.js
Arva .4 天前
WebSocket实现网站点赞通知
网络·websocket·网络协议
火星数据-Tina5 天前
LOL实时数据推送技术揭秘:WebSocket在电竞中的应用
网络·websocket·网络协议
paopaokaka_luck5 天前
基于SpringBoot+Vue的社区诊所管理系统(AI问答、webSocket实时聊天、Echarts图形化分析)
vue.js·人工智能·spring boot·后端·websocket
歪歪1005 天前
使用 Wireshark 进行 HTTP、MQTT、WebSocket 抓包的详细教程
网络·websocket·测试工具·http·wireshark
EndingCoder5 天前
WebSocket实时通信:Socket.io
服务器·javascript·网络·websocket·网络协议·node.js
J_bean6 天前
Spring Boot 集成 WebSocket 的实战案例
spring boot·websocket
m0_611779966 天前
MQTT和WebSocket的差别
网络·websocket·网络协议