안녕하세요 Triumph 입니다.
Hackerschool의 워게임인 FTZ에서 level4단계 풀이를 하고자 합니다.
level4로 로그인 후 힌트를 확인합니다.
힌트 : 누군가 /etc/xinetd.d/에 백도어를 심어놓았다.! |
음...백도어를 심어놨다네요..일단 감이 안잡히니 해당 디렉터리로 이동 후 파일목록을 출력해 봅시다.
고맙게도..누구나 알수있도록 backdoor라는 이름으로 백도어가 존재하고 있네요. 파일을 한번 열어보겠습니다.
해당 backdoor의 내용을 보고 분석해 봅시다.
service finger |
service명이 finger
현재 실행중임 해당 포트가 사용중일 경우 재사용 TCP 프로토콜 사용 요청이 들어오면 기다리지 않고 바로 응답 level5의 권한으로 실행함 해당 파일을 실행함 실패시 계정을 로그에 기록함
|
대충 이해 하셨나요? 정리하자면 backdoor가 finger 서비스를 이용해서
/home/level4/tmp/backdoor라는 파일을 level5의 권한으로 실행하고 있네요
backdoor가 실행하는 /home/level4/tmp/backdoor 파일을 찾아봅시다.
아무파일도 없네요.. 만들란 소린가..?
없으니 만들어 봅시다.
level3때 autodig 소스코드 기억하시나요? c를 이용하여 level5의 패스워드를 얻어봅시다.
backdoor.c 라는 파일명으로 아래 파일을 작성합니다.
간단합니다. 메인함수를 선언하고 system함수를 통해 my-pass명령을 입력하게만 했습니다.
backdoor.c를 gcc로 컴파일 합니다. (gcc -o backdoor backdoor.c)
컴파일 시 메인함수가 int형이 아니라고 경고메시지가 출력되네요..무시하고 finger 서비스를 실행합니다.
(finger level4@localhost)
level5의 패스워드를 획득했습니다.
감사합니다.
'War Game > FTZ' 카테고리의 다른 글
Hackerschool FTZ 풀이 - LEVEL3 (0) | 2017.03.08 |
---|---|
Hackerschool FTZ 풀이 - LEVEL2 (0) | 2017.03.07 |
Hackerschool FTZ 풀이 - LEVEL1 (0) | 2017.03.07 |
Hackerschool FTZ 구축 (0) | 2017.02.15 |