CTF/TOOL
-
Oneshot gadgetCTF/TOOL 2021. 1. 8. 20:24
PRELIMINARY 서론 oneshot gadget(magic gadget)이란 해당 gadget 하나만을 이용하여 shell을 획득할 수 있는 gadget이다. [1] 대표적으로는 execve("/bin/sh") 등이 이에 해당하는데, 신기하게도 rdi에 "/bin/sh"의 offset 주소를 전달하고 execve 함수를 실행하는 코드가 libc 내부에 존재한다. 위와 같이 "/bin/sh"의 주소를 레지스터에 전달하는 부분을 검색해보자. 만약 e6e73 부분의 코드를 실행한다면 함수의 처음 세 인자를 저장하는 rdi, rsi, rdx에 순서대로 값이 전달된 후 execve 함수가 실행될 것이다. 추가로, 위 코드를 통해 쉘을 취득하려면 r10과 r12가 NULL이어야 한다. 그렇다면 이러한 코드의 ..
-
pwngdbCTF/TOOL 2021. 1. 8. 05:23
PRELIMINARY 서론 pwngdb는 pwn을 위한 GDB(GNU Debugger)이다. 명령어의 실행마다 레지스터, 스택, 실행 중인 코드의 정보 등을 색깔과 함께 보여주며 exploit에 유용한 기능을 다수 포함하고 있다. 다음 명령어를 터미널에 입력해 pwngdb를 설치하자. $ cd ~ $ git clone https://github.com/longld/peda.git ~/peda $ git clone https://github.com/scwuaptx/Pwngdb.git $ cp ~/Pwngdb/.gdbinit ~/ gdb를 사용하기 위해서는 터미널에 gdb를 입력해주면 된다. 다음은 pwngdb의 주요 기능과 사용법에 대해 알아보자. Control 제어 gdb [바이너리]를 통해 원하는 바이..
-
pwntoolsCTF/TOOL 2021. 1. 8. 04:01
PRELIMINARY 서론 pwntools는 CTF를 위해 최적화된 기능들을 제공하는 python 라이브러리이다. 주어진 바이너리에 대해 분석하고, 호스트와 상호작용하는 등 다양한 작업을 수행할 수 있다. 다음 명령어를 터미널에 입력해 pwntools를 설치하자. $ sudo apt-get update $ sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential $ python3 -m pip install --upgrade pip $ python3 -m pip install --upgrade pwntools pwntools를 python 코드에서 사용하기 위해서는 pwn을 import 해주면 ..
-
WSL2CTF/TOOL 2021. 1. 8. 02:47
Windows 10에 WSL(Linux용 Windows 하위 시스템)을 설치하는 방법에 대해 알아보자. 포스팅을 작성하면서 참고한 글은 다음과 같다. [1][2] 1. Windows Terminal Microsoft Store에서 Windows Terminal을 설치한 후 관리자 권한으로 실행한다. 2. 기능 활성화 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 위 명령어를 Windows Terminal에서 실행한 후 컴퓨터를 재시..