해커스쿨 FTZ - 1단계부터 4단계 까지

해커스쿨 FTZ는 많은 대한민국의 해킹 꿈나무들이 처음으로 해킹을 접하게 될 때 지나쳐가는 관문 중 하나라고 한다.
나는 동아리 숙제로 write-up을 작성하게 되어서 1단계부터 각각 10단계 까지의 풀이를 적도록 하겠다.

level1

1단계의 힌트는 다음과 같다.


간단하다. 문장에 답이있다.
level2 가 소유주인 파일을 찾으면 된다.
그래서 명령어를 이렇게 작성했다. 'find / -user level2'
검색결과로 /bin/ExecuteMe가 나왔다.
bash 셸을 실행시키는 명령어 bash를 실행했다.
whoami를 통해 level2로 접속한것을 확인 할 수 있었고, level2의 비밀번호는 "hacker or cracker" 라는 것을 알 수 있었다.

Level2

마찬가지로 위처럼 level3의 권한을 가진 파일을 검색했고, /usr/bin/editor라는 파일이 나왔다.

vim에디터에는 !를 사용하면 셸 명령어를 실행시킬 수 있는 기능이 있다. 그 기능을 활용해서 my-pass를 쳤다.
level3의 비밀번호는 can you fly? 이다.
위와 같은 명령어를 사용해서 level4의 권한을 가진 파일을 찾았다.
커맨드 인젝션을 하면 될것같다는 생각이 들어서 다음과 같은 명령어를 입력했다.
/bin/autodig ";my-pass;" 를 입력했다.

level3

level4의 비밀번호는 suck my brain 이다.

level4



level4는 그렇다고 한다.

finger이라는 서비스의 설정파일인것같다 대충?
그래서 서버파일의 위치가 level4의 홈 디렉토리에 tmp/backdoor에 위치하니까, 서버파일을 그곳에다가 만들면 되겠다고 생각했다!
my-pass를 실행시키는 간단한 c언어 코드이다.
검색해본 결과 xinetd.d가 서비스들을 관리하는? 뭐 그런거라고 한다.
근데 설정파일에 서버가 /home/tmp/backdoor 이고, level5의 권한으로 실행하니까 finger이라는 서비스를 실행시키는데만 성공하면 공격을 성공시킬 수 있다!

그래서 finger @localhost 를 하니까


finger @localhost 명령어를 사용해서 finger 서비스를 실행시키고, 공격에 성공했다!

Comments

Popular Posts