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 服务。

相关推荐
CryptoRzz1 天前
印度尼西亚(IDX)股票数据对接开发
java·后端·websocket·web3·区块链
mudtools1 天前
飞书 .NET SDK 事件处理的幂等性与去重机制
websocket·.net·飞书·webhook
weixin79893765432...2 天前
深入浅出 WebSocket 协议
websocket·http·socket·sse
callJJ2 天前
WebSocket 两种实现方式对比与入门
java·python·websocket·网络协议·stomp
今晚务必早点睡2 天前
系统通信方式实战详解:HTTP、RPC、MQ、WebSocket 各用在什么场景?(附 SDK 示例)
websocket·http·rpc
*才华有限公司*2 天前
RTSP视频流播放系统
java·git·websocket·网络协议·信息与通信
栗子叶2 天前
网页接收服务端消息的几种方式
前端·websocket·http·通信
栗子叶3 天前
SSE、长轮询与 WebSocket 连接资源对比及 Spring Boot 配置指南
spring boot·websocket·网络协议
softshow10263 天前
Vue3 :封装 WebRTC 低延迟视频流与 WebSocket 实时状态驱动的大屏可视化
websocket·网络协议·webrtc
克里斯蒂亚诺更新4 天前
理解即时通信Socket以及用NodeJs实现WebSocket
网络·websocket·网络协议