4일차

2021. 11. 15. 22:00FTZ [해커스쿨]/level

Login Id : level4

Password : suck my brain

 

항상 똑같은 패턴이니 힌트를 열어본다.

누군가가 /etc/xinetd.d/에 백도어를 심어놨대!!!!

일단 level5의 권한을 가진 파일을 찾아보자

ㅇ??????

이번에는 level5의 권한을 가진 파일이 없다. 이것을 어떻게 해야할까?

일단은 etc라는 디렉토리에 들어갔다.

그 후에 어떠한 파일인지 보았다.

이 파일은 디렉토리이다. 그래서 이 안을 한번더 들어가보았다.

솔직히 이렇게하면 들어가 질줄 알았다. 그런데 들어가지질 않았다. 그래서 그냥 파일 경로를 통째로 집어넣었다.

잘 들어와졌다 이제는 이 곳에 어떤 파일이 있는지 한번 확인해 보자

그런데 갑자기 이런 의문이 들었다. 항상 이 ftz는 파일이나 폴더이름이 의미가 있던데 이 폴더들은 뭘까?

초반에 배워서 정리했을지도 모르지만 다시 찾아봐야징

/etc와 /user/etc

각종 환경 설정에 연관된 파일이나 디렉토리들을 가진 디렉토리이다

 

슈퍼데몬 xinetd

네트워크 서버/ 클라이언트 구조에서 다양한 서비스 (FTP, Telnet, SSH 등등) 서버 프로세스(데몬) 동작 방식은 공통점이있다. 실제 서비스를 제공하는 서비스 프로세스를 제외하고는 클라이언트의 접속 요청이 있을 때까지 대기하다가 요청이 들어오면 해당 요청을 처리할 서비스 프로세스(자식 프로세스)를 실행하는 형태이다.

따라서 효율적인 서버자원의 활용이라는 측면에서 공통적인 부분을 처리하는 슈퍼데몬을 만들어 개별 서비스를 등록하게 하여 클라이언트 요청은 수퍼 데몬이 모두 처리하고 개별 서비스를 호출해주는 방식

 

음.. 이번엔 힌트에 나왔던 백도어 파일에 대해 알아보러 가보자

 

백도어 

운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않고, 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로(공격 후 차후 공격을 위해 루트 권한을 획득할 수 있도록 설치하는 도구)라는데 흠... 대략적으로는 알아 들을 수 있긴하다 

그럼 여기서 의문이 들 수도 있다. 어? 이거 내가 이때까지 많이 봐왔던 악성코드 트로이 목마아닌가? 음... 트로이 목마는 의도되지 않은 악성 코드이기에 의도를 했느냐? 안했느냐? 이 차이이다.

 

자 그럼 이제 이 경로에 무슨 파일들이 있는지 알아보자

 

자세히 보면 오늘의 주인공 backdoor라는 파일로 존재하는 친구가 있는게 보인다

자 그럼 이 파일안을 파해쳐 보자 

흠.... 처음 보는 것들이 깔려있다. 머리가 아프당~

하지만 이 파일은 그저 읽는것 밖에 할 수 없는데 흠... 어떻게 해야할까?

 

일단 service에 대해서 검색을 해보았다. service는 리눅스 서버나 클라이언트의 머신에서 부팅시 자동으로 실행되게 하고싶은 application이나 server application의 stop, restart등을 관리하고 싶을 때 필요

 

이 파일에는 

service finger라는파일을 등록하는데

해당 서비스가 항상 실행되도록 설정

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

소켓 타입을 TCP프로토콜로 선택

이미 연결된 상태에서 다른 것이 요청하면 기다리지 않겠다..

level5의 권한으로 실행이 된다.

실행할 데몬프로그램을 지정

문제가 발생하면 userid에 로그 기록

 

여기서 user와 server를 보고 생각했다.

이거 연결되어있는 경로를 보니 여기에 같은이름을 가진, 패스워드를 보여주는 그런 프로그램을 만들고 실행시키면 되지않을까?

여기에 있는 backdoor.swp이라는 파일은 실행을 할 수 없는 파일이있다.

허나 이건 신경쓰지말고 나는 backdoor라는 파일을 만들것이다.

그러기 전에 일단 실행을 할 수 있는 프로그램을 하나 만들것이다.

 

이렇게 만들어진 프로그램은 level5의 권한으로 실행되는 finger를 통해서 실행될 텐데 그때 my-pass라는 명령어가 들어가 level5의 password를 알려줄것이다.

 

처음에는 그냥 만들고 실행시키면 될줄 알고 해봤는데 

안되더라구 그래서 패닉에 빠져있다가 봤는데 이거는 finger를 통해 쓰는 거더라고

finger 명령어 사용법

finger : 현재 시스템에 로그인 되어 있는 사용자들을 보여준다.

finger user명 : user를 적고 host명을 명시하지 않으면, finger는 로컬에 접속하게 된다.

finger @host명 : host명만 적고 user를 명시하지 않으면, 해당서버의 접속해 있는 모든 유저 정보 출력

 

 

참조 - https://itsaessak.tistory.com/83?category=954574

 

 

 

 

 

 

'FTZ [해커스쿨] > level' 카테고리의 다른 글

6일차  (0) 2021.11.17
5일차  (0) 2021.11.16
3일차  (0) 2021.11.14
2일차  (0) 2021.11.13
1일차  (0) 2021.11.12