백도어의 개념을 "잘" 활용 해 봅시다.

 

필요한 사전지식

1. 백도어 개념에 대한 이해
2. 슈퍼데몬에 대한 이해
3. xinetd.d에 대한 이해

 

더보기

우선, 백도어에 대한 개념을 먼저 이해해야 합니다.

백도어는 어떤 공식이나 표준이 있는게 아닙니다.

개념에 대한 정의만 간략하게 있으며, 백도어의 개념에 부합하기만 하면 백도어라고 칭하는데는 특별히 문제가 없습니다.

 

백도어 개념 알아보기 -> https://ko.wikipedia.org/wiki/%EB%B0%B1%EB%8F%84%EC%96%B4

 

/etc/xinetd.d/에 백도어가 있다고 하는데, 확인 해 봅시다.

 

backdoor라는 파일이 level4의 권한으로 실행되고 있네요.

여기서, 우리가 백도어를 잘 활용하기 위해서는 xinetd.d에 대해 대략적으로라도 이해를 하고 넘어가야합니다.

그래야 backdoor가 어떤 방식으로 동작하고 있는지 알 수 있고, 응용할 수 있습니다.

 

xinetd.d에 대해 알아보기 -> https://ko.wikipedia.org/wiki/Xinetd

 

현재 슈퍼데몬으로 등록되어있는 백도어 데몬에 대해 알아봅시다.

백도어 데몬의 설정에 대해 알아봐야겠죠?

 

각 설정을 문제풀이에 필요한 방식으로 해석 해 봅시다.

 service finger -> 이 슈퍼데몬 서비스의 이름은 finger 입니다.
 disable = no -> enable 되어있다는 뜻입니다.
 user = level5 -> 서버 프로세스를 실행할 권한입니다.
 server = /home/level4/tmp/backdoor -> 해당 서비스를 실행할 데몬 바이너리입니다.

즉, level5 권한으로 /home/level4/tmp/backdoor라는 데몬 바이너리를 실행하게 됩니다.

그럼 xinetd특성상 finger 네트워크 서비스를 요청받을 때 마다 /home/level4/tmp/backdoor바이너리를 실행한다고 볼 수 있습니다.

 

finger 네트워크 서비스는 또 뭘까요?

 

finger 프로토콜 서비스에 대해 알아보기 -> https://ko.wikipedia.org/wiki/%ED%95%91%EA%B1%B0_(%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C)

 

 

 

데몬 바이너리를 찾아봅시다.

 

아무것도 없네요?

그럼 backdoor 바이너리를 우리가 만들게 될 경우, finger 네트워크 서비스를 요청받을 때 마다 우리가 만든 바이너리를 실행하게 된다고 볼 수 있습니다.

 

테스트용으로, 간단하게 vi로 c파일을 만들어 봤습니다.

 

근데 저장이 안되네요 ㅡㅡ?

 

level4 홈디렉토리에는 작성권한이 없는것으로 보입니다.

tmp 폴더로 옮겨줍시다. 

 

다시 작성 후, 저장하여 컴파일 해 줬습니다.

 

잘 실행되는 것을 확인할 수 있습니다.

 

그럼, finger 명령어로 현재 FTZ 서버에 요청을 보내보겠습니다.

비밀번호는 what is your name? 이네요.

 

문제는 풀었는데 궁금한게 한가지 생겼습니다.

finger 프로토콜을 수행하는 슈퍼데몬은 기존에도 있던 건데, 왜 backdoor가 먼저 실행됐을까요?

 

기존의 finger 데몬은 현재 작동을 멈춘 상태였으며, 어떠한 동작도 하지 않고 있다는 것을 확인할 수 있습니다.

 

궁금증도 해결!

 

'Wargame > Hacker School FTZ' 카테고리의 다른 글

HackerSchool FTZ - Level6  (0) 2015.11.21
HackerSchool FTZ - Level5  (0) 2015.11.21
HackerSchool FTZ - Level3  (0) 2015.11.21
HackerSchool FTZ - Level2  (0) 2015.11.21
HackerSchool FTZ - Level1  (0) 2015.11.21

+ Recent posts