티스토리 뷰
The Lord Of The BOF
- BOF 원정대
비교적 쉬운 BOF 공략 환경인 RedHat 6.2에서부터 궁극의 Fedora 14까지
수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 WarGame.
BOF 원정대는 원격으로 접속하는 형태가 아닌 개인 PC에 구축해서 접속하는 형태이다.
원정을 떠나기 위해서는 가상 이미지를 구축할 수 있도록 도와주는 프로그램이 필요하다.
http://hackerschool.org/TheLordofBOF/TheLordOfTheBOF_redhat_bootable.zip
다음으로, 위 경로를 통해 해커스쿨에서 제공하는 이미지 파일을 다운로드 받는다.
다운로드 받은 압축 파일을 풀어보면 아래와 같은 파일들을 볼 수 있다.
VMware Fusion을 실행하고 상단에 보면 파일(File)을 눌러서 열기(Open)를 눌러준다.
앞에서 압축을 풀어놓은 파일 중에서 Red Hat Linux.vmx 파일을 위와 같이 열어준다.
파일을 열어줄 때 위와 같이 경고가 발생할 수 있다. Take Ownership을 눌러서 넘어간다.
파일을 열면 위와 같은 화면을 볼 수가 있으며, 재생 표시를 클릭하면 처음에 위와 같이 어떻게 할 것인지 물어보는 데 I Copied It을 추천한다.
I Moved It을 해도 상관은 없으나 충돌 문제가 발생할 수 있다.
반면에 I Copied It을 하면 VMware Fusion이 환경에 맞춰서 변경해주기 때문에 설정하기에 편하다.
(VMware Fusion Upgrade 관련해서 물어볼 수 있는데 설치하는 데 지장이 없기 때문에 신경 쓰지 않아도 된다.)
I Copied It를 하고 조금 기다려주면 위와 같은 화면을 볼 수 있다.
화면에 나와 있는 대로 gate/gate로 접속할 수 있다. (root/hackerschoolbof)
$ /sbin/ifconfig
원격으로 접속하기 위해서 네트워크 설정이 필요하다.
$ netconfig
Yes를 선택한 다음에 Use dynamic IP configuration을 선택하고 OK 확인한다.
설정을 하고 나서 다시 IP 주소를 확인해보면 원격으로 접속할 수 있도록 네트워크가 설정된 것을 볼 수 있다.
$ /sbin/ifconfig
맥에서 터미널을 열고 텔넷으로 원격으로 접속해서 원정을 떠나면 된다.
$ telnet
telnet> open -l gate 192.168.99.129
- Rules
1. single boot 금지
LILO boot : linux single
…
bash# passwd
New UNIX password: ******
Retype new UNIX password: ******
passwd: all authentication tokens updated successfully
2. root exploit 금지
3. /bin/my-pass 명령에 LD_PRELOAD 사용 금지
- level-up Password 확인
/bin/my-pass
- Lists
LEVEL1 (gate -> gremlin) : simple bof
LEVEL2 (gremlin -> cobolt) : small buffer
LEVEL3 (cobolt -> goblin) : small buffer + stdin
LEVEL4 (goblin -> orc) : egghunter
LEVEL5 (orc -> wolfman) : egghunter + bufferhunter
LEVEL6 (wolfman -> darkelf) : check length of argv[1] + egghunter + bufferhunter
LEVEL7 (darkelf -> orge) : check argv[0]
LEVEL8 (orge -> troll) : check argc
LEVEL9 (troll -> vampire) : check 0xbfff
LEVEL10 (vampire -> skeleton) : argv hunter
LEVEL11 (skeleton -> golem) : stack destroyer
LEVEL12 (golem -> darkknight) : sfp
LEVEL13 (darkknight -> bugbear) : RTL1
LEVEL14 (bugbear -> giant) : RTL2, only execve
LEVEL15 (giant -> assassin) : no stack, no RTL
LEVEL16 (assassin -> zombie_assassin) : fake ebp
LEVEL17 (zombie_assassin -> succubus) : function calls
LEVEL18 (succubus -> nightmare) : plt
LEVEL19 (nightmare -> xavis) : fgets + destroyers
LEVEL20 (xavis -> death_knight) : remote BOF