CTF/CTF_Configuration

Pwnable 문제를 풀기위한 CTF configuration 총정리

JUNFUTURE 2022. 8. 19. 17:40

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