自建 SSH 蜜罐:巧用 pty 轻松记录攻击者命令的 4 种方案
# 自建SSH蜜罐记录攻击者命令的方法 要在自建SSH蜜罐中记录攻击者登录后执行的命令,使用pty(伪终端)是一个有效的方法。以下是几种实现方案: ## 方法1:使用修改过的shell 1. 创建一个自定义shell脚本(如`/bin/fakessh`): ```bash #!/bin/bash LOG_FILE="/var/log/ssh_honeypot_commands.log" # 创建伪终端 exec script -q -f $LOG_FILE -c "/bin/bash" ``` 2. 将该shell添加到`/etc/shells` 3. 在`/etc/passwd`中将目标用户的shell改为`/bin/fakessh` ## 方法2:使用SSH ForceCommand 在`/etc/ssh/sshd_config`中添加: ``` Match User honeypot ForceCommand script -q -f /var/log/ssh_honeypot_commands.log -c /bin/bash ``` ## 方法3:使用ttylogger工具 1. 安装ttylogger: ```bash git clone https://github.com/rocky/ttylogger cd ttylogger make sudo make install ``` 2. 配置SSH使用ttylogger: ``` Match User honeypot ForceCommand /usr/local/bin/ttylogger -f /var/log/ssh_honeypot_commands.log /bin/bash ``` ## 方法4:使用python实现的pty方案 ```python #!/usr/bin/python import os import pty import sys LOG_FILE = "/var/log/ssh_honeypot_commands.log" def main(): with open(LOG_FILE, 'ab') as f: def read(fd): data = os.read(fd, 1024) f.write(data) f.flush() return data pty.spawn("/bin/bash", read) if __name__ == "__main__": main() ``` ## 安全注意事项 1. 确保日志文件权限设置正确,防止攻击者删除日志 2. 考虑将蜜罐系统与主网络隔离 3. 定期检查和分析收集到的日志 4. 不要在蜜罐中使用真实密码或敏感信息 使用pty方法确实不需要解密SSH会话,因为它是在用户登录后捕获终端输入输出,比解密SSH流量更简单有效。 ######[AI问答 | 509点数解答 | 2025-04-20 18:02:16]
- MATLAB填空题大揭秘:答案全知晓,掌握这些要点!(字节豆包 | 360点数解答 | 2025-12-26 08:41:25)51
- 卡牌游戏技能“教化”机制全解析:规则、代码与注意要点 (DeepSeek | 353点数解答 | 2025-07-07 15:40:28)178
- Python 模拟无名杀“教化”技能:出牌阶段规则与代码实现及优化建议(字节豆包 | 546点数解答 | 2025-07-07 15:41:02)186
- Java 实现“教化”技能:出牌阶段限两次的牌获取规则代码解析(字节豆包 | 1003点数解答 | 2025-07-07 15:41:54)154
- JavaScript 实现“教化”技能:两次出牌限制与牌型记录逻辑揭秘(字节豆包 | 846点数解答 | 2025-07-07 15:42:46)193
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)348
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)277
- Photoshop 错误 8800 大揭秘:原因分析与实用解决方案(DeepSeek | 349点数解答 | 2025-02-28 11:19:16)608
- Photoshop“去色”功能报错8800?原因及解决办法大揭秘!(字节豆包 | 167点数解答 | 2025-03-02 22:29:23)452
- Linux开发必知:Telnet与SSH的四大关键区别及最佳选择 (百度文心 | 270点数解答 | 2023-11-09 18:43:56)205
- "Error: Can't Find Python3 on Remote Server - Troubleshooting Guide"(阿里通义 | 382点数解答 | 2024-02-28 17:27:31)280
- SSH远程执行多命令:遇错误即退出的机制与灵活处理方法揭秘(阿里通义 | 282点数解答 | 2024-05-23 10:29:16)196