FTZ

Layer7 09과제 -4 -F.T.Z level 4 풀이-

건_빵 2019. 5. 23. 02:08

PuTTY를 실행한다.

어김없이 이번에도 힌트가 있다.

 

hint

백도어란 무엇일까? 

출처: 네이버 백과 사전

cd를 사용하여 /etc/xinetd.d의 위치로 왔다.]

자세히 보니 왼쪽 맨 위에 "backdoor"가 있다.

finger서비스로 실행되는 backdoor이다.

우리는 user와 server 경로 부분을 자세히 살펴보아야 한다.

user=level5고 저희는 지금 level4니까 SetUID를 써서 level5의 권한으로 실행해준다는 말이다.

 

서버의 위치가 /home/level4/tmp/backdoor이라고 한다.

finger 서비스를 시작하면 backdoor라는 파일이 실행되는 것 같다.

그렇다면 저 경로로 가보자. 

 

 저 경로에  실제 이 경로로 가보면 정말 아무것도 없다.

그렇다면 이제 우리가 만들어서 level5의 권한을 취득하면 된다!.

vim을 킨다.

vim에서 무언가를 작성할 때에는 insert키를 누르고,

저장을 할 때는 : -> wq의 순서로 입력하면 된다.

 

 

c언어 파일을 만들어주고 그 안에 내가 원하는 동작인

"my-pass"(비밀번호를 얻는 명령어)를 실행하게 한다.

그 후 gcc를 이용해 backdoor라는 이름으로 컴파일을 시켜준다.

 

이제 여기서 finger 서비스를 시작하면 패스워드가 나온다.

 

figer란 무엇일까?

->리눅스에서 사용자의 계정 정보를 확인하는 명령어이다.

 

finger user명

-> user을 적고 host명을 명시하지 않으면, finger는 로컬에 접속하게 된다.

 

finger @host명

host명만 적고 user를 명시하지 않으면, 해당서버의 접속해 있는 모든 유저의 정보를 

출력한다. 

 

finger user명 @ host명

-> user명과 host명을 이런식으로 입력하면 원격 서버의 사용자 계정 정보를 확인한다.

finger 명령어는 지정된 계정사용자 정보를 /etc/passwd 파일에서 읽어서 보여주는 명령어이다.

 

이제 여기서 finger를 시작하면 level5의 답이 나온다.

 

 

+아직 왜 finger @localhost라고 쓰는지 의문인 사람이 많을 것이라고 생각한다.

finger @localhost를 하게되면
로컬로 finger요청이 가게되고 시스템에선 finger요청을 받았으니
명시한 /home/level4/tmp/backdoor를 실행합니다.

 

다시 말해 finger 명령어를 쳐서 다른 호스트에 접속했을 때 서버가 작동하는 것이 아닌

finger 요청이 들어왔을 때 server가 동작합니다.