본문 바로가기

System Security/Technology

CTF Tools

checksec.sh

실행 파일에서 제공하는 보안 매커니즘을 알기 쉬운 형태로 표시해주는 쉘 스크립트로 메모리 보호 기법인 PIE, RELRO, Canaries, ASLR, NX bit 등을 확인하는 데 사용되는 툴

 

https://github.com/slimm609/checksec.sh

 

GitHub - slimm609/checksec.sh: Checksec.sh

Checksec.sh. Contribute to slimm609/checksec.sh development by creating an account on GitHub.

github.com

 

peda

peda는 gdb 디버깅 툴의 기능을 대폭 강화해주는 확장 스크립트로서 디버그 정보 표시 강화, 간이 ROP Gadget 검색, 메모리 검색 강화 등 pwn 문제를 풀 때 편리한 기능을 제공해주는 툴

 

https://github.com/longld/peda

 

GitHub - longld/peda: PEDA - Python Exploit Development Assistance for GDB

PEDA - Python Exploit Development Assistance for GDB - GitHub - longld/peda: PEDA - Python Exploit Development Assistance for GDB

github.com

 

rp++ 

실행 파일에 존재하는 ROP Gadget을 표시해주는 툴입니다. 역어셈블의 결과를 보고 찾는 것과 달리 명령의 일부분을 잘라낸 가젯도 표시하는 기능 제공 

 

https://github.com/0vercl0k/rp

 

GitHub - 0vercl0k/rp: rp++ is a fast C++ ROP gadget finder for PE/ELF/Mach-O x86/x64/ARM binaries.

rp++ is a fast C++ ROP gadget finder for PE/ELF/Mach-O x86/x64/ARM binaries. - GitHub - 0vercl0k/rp: rp++ is a fast C++ ROP gadget finder for PE/ELF/Mach-O x86/x64/ARM binaries.

github.com

 

socat 

pwn 문제의 대부분은 지정된 호스트와 포트를 연결하여 풀어야 하는 '원격 익스플로잇' 방식으로 socat을 이용하면 손쉽게 재현할 수 있도록 도와주는 도구

 

http://www.dest-unreach.org/socat/

 

socat

dest-unreach / socat socat - Multipurpose relay Abstract what: "netcat++" (extended design, new implementation) OS: AIX, BSD, HP-UX, Linux, Solaris e.a. (UNIX) lic: GPL2 inst: tar x...; ./configure; make; make install doc: README; socat.html, socat.1; xio.

www.dest-unreach.org

 

pwntools 

간단히 원격 서버에 연결할 수 있는 기능에서부터 ROP를 구축할 수 있는 기능까지 매우 많은 기능을 제공하는 CTF 문제 풀이를 위한 파이썬 라이브러리

https://github.com/Gallopsled/pwntools

 

GitHub - Gallopsled/pwntools: CTF framework and exploit development library

CTF framework and exploit development library. Contribute to Gallopsled/pwntools development by creating an account on GitHub.

github.com

 

CTF Tools 환경 구축 명령 (Ubuntu 14.04 LTS x86_64)

sudo apt-get install build-essential gcc-multilib git gdb
git clone https://github.com/zachriggle/peda.git ~/peda
echo "source ~/peda/peda.py"  >> ~/.gdbinit 
export PATH=$HOME/bin:$PATH
mkdir $HOME/bin
wget https://github.com/downloads/0vercl0k/rp/rp-lin-x64 -0 $HOME/bin/rp
wget https://github.com/slimm609/checksec.sh/archive/1.6.tar.gz
tar zxvf 1.6.tar.gz
cp checksec.sh-1.6/checksec $HOME/bin/checksec.sh

 

참고 문헌

[1] 양현 옮김, CTF 정보보안 콘테스트 챌린지북, 위키북스(2016), p101-103.

'System Security > Technology' 카테고리의 다른 글

메모리 보호 기법  (0) 2022.02.13
Use after free  (0) 2022.01.23
GOT Overwrite  (0) 2022.01.22
NOP Sled  (0) 2022.01.19
스택 프레임(Stack Frame)이란?  (0) 2022.01.18