level 4
바로 힌트를 봤습니다.
/etc/xinetd.d 디렉터리에 누군가 백도어를 심어놓았다는 문자입니다.
이동해서 백도어 파일을 찾아봅시다.
있습니다.
이제 ls -l 명령을 통해 좀 더 자세히 들여다보죠.
파일의 소유자는 root이고, 그룹 권한으로는 level4가 있네요. 모두 읽기 권한입니다.
내용을 들여다보겠습니다.
finger 서비스이군요.
finger 서비스는 간단히 말해서 어떠한 서비스를 이용하는 계정(외부, 내부)의 정보를 알려줍니다.
내용물을 해석해봅시다.
(틀렸다면 수정하겠습니다.)
disable = no // xinetd 슈퍼데몬의 관리를 받겠다.
flags = REUSE // 사용했던 포트를 다시 사용한다.
socket_type = stream // TCP 통신을 이용한다.
wait = no // 동시 접속이 가능하다.
user = level5 // level5 권한으로 수행한다.
server = /home/level4/tmp/backdoor // 백도어 서버는 /home/level4/tmp 디렉터리에 backdoor 이름의 파일로 있다.
log_on_failure += USERID // 로그인 실패시 유저 아이디를 실패 로그에 기록한다.
아무래도 중요한 부분은 권한이 level5라는 것과 서버가 있는 위치인것 같네요.
저 위치로 가보겠습니다.
아무것도 나오지 않습니다.
아무래도 직접 backdoor 파일을 만들어야겠네요.
우리는 level5의 비밀번호를 알아내는 것이니 level5의 권한으로 my-pass 명령어를 입력하면 level5의 비밀번호를 얻을 수 있겠죠?
짧게 소스코드를 짰습니다.
이제 저장하고 컴파일을 backdoor라는 이름으로 해주면 실행파일이 생성됩니다.
./backdoor를 입력해 level4의 비밀번호가 나오면 알맞게 짠겁니다.
이제 finger를 통해 level5의 비밀번호를 알아내봅시다.
명령어는 finger @localhsot입니다.
그런데 이상하게도 저는 한 번 껐다가 켜서 backdoor 실행파일 삭제 후 다시 컴파일해 생성한 뒤에 finger @localhost를 입력해야 비밀번호가 나오네요.
나중에 알아봐야겠습니다..