macOS PID Reuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
macOSのXPCサービスがPIDに基づいて呼び出されたプロセスを確認し、監査トークンではない場合、PID再利用攻撃に対して脆弱です。この攻撃はレースコンディションに基づいており、エクスプロイトがXPCサービスにメッセージを送信し、その後に**posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)
を許可された**バイナリで実行します。
この関数は許可されたバイナリがPIDを所有するようにしますが、悪意のあるXPCメッセージはその直前に送信されます。したがって、XPCサービスがPIDを使用して送信者を認証し、posix_spawn
の実行後にそれを確認すると、それが認可されたプロセスからのものであると考えます。
shouldAcceptNewConnection
関数やそれを呼び出す関数がprocessIdentifier
を呼び出し、auditToken
を呼び出さない場合、それはプロセスPIDを確認している可能性が高いです。
例えば、この画像のように(参照から取得):
この例のエクスプロイトを確認してください(再び、参照から取得)して、エクスプロイトの2つの部分を見てください:
いくつかのフォークを生成するもの
各フォークはメッセージを送信した直後にXPCサービスにペイロードを送信します。
エクスプロイトが機能するためには、export`` ``
**OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
**を設定するか、エクスプロイト内に入れることが重要です:
最初のオプションは、NSTasks
を使用し、子プロセスを起動するための引数を利用してRCを悪用します。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)