Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
opensshenum — CVE-2018-15473 - Opensshenum is an user enumerator exploiting an OpenSsh bug | Kitploit
工具/GitHubGitHub/gbonacini/opensshenum
Port ScanningVulnerability AnalysisExploitationInformation GatheringNetwork SecurityPenetration Testing
GitHubgbonacini/opensshenum

opensshenum

CVE-2018-15473 - Opensshenum is an user enumerator exploiting an OpenSsh bug

查看仓库
37年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

描述:

Opensshenum 是一个 OpenSSH 用户枚举工具,允许针对 OpenSSH 服务器验证任意用户名列表,从而获知远程机器上实际存在的用户。该程序利用了一个漏洞(2018年7月修复),该漏洞至少从 OpenSSH 2.3.0(2000年11月发布)起就已被证实有效。

我基于 Tssh(一个我从零开始根据 RFC 用 C++11 编写的 SSH 2 客户端)编写了这个利用程序。

更多信息请阅读:

http://seclists.org/oss-sec/2018/q3/124

该问题被分配了 CVE-2018-15473。

免责声明:

此代码仅用于信息提供和教育目的。未经所有者授权入侵系统或服务是违法的。滥用本仓库中的信息和软件可能导致对犯罪者提起刑事诉讼。任何与本 Git 仓库内容相关的行为或活动均由您自行负责。作者不承担任何因个人滥用本网站信息或软件违反法律而导致的刑事诉讼责任。

前提条件:

该程序旨在 *nix 环境中使用,并在多种 Linux 发行版和 OS X 上测试通过:

  • Ubuntu 17.10;
  • OS X 10.11.6;

使用的编译器为以下之一:

  • gcc 版本 7.2.0(Ubuntu 7.2.0-8ubuntu3.2);
  • Apple LLVM 版本 8.0.0(clang-800.0.42.1)

SSH 服务器为以下之一:

  • OpenSSH_7.5p1

唯一的外部依赖是 OpenSSL 库,用于加密功能。我可能在后续版本中引入 OpenSSL 的替代方案。本程序要求 OpenSSL 版本不低于:

  • OpenSSL 1.0.2h;

(这意味着在 OS X 上必须升级)。

编译程序需要以下工具/库:

  • C++ 编译器(支持 C++11);
  • automake/autoconf;
  • libtool;
  • OpenSSL 1.0.2h 或更高版本(“dev”包);

安装:

  • 运行 configure 脚本: ./configure
  • 编译程序: make
  • 安装程序及手册页: sudo make install

使用说明:

通过管道传递用户列表进行处理,示例:

cat user.txt | ./opensshenum -i dummy_cert target_addr
xxx:NOK
gabriel:OK

其中 user.txt 是包含用户名列表的文件,每行一个用户名;dummy_cert 是使用 OpenSSH 的 ssh-keygen 命令生成的密钥(默认密钥目录为 ~/.ssh)。

也可以直接生成列表:

printf "xxx\ngabriel" | ./src/opensshenum -i dummy_rsa localhost
xxx:NOK
gabriel:OK

详情请参阅本版本附带的手册页。

新增功能:

端口扫描:

新增 SSH 端口扫描功能:现在 opensshenum 可以扫描与地址相关的所有端口,以发现监听在非 22 端口上的 SSH 实例,并仅对已验证的端口执行利用。该功能可独立使用,仅获取与 SSH 相关的端口列表,而不执行任何攻击。

示例:

opensshenum -s -n -t2 -m22221 -M22225 -r'.*OpenSSH' -idummy_rsa my_imaginary_website.com

将扫描端口(-s)范围 22221 至 22225(包含两端),仅执行扫描(-n),超时时间 2 秒(-t),期望问候字符串包含 OpenSSH(-r),使用名为 idummy_rsa 的公钥(建议为此类操作专门生成密钥),目标为 my_imaginary_website.com。更多信息请参阅手册页。

并行执行:

包含一个使用 GNU Parallel 的 alpha 版脚本(parallenum.sh),作为概念验证,通过将待扫描端口范围划分为子范围(每个子范围由特定进程负责),可减少扫描时间。这显然会产生大量噪音。可通过 -t 参数降低噪音。

指纹识别:

新增指纹识别功能,可用于自动识别操作系统类型(例如,当省略“问候”字符串时)以及基于用户名/用户组合数据库的服务。数据库由收集在目录中的 *.lst 文件创建。每个 *.lst 文件的名称为 <os_name_or_service>.lst,例如:

ubuntu_17_10.lst aix.lst proprietary_ftp.lst

数据库(csv 文件)格式为:

user_1;os_or_service_1; ... ;os_or_service_n ... user_m;os_or_service_1; ... ;os_or_service_n

可使用 ./utils 目录中的 createdb 工具从 *.lst 文件创建数据库,需指定 *.lst 文件目录,例如:

cd utils make ./createdb ../lists/

要启用指纹识别功能,请使用 -F 选项并指定数据库文件,例如:

cat test/scan.sample | opensshenum -p22 -idummy_rsa -Futils/opensshenum.db localhost

下载工具