lob는 hackerschool에서 아주 예전에 만든 워게임 형태의 bof 취약점을 입문 혹은 공부할 수 있게 해주는 시스템이다.
lob는 "The Lord Of The Bufferoverflow"의 약자이고, 버퍼 오버플로우의 제왕이라는 의미이다.
lob의 원본 글은 아래의 링크에서 확인할 수 있다.
https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885
redhat 6.2 환경의 lob 시스템을 클리어 하면 Fedora 14 환경의 lob 시스템도 있다고 한다.
hackerschool lob redhat 6.2 몹 리스트는 아래와 같다.
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
기본적인 룰은 아래와 같다.
[기본 룰]
1. single boot 금지
2. root exploit 금지
3. /bin/my-pass 명령에 LD_PRELOAD 사용 금지
구축할 환경
OS : MacOS
VM : VMware Fusion
VMware Fusion에 제공된 가상 환경을 올려서 telnet 커맨드라인 도구를 이용해 사용할 것이다.
참고)
parallels 환경에서 하려고 했지만, 단지 DHCP가 제대로 동작하지 않아 네트워크를 못 잡는 이유로 VM fusion을 사용한다.
telnet을 사용하지 않고, 바로 가상 머신에서 작업할 것이라면 hackerschool FTZ처럼 parallels에서 작업해도 된다.
1. 파일 다운로드
http://hackerschool.org/TheLordofBOF/TheLordOfTheBOF_redhat_bootable.zip
위의 링크에서 가상머신으로 제공되는 lob 압축 파일을 다운로드 한다.
2. 압축 해제 및 실행
압축이 해제된 디렉터리를 보면 위와 같이 .vmdk 확장자와 .vmx 확장자의 파일이 보일 것이다.
이 중 .vmx 파일을 더블 클릭하면 VMware Fusion이 켜지면서 실행될 것이다.
참고)
.vmx 파일은 가상 머신이 어떤 하드웨어로 구성되어 있는지에 관한 종합적인 정보들이 텍스트 방식으로 저장되어 있다.
.vmdk 파일은 일종의 descriptor 파일이고, 가상 머신 디스크 파일이 어떤 크기와 형태로 갖춰져 있는지 나타내는 구성 파일이다.
.vmdk는 virtualbox나 VMware player에서 실행 가능한 포맷 방식이다.
즉, .vmdk는 virtualbox나 VMware player가 있다면 어느 OS이던지 실행할 수 있다는 것이다.
3. 부팅
위와 같은 창이 뜬다면 "Take Ownership"을 눌러준다.
위의 창이 뜨면 "I Copied it"을 누르면 된다.
부팅이 완료되면 위와 같이 뜰 것이다.
4. 환경 세팅
1. gate/gate로 로그인한다.
2. netconfig 명령으로 네트워크 설정을 한다. (setuid 걸어 놨습니다)
3. ip를 확인한다. (/sbin/ifconfig)
4. putty, xshell등으로 터미널 접속하여 문제 풀이를 시작한다. (telnet)
5. 레벨업 패스워드 확인 명령어는 "/bin/my-pass"
lob 원본 글에는 위와 같이 환경을 세팅하라고 되어 있지만 몇 가지를 수정해서 조금 더 편리하게 만들 것이다.
4-1. ifconfig 유틸리티 복사
먼저, root 계정으로 로그인한다.
password는 "hackerschoolbof"이다.
"cp /sbin/ifconfig /bin/ifconfig" 명령으로 /sbin 디렉터리에 있는 ifconfig 유틸리티를 /bin 디렉터리로 이동한다.
4-2. host-only로 네트워크 설정 변경
보통 NAT나 bridge로 설정해서 사용하지만, 이럴 경우 macOS에서 연결한 네트워크가 달라지면 ip도 달라질 수 있기 때문에 macOS에서 다른 네트워크에 연결하더라도 가상 머신의 ip는 달라지지 않도록 하기 위함이다.
MacOS의 VMware Fusion에서는 Private to my Mac이 host-only 역할과 같은 것이다.
5. gate로 로그인하여 환경 세팅
gate로 로그인하여
"netconfig" 명령으로 네트워크를 설정한다.
"Yes"를 누르고
스페이스바를 눌러 Use dynamic IP configuration 항목에 체크하고, TAB 키를 이용해 OK를 누른다.
그러면 위와 같이 뜨면서 네트워크를 잡기 시작하고
네트워크를 잡고 나서 셸로 돌아오면 "ifconfig"를 입력해 위와같이 ip를 확인한다.
이제 세팅은 끝났으니 telnet 커맨드라인 도구를 이용해 접속하면
약간의 시간이 걸리고 나서 위와 같이 화면이 보이게 되고, gate로 로그인해서 문제를 풀면 된다.
참고)
https://ls-toast.tistory.com/3
'How to > set' 카테고리의 다른 글
x64dbg(x32dbg) 다운로드 및 패키지 매니저 사용 (0) | 2022.11.12 |
---|---|
Ollydbg 다운로드 및 설정 (0) | 2022.10.26 |
MacOS에서 VS Code PHP 개발 환경 셋팅 (0) | 2022.08.15 |
MacOS에서 VS Code Java 프로그래밍 환경 셋팅 (0) | 2022.06.03 |