프롤로그
저번 글에서 WSL을 이용하여 VS코드에서 pwndbg를 사용하려고 하였다. 그러나 계속 gdb에서 메모리에 접근할 수 없다고 나오면서 원인을 파악할 수 없었다.
이를 해결하는 법을 위에 3대의 컴퓨터에서 다시 설치하고 우분투 재설치만 5번을 해봤는데 되지 않아서 가상머신을 이용하는 방식을 이용하기로 하였다. gdb에 대한 뜻은 아래 글에서 적었지만 별 내용은 없을 것이다.
https://taesan-smj.tistory.com/11
그래서 이번엔 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
이 글이다.
그 후,
$ gcc -o debugee debugee.c -no-pie
$ gdb debugee
를 입력하여 실행파일을 생성 후 디버깅 해보자.
일단 저번에 했던 곳 까지는 실행이 잘 됐다.
드디어...entry를 입력하면 저번에 하다 실패했던 거 성공할 수 있다.
성공하였다.
행복하다.
에필로그
이제 다음글 부터 드림핵 시스템해킹 마저 공부하면서 글 작성하도록 하겠다.
'보안 스터디 > 시스템 해킹' 카테고리의 다른 글
[드림핵/워게임] shell_basic (포너블/시스템해킹) (1) | 2024.01.27 |
---|---|
[드림핵/시스템해킹] Exploit Tech: Shellcode -2 (0) | 2023.12.31 |
[드림핵/시스템해킹] Exploit Tech: Shellcode -1 (1) | 2023.12.31 |
[드림핵/시스템해킹] Tools : gdb -2 (0) | 2023.12.29 |
[드림핵] Tools : gdb (시스템 해킹) (1) | 2023.12.20 |