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

相关推荐
一直向钱21 小时前
android 基于okhttp 封装一个websocket管理模块,方便开发和使用
android·websocket·okhttp
lichenyang4531 天前
WebSocket实战:打造AI流式对话的实时通信基础
网络·websocket·网络协议
晨港飞燕1 天前
Websocket+Redis实现微服务消息实时同步
redis·websocket·微服务
歪歪1001 天前
介绍一下HTTP和WebSocket的头部信息
网络·websocket·网络协议·http·网络安全·信息与通信
歪歪1002 天前
如何在项目中选择使用HTTP还是WebSocket?
网络·websocket·网络协议·计算机网络·http·网络安全
^Moon^2 天前
websocket网络通信协议
网络·websocket·网络协议
Cloud Traveler2 天前
告别内网困局:cpolar破解Websocket远程访问难题
网络·websocket·网络协议
不是笨小孩i2 天前
Websocket+cpolar:如何轻松实现服务远程访问?
网络·websocket·网络协议
歪歪1003 天前
Http与WebSocket网络通信协议的对比
网络·websocket·网络协议·计算机网络·http·网络安全·信息与通信