CTF에 출전하여 Pwnable 문제를 풀기위해서 반드시 필요한 도구들이 있다.
모든 도구들의 세팅방법들을 차근차근 정리해보려고 한다.
1. Pwntools & Pwndbg
pwntools -> 익스플로잇 코드 개발을 위한 파이썬 라이브러리
pwndbg -> 리눅스 바이너리 분석을 위한 디버거
위 두개의 프로그램이 없으면 문제를 풀 수 없다.
시험을 보는데 펜이 없는 셈이다.
반드시 필요한 프로그램이므로 꼭 설치해주자.
아래 링크의 setup.sh을 통해 설치할 수 있다.
https://github.com/junfuture1103/pwnable_conf/tree/main/Basic_configuration
GitHub - junfuture1103/pwnable_conf: Configuration for Pwnable
Configuration for Pwnable. Contribute to junfuture1103/pwnable_conf development by creating an account on GitHub.
github.com
2. ROPGadget & OneGadget
바이너리나 동적 라이브러리(libc)에 있는 코드 조각들 즉, 가젯을 찾아주는 프로그램이다.
ROP가 필요한 상황에서 필수적인 프로그램이므로 이 또한 반드시 설치해주도록한다.
자동설치
https://github.com/junfuture1103/pwnable_conf/tree/main/Basic_configuration
의 ropgadget.sh / one_gadget.sh 이용
수동설치
ROPgadget
https://juntheworld.tistory.com/86?category=983750
ROPgadget 사용법 (ROP 가젯 찾는법, 리턴가젯 찾아주는 프로그램)
설치 sudo pip3 install ropgadget 사용법 리턴 가젯 찾기 (--re) ROPgadget --binary ./바이너리 명 --re "가젯" ROPgadget --binary ./rop --re "pop rdi"
juntheworld.tistory.com
Onegadget
https://juntheworld.tistory.com/82?category=983750
one_gadget 설치 및 사용법
one_gaget은 실행하면 쉘이 획득되는 코드뭉치이다. 아래도구는 libc에서 쉽게 one_gadget 위치를 찾을 수 있는 도구이며 HITCON, 217 CTF팀 david942j가 만들었다. https://github.com/david942j/one_gadget GitH..
juntheworld.tistory.com
'CTF > CTF_Configuration' 카테고리의 다른 글
ModuleNotFoundError: No module named 'elftools.common.py3compat' 오류해결 (0) | 2023.09.13 |
---|---|
CTF 문제 풀기 시작할때 해야하는 것들 정리 (0) | 2022.03.19 |
CTF pwnable 환경구성을 위한 쉘코드 (pwnable_conf.sh) (0) | 2022.02.27 |
Dockerfile 주어졌을때 CTF Configuration 정리 & ARM Cross Compile 및 ARM 바이너리 gdb 디버깅 하는법 (0) | 2022.02.26 |
바이너리에 ld와 libc 새로 링킹하기 (D_PRELOAD=./libc.so.6 segfault 뜰때 해결하기) (0) | 2022.02.19 |