wargame/TheLordOfTheBOF(BOF원정대)

BOF 원정대 풀이(전체)

2014. 5. 7. 01:30


풀이 하면서 간략히 정리해둔 것입니다. 상세설명은 내마음대로 하고싶은 문제만 정리 (-_-ㅋ)






# bof 원정대 풀이



[BOF-BufferOverflow- 원정대란?]

비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지

수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다.


[접속 방법]

BOF 원정대는 도메인이나 IP가 아닌, vmware 이미지 형태로 제공합니다.

따라서 각자의 PC에 워게임 서버를 가동하신 후 접속해 풀어나가는 방식입니다.


[다운로드]

1. 다음 Vmware 이미지를 다운받아 부팅한다.

http://work.hackerschool.org/DOWNLOAD/TheLordOfTheBOF/TheLordOfTheBOF_redhat.zip

2. gate/gate로 로그인한다.

3. netconfig 명령으로 네트워크 설정을 한다. (setuid 걸어 놨습니다)

4. ip를 확인한다. (/sbin/ifconfig)

5. putty, xshell등으로 터미널 접속하여 문제 풀이를 시작한다. (telnet)


[기본 룰]

1. single boot 금지

2. root exploit 금지

3. /bin/my-pass 명령에 LD_PRELOAD 사용 금지


[레벨업 패스워드 확인]

/bin/my-pass


[전용 게시판]

http://www.hackerschool.org/HS_Boards/zboard.php?id=bof_fellowship


[몹 리스트]

LEVEL1  (gate -> gremlin) :  simple bof

LEVEL2  (gremlin -> cobolt) : small buffer # hello bof world

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




level1  - simple bof

그냥 buf 크기만큼 a 채우고 sfp 4 바이트 채우고 ret 에 egg shell 주소 넣으면 끝


level2 - small bof





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







+ Recent posts