티스토리 뷰

리눅스/리눅스 보안

3. Backdoor

로또_ 2020. 2. 5. 16:26

Backdoor

시스템 접근에 대한 사용자 인증 등 정상적인 절차를 거치지 않고 응용프로그램 또는 시스템에 접근할 수 있도록 하는 프로그램입니다. 해킹이 아닌 해킹 성공 후의 후속조치라고도 합니다.

 

 

 


 

local backdoor

시스템에 로그인한 뒤에 관리자로 권한 상승을 시키기 위한 백도어입니다. 공격자는 실행하기 위한 일반 계정이 적어도 하나 필요합니다. 단순히 실행하면 관리자 권한으로 상승합니다. 전에 알아보았던 SUID로 만들 수 있습니다.

 

 

remote backdoor(Port Bind)

원격에서 관리자로 계정과 패스워드를 입력하고 로그인한 것처럼 바로 시스템의 관리자 계정을 얻을 수 있는 백도어입니다. 네트워크에 자신의 포트를 항상 열어 놓은 경우가 많습니다. 일종의 서비스를 제공하는 데몬처럼 동작합니다. 단순히 접속하면 관리자가 됩니다.( 주로 관리자들이 많이 사용합니다.)

 

 


 

 

실습

리눅스 서버의 네트워크를 이용하는 백도어에 대해 살펴봅니다.(포트 백도어)

위의 힌트를 가지고 /etc/xinetd.d/에 백도어가 심어져 있다는 사실을 알 수 있었습니다.

 

/etc/xinetd.d/ 디렉토리에서 backdoor를 굳이 찾으려 하지 않아도 이름으로부터 저희는 발견할 수 있습니다.

 

 

backdoor 파일을 열어보면 다음과 같이 되어 있습니다. 위의 정보로 부터 level5 계정의 권한으로 finger라는 서비스를 이용해

/home/level4/tmp/backdoor 파일이 실행된다는 것입니다.

 

/home/level4/tmp/backdoor 해당 디렉토리를 보면 backdoor 파일이 존재하지 않습니다. 그래서 나중에 저희가 만들겁니다.

 

보다시피 finger 서비스가 사용하는 포트가 79/tcp임을 알 수 있습니다. 따라서 공격시에 79번 포트로 접속하면 됩니다. 단, 해당 서버가 79번 포트를 listen하고 있어야 접속이 가능합니다.

 

해당 서버에 열려있는 포트를 확인한 결과 아무것도 나타나지 않습니다. Docker로 만든 서버라서 그런듯 한데 실습을 위해 Docker 옵션에서 79번 포트를 열어줍니다.

 

docker 사용법을 다 까먹었는지 열리지 않습니다. 그래서 가상머신으로 실행시켜 다음을 진행합니다.

79번 포트가 열린것을 확인하였습니다.

 

 

하지만 해당 데몬의 설정파일이 없기 때문에 아무것도 실행되지 않습니다.

 

 

아까

확인 해본 데몬파일에서 sever = /home/level4/tmp/backdoor 인 것을 확인할 수 있었습니다.  이 파일이 설정파일이므로 만들어서 사용합니다.

 

위의 디렉토리로 가서 아래와 같이 코드를 만듭니다

UID를 확인하기 위한 코드입니다.

 

만든 코드로 finger service를 실행시켜 level5의 UID 권한으로 실행된다는 것을 확인하였습니다.

 

level5로 작동된다는 것을 확인하였으니 비밀번호를 알아냅니다.

 

반응형