from pwn import *
1. pwnlib.context
- pwnlib.context.context
- pwntools 설정에 편리
- context.log_level = ‘debug’ : exploit에 어려움이 있을 때 세팅
- contextType.local() : 코드의 하위 섹션을 로깅하지 않도록 설정하는 범위 인식
2. remote, listen, ssh, process
- pwnlib.tubes
- CTF 문제에서 가장 일반적으로 쓰이고 편리한 기능
- recvline, recvuntil, clean 도 같이 쓰임
- .interactive() : 바로 interact 가능
3. p32 와 u32
- pwnlib.util.packing
- struct.pack에서 ‘>’가 signed 또는 unsigned를 의미하는 것을 기억하기 않아도 되고, [0] 인덱스를 끝에 쓰지 않아도 된다.
- signed 와 endian 설정 가능 (context 로도 한 번에 설정 가능)
- 대부분의 일반적인 크기는 미리 정의되어있음 (u8, u64, 등)
pwnlib.util.packing.pack() : 이 함수로 크기 직접 설정 가능
4. log
- pwnlib.log
5. cyclic 과 cyclic_func
- pwnlib.util.cyclic
- N (주로 4) 바이트만 주어진 하위 문자열의 offset을 찾아주는 문자열 생성 유틸리티
Buffer overflow에 매우 유용하다. 0x41414141을 살펴보는 것 대신, 0x61616171이 buffer에서 64 offset에서 EIP를 제어할 수 있다는 것을 의미하는 것을 알 수 있다.
6. asm 과 disasm
- pwnlib.asm
- 어셈블리어를 바이트나, 반대로(little endian식으로?) 빠르게 바꿀 수 있다.
- binutils를 설치해서 architecture을 지원
- ppa:pwntools/binutils. 에 있는 20 종류 넘는 architecture는 pre-built binary를 가진다.
7. shellcraft
- pwnlib.shellcraft
- shellcode 라이브러리
- asm(shellcraft.sh()) : shell을 준다!
8. ELF
- pwnlib.elf
- ELF 바이너리 조작 툴
- symbol 보기, virtual memory to file offset helpers, 디스크에 바이너리를 변경하고 저장하는 기능 포함
9. DynELF
- pwnlib.dynelf
- 로드한 모듈로 포인터로만 주어진 함수를 동적으로 resolve하고, 어느 주소에서든 데이터를 가져올 수 있는 함수
10. ROP
- pwnlib.rop
- DSL을 사용해 자동으로 ROP 체인 생성
11. gdb.debug 와 gdb.attach
- pwnlib.gdb
- GDB 아래 바이너리를 설치해서 새 터미널을 만든다.
- 자동으로 breakpoint를 설정하고 exploit에 반복을 만든다.
- PID, pwnlib.tubes 객체 또는 연결된 socket이 주어졌을 때 실행 중인 프로세스를 attach 한다.
12. args
- python foo.py REMOTE=1 과 args[‘REMOTE’] == ‘1’ 을 통해 실행됨
- 로깅 제어 가능 (NOTERM, SILENT, DEBUG)
13. randoms, rol, ror, xor, bits
- pwnlib.util.fiddling
- 0xffffffff 또느 ord 나 chr호출이 필요할 때의 랜덤 데이터를 생성할 때 또는 수학 연산을 단순화할 때 유용
14. net
-pwnlib.util.net
- 프로세스에 대한 질의 절차
15. pause
- getch 의 새로운 버전(?)
16. safeeval
- pwnlib.util.safeeval
- 파이썬 코드를 안전하게 평가하는 함수
17.
hexdump
read 와 write
enhex 와 unhex
more
group
align 와 align_down
urlencode 와 urldecode
which
wget
18. 아래의 모듈은 사용하려면 수동으로 import 해야한다.
os
sys
time
requests
re
random
VMware Workstation Pro에 Ubuntu 18.04 LTS 설치 (0) | 2020.02.04 |
---|---|
Pwntools 설치 (feat. lrzsz) (0) | 2019.09.22 |
Ubuntu SSH 연결을 위한 설정 (xshell) (0) | 2019.09.22 |
IDA Pro 7.0 사용법 (3) | 2019.07.28 |
[Pwntools] 시작하기 (0) | 2019.07.26 |