1: イントロ
先日、VMが色々と詰まった外づけHDDの中身が失われてしまい
粛々とリインストールしているときに
折角の機会だからKaliもネイティブじゃなくてこっちに入れてしまおうと思いついた
こっちでもpwnができるように真っ白なkaliをセットアップしていたのだが
一々手作業でインストールするのが面倒だったため
インストールするものとスクリプトを自分用覚書程度にまとめた
これで次に真っ白なPCでpwnをやりたいというときも簡単にできそうだ。。。
全部まとめたスクリプトがこちら
なお自分の環境は
2: gdb
- sudo apt install gdb
3:pwndbg
- git clone https://github.com/pwndbg/pwndbg \0
- && cd pwndbg
- && ./setup.sh
4:checksec
- sudo apt install checksec
但し、このままだと表示が若干ややこしいため最初に示したリポジトリのスクリプトを使ったほうがいいかも
これを使うと以下のように表示される
これまでより表示が増えてなんか得した気分になるね
5: pwntools
- sudo apt install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential \0
- && python3 -m pip install --upgrade pip \0
- && sudo python3 -m pip install --upgrade git+https://github.com/Gallopsled/pwntools.git@dev3 \0
- && sudo pip install --upgrade pwntools
6:rp
- sudo wget https://github.com/downloads/0vercl0k/rp/rp-lin-x64 -O /bin/rp \0
- && sudo chmod +x /bin/rp
7: exploitのテンプレ
- #!/usr/bin/env python
- #encoding: utf-8;
- from pwn import *
- import sys
- FILENAME = ""
- rhp2 = {'host':"localhost",'port':12300}
- context(os='linux',arch='')
- binf = ELF(FILENAME)
- def exploit(conn):
- pass
- if len(sys.argv)>1:
- if sys.argv[1][0]=="d":
- cmd = """
- set follow-fork-mode parent
- """
- conn = gdb.debug(FILENAME,cmd)
- elif sys.argv[1][0]=="r":
- conn = remote(rhp1["host"],rhp1["port"])
- else:
- conn = remote(rhp2['host'],rhp2['port'])
- exploit(conn)
- conn.interactive()
8: socatのテンプレ
- socat -v tcp-listen:12300,fork,reuseaddr exec:.
9: Ghidra
続く