상세 컨텐츠

본문 제목

[Pwntools] 중요하고 자주 쓰이는 모듈, 함수 정리

TOOLS/TIPS

by koharin 2019. 7. 26. 22:50

본문

728x90
반응형

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을 살펴보는 것 대신, 0x61616171buffer에서 64 offset에서 EIP를 제어할 수 있다는 것을 의미하는 것을 알 수 있다.

 

6. asm disasm

- pwnlib.asm

- 어셈블리어를 바이트나, 반대로(little endian식으로?) 빠르게 바꿀 수 있다.

- binutils를 설치해서 architecture을 지원

- ppa:pwntools/binutils. 에 있는 20 종류 넘는 architecturepre-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

728x90
반응형

'TOOLS > TIPS' 카테고리의 다른 글

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

관련글 더보기