
このスクリプトは、TCPポート541で動作するFortiGate FGFMサービス(FortiGateとFortiManager間のプロトコル)におけるフォーマット文字列の脆弱性であるCVE-2024-23113を検出するように設計されています。この脆弱性は、攻撃者がフォーマット文字列を制御できるために発生し、リモートコード実行(RCE)やその他の意図しない動作につながる可能性があります。FGFMサービスは、構成管理のためにFortiGateデバイスとFortiManager間の通信を許可しますが、パッチが適用されていないバージョンでは入力の処理が不適切であり、フォーマット文字列エクスプロイトに対して脆弱です。
ネットワーク接続のセットアップ:
ssl.SSLContextオブジェクトを使用して接続を確立します。ペイロードの構築:
authip=%n)を使用して悪意のあるペイロードを作成します。%nディレクティブは、これまでに出力されたバイト数を変数に書き込むようにシステムに指示し、メモリ破損につながる可能性があります。検出ロジック:
_FORTIFY_SOURCE)がトリガーされたため、ターゲットが脆弱である可能性が高いことを示します。スクリプトを実行する:
python check_vulnerability.py
ホスト名/IPを入力する:
exitと入力します。出力:
ターゲットが脆弱な場合、スクリプトは次のように出力します:
[!] Warning: <hostname> is vulnerable!
ターゲットにパッチが適用されている場合、次のように出力します:
[+] <hostname> appears to be patched.