
EXTRABACONエクスプロイトの改良のための公開リポジトリ
Equation Group(NSA)によって作成され、Shadow BrokersによってリークされたCisco ASA向けリモートコード実行エクスプロイトEXTRABACONの改良版公開リポジトリです。
改良されたシェルコード、LINAオフセットファインダースクリプト、Metasploitモジュール、およびextrabacon-2.0が含まれています。
近日中に、すべてのバージョンを実機でテストした後、8.xおよび9.xのほとんどのバージョン向けパッチを追加する予定です。
これは改良されたシェルコードを使用しており、Equation Group版よりもステージが少ないため、信頼性が向上しています。これにより、SNMPペイロードパケットが約150バイト削減されています。また、リーク版は8.xのみをサポートしていましたが、こちらは9.xでも動作します。
Linaオフセットファインダースクリプトを使用すれば、脆弱性のあるすべてのx86バージョンをサポートするのは簡単なはずです。現在その作業を進めています。注:x64(9.6以降?)ではDEPとASLRが導入されています。そのため、オフセットファインダーと汎用ペイロードは機能しません。ただし、これらのバージョンに簡単にDoS攻撃を仕掛けることは可能なはずです。
特定のバージョンをサポートしてほしい場合は、Issueを開いてください。優先的に対応します。
8.x
****** ********9.x
******** オリジナルのShadow Brokersリークには含まれていない新バージョンのサポート
** 現時点ではSNMP文字列から通常版とNPE版を区別できません。NPEオフセットはコメントアウトしています。NPEは非常に稀なバージョン(暗号化が脆弱な地域への輸出向け)ですが、将来的にはこれらのバージョンも組み込みたいと考えています。おそらくboolオプションとして追加する予定です。
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
最初のプルリクエストはMetasploit masterブランチにマージされました。今後もさらにオフセットを提供していく予定で、将来のプルリクエストのレイテンシによっては、こちらでより早く利用可能になる可能性があります。
ASAバージョンをテストできる方は、このプロジェクトをフォークしてペイロードを生成することを検討してください。大量のペイロードを一括生成することも可能ですが、すべてのペイロードが正常に終了することを確認するためにテストしたいと考えています。
lina-offsets.pyを使用してファイルを生成した後、新しいペイロードをextrabacon-2.0/improved/フォルダに追加できます。モジュールはshellcode_verstring.pyという名前で、verstringはASAが返すバージョン文字列で、ピリオド.をアンダースコア_に置き換えたものです。
また、ExtraBacon 2.0コードから不要なPythonを削除するプルリクエストも歓迎します。
python2 ./lina-offsets.py asa_lina_XXX.elf
エクスプロイトを他のASAバージョンに移植するために必要なオフセットを自動生成します。
現時点では、特定のバージョンのオフセットを生成するよりも、ASAファームウェアのバージョンをロードしてテストするほうが時間がかかっています。
スクリプトが計算しない唯一の値はFIX_EBPで、通常は0x48(72)または0x58(88)です。8.4(1)以降は0x48を使用しているようです。
Linaは次のように抽出できます。
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX