
ブルートフォースパスワード攻撃を使用して、パスワードの回復やサーバー、ルーター、IoTデバイスのペネトレーションテストを行うためのセキュリティプログラム。
サーバー、ルーター、IoTデバイスのペネトレーションテストのためのセキュリティプログラム
(ちなみに私のビットコインアドレスは 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE です)
(別のBTCアドレスもあります。一部のビットコインウォレットが特定のアドレスをサポートしていないという報告を受けているためです:1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme)
同志の皆さん、こんにちは。UBERSCAN 1.0へようこそ。
UBERSCANは、サーバーやネットワークのペネトレーションテストを支援するために設計されています。また、私のように倫理的ハッキングの世界に足を踏み入れようとしている人々が、例えばMiraiウイルスに対してどれだけ多くのデバイスが脆弱であるかを把握するためのツールでもあります。はい、一種のワードダイヤラーであり、サーバーやIoTデバイスのパスワードを解読するために使用できます。そして、悪意のある目的に使用してはなりません(法的注意事項を参照)。
コマンドラインの使用例:
uberscan -user:admin -passblank -scantype:telnet -random_ip -forktimes:20
または
uberscan -user:root -password:admin -scantype:ssh -random_ip -forktimes:20
または
uberscan -userfile:wordlist.txt -passfile:wordlist.txt -scantype:telnet -random_ip -forktimes:15
これらのさまざまなオプションを組み合わせて調整し、楽しいものを見つけてみてください! (冗談です、私は刑務所に行きたくありません。あああああああ!!)
このプログラム(以下、UBERSCANまたはuberscanと呼びます)はGPL 3ライセンスの下で配布されています。すべての関連する権利は留保されています。UBERSCANはBatch McNulty 2017の著作権です。GPL 3ライセンスの条件に従う限り、許可なくUBERSCANを配布、変更、コピーすることができます。
このユーティリティは合法的な使用のみを目的として設計されています。悪意のある使用については責任を負いません。 悪意のあるハッカーはそもそも独自のツールを持っています。UBERSCANはコンピュータシステムを守るために設計されており、破壊するためではありません。-random_ipおよび-random_ipblockスキャナーを使用して脆弱なサーバーを発見した場合は、所有者に連絡してセキュリティホールについて知らせることを推奨します。
お優しく!それは命令です!
すべての死亡予告、引き渡し状、怪しい仕事のオファーは [email protected] までお送りください。返信できるよう努力しますが、保証はできません...
いくつかの依存関係があるため、自動的にインストールするバッチファイルを同梱しています。プログラムがあるディレクトリでターミナルウィンドウを開き、以下を入力してください:
sudo bash INSTALL.bash
...待機し(時間がかかる場合があります)、UBERSCANを実行できるようになるはずです(どうしてもうまくいかない場合は perl uberscan.pl を試してください)
インストールプログラムが動作しない場合、必要なライブラリは次のとおりです:
WWW::Curl::Easy HTTP::Request Net::SSH::Expect Net::Telnet Net::FTP Net::POP3 IO::Socket::INET Scalar::Util Fcntl utf8 Encode
Scalar::Util、Fcntl、utf8、EncodeはすべてPerlディストリビューションに含まれており、Linuxに付属しています。その他はおそらく個別にインストールする必要があります...残念ながらCurl::Easyの場合、依存関係自体に依存関係があり、見つけるのが難しい場合があります。INSTALL.bashファイルを実行してもUBERSCANが動作しない場合は、以下を1つまたはすべて実行してから、インストールファイルを再度実行してみてください:
sudo apt-get install libcurl4-doc
sudo apt-get install libcurl3-dbg
sudo apt-get install libgnutls-dev
sudo apt-get install libidn11-dev
sudo apt-get install libkrb5-dev
sudo apt-get install libldap2-dev
sudo apt-get install librtmp-dev
sudo apt-get install zlib1g-dev
また、INSTALL.bashファイルにはcpanが必要です。これはLinuxに付属しているはずです。付属していない場合は、実行前にターミナルで以下を入力してください:
sudo apt-get install cpan
もう一つ非常に重要なこと:
Net::SSH::Expectモジュールを使用するには、システムファイルの1つに変更を加える必要があります。それは:
/etc/ssh/ssh_config
それを変更するにはスーパーユーザー権限が必要です。お気に入りのエディタで開き、次の行を追加してください:
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
(「Host *」行がすでに存在する場合は、新しい行を追加しないでください)
これができない場合でも、uberscanは動作します - ただし、-scantype:sshオプションは使用できなくなります。
2.1 はじめに
UBERSCANはUbuntu Linuxプラットフォーム上で設計されたため、他の環境での動作を保証することはできませんが、ほとんどのLinux PCでは問題なく動作するものと確信しています。WindowsやMacではそれほど確かではありませんが、ご自由にお使いください。
UBERSCANは、TCP/IPネットワーク上で脆弱なパスワードを使用しているデバイス(ルーターやIoTボックスを含む)や、スパマーに対して脆弱なSMTPメールサーバーをスキャンできます。主な機能は、パスワードで保護されたサーバーへのブルートフォース攻撃です(もちろん倫理的な目的に限ります!)
以下のサービス/脆弱性をスキャンできます:
UBERSCANはデフォルトのポートでプログラムされていますが、-port: オプションで上書きできます。
2.2 ワードリストモードについて
ワードリストモード(-passlist:textfile.txt および -userlist:textfile.txt)は、ワードリストをページングし、選択したIPに対してブルートフォースを試みます。
ワードリストモードはスキャンの種類によって異なります。IPブロック、IP範囲、またはIPリストを選択すると、UBERSCANはターゲットを順に処理し、各IPに対して同じユーザー名/パスワードを試し、その後ループバックしてリスト内の次のユーザー名および/またはパスワードを試します。これは、古い「3回間違えたらアウト」スタイルのパスワードセキュリティを克服するための基本的な試みです。リストが十分に長ければ、同じIPが再びループバックするまでに、新たな「試行」が得られます。
ランダムIP生成(-random_ip)モードは異なります。IPはランダムに選択され、検索は無期限に続行できるため、ループするIPのリストはなく、ワードリスト全体を一度にターゲットに投入する必要があります。
2.3 SSHスキャナー
SSHスキャナーのプログラミングには多くの苦労がありました。「~」、「>」、「#」のプロンプト、「Welcome to」メッセージ、多数の「bad password」タイプの出力を探すようにプログラムし、さらに3つ目のオプションとして、どちらも見つからない場合に「SSH-MAYBES.txt」ファイルを作成するようにしました。誤った陰性や陽性を生じさせるべきではありませんが、もし発生した場合は、生成されたファイル(適宜編集してください)を送っていただければ、問題を修正します。
2.4 イースターエッグ
プログラムのステータスメッセージやエラーメッセージの一部に、楽しい文化的参照がいくつか含まれています。これによりUBERSCANに個性が加わります。これが混乱を招いたり、あまりに馬鹿げていると思われる場合は、いつでもフィードバックを受け付けています。
2.5 サインオフと哀れなおねだり
確かに、UBERSCANは少し粗削りですが、そのままでいる必要はありません。ビットコインアドレスを添付していますので、十分な反応があれば、粗削りな部分を洗練させ、UBERSCAN 1.1、1.2、さらにはUBERSCAN 2.0をリリースするかもしれません。すべては皆さん次第です!ビットコインアドレスに送金してください:
1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme
オプションなしでも動作しますが、UBERSCANにはスーパーユーザー権限を与えることを強く推奨します。
UBERSCANはコマンドラインユーティリティであり、少なくとも1つのオプションが渡されることを想定しています。
すべてのオプション:
スキャンの種類:
-scantype:xxx スキャンタイプを設定します。「xxx」には SSH、FTP、POP3、SMTP、HTTP、Telnet、Banner のいずれかを指定します。-ftpanon および -smtpbug を参照してください。
-port:nn サービスごとのデフォルト以外のポートを設定します(「-scantype:banner」はデフォルトでポート1433(SQLポート)を検索します)。
-ftpanon 匿名FTPサーバーを検索します。-scantype や -user、-pass の代わりに使用します。
-smtpbug SMTPバグをテストします。-scantype や -user、-pass オプションの代わりに使用します。
-spamcheck 「-scantype:smtp」スキャンの下でのみ機能します。サーバーに接続するたびに、スパマーによる悪用に対して脆弱かどうかを確認します。デフォルトではオフです。
-novrfy SMTPスキャンを行う際に、UBERSCANがVRFYコマンドを発行するのを防ぎます。-spamcheck を含意します。
ユーザー名とパスワードのスキャン:
-user:xxx -pass:xxx 試行するユーザー名/パスワードを設定します。-random_ip オプションでインターネット上のランダムサーバーを探索する場合、これと -userblank / -passblank のみがUBERSCANが受け入れるユーザー名/パスワードオプションです。通常は両方を使用しますが、許可される場合は -userfile や -passfile(ワードリスト)オプション、および -userblank や -passblank オプションと交換可能です。なお、-scantype が SMTP に設定されている場合、または -ftpanon や -smtpbug オプションが設定されている場合、これらは機能しません。
-userblank -passblank -userblank は空のユーザー名を試行し、-passblank は空のパスワードを設定します。デフォルトでいずれかまたは両方が空白のままになっているHTTPチャレンジで役立つ場合があります。
-userfile:wordlist.txt -passfile:wordlist.txt 指定されたワードリスト内の各名前とパスワードを試行します。通常のスペース区切りの単語でのみ動作を保証します。アクセント記号、非ラテン文字、記号を含むワードリストの使用は自己責任です(ただし「@」記号は正常に動作するはずです)。
ロギング、リトライ、タイムアウト、ポートスキャン、一時停止:
-debug 失敗したログイン試行と、最も一般的なエラーを除くすべてのエラーをログに記録します。デバッグモードで記録されるエラーは、サーバー接続中の突然の切断などです。失敗したログイン試行とともに、予期しない応答の診断にも使用できます。また、-scantype:html モードで収集されたウェブページも保存します。
-logall -debug と同様ですが、より興味深いエラーをかき消してしまうような非常に一般的なエラーも記録します(「Banal error」とマークされます)。-debug を含意します(つまり、「-logall」を使用する場合は「-debug」オプションを入力する必要はありません)。
-csv HTMLスキャンモードで保存されたウェブページを除くすべての出力ファイルがCSV形式で保存されます。保存されるデータは、保存順に、プロセスID、スキャンタイプ、IPアドレス、ポート番号、ユーザー名、パスワード、および「minutesup」(UBERSCANが実行されている分数)です。
-whois パスワードが見つかったときにサーバーに対してWHOISクエリを実行し、結果をテキストファイル(whoisreport.txt)に記録します。デフォルトではオフです。
-max_retries:nn デフォルトは5です。プロキシや不安定なWi-Fi接続の背後で作業している哀れな被害者の方は、自由に15や20まで上げてください - 私もそうしました!普通の人は逆に下げたいかもしれません。一方、すべてのIPに対してすべてのパスワードを確実に試したい場合は、-max_retries:999 のように法外に高い値に設定することもできます(ただし推奨しません!)。
-timeout:nn nnは数字です。タイムアウト変数を秒単位で設定します。デフォルトは60です。プロキシの背後にいる場合は、かなり高い値(数百)に設定する必要があります(私はこのプログラムをプロキシの背後で書きました)。SSHスキャンを多用する場合は、SSH::Expectの動作方法により、タイムアウト期間が経過するまでデータを返さないため、低めの値が適しているかもしれません。LAN内でのみ使用し、インターネットに接続しない場合は、さらに低くしても構いません。個人的には60秒未満にはしません。
-portscan_timeout: これも秒数です。低く設定されていますが、完全を期したい場合には5秒や10秒に上げることもできます。選択はあなた次第です。
-noportscan ポートスキャンをオフにします。この機能は、proxychains や proxychains のようなプロキシプログラムの背後にいる場合、または有効なIPアドレス/ポートを確信しており、誤ってスキップするリスクを避けたい場合に便利です。特に接続環境が悪い場合に有効です。
-pause 入力を処理した後、UBERSCANを一時停止し、設定が正しいか確認できるようにします。デフォルトではオフです。
マルチタスク:
-forktimes:nn 並列処理を使用して同時に複数の接続を行います - -forktimesオプションは、-random_ip または -random_ipblock オプションが設定されている場合にのみ機能します。私は通常5から15の間の値を選びますが、使用可能な帯域幅によって異なります。このモードではクラッシュすることが知られています - 代替手段として、以下のようなコマンドを多数コピー&ペーストしたバッチファイルを設定し、bashで実行する方が簡単かもしれません:
perl uberscan.pl -user:admin -pass:password -random_ip -scantype:telnet &
IPオプション:
デフォルトでは、UBERSCANはipnumbers.txtというファイルからIPアドレスを取得します。これが不便な場合、コマンドラインオプションを使用して、独自のファイルからIPを選択したり、ランダムに選択したり、IP範囲やIPブロックから(大まかに)生成したりできます。個々のIPアドレスを選択してスキャンすることも可能です - 集中的な辞書攻撃に非常に適しています!
-ipfile:filename.txt ファイルfilename.txtからIPアドレスを取得します。任意のファイルを使用できます。指定されたファイルからIPアドレスに適合するものすべてを検索し、リストに追加してスキャンします。つまり、自身の出力を解析できるはずなので、-random_ipスキャンを-debugまたは-logallオプションで実行し、出力されるerrors.txtファイルをリネームして、面倒な編集をせずに新しいスキャンにフィードできます。
-ipblock:nnn.nnn.0.0/16 -ipblock:nnn.nnn.nnn.0/24 -ipblock:192.168.0/16 - 192.168.0.0 から 192.168.255.255 までを検索 -ipblock:192.168.1/24 - 192.168.1.0 から 192.168.1.255 までを検索 選択したIPブロック(/16または/24)をスキャンします(ipnumbers.txtの代わり)。 あまり賢くなく、0から数えるだけなので、192.168.1.0/16 と入力しても、192.168.0.0 から 192.168.255.255 までを検索します。心配しないでください、-iprange があります!
-iprange:nnn.nnn.nnn.nnn - nnn.nnn.nnn.nnn -iprange:192.168.0.0 - 192.168.0.3 -iprange:192.168.5.0 - 192.168.7.2 指定されたIP番号の範囲をスキャンします。ただし、最後の2オクテットのみ処理できます。
-ipsingle:nnn.nnn.nnn.nnn -ipsingle:192.168.0.1 単一のIPをスキャンします - -userfile: および -passfile: オプションと組み合わせると非常に強力です!
-random_ip ランダムなIP番号を生成するルーチンをループし、ワイルドなインターネットを巡航して何か面白いものを探せます。悪意のある目的に使用しないでください!
-random_ipblock:nnn -random_ipblock:nnn.nnn -random_ip と同様ですが、指定されたIPブロック内のみを検索します。末尾のゼロやスラッシュ表記はこのオプションでは使用しないでください!(-ipblock オプションとは異なります)例:
perl uberscan.pl -scantype:banner -random_ipblock:192.168 perl uberscan.pl -scantype:banner -random_ipblock:192
法的表現 / 定型文:
興奮する法的定型文の世界があなたに開かれました。単にUBERSCANを -gpl オプションで起動すれば、配布されているライセンスが目の前をスクロールしていくのを見られます。真面目な話、このプログラムの編集や再配布を考えている方は読んでください - それらは許可されていますが、私の名前を表示し続け、オリジナルプログラムを書いた功績として私をクレジットする必要があります。