SNMPwn 是一款 SNMPv3 用户枚举与攻击工具。它是一款合法的安全工具,专为安全专业人员和渗透测试人员设计,用于对已获得测试授权的主机进行测试。它利用了 SNMPv3 系统在 SNMP 用户不存在时会响应“Unknown user name”这一特点,从而允许我们循环遍历大量用户列表以找出存在的用户。
专为 Kali Linux 2.x rolling 构建并测试。应能在任何 Linux 平台上运行,但目前暂不支持 Mac OSX(等我空了会处理)。这是因为 OSX 上 snmpwalk 的 stdout 消息格式不同。该脚本本质上是对 snmpwalk 的封装。我所使用的 snmpwalk 版本为 5.7.3。
git clone https://github.com/hatlord/snmpwn.git
cd snmpwn
gem install bundler
bundle install
./snmpwn.rb
针对 Ruby 2.3.x 构建。较旧版本的 Ruby 可能也可用,但 1.9 版本之前可能不行。
您需要向脚本提供一个用户列表、一个主机列表、一个密码列表和一个加密密码列表。已附带了基本的 users.txt 和 passwords.txt 文件。您也可以将 passwords.txt 用作加密密码列表。我建议针对您渗透测试的目标组织生成一个专用的列表。
命令行选项一如既往地可通过 --help 查看,应该足够清晰。仅对我认为需要特别说明的选项进行说明:
--showfail – 该选项将显示所有密码攻击尝试(包括成功和失败)。但它会使控制台输出变得混乱,因此若不选择该选项,您将看到一个旋转进度指示器。
--timeout – 命令响应的超时时间(毫秒),此处指的是 snmpwalk。默认设置为 0.3,即 300 毫秒。如果您通过慢速链路测试主机,则需要延长此时间。我个人建议不要低于 300,否则结果可能不可靠。
./snmpwn.rb --hosts hosts.txt --users users.txt --passlist passwords.txt --enclist passwords.txt


