레벨 해킹

 2839, 1/142 회원가입  로그인  
   Mastel
   level4 를 얼떨결에 깼습니다. 지식을 나눠주세요 ㅠㅠ

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3225 [복사]


조금 깁니다. 죄송합니다. 도와주세요. 검색을 좀 해봐도 제가 원하는 답을 구하기 힘들더군요 ㅠ


전 처음에 문제를 깼을 때 finger 서비스가 이미 standalone 상태로 실행되고 있고
거기서 finger @localhost 을 실행하면 수퍼데몬을 통해서 finger가 다시 작동해서
서버에 접근하려 하니 backdoor(my-pass) 를 level5 권한으로 실행하게 되어서 해결되는 줄 알았습니다.
(현재도 솔직히 좀 헷깔립니다.)

근데 그렇게 생각하면 뭔가 말이 안되더군요.

그래서 finger 서비스가 standalone 상태로 실행되고 있다는 건 아니라고 단정지어버렸습니다;

finger 유저@localhost 라고 치면 localhost 자격으로(?) 유저의 정보를 찾기 위해 서버에 접근해서(true) 정보를 출력하기 위해 backdoor(my-pass) 에 접근하고 localhost 자격으로 level5 의 my-pass가 실행되는 걸로 생각했습니다.


제가 생각한 게 맞는 건가요?


  Hit : 3083     Date : 2011/07/23 11:58



    
늅늅 흠.. 그냥 backdoor 라는 프로그램 자체를 실행하는거에요

예를들어서
a.c 의 내용이 다음과 같다고했을떄
#include <stdio.h>
main()
{
printf("Backdoor Activated\n");
}
gcc -o backdoor a.c 를 해주시면
backdoor 라는 프로그램이 생성되죠?
이때 finger @localhost
를해보시면 이해 가실거에요


흠.. 원하시는게 이게 맞나요?
2011/07/24  
pwn3r [level4@ftz xinetd.d]$ cat backdoor
service finger
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = level5
server = /home/level4/tmp/backdoor
log_on_failure += USERID
}

[level4@ftz xinetd.d]$ cat finger
# default: on
# description: The finger server answers finger requests. Finger is \
# a protocol that allows remote users to see information such \
# as login name and last login time for local users.
service finger
{
socket_type = stream
wait = no
user = nobody
server = /usr/sbin/in.fingerd
disable = yes
}

/etc/xinetd.d/ 에 있는 backdoor 과 finger이란 파일을 열어본건데요,
보시면 두 파일모두 finger 서비스를 정의하고 있는데 리눅스에서 기본적으로 사용하던 finger service는 disable되있기 때문에 , backdoor라는 파일에서 정의한 finger서비스가 실행됩니다.
finger서비스는 접속을 받으면 level5 user의 권한으로 /home/level4/tmp/backdoor를 실행하기때문에 backdoor라는 프로그램을 만들어두고 finger 서비스가 사용하는 포트에 접속하면 backdoor라는 프로그램이 실행되게 됩니다.
2011/07/24  
Mastel 늅늅/pwn3r

두분 답변 감사드립니다. 확신이 생겼네요 ㅎㅎ
2011/07/24