
Yasuo は脆弱なサードパーティ製 Web アプリケーションをスキャンする Ruby スクリプトです。
ネットワークセキュリティ評価(内部、外部、レッドチームの仕事など)を行っていると、よく知られた脆弱性を悪用してリモートサーバを侵害できる、脆弱なサードパーティ製 Web アプリケーションや Web フロントエンドに遭遇することがあります。よくあるお気に入りのアプリケーションとしては、Apache Tomcat 管理インターフェース、JBoss jmx-console、Hudson Jenkins などがあります。
Exploit-db を検索すると、多数の Web アプリケーション/フロントエンドに存在するリモートから悪用可能な脆弱性が 10,000 以上あり、攻撃者がバックエンドサーバを完全に侵害する可能性があります。これらの脆弱性は、RCE から悪意のあるファイルアップロード、SQL インジェクション、RFI/LFI など多岐にわたります。
Yasuo は、そのような脆弱なアプリケーションをネットワーク上で迅速にスキャンし、pwn 可能なターゲットを簡単に提示するために作られました。
以下の gem をインストールする必要があります。
bundle install --path vendor
bundler exec ./yasuo.rb -f [myfile]
Yasuo は以下のコマンドラインオプションを提供します。
-r :: Yasuo にポートスキャンを実行させたい場合、このスイッチを使用して IP アドレスまたは IP 範囲を指定します。
-l :: Yasuo にポートスキャンを実行させたい場合、このスイッチを使用して、改行区切りの IP アドレスが含まれる入力ファイルを指定します(nmap の -iL オプションと同様)。
-s :: カスタムシグネチャファイルを指定します。[./yasuo.rb -s mysignatures.yaml -f nmap.xml] [デフォルト - signatures.yaml]
-f :: Yasuo にポートスキャンを実行させたくなく、すでに nmap の XML 形式の出力がある場合、このスイッチを使用して nmap 出力を読み込みます。
-u :: 以前の Yasuo の実行から保存された、改行区切りの URL ファイルを指定します。詳細は以下を参照してください。
-n :: ポートスキャン実行時にホストへの ping をスキップするよう Yasuo に指示します。標準の nmap オプションです。
-p :: ポート番号または範囲を指定するためにこのスイッチを使用します。
-A :: 65535 すべてのポートをスキャンするためにこのスイッチを使用します。標準の nmap オプションです。
-b [all/form/basic] :: 発見されたアプリケーションが認証を実装している場合、このスイッチを使用して認証をブルートフォースします。"all" はフォーム認証と HTTP 基本認証の両方をブルートフォースします。"form" はフォームベース認証のみをブルートフォースします。"basic" は HTTP 基本認証のみをブルートフォースします。
-t :: 最大スレッド数を指定します。
-h :: まあ、推測してください。
Yasuo が実行されると、脆弱なアプリケーションの列挙を開始する前にいくつかのステップを実行します。IP アドレスまたは範囲を指定すると、指定されたターゲットに対してポートスキャンを実行します。Yasuo に nmap の XML 出力ファイルを指定すると、そのファイルを解析し、Web ポートが開いているホストを列挙します。次に、列挙された各ホスト:ポートに対して、偽の(存在しない)ファイルとディレクトリへのリクエストを送信します。誤検知を減らすため、偽のファイルとディレクトリのリクエストに対して HTTP 200 OK で応答したすべての ip:port を破棄します。このプロセス全体の最後に、いわゆる「良い URL」のリストが得られます。これらの良い URL を使用して、脆弱なアプリケーションを列挙します。
何らかの理由で同じターゲットセットに対して Yasuo を再実行する必要がある場合、以前のバージョンの Yasuo はこのプロセス全体を再度実行します。それはまったく効率的ではありません。私はほとんどバカで学習が遅いですが、常に進化しています。とにかく、同じターゲットに対して Yasuo を再実行する良い理由の 1 つは、異なる(またはカスタムの)シグネチャファイルを使用することです。
この最新バージョンの Yasuo は、実行するフォルダに保存されたファイル savedURLstateXXXXX.out を自動的に保存します。このファイルにはすべての「良い URL」が含まれます。同じターゲットで Yasuo を再実行する予定がある場合は、-f または -r オプションなしでこのファイルを Yasuo に読み込ませてください。
例: ruby yasuo.rb -s my_custom_signatures.yaml -u savedURLstateXXXXX.out
Yasuo はこのファイルを解析し、リストされた「良い URL」に対して脆弱なアプリケーションの列挙を開始します。ジャジャーン。
./yasuo -r 127.0.0.1 -p 80,8080,443,8443 -b form
上記のコマンドは、127.0.0.1 に対してポート 80、8080、443、8443 でポートスキャンを実行し、フォームベース認証を実装するすべてのアプリケーションに対してログインブルートフォースを実行します。
./yasuo -l /project/hosts -p 80,8080,443,8443
上記のコマンドは、ファイル /project/hosts 内のホストに対してポート 80、8080、443、8443 でポートスキャンを実行し、発見されたアプリケーションに対してブルートフォースは実行しません。
./yasuo -f my_nmap_output.xml -b all
上記のコマンドは、nmap 出力ファイル "my_nmap_output.xml" を解析し、フォームベース認証と HTTP 基本認証を実装するすべてのアプリケーションに対してログインブルートフォースを実行します。
