
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で確認でき、十分明確だと思います。特にコメントすべきは次の2つです:
--showfail - 成功と失敗の両方のパスワード攻撃試行をすべて表示します。ただし、コンソール出力が乱雑になるため、このオプションを選択しない場合は代わりに回転する進行状況インジケーターが表示されます。
--timeout - コマンド応答のタイムアウト(ミリ秒単位)です。ここではsnmpwalkが対象です。デフォルトは0.3(300ミリ秒)に設定されています。低速リンクを介してホストをテストする場合は、これを延長する必要があります。個人的には300未満にはしません。結果が信頼できなくなる可能性があります。
./snmpwn.rb --hosts hosts.txt --users users.txt --passlist passwords.txt --enclist passwords.txt


