level4 힌트를 보자.
'/etc/xinetd.d/'에 백도어가 있댄다... 찾아보자.
백도어를 심어놓았다고 하길래, 백도어를 찾는게 문제일 줄 알았더니.. 떡하니 'backdoor'라는 이름으로 파일이 있다...;;
'backdoor'파일을 열어보니.. finger라는 서비스(?)에 설정 값들이 보였다.
특히 user부분을 보니 level5라고 다음 level이 적혀있었다.
그리고 server부분도 '/home/level4/tmp/backdoor'라고 적혀있는 걸 보니 해당 디렉토리에도 backdoor가 있나보다.
그래서 /home/level4/tmp 디렉토리를 가보았다.
잉? 뭥미? 아무것도 없다.... 뭘까... 일단 finger가 뭔지 알아봐야 겠다.
finger : 사용자 정보를 찾아 보는 명령어 ( /usr/bin/finger ) 사용법 : finger [-lmsp] [user..] [user@host] finger는 특정 사용자 정보를 알려주는 기능을 한다. 하지만 침입자에게는 유용한 정보가 될 수 있으므로, finger 설정은 되도록 하지 않는 것이 좋다. |
오... 사용자 정보를 찾아보는 명령어 랜다... 일단 써보기로 했다.
뭔가 사용자 정보가 뜨긴하는데... 좀더 자세히 검색해 보기로 했다.
finger 명령어 finger는 리눅스에서 사용자의 계정정보를 확인하는 명령어이다. finger 옵션 -s 사용자의 로그온 이름, 실제이름 ,터미널 이름,로그온 시간 등을 보여준다. -l : -s 옵션 정보에 몇가지를 추가하여, 여러 줄에 걸쳐서 보여준다. -p : -l 옵션 정보에서 .plan 과 .project 파일을 보이지 않는다. 옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주된다. finger 사용 예 -$ finger finger 만 치면 현재 시스템에 로그인 되어 있는 사용자들을 보여준다. -$ finger @host명 user를 적고 host명을 명시하지 않으면,finger는 로컬에 접속하게 된다. -$ finger user명 user를 적고 host명을 명시하지 않으면,finger는 로컬에 접속하게 된다. -$ finger user 명 @host명 -$ finger @host명 user명 user명과 호스트명을 이런식으로 기입하면 원격서버의 사용자계정정보 확인하는 것이 된다. finger명령어는 지정된 계정사용자 정보를 /etc/passwd 파일에서 읽어서 보여주는 것이다. |
위 설명대로, finger는 현재 시스템에 로그인 되어 있는 사용자들을 보여주는것 같다.
아까 backdoor에서 finger의 설정값 같은 것들이 보였다. 그래서 finger를 검색해서 원래는 어떻게 설정 되어 있는지 보기로 했다.
2개의 finger가 존재한다. 일단 '/etc/xinetd.d/finger'를 열어보았다.
먼가 backdoor의 설정값과 많이 다르다. 일단 disable이 backdoor는 'no'로 되어있었는데, 원래의 finger 설정은 'yes'이다.
그리고 가장 의아했던 user와 server부분이 서로 다르다. 아까 backdoor의 server부분에 찾아갔을때는 아무런 파일이 없었는데 정상적인 경로에는 파일이 있는지 궁금해서 찾아가보았다.
파일이 존재한다!! 실행해보니 다른 사용자 권한에 read권한이 없어서 읽어 볼 수는 없었다.
순간 스치는 생각이, finger명령어를 실행할때 해단 server부분의 경로의 파일을 같이 실행시키는것 같았다.
그럼 아까 backdoor의 설정을 다시 보자.
해당 server경로에 가서 backdoor라는 파일 이름으로 'my-pass'명령어가 실행되게 하면 되지 않을까?
user가 'level5'로 되어있는거 보니 왠지 setuid와 같이 'level5'의 권한으로 '/home/level4/tmp/backdoor'파일을 실행시키지 않을까?
일단 무턱대고 부딪쳐 보기로 했다.
이제 준비는 끝났다. 다시 finger명령어를 사용해 보았다.
응? 아까와 다른게 없다... finger명령어를 실행하면 해당 backdoor를 실행시킬줄 알았는데.. 그전과 다를게 없다..
위에 설명을 보니 아무 옵션도 없이 finger명령어를 사용하면 사용자의 로그온 이름, 실제이름 ,터미널 이름,로그온 시간 등을 보여준덴다.. 그래서 현재 localhost의 접속한 사용자 정보를 보고 싶어서 'finger @localhost' 명령어를 쳐보았다.
'finger @localhost' 명령어를 치면 server부분에 파일을 user권한으로 실행하는 것같다.