티스토리 뷰

모각코

ftz level4

AI의 호흡 2019. 1. 3. 21:22

level4를 해봅시다.

level4는 어려운 것 같아 조금 힘들었어요ㅠㅠ

먼저 똑같이 ls명령어를 치고

hint가 있어 cat hint로 열어본다.


여기서 백도어란?

말 그대로 뒷문이라는 것으로

정상적인 인증 절차를 거치지 않고 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 장치입니다.

설계자나 관리자에 의해 남겨진 시스템의 보안 허점,,,


그렇다면 cd /etc/xinetd.d로 들어가서

백도어가 있는지 살펴본다.

ls -al backdoor를 입력해보니 파일이 있었다.

cat backdoor로 내용을 열어본다.


service finger란 서비스 이름으로 /etc/service파일에 등록된 이름과 같아야 한다.

disable = no는 xinetd의 제어를 받을 것인가를 정해준다.

no로 되어있으니 제어를 해달라는 것이다.

socket_type = stream은 사용하는 TCP/IP소켓 stream(TCP), dgram(TCP)

wait = no yes면 xinetd가 요청되어 있는 한 데몬이 끝날 때까지 다른 요청을 받지 않고

no면 각 요청에 대해 데몬이 동작한다.

user = level5는 데몬의 UID

server = /home/level4/tmp/backdoor 는 서비스가 실행될 때 어떤 위치의 프로그램을 불러올지를 결정한다.


xinetd란 서비스에 접속을 요청할 때 xinetd가 중간에서 허가된 사용자인지 검사를 합니다.


여기서 중요한 것이 user와 server이다.

server를 실행하면 user권한으로 실행이 된다.

즉, setUID를 말한다.

그럼 server의 파일이 실행할 때 my-pass를 출력하게 프로그램으로 해놓으면 level5로 my-pass를 실행하여 password를 얻을 수 있을 것이다.


cd /home/level4/tmp/backdoor로 들어가

ls -al backdoor를 보니 없다.

그렇다면 cat > backdoor.c로 파일을 작성해보자


#include<unistd.h>

int main(void){

              system("my-pass");

return 0;

}             

입력을 한 뒤에 gcc -o backdoor backdoor.c로 컴파일을 한다.

이제 finger명령어를 치면 이 프로그램이 실행될 것이다.   


하지만 백도어가 실행되지 않고 원래 기능이 실행이 된다.

finger명령어라고 해서 다 xinetd를 거치는 것이 아니다.

기본 finger는 disable이 yes라서 외부에서 접속하면 실행이 됮 않지만

backdoor서비스는 disable이 no라서 외부에서 접속하면 backdoor서비스가 실행이 된다.

finger명령어는 외부 서버의 유저들의 정보도 가져올 수 있는 기능이 있다.

finger [user]@[host]


그래서 finger @localhost를 입력하여준다.

localhost란 자신의 컴퓨터를 나타내는 127.0.0.1 IP를 담은 alias변수이다.


level5의 password가 떴다.

'모각코' 카테고리의 다른 글

ftz level5  (0) 2019.01.08
모각코 1월 8일  (0) 2019.01.08
ftz level3  (0) 2019.01.03
ftz level2  (0) 2019.01.03
모각코 1월 3일  (0) 2019.01.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함