1 个不稳定版本
0.1.3 | 2023年11月11日 |
---|
#20 在 #pty
230KB
607 行
qs-lite 是一个用 Rust 语言实现的 qs-netcat 工具的轻量级替代方案。它允许通过 QSRN(QSocket Reverse Network)重定向真正的 PTY 会话,有效地访问 NAT 网络或防火墙后面的系统。
[!警告]
此工具处于早期 alpha 开发阶段,具有可能缺乏向后兼容性的实验性功能,建议用户谨慎使用,不要在生产环境中使用。
安装
工具 | 从源码构建 | 容器镜像 | 二进制发布 |
---|---|---|---|
qs-lite | cargo安装 qs-lite |
下载 | 下载 |
qs-mic 支持 10 种架构和 12 个操作系统,请参阅下方的 支持的平台 获取详细信息。
支持的平台
平台 | AMD64 | 386 | ARM | ARM64 | MIPS | MIPS64 | MIPS64LE | PPC64 | PPC64LE | S390X |
---|---|---|---|---|---|---|---|---|---|---|
Linux | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Darwin | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Windows | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
OpenBSD | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
NetBSD | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
FreeBSD | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Android | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
IOS | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Solaris | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Illumos | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Dragonfly | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
AIX | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
用法
Usage: qs-lite [OPTIONS]
Options:
-s, --secret <SECRET>
secret. (e.g. password) [default: ]
-e, --exec <EXEC>
program to execute [default: "bash -il"]
-f, --forward-addr <FORWARD_ADDR>
forward address (IP:PORT) for traffic forwarding [default: ]
-x, --proxy-addr <PROXY_ADDR>
user socks proxy address for connecting QSRN [default: ]
-X, --cert-fingerprint <CERT_FINGERPRINT>
hex encoded TLS certificate fingerprint for validation [default: ]
-n, --probe <PROBE>
probe interval for connecting QSRN [default: 5]
-C, --no-encryption
disable all (TLS+E2E) encryption
--no-e2e
disable End-to-End encryption
-i, --interactive
initiate a full PTY (interactive) shell
-l, --listen
server mode. (listen for connections)
-g, --generate
generate a random secret
-T, --use-tor
use TOR network for connecting QSRN
--qr
generate a QR code with given stdin and print on the terminal
-q, --quiet
quiet mode. (no stdout)
-v, --verbose
verbose output mode
-h, --help
Print help
-V, --version
Print version
示例
- 通过任何防火墙/NAT 从工作站 B 登录到工作站 A
$ qs-lite -l -i # Workstation A
$ qs-lite -i # Workstation B
加密/安全混乱
- 连接是端到端加密的。这意味着是从用户到用户(而不仅仅是到中继网络)。中继网络只将(加密的)数据从用户传送到用户。
- QSocket 使用 SRP 来确保 完美的前向安全性。这意味着会话密钥总是不同的,即使知道用户密钥,也无法由第三方解密已记录的会话流量。
- 会话密钥是 256 位和瞬时的。它为每个会话新鲜生成,并随机生成(不是基于密码)。
- 对弱密钥的暴力攻击需要为每个猜测创建一个新的 TCP 连接。但 QSRN 包含一个强大的负载均衡器,限制了连续的连接尝试。
- 不要使用像'password123'这样的愚蠢密码。恶意用户可能会偶然选择相同的(愚蠢)密码并连接。如有疑问,请使用qs-netcat -g生成一个强密码。Alice和Bob的密码至少应该足够强大,以便在Alice等待Bob连接时,恶意用户无法偶然猜出。
- 如果Alice与Bob和Charlie共享相同的密码,那么当其中任何一个人连接时,Alice无法分辨出是Bob还是Charlie。
- 假设Alice与Bob和恶意用户共享相同的密码。当Alice停止监听连接时,恶意用户可能会开始监听连接。当Bob(在建立新连接时)无法判断他是在连接到Alice还是恶意用户。
- 我们没有发明SRP。它是一个众所周知的协议,经过良好的分析,并且得到了社区的信任。
依赖项
~149MB
~2.5M SLoC