LOB : 버퍼오버플로우를 이용한 Wargame이다. The Lord of Bufferoverflow, BOF 원정대라고도 한다.




필요한 프로그램 : 가상화 SW, 터미널 에뮬레이터, LOB 이미지.

- 접기

가상화 SW(또는 가상 머신)에는 VMware Workstation, VMware Player, VirtualBox가 있다.

VMware Player나 VirtualBox는 프리웨어라고 알고 있다.

터미널 에뮬레이터는 윈도우 기준 PuTTY(푸티), Xshell가 있다.

편한거로 쓰자. PuTTY는 처음 쓰기 편하고, 많이 쓰다보면 나중에는 Xshell이 더 편하다.



LOB 이미지는 아래의 해커스쿨 사이트에서 받자.

BOF 원정대 다운로드


설치 과정은 좋은 글들이 많이 있으니 생략하고 ..

LOB를 부팅하는 것부터 시작해보자.


부팅 시작 시 LILO boot:라고 나오는데, 아무 조작도 안하거나 linux-up이라고 입력하면 부팅이 된다.

- 접기 Tab을 누르면 linux, linux-up 두 가지가 나오는데 linux를 입력했을 때는 부팅이 되지 않는다.


root로 접속해보자. root의 패스워드는 hacherschoolbof 이다.


LOB Redhat은 bash의 버전이 낮아서, 쉘 상에서 \xff를 입력했을 때, \x00으로 처리해버리는 문제가 발생한다.

이 사실을 모르거나, 알다가도 깜빡 잊으면 애먼 데서 삽질을 하게 된다.

그러므로 우리는 이런 문제가 발생하지 않도록 각 유저들(ex:gate, gremlin, ...)의 default shell을 bash2로 설정할 것이다.


이제 다음 명령어를 입력하자.


** 추가 **

ln -sf /bin/bash2 /bin/bash

/etc/passwd 파일 수정 없이 bash 파일을 덮어써버리는 방법이 생각나서 적는다..

bash2에서 보안 설정이 되어 있기 때문인지

bash 파일을 덮어씌우거나 건드려선 안된다.

  Thanks to blackmoon


** 추가 **

vi /etc/passwd

:%s/bash/bash2/


꼭 root 권한이 필요하다.

vi 데이터로 /etc/passwd을 열어서

: = 커맨드 입력 시작

% = 파일 전체

s/ = 문자열 치환 시작

bash = bash를

/ = 구분선

bash2 = bash로 치환

/ = 끝

< 다음과 같이 각 줄 끝마다 bash2로 치환된 것을 확인할 수 있다. >



- 접기 vi, /etc/passwd, default shell, bash 등이 무엇인지도 상세히 적고 싶으나, 가독성이 떨어지므로 설명 생략.


이제 /sbin/ifconfig로 아이피 주소를 확인한 후

인터넷이 연결되어 있는 지 확인해보고

xshell(or putty)로 텔넷 접속을 하면 되겠다.

ex)

telnet 192.168.230.150


첫 번째 레벨은 gate/gate이다. (ID/PW)


이제 문제없이 LOB를 풀어나가보자. 또 다른 문제들이 발생하면 해결해나가면서 ..


-------------------- 추가 ----------------------


다시 LOB를 풀다보니 권한설정이 마음에 들지않아서 추가로 적어본다..

취향껏 참고하시길.


root로 로그인 후(su - root)

cd /home

find -name "*.c" -exec chown root:root {} \;

chown root *

chmod 1770 *

chmod 755 httpd/ #생략 가능

chmod 755 lost+found/ #마찬가지


c 소스파일의 소유자/그룹을 모두 루트로 바꿈으로써 수정 불가능으로 만든다.(원래는 각각의 유저 소유였다)

그리고 /tmp 디렉토리와 같이 모든 홈 디렉토리들에게 sticky bit 퍼미션을 준다.

sticky bit는 디렉토리에 주어지는 권한으로, 이 설정이 된 디렉토리 내에서 파일을 쓰는 것은 가능하나

다른 유저의 파일, 즉 원본 바이너리,소스 파일의 수정/삭제는 불가능하다.


실수로 gremlin에서 cobolt 파일이 덮어씌워져서 이후부터 위와 같은 설정을 해놓았다.


sticky bit에 대해서는 다른 포스팅에서 다룰 예정이다. 언젠가..



이제 진짜로 LOB를 시작해보자.


'Wargame Writeup > LOB(Redhat)' 카테고리의 다른 글

LOB orc -> wolfman  (0) 2015.11.13
LOB goblin -> orc  (0) 2015.11.13
LOB cobolt -> goblin  (0) 2015.11.13
LOB gremlin -> cobolt  (0) 2015.11.08
LOB gate -> gremlin  (0) 2015.11.05

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/