1. VMware workstation, Virtual Box등 가상 머신을 구동할 수 있는 프로그램 설치
이 과정은 간단 했다.
VMware 홈페이지에 들어가 다운로드 - 무료 제품 다운로드 - Workstation Player -> Windows용으로 다운.
나머지 설치를 진행하면 된다.

2. 가상 머신 설치 후, Ubuntu 16.04 LTS 와 Ubuntu 18.04 LTS를 설치
· Ubuntu 16.04 LTS 가상 머신을 설치할 차례 (Ubuntu 18.04 LTS도 마찬가지), (나는 Vmware Workstation Pro를 썼음) (중간에 LIcense 없어서 Player로 갈아탐)
(1) Create a New Virtual Machine
(2) Custom (advanced)
(3) Workstation 버전 선택 (그냥 next눌러도 무방)
(4) ISO 가상 이미지 파일 선택
(5) 사용자 계정 생성
(6) 가상머신 이름 & 설치경로 설정 (그냥 next눌러도 무방)
(7) 프로세스 성능 설정 (값이 높을 수록 좋아지고, Host의 부담이 커짐)
(8) 주메모리 용량 설정 (값이 높을 수록 동시에 프로그램을 많이 실행 시킬 수 있고, Host의 부담이 커짐)
(9) 네트워크 타입 설정
- Bridge Networking : 공유기를 통해 통신
- NAT : HOST를 통해 통신 (Recommanded)
- host-only Networking : 외부와 단절된 네트워크로 오직 같은 네트워크끼리만 통신 가능
(10) SCSI 컨트롤러 선택 (가상 디스크, CD/DVD-ROM 및 SCSI 디바이스랑 컴퓨터랑 접속할 때 필요한 가상 컨트롤러)
- BusLogic : 초기의 vSCSI 컨트롤러, 지금은 쓰이지 않음
- LSI Logic : 또 다른 vSCSI 컨트롤러, 일반적으로 이것을 선택함 (Recommanded)
- LSI Logic SAS : LSI Logic의 확장판, 미래지향적임
- Paravirtualized SCSI : 처리량을 높이고, CPU사용량을 줄일 수 있는 고성능 컨트롤러
(11) Virtual Disk Type 선택하기
- IDE : CD-ROM이 병렬로 연결됨
- SCSI : 컴퓨터 주변기기를 직렬로 연결해줌 (Recommanded)
- SATA : SCSI보다 않좋음 (?)
- NVMe : SCSI와 비교해서 CPU량을 줄일 수 있다.
(12) Disk 선택하기
- 우리는 처음 만드므로 Create a new virtual disk를 선택
(13) 가상 디스크 사이즈 & 할당 방식 정하기 (그냥 next눌러도 무방)
- Store virtual disk as a single file : 가상 디스크를 하나의 파일에 저장
- Split virtual disk into multiple files : 가상 디스크를 여러개의 파일에 저장
(14) 가상 디스크 이름 정하기 (그냥 next눌러도 무방)
(15) 대망의 가상머신 세팅 완성! (꼭 Customize Hardware...을 눌러 최종 설정을 확인하자!)
(16) 세팅한 가상머신 실행
(17) 설치 진행...
(18) 로그인
- (5)에서 만들었던 패스워드 입력
(19) 설치 완료!
(4) ISO 가상 이미지 파일 다운받기 (설치하는 데 1시간 걸림)
- Ubuntu 16.04 LTS
구글에 "Ubuntu 16.04 LTS" 검색
releases.ubuntu.com이라는 웹주소가 적혀있는 검색결과를 클릭 (releases: 배포판)
Ctrl+F로 iso문자 페이지 내에서 검색
server와 desktop중에 desktop을 선택 후 다운 (확장자: iso)
- Ubuntu 18.04 LTS도 마찬가지

(5)

3. vim, python, pip 등 필수 패키지 설치 후 pwntools 설치
1) vim 설치 (Ubuntu 18.04 LTS도 동일)
(1) terminal 실행 (search your computer 클릭 - "terminal" 입력 - terminal 클릭)
(2) sudo apt-get install vim 입력 (비밀번호는 위 계정 비밀번호) (Continue ? Y)
sudo: 관리자 권한으로
apt-get install: 자동 설치
vim: vim이라는 프로그램을
(1) Ubuntu 16.04 LTS

(1) Ubuntu 18.04 LTS

