
Global Protect ポータルの Palo Alto Network ファイアウォールで実行されているバージョンを特定する
最近、Palo Alto Networks によって多数の重大な脆弱性が発表されました。こちら: https://security.paloaltonetworks.com/?severity=CRITICAL&product=PAN-OS&sort=-date
これは、favicon と login.esp に対する curl スキャンから得られる etag を調べることで、ファイアウォールで使用されているバージョンを特定する PoC です。
参照:
CWE-78 の影響: https://cwe.mitre.org/data/definitions/78
The Register より: https://www.theregister.com/2020/07/09/palo_alto_fix/
Vulmon より https://vulmon.com/searchpage?q=paloaltonetworks

手順:
最新の Python3 を用意してください。
デモ:
curl -skI https://example.com/global-protect/login.esp
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Connection: keep-alive ETag: "5e4c6-2f3g-5b650798"
これを特定するには、いくつかの URL の etag を調べる必要があります。そうすることで、Etag の最後の 8 文字を取得できます。これは 16 進数なので、10 進数に変換し、エポックタイムから人間が読める時刻に変換すると、使用されているバージョンを解読し、Palo Alto Networks が最近公開したこの OS コマンドインジェクションに対して脆弱かどうかを確認できます。
デモの例では、最後の 8 文字に注目します:
5b650798
これを 16 進数から 10 進数に変換し、次に 10 進数のエポックタイムから人間が読める時刻に変換します。
次の結果が得られます: Sat Aug 4 04:55:36 EEST 2018
その後、発表されたバージョンに基づいて、それが脆弱かどうかを確認します。
これを実行すると、この処理が自動的に試行されます。
法的免責事項
事前の相互同意なしにターゲットをテストするためのこのツールの使用は違法です。適用されるすべての地方、州、連邦の法律を遵守する責任はエンドユーザーにあります。開発者は一切の責任を負わず、このプログラムによって引き起こされた誤用や損害についても責任を負いません。