최근 중국에서 유명 CCTV와 IP 카메라 등에서 백도어(Backdoor)가 발견되었다. 만약 설치된 백도어를 악의적인 의도로 사용했다면 가정내 사생활 침해는 물론 회사 산업 정보 유출 등의 큰 피해를 가져다 줄 수 있다. 또한 이를 통해 적대 국가 및 기업들에서 스파이 활동이 가능해 심각한 보안 위협이 될 수 있다.
백도어는 뒷문이라는 말 뜻대로 일련의 인증과정 없이 시스템에 접근하는 공격 기법 중 하나이다. 이 백도어는 오래전부터 해커들 사이에서 많이 사용해오던 공격 기법이며 다양하게 활용이 되고 그 기법 또한 점차 진화해가고 있다. 하지만 이 백도어의 사용은 본래 프로그래머나 시스템 관리자들이 다른 PC에 대한 접근 편의를 위해 시스템 설계자가 고의적으로 만들어 놓은 것이다. 하지만 이러한 점 때문에 백도어는 공격자들에 의해 악용되는 경우가 많다. 이를 통해 공격자는 시스템에 접속하여 악의적인 행위를 할 수 있으며, 시스템에 저장된 데이터를 열람하거나 유출시킬 수 있다.
이와 같은 백도어는 공격자가 직접 코딩하여 만들어 사용하기도 하고, 오픈소스 기반의 Framework를 이용해 백도어를 제작하여 사용하기도 한다. 이번에 소개할 도구는 백도어 제작 프로그램인 Backdoor-Factory이다. 이 도구는 오픈소스 기반 프레임워크로써 ‘Josh Pitts'라는 개발자에 의해 Python 언어 기반으로 제작되었다.
Backdoor-Factory는 사용법이 간단해 누구나 쉽게 사용할 수 있으며, 여러 옵션들을 이용해 제작자가 원하는 대로 커스터마이징이 가능하다. 또한 백도어 프로그램을 직접 코딩하는 번거로움과 시간적 부담을 덜어줄 수 있고 편리해 많이 사용되는 도구 중 하나이다.
사용 방법은 Backdoor-Factory가 설치된 디렉토리에 존재하는 ‘backdoor.py’ 파일에 적절한 옵션을 전달인자(argument)로 주어 실행하면 된다. 옵션을 입력하지 않고 파일을 실행시킬 경우 사용 가능한 옵션들이 나타나며, 여러 옵션 중 주로 사용되는 주요 옵션에 대한 설명은 아래와 같다.
옵션 |
설명 |
-f, --file=FILE |
Backdoor를 삽입할 파일 |
-s, --shell=SHELL |
삽입할 Payload (‘show’를 이용해 Payload 목록 확인 가능) |
-H, --hostip=HOST |
대상과 세션 연결을 맺게 될 호스트 IP 주소 |
-P, --port=PORT |
대상과 세션 연결을 맺게 될 호스트 Port 주소 |
위와 같은 주요 옵션을 입력하여 backdoor.py 파일을 실행하게 될 경우 정상적으로 동작하며 실행된 후 공격 코드(ShellCode)를 삽입할 섹션(Section)을 선택하면 제작이 완료된다. 백도어 제작에 사용된 파일은 putty.exe이며 해당 파일은 원격 접속 프로그램이다.
Backdoor-Factory의 사용 방법은 위에서 사용된 명령어와 같이 -f 옵션으로 백도어로 제작될 파일을 지정하고 -s 옵션으로 사용될 Payload를 지정, -H 옵션에 Reverse TCP 연결을 맺게 될 호스트 IP 주소, -P 옵션에 포트를 지정해주면 백도어 제작이 완료된다.
위와 같이 백도어 제작이 완료된 경우 설치 디렉토리의 ‘backdoored’ 디렉토리 안에 제작된 백도어 프로그램이 생성된다. 백도어 프로그램의 경우 정상 파일과 동일한 파일 크기를 갖게 되며, 프로그램 역시 정상적으로 동작한다.
백도어 프로그램을 공격
대상 PC에 업로드 후 실행시키면 공격자 PC에 Reverse TCP 연결을 요청하게 되지만 현재 연결을 대기중인 상태가 아니므로 연결을 맺지 않고 들어오는 연결
요청을 무시하게 된다. 본 테스트에서는 Metasploit-FrameWork의 Meterpreter를 이용해 공격 대상과의 Reverse TCP 연결을
맺을 수 있도록 리스닝(Listening) 중인 상태로 대기하여 공격 대상으로부터 들어오는 연결 요청에
정상적으로 연결을 수립할 수 있도록 테스트를 진행하였다.
공격자 측에서는 연결 요청을 대기하며, 공격 대상 PC에서 제작된 백도어 프로그램을 실행시킬 경우 정상적으로 연결을 수립하게 된다. 이 경우 백도어 프로그램에 삽입된 Payload에 의해 Reverse TCP 연결을 맺게 되며 공격 대상은 공격자 측에게 Shell(명령 권한)을 넘겨주게 된다. 아래는 세션 연결이 정상적으로 수립된 모습이며, 연결 이후 Meterpreter의 ‘sysinfo’ 명령을 통해 공격 대상 PC의 Hostname, OS 정보 등의 기본 정보들을 가져올 수 있었다.
연결 수립이 정상적으로 이루어졌을 경우 ‘Shell’ 명령으로 명령 권한을 획득하여 시스템을 장악할 수 있다. 또한 ‘clearev’ 명령을 이용하여 시스템 로그를 삭제하여 다녀간 흔적을 없앨 수도 있다. Meterpreter에서 제공되는 명령 뿐만 아니라 공격자는 공격 대상의 시스템을 자유자재로 제어할 수 있기 때문에 이는 시스템 관리자의 입장에서는 매우 치명적일 것이다. Shell을 획득한 공격자는 악의적으로 어떠한 명령이든 시스템에 내릴 수 있다. 예를 들면 시스템의 데이터들을 공격자 측으로 전송한다거나, 공격자 측의 악성파일을 시스템 내로 전송할 수 있다. 또한 ‘Hashdump’ 등의 도구를 이용하여 사용자의 패스워드에 크랙을 시도한다거나 필요한 정보만을 획득한 뒤 시스템을 파괴시킬 수도 있다.
이렇듯 ‘Backdoor-Factory’와 같은 백도어 제작 프로그램을 이용해 누구나 손 쉽게 백도어를 제작할 수 있다. 그러나 백도어 기법은 오래전부터 많이 사용된 기법이며, 이에 대한 코드 정보도 많이 수집되어 있는 상황이다. 따라서 최신 버전의 백신 프로그램, Windows 안티바이러스 등에 의해 백도어 프로그램이 실시간으로 탐지 및 제거되고 있다. 하지만 백신프로그램의 탐지를 인코딩(Encoding) 혹은 암호화(Encrypt) 기법을 이용해 우회할 수 있기 때문에 이를 안심할 수는 없다. 시스템을 관리하는 관리자의 입장에서 백신프로그램만을 믿고 이를 방관한다면 머지않아 시스템은 해커들의 놀이터가 될 것이다.
실제로 많은 해킹 사고들 중 피해를 입은 대다수의 시스템에 백도어가 존재하고 있었다. 그렇기에 시스템 관리자는 백도어로 의심되는 파일이 존재하는지 주요 시스템 파일이 변형되지는 않았는지 등을 주기적으로 점검하여 시스템의 가용성을 침해하는 공격으로부터 예방하여 원활한 서비스를 제공해야 한다.
'보안 도구' 카테고리의 다른 글
[정보 수집 도구] FOCA 란?, FOCA 사용법 (0) | 2016.09.19 |
---|---|
[웹 프록시 툴] BurpSuite 사용하기 (0) | 2016.09.02 |
[웹 디버깅 툴] HttpWatch 사용법 (1) | 2016.09.01 |
[맬웨어 제로킷] Malware Zero Kit 악성코드 제거 툴 mzk (0) | 2016.08.31 |
랜섬웨어 복구 툴입니다 (0) | 2016.08.31 |