글
FTZ level4 write up
포너블
2020. 2. 26. 19:51
level3에서 level4의 비밀번호를 알았으니 그걸로 접속을 한다.

cat 명령어를 사용하여 힌트를 본다.
/etc/xinetd.d/에 백도어를 심어놓았다는 힌트를 확인할 수 있다.
Backdoor?
말 그대로 해석하면 '뒷문'
:정상적인 인증 절차를 거치지 않고 컴퓨터와 암호 시스템 등에 접근할 수 있도록 하는 장치이다.
이 backdoor을 악의적으로 사용할 시, 누군가 접속 기록 및 로그인 정보 등 시스템 사용 내역을 모두 볼 수 있으며
더욱 심하면 금융 정보를 탈취해 금전적인 피해까지 얻을 수 있다.

우선 힌트에서 나왔던 경로로 찾아가 backdoor가 어떻게 실행되는지 확인해본다.
xinetd가 중간에 개입하여 허가된 사용자인지 검사한다. 허가된 사용자가 맞다면 해당 서비스를 요청해준다.
중요하게 보아야 할 부분은 user와 server이다.
즉, finger서비스를 사용하면 level5의 권한으로 /home/level4/tmp/backdoor을 수행한다는 것이다.

최상위 디렉토리로 간 후에 /home/level4/tmp/backdoor을 쳐보면

level4의 패스워드 값이 나온다. 하지만 우리가 알아야 할 것은 level5의 패스워드 값!
그러니까 이 경로에 있는 파일을 my-pass를 출력하는 프로그램으로 바꾼다면 level5의 패스워드 값도 알 수 있지 않을까?

vi backdoor.c 를 쳐서 my-pass를 출력하는 C언어 파일을 만든다!
:wq 를 쳐서 저장을 한 후에
gcc -o backdoor -s backdoor.c
backdoor 이라는 이름으로 컴파일을 한다.

그후 finger서비스를 실행하면 level5의 비밀번호를 획득할 수 있다.
finger 명령어는 외부 서버의 유저들의 정보도 가져올 수 있는 기능이 있다.
finger [user] @[host] 명령어를 사용하면 된다.
backdoor을 실행시켜야 원하는 기능을 시킬 수 있으므로
finger @localhost를 해야 우리가 지정한 backdoor가 실행이 된다.
'포너블' 카테고리의 다른 글
| FTZ level6 write up (0) | 2020.02.26 |
|---|---|
| FTZ level5 write up (0) | 2020.02.26 |
| FTZ level3 write up (0) | 2020.02.25 |
| FTZ level2 write up (0) | 2020.02.25 |
| FTZ level1 write up (0) | 2020.02.25 |