ID : level4
Password : suck my brain
힌트 :
문제를 풀기 전에 :
/etc/xinet.d/ |
해당 디렉토리에는 어떤 설정 파일이 들어있을까?
리눅스의 인터넷 슈퍼데몬인 xinetd의 서비스 파일은 거의 /etc/xinet.d/ 에 존재한다.
슈퍼데몬이란 리눅스 시스템에서 실행되는 하나의 데몬이다. 하지만 sendmail, httpd의 데몬과 달리 슈퍼데몬이라 불리는 이유는 리눅스 서버의 여러 데몬을 제어 및 연결시키기 때문이다.
대표 서비스로는 telnet이 존재한다. 우리가 putty와 같은 프로그램을 이용해 telnet으로 연결할 때는 바로 되는 것이 아니라
1) xinetd에 의해 허가된 사용자인가를 검사한다.
2) /etc/xinet.d/telnet 에 정의된 telnet 서비스 데몬과 사용자를 연결시킨다.
이중 finger 만 특별하게 더 자세히 살펴본다.
finger는 시스템 사용자 정보를 확인하는 서비스이다. 이 서비스가 가능하도록 설정하면 원격 서버의 사용자는 finger를 사용하여 로컬사용자 정보(계정명, 최근 로그인 시간 등)을 확인할 수 있게 된다.
사용하는 포트는 79번이다.
보통 설정값은 아래와 같다.
service finger { disable = no socket_type = stream wait = no user = nobody server = /usr/sbin/in.fingerd } |
풀이 :
해당 파일은 읽기 파일임을 추측할 수 있다.
cat을 사용해 해당 파일의 내용을 확인해본다.
설정 값을 통해
슈퍼 데몬이 관리하는 데몬 중 finger으로 접속할 경우 level5 유저의 권한으로 /home/level4/tmp/backdoor 프로그램을 실행시킴을 확인할 수 있다. 하지만 해당 경로에는 백도어 프로그램이 없기 때문에 새로 작성해주어야 한다.
위 그림과 같은 코드를 작성한뒤 gcc를 이용해 컴파일 해준다.
완료 되었다면
cat /etc/services | grep finger |
위와 같이 입력하여 finger 의 포트를 확인한다.
기본 포트인 79를 사용함을 확인할 수 있다.
finger @localhost |
위 명령어를 사용해 finger를 접속한다.
'리버싱 > FTZ' 카테고리의 다른 글
해커스쿨 FTZ Level6 (프로세스 종료 후 쉘 접근) (0) | 2015.02.17 |
---|---|
해커스쿨 FTZ Level5 (레이스 컨디션) (0) | 2015.02.16 |
해커스쿨 FTZ Level3 (명령어를 인자로 전달) (0) | 2015.02.16 |
해커스쿨 FTZ Level2 (vi 취약점) (0) | 2015.02.16 |
해커스쿨 FTZ Level1 (setuid) (0) | 2015.02.16 |