2) python 설치 (Ubuntu 18.04 LTS도 동일)
(1) sudo apt-get install python3 입력 (마법의 명령어 apt-get)
3) IDLE 설치 (실패해도 ' 6-2) Pyhton 3.7 업데이트 '후 설치 바람)
(1) sudo apt-get install idle-python3.7 (IDLE 설치) (Continue ? Y)
(2) idle-python3.7 (IDLE 실행)
[실패함]
[오류메세지: The program 'idle-python3.5' is currently not installed. You can install it by typing:
sudo apt install idle-python3.5 ]
(3) 오류메세지를 바탕으로 sudo apt intall idle-python3.5 입력 (Continue ? Y)
(4) idle-python3.5 (실행 확인)
4) pip 설치 (Ubuntu 18.04 LTS도 동일)
(1) sudo apt-get install python3-pip 입력 (python2.X라면 python3-pip대신 python-pip 입력) (Continue ? Y)
5) pwntools 설치 (Ubuntu 18.04 LTS도 동일)
(1) sudo apt-get update : apt-get 업데이트는 기본 소양
(2) sudo apt-get install python2.7-dev python-pip (python2.7도 깔고, pip도 다 깐것 같지만... 일단 먹을 수 있는 약을 다 먹어본다.)
(3) sudo pip install pwntools : pwntools 설치
(4) sudo apt-get install libcapstone-dev (Continue ? Y)
(5) sudo pip install --upgrade pip (업그레이드 해서 나쁠건 없으니...)
4. gdb-peda, pwndbg, gef 등 여러가지 디버거 중 택 1하여 설치
gdb-peda 설치 (Ubuntu 18.04 LTS도 동일)
(1) sudo apt install git (Continue ? Y)
(2) git clone https://github.com/longld/peda.git ~/peda : github의 해당사이트 ~/peda 디렉터리에 내려받음
(3) echo "source ~/peda/peda.py" >> ~/.gdbinit : 'source ~/peda/peda.py'의 출력 결과를 /.gdbinit에 저장
5. Pwngdb(angelheap) 플러그인 설치
(Ubuntu 18.04 LTS도 동일)
(1) cd ~/
(2) git clone https://github.com/scwuaptx/Pwngdb.git
(3) cp ~/Pwngdb/.gdbinit ~/ : ~/Pwngdb/.gdbinit파일을 ~/에 붙여넣기
6. 그 이외 alias등 본인이 필요한 세팅 완료(선택)
(Ubuntu 18.04 LTS도 동일)
1) vim 추가 설정
(1) vi ~/.vimrc (vi 설정 편집창으로 이동)
(2) i 입력 (입력모드 들아가기)
(3) 아래 문장들 입력
set number
set ai
set si
set cindent
set shiftwidth=4
set tabstop=4
set ignorecase
set hlsearch
set nocompatible
set fileencodings=utf-8,euc-kr
set fencs=ucs-bom,utf-8,euc-kr\
set bs=indent,eol,start
set ruler
set title
set showmatch
set wmnu
syntax on
filetype indent on
set mouse=a
-------------------------------explaination-------------------------------------
set number : 줄 표시
set ai : 자동 indent
set cindent : C언어 스타일로 indent
set tabstop=4 : tab 공백 4칸
set ignorecase : 검색 시 대소문자 무시
set nocompatible : 방향키로 이동 가능
set bs=indent,eol,start : backspace키 사용가능
set title : 제목 표시
set showmatch : 괄호의 짝을 보여줌
set wmnu : tab 눌렀을때 자동완성 목록 보여줌
set mouse=a : 커서 이동 마우스도 가능
--------------------------------------------------------------------------------------
(4) Esc입력 후 (Insert 모드 나가기) :wq 입력 (저장하고 나가기)
(5) 그 밖의 팁:
읽기모드에서 (시작하면 나오는 곳이 읽기 모드)
커서 이동 h(왼쪽), j(아래), k(위), l(오른쪽, 알파벳 소문자 엘) (대소문자 구분 주의)
DEL(커서가 위치한 곳 삭제)
2) Python5.3.2 -> Python7.7로 업그레이드 하기
(1)

2) 파이선 3.7로 업그레이드 하기 (실패함) (근데 18.04 LTS에서는 성공!)
(1) 가능 여부 확인

아래 명령어 입력
[파이썬 라이브러리 설치]
(2) sudo apt-get update : apt-get 업데이트
(3) sudo apt-get upgrade : apt-get 업그레이드 (항상 최신 버전으로 유지) (Continue ? Y)
(4) sudo apt-get dist-upgrade
(5) sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus (Continue? Y)
(6) sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev
(7) sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev (Continue ? Y)
(8) sudo apt-get install libssl-dev openssl (Continue ? Y)
(9) sudo apt-get install libffi-dev
[파이썬 3.7설치 파일 다운]
(10) wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz (Python 3.7.7의 Gzipped source tarball에 마우스를 갖다 대면 이 링크가 나옴)
wget: 해당 웹사이트 링크에서 파일을 다운 (web get)
(11) tar xvfz Python-3.7.7.tgz (받은 파일 압축 풀기)
(12) cd Python-3.7.7 (Pyhthon-3.7.7 디렉터리로 이동)
(13) ./configure ┐
(14) make ├ Python 3.7.7 설치
(15) sudo make install ┘
(16) python3 -V (버전 확인)
[python 3.5.2로 뜰것이다. 그러면...]
(17) which python3 (python3.7.7 설치 위치 확인하기)
[PATH설정하기]
(18) gedit ~/.bashrc
[맨 아래에서 한칸 띄우고]
(19) export PATH=[Python 3.7.7경로]:$PATH (export PATH=/usr/local/bin/python3:$PATH) (오타주의!)
(20) Save 버튼 클릭
(21) source ~/.bashrc
(22) python3 -V
[그러면 python 3.5.2로 뜰것이다. 그러면...]
[나도 모른다.]👍
(10)

(19)

3) gdb와 gdb-peda 구분하여 사용
(1) vi ~/.gdbinit
(2) 아래 코드 입력 (이미 내용이 있는 경우 그 밑줄에 시작)
define init-peda
source ~/peda/peda.py
end
document init-peda
Initializes the PEDA (Python Exploit Development Assistant for GDB) framework end
7. 인증샷

(1) Ubuntu 16.04 LTS








(2) Ubuntu 18.04 LTS








8. 참고자료
'Layer7 > 동아리 숙제' 카테고리의 다른 글
Dreamhack 공부 내용 정리 및 문제풀이 (Reversing) (0) | 2020.08.07 |
---|---|
gdb를 활용한 간단한 바이너리 분석과 보고서 작성 (0) | 2020.07.12 |
python과 pwntools 활용법 익히기 (0) | 2020.07.08 |
모두의 코드 C pointer 문제풀이 (0) | 2020.07.03 |
C언어 pointer (0) | 2020.06.24 |