보안 스터디/시스템 해킹

[드림핵 /시스템 해킹] pwndbg 설치하기 (Tools : gdb)

성밍쟁 2023. 12. 28. 22:22
728x90
반응형

프롤로그

저번 글에서 WSL을 이용하여 VS코드에서 pwndbg를 사용하려고 하였다. 그러나 계속 gdb에서 메모리에 접근할 수 없다고 나오면서 원인을 파악할 수 없었다. 

이를 해결하는 법을 위에 3대의 컴퓨터에서 다시 설치하고 우분투 재설치만 5번을 해봤는데 되지 않아서 가상머신을 이용하는 방식을 이용하기로 하였다. gdb에 대한 뜻은 아래 글에서 적었지만 별 내용은 없을 것이다. 

https://taesan-smj.tistory.com/11

 

[드림핵] Tools : gdb (시스템 해킹)

gdb란? gdb(GNU debugger) : 리눅스의 대표적인 디버거로, 오픈소스로 개발되어 있어서 무료 설치 가능하다. 오래되었기에 다양한 플러그인이 개발되어있다. gdb 설치하기 1. VS코드실행 2. TERMINAL을 우분

taesan-smj.tistory.com

 

그래서 이번엔 VirtualBox에서 우분투를 설치하여 pwndbg를 이용하기까지 정상작동 하게 만드는 법을 작성하겠다.

 

 

1. 가상머신과 우분투 22.04 LTS 준비하기

위 그림과 같이 가상머신에서 우분투를 설정한다.

 

설치가 완료된 후에, 메인 화면을 준비한다.

 

 

2. Terminal 실행하기

왼쪽 아래버튼을 클릭하고, Terminal 버튼을 클릭한다.

 

다른 앱들은 잘 열리는데 아무리 기다려도 Terminal이 실행이 되지 않는 상황이 발생하는데,  이를 해결하기 위해서는 다음과 같이 따라해보자.

Settings 에 들어가서

Region & Language로 들어가고, 그곳에서 Select Language 에서 English -> Canada 또는 English -> South Korea로 들어간다. [기존에는 United States로 되어 있을 것이다]

그냥 영어 공부 할 겸 Canada로 선택해주고

Restart 버튼으로 재시작을 한다.

재시작하면 이제 터미널이 열린 것을 확인할 수 있다.

 

 

3. 권한 설정하기

sudo apt-get update 를 할려고 하였는데, 권한이 없다고 한다. 여기서도 되게 힘들었으나... 다음과 같이 하면 해결할 수 있다.

 

$ su

명령어를 입력하고 비밀번호를 입력하여 root 계정으로 들어가자.

 

$ vi /etc/sudoers  

명령어를 입력하면 

다음과 같은 창이 나온다. 이곳에서 User privilege specification부분에 다음과 같이 입력하자

vboxuser ALL = (ALL:ALL) ALL 부분을 입력하였는데, vboxuser는 사용자 계정을 입력하는 것이다.

 

vi편집기를 종료할 때는 ESC를 누른 후, :wq!를 입력하면 vi편집기가 종료된다.

vi편집기 이용할려면 사용법을 좀 알아야하는데, 처음이라면....

아무것도 입력이 안 된다면 i를 입력하면 입력이 될 것이다....라는 것만 알아두자.

그래서 다 입력하고 ESC->:wq! 를 입력하여 종료하자.

 

아까와 같이 sudo ls를 입력했을 때 정상적으로 실행되는 것을 확인할 수 있다.

 

 

4. pwndbg 설치하기

바탕화면에서 관리하기 편하게 다음과 같이

$ cd Desktop

를 입력하여 바탕화면으로 이동하고

$ mkdir dreamhack

$ mkdir github

를 입력하면 바탕화면에 다음과 같은 디렉터리(폴더)가 생성된 것을 확인하였다. 이제 github에다가 pwndbg를 설치할 것이다.

$cd github로 이동을 하고,

$sudo apt install git

을 입력하여  git을 설치한다. 이후

$ git clone https://github.com/pwndbg/pwndbg.git

을 입력하여 다음과 같이 설치한다. 그 후,

 

$ sudo apt-get install gdb-multiarch

$ cd pwndbg

$  sudo ./setup.sh (사진에서는 ./setup.sh로 되어있지만...sudo ./setup.sh로 입력하자...)

위와 같이 명령어를 입력한다. 그럼 좀 오래 기다리다보면 알아서 설치가 된다.

 

그 다음 다음과 같이 vi 편집기로 들어가서

source /path/to/pwndbg/gdbinit.py   [/path/to/pwndbg/ 는 실제 저게 위치한 파일 경로]를 입력하고 저장 후 종료(wq!)를 입력한다.

 

이제 잘 되는지 테스트 해보자.

gdb를 입력했을 때 위와 같이 입력한다면 성공이다.

 

이제 실제 파일을 바탕으로 저번 글에서 실습하지 못한 내용을 테스트 해보자.

 

 

5. 파일 생성 

새 터미널을 열고

$ cd Desktop

$ cd dreamhack

$ vi debugee.c

를 입력하여 debugee.c 를 입력하자.

그 후 실습 코드와 같이 입력한 후 :wq!로 저장하자.

아참, 어떤 실습이냐면 https://learn.dreamhack.io/55#3

 

로그인 | Dreamhack

 

dreamhack.io

이 글이다.

그 후, 

$ gcc -o debugee debugee.c -no-pie

$ gdb debugee 

를 입력하여 실행파일을 생성 후 디버깅 해보자.

일단 저번에 했던 곳 까지는 실행이 잘 됐다.

 

드디어...entry를 입력하면 저번에 하다 실패했던 거 성공할 수 있다.

성공하였다.

 

행복하다.

 

 

에필로그

이제 다음글 부터 드림핵 시스템해킹 마저 공부하면서 글 작성하도록 하겠다. 

728x90
반응형