
CTF 챌린지를 위한 자동화된 ret2win 익스플로잇 도구입니다. 스택 오프셋을 찾고, 페이로드를 생성하며, 원격 공격을 지원하고, x86 바이너리 디버깅을 위해 GDB를 연결합니다.
____ ________ __________ __
/ __ \_ ______ / ____/ /_/ __/_ __/___ ____ / /
/ /_/ / | /| / / __ \/ / / __/ /_ / / / __ \/ __ \/ /
/ ____/| |/ |/ / / / / /___/ /_/ __/ / / / /_/ / /_/ / /
/_/ |__/|__/_/ /_/\____/\__/_/ /_/ \____/\____/_/
By: DiegoAltF4 and Dbd4
로컬 및 원격(IP 및 포트 지정) 모두에서 사용할 수 있습니다. 스택에 저장된 명령어 포인터(Instruction Pointer)로의 오프셋을 자동으로 찾습니다.
또한 셸을 반환하도록 구성할 수 있습니다. 기본적으로 연결을 통해 수신된 데이터(가능한 플래그)를 출력합니다.
또한 스택에서 명령어 포인터로의 오프셋을 표시할 수 있으며, x86 아키텍처(32비트 및 64비트)를 모두 지원하고 GDB로 익스플로잇을 디버깅하는 데 사용할 수 있습니다.
| 매개변수 | 정보 |
|---|---|
| -f | 익스플로잇할 바이너리를 지정합니다(필수 매개변수). |
| -t | 점프할 대상 함수를 지정합니다(필수 매개변수). |
| -v | 상세 정보 모드를 지정합니다. |
| -vv | 최대 상세 수준, 디버그 모드를 지정합니다. |
| -g | 디버깅 목적으로 GDB를 연결할 수 있습니다. |
| --offset | 명령어 포인터로의 오프셋을 출력합니다. |
| --shell | 익스플로잇 후 대화형 세션을 유지할 수 있습니다. |
| --remote | 원격 서버에서 익스플로잇할 수 있습니다. |
| --before | 페이로드 전에 파일의 내용을 추가할 수 있습니다. |
| --after | 페이로드 후에 파일의 내용을 추가할 수 있습니다. |
./PwnCtfTool.py -f vuln.bin -t flag_func
이 섹션에서는 예제를 통해 도구의 다양한 사용법을 설명합니다. 취약한 바이너리 목록을 업로드했으며, 도구에 새로운 옵션을 추가할 때마다 이 목록을 업데이트할 것입니다. 정보를 쉽게 찾을 수 있도록 바이너리를 익스플로잇할 수 있는 최종 명령어에 사용된 매개변수를 표시합니다. 또한 💣 이모지를 사용하여 챌린지의 난이도를 분류합니다. 폭탄 하나는 매우 쉬움을 의미하고, 폭탄 다섯 개는 난이도가 매우 높음을 나타냅니다. 각 챌린지에 대해 솔루션에 도달하는 방법을 더 자세히 설명하는 작은 writeup을 포함했습니다.
-f-t--shell--offset매개변수 사용
자세한 설명은 writeup을 참조하세요:
최종 명령어:
python3 ../../PwnCtfTool.py -f ./vuln1 -t win --shell --offset
-f-t--before--shell매개변수 사용
자세한 설명은 writeup을 참조하세요:
최종 명령어:
python3 ../../PwnCtfTool.py --before before2.txt -f vuln2 -t rce --shell
git clone https://github.com/Diego-AltF4/PwnCtfTool.git
cd ./PwnCtfTool
pip3 install -r requirements.txt
chmod +x PwnCtfTool.py
./PwnCtfTool.py
만든 사람: DiegoAltF4와 Dbd4