One Gadget
Reading time: 4 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
基本情報
One Gadget は、system と "/bin/sh" を使用する代わりにシェルを取得することを可能にします。One Gadget は、libcライブラリ内でシェルを取得する方法 (execve("/bin/sh")
) を1つのアドレスを使用して見つけます。
しかし、通常はいくつかの制約があり、最も一般的で回避しやすいものは [rsp+0x30] == NULL
です。RSP 内の値を制御できるため、制約を回避するためにもう少しNULL値を送信するだけです。
ONE_GADGET = libc.address + 0x4526a
rop2 = base + p64(ONE_GADGET) + "\x00"*100
One Gadgetが示すアドレスには、libc
が読み込まれているベースアドレスを追加する必要があります。
tip
One Gadgetは、任意の書き込み2実行技術にとって大きな助けとなり、ROP チェーンを簡素化する可能性があります。なぜなら、1つのアドレスを呼び出すだけで済み(要件を満たす必要があります)。
ARM64
githubリポジトリは、ARM64がツールによってサポートされていると述べていますが、Kali 2023.3のlibcで実行すると、ガジェットが見つかりません。
Angry Gadget
githubリポジトリから: OneGadgetに触発されたこのツールはpythonで書かれており、angrを使用してexecve('/bin/sh', NULL, NULL)
を実行するガジェットの制約をテストします。
OneGadgetから試すガジェットがなくなった場合、Angry Gadgetは試すための複雑な制約を持つガジェットをさらに多く提供します!
pip install angry_gadget
angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。