Sechack
[시스템 해킹] 1강 - 환경 구축 본문
시스템 해킹, pwnable이라고 많이들 부릅니다. 시스템 해킹은 소프트웨어를 분석해서 취약점을 찾고 셸을 따거나 root권한을 휙득하는 등 소프트웨어의 취약점을 이용해서 시스템을 장악해버리는 행위를 말합니다.
바이너리를 분석해서 취약점을 찾는것이기 때문에 Pseudocode의 형태인 C언어와 기계어와 1대1로 매칭되는 어셈블리 언어는 필수적으로 선행되어야 원활하게 시스템 해킹을 학습하실 수 있습니다.
그러면 일단 시스템 해킹을 공부하기 위한 ubuntu환경부터 구축해보겠습니다. Heap exploit을 공부하기 전까지의 모든 실습은 ubuntu 20.04에서 진행할 것이므로 다른 버전을 설치하시면 실습에 지장이 생길 수 있습니다.
VMware, VirtualBox, wsl2, Docker등등 windows환경에서 ubuntu를 사용할 수 있게 해주는 소프트웨어를 이용해서 ubuntu 20.04를 설치하시면 됩니다. 저는 처음 입문하시는 분들에게는 VMware를 추천합니다. iso만 넣어주면 거의 자동으로 OS가 설치가 되고 호스트와 가상머신간에 파일 이동도 Drag & Drop으로 직관적이고 쉽게 할 수 있기 때문입니다. 단점은 OS하나를 완전하게 전부 구축한것이기 때문에 메모리를 많이 잡아먹습니다. 그래서 저는 처음 입문하실때는 비교적 쉽게 환경 구축이 가능한 VMware를 사용하시다가 본인이 가볍고 빠르다고 느끼는 다른 소프트웨어로 갈아타시는것을 추천합니다. 참고로 저는 시스템 해킹을 할때 Docker Desktop을 사용합니다.
이제부터 VMware를 이용해서 시스템 해킹을 공부하기 위한 ubuntu 20.04환경을 구축해보도록 하겠습니다.
https://releases.ubuntu.com/20.04/
먼저 위 링크에서 ubuntu 20.04 iso파일을 다운받아야 합니다.
아래로 내리면 파일들이 많이 있는데 이렇게 적혀있는 녀석을 다운받아주시면 됩니다.
https://www.vmware.com/kr/products/workstation-player.html
그리고 여기에서 VMware installer를 다운받으셔서 설치해주시면 됩니다.
다운받으신 후에는 위 사진처럼 File -> New Virtual Machine을 눌러주신 후
우리가 다운받은 iso파일로 disc image file을 설정하여 준 후 next버튼을 누릅니다.
그러면 이제 ubuntu에서 사용할 계정 정보를 입력하는 창이 뜨는데 저는 username과 password모두 user로 설정했습니다.
Next버튼을 누르면 위와 같이 가상 머신의 이름과 가상 머신 파일이 생성될 경로를 설정하는 창이 뜹니다. 그냥 저대로 사용하셔도 되고 원하는 경로를 지정해줘도 됩니다.
저는 경로를 이렇게 설정했습니다.
그다음엔 용량을 설정해야 하는데 전 20GB그대로 냅뒀습니다. 그리고 밑에 옵션이 하나 있는데 지금 생성하는 가상 머신을 하나의 파일로 관리할것이냐 여러개의 파일로 관리할것이냐를 묻는 옵션인데 뭘 선택해도 상관은 없습니다. 저는 single file옵션을 선택했습니다.
이제 마지막 설정입니다. 생성할 가상머신의 스펙을 구체적으로 설정하는 단계인데 딱히 건드릴건 없어서 저는 그냥 Finish버튼을 눌렀습니다.
Finish버튼을 누르면 우리가 지정한 iso로 부팅이 되면서 자동으로 ubuntu설치가 진행되는것을 볼 수 있습니다. 알아서 자동으로 설치되니까 편하게 기다리시면 됩니다.
기다리면 자동으로 설치가 완료됩니다. 아까 우리가 설정했던 계정 정보로 로그인을 해주시면
ubuntu화면이 나옵니다. 이제 OS설치는 끝났습니다. 여기에 pwntools, gef, gcc, one_gadget, ROPgadget, seccomp-tools등 시스템 해킹을 위한 다양한 도구들을 설치해주어야 합니다.
cd ~
sudo apt update
sudo apt install gcc vim git
sudo apt install python3 python3-pip
pip3 install ropgadget
pip3 install pwntools
sudo apt install libcapstone-dev
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386
git clone https://github.com/hugsy/gef ./gef
echo source ~/gef/gef.py >> ~/.gdbinit
sudo apt install ruby-full
sudo gem install one_gadget seccomp-tools
터미널을 열고 위의 명령어들을 차례로 입력해주면 시스템 해킹에 필요한 모든 도구가 설치됩니다.
이번 시간에는 시스템 해킹을 위한 환경 구축에 대해서 알아보았습니다. 다음 강의에서는 Shellcode가 무엇인지 알아보는 시간을 가져볼 것입니다.
'Lecture > pwnable' 카테고리의 다른 글
[시스템 해킹] 5강 - 메모리 보호기법 (0) | 2021.12.12 |
---|---|
[시스템 해킹] 4강 - Stack Buffer Overflow 기초 (1) | 2021.12.12 |
[시스템 해킹] 3강 - pwntools (0) | 2021.12.09 |
[시스템 해킹] 2강 - Shellcode (4) | 2021.12.09 |