
通过 pwntools 从 Python 驱动 Metasploit 的 auxiliary/scanner/ssh/ssh_login 模块,自动对旧版 OpenSSH 4.7p1 (Debian-8ubuntu1) 目标进行版本检查和凭据审计。
本项目仅用于研究和授权的安全测试。
____ _____ _____ _ _
/ __ \ / ____/ ____| | | |
| | | |____ ___ _ __ | (___| (___ | |__| |
| | | | '_ \ / _ \ '_ \ \___ \\___ \| __ |
| |__| | |_) | __/ | | |____) |___) | | | |
\____/| .__/ \___|_| |_|_____/_____/|_| |_|
| |
|_|
OpenSSH_4.7p1 Debian-8ubuntu1。msfconsole 并运行:
auxiliary/scanner/ssh/ssh_loginRHOSTS、userpass_file、stop_on_success、threads 和 verbose关于 CVE-2008-5161 的重要说明:
ssh_login 模块自动对该目标进行凭据审计。请将其视为辅助/自动化层,而非独立的 CVE 漏洞利用程序。msfconsole 在 PATH 中)pip install pwntools)user:pass 组合的文件。脚本默认引用:
/usr/share/wordlists/metasploit/piata_ssh_userpass.txt
请根据你系统上可用的字典文件调整此路径。安装 Metasploit Framework
sudo apt install metasploit-frameworkmsfconsole -v安装 Python 依赖
python3 -m pip install --upgrade pippython3 -m pip install pwntools获取或创建 user:password 列表
user1:password1将脚本(例如 exploit_ssh.py)放在你的项目目录中。
请注意:
random.choice(...) 来打印横幅,但没有导入 random。如果你看到 NameError: name 'random' is not defined,请在文件顶部添加 import random。python3 exploit_ssh.pyssh_login。环境示例:
SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1注意:
Debian-8ubuntu1.2)将无法匹配。请参阅下面的“自定义”以放宽检查。端口:
ExploitSSH(ip, port=22) 更改默认端口。字典文件路径:
set userpass_file /path/to/your/userpass.txt线程与行为:
set threads 12 和 set stop_on_success true。横幅检查:
io.recvuntil(b"SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1")"OpenSSH_4.7p1"recvuntil(...) 替换为:
banner = io.recvline(timeout=5),然后搜索类似 "OpenSSH_4.7p1" 的子字符串。找不到 msfconsole
msfconsole 在 PATH 中。没有名为 pwn 的模块
python3 -m pip install pwntools脚本在横幅检查时挂起
recvuntil(...) 可能会阻塞。recvline(timeout=5) 并使用子字符串逻辑进行检查。找不到字典文件
userpass_file 设置。Metasploit 会话处理
msf.interactive(),因此该行之后的代码可能直到会话结束才会执行。如果你希望完全自动处理会话,请移除交互模式并以编程方式解析 sessions。ExploitSSH 类argparse)代替交互式输入为你的仓库添加 LICENSE 文件。常见选择:
本项目仅用于教育和授权的安全测试。作者和贡献者不对滥用或损害承担任何责任。