[dreamhack] Stage3 - Tool Installation

mj·2023년 3월 25일
0
post-thumbnail

Tool: gdb

1. 서론

디버거란

컴퓨터 과학에서는 실수로 발생한 프로그램의 결함을 버그 라고 한다.

이러한 버그 들을 찾아서 패치하기 위해 디버거(Debugger) 라는 도구가 개발되었다.

디버거는 문자 그대로 버그를 없애기 위해 사용하는 도구이다.
디버거를 통해 버그 발견이 쉬워짐으로써, 개발자들은 버그를 고치기가 쉬워졌고, 해커들은 취약점을 발견하기 쉬워졌다.

gdb & pwndbg

gdb

gdb(GNU debugger) 는 리눅스의 대표적인 디버거이다.
오픈 소스로 개발되어 무료로 설치할 수 있으며, 역사가 오래된만큼 다양한 플러그인들이 개발되어 있다.

대표적인 플로그인은 다음과 같다.

Tool: pwntools

1. 서론

pwntools 의 등장 배경

간단한 프로그램에 대해서는 명령줄 환경에서 한줄로 구성된 파이썬 페이로드 방식으로 익스플로잇을 수행할 수 있다.

그러나 익스플로잇이 조금만 복잡해져도 위와 같은 한줄 익스플로잇을 작성할 수 없고, 프로셋와 반복적으로 데이터를 주고받아야 할 수 있다.

기존에는 이런 문제를 해결하기 위해 펄, 파이썬, C 언어 등을 통해 socket 모듈을 사용하여 익스플로잇 스크립트를 작성했다.

#!/usr/bin/env python2
import socket
# Remote host and port
RHOST = "127.0.0.1"
RPORT = 31337
# Make TCP connection
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((RHOST, RPORT))
# Build payload
payload = ""
payload += "Socket script"
payload += "\n"
# Send payload
s.send(payload)
# Print received data
data = s.recv(1024)
print "Received: {0}".format(data)

파이썬으로 여러 익스플로잇 스크립트를 작성하다보면 반복적을 사용하는 함수들이 있는데 이러한 함수들을 집대성하여 모듈로 제작한 것이 pwntools 이다.

pwntools 덕분에 익스플로잇 제작이 쉬워졌고, 시스템 해킹 공부를 시작하는 시점에서, pwntools 으 활용 능력을 필요라고 볼 수 있다.

pwntools 설치

$ apt-get update
$ 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
profile
사는게 쉽지가 않네요

0개의 댓글