본문 바로가기
악성코드 정보

Poisonivy를 이용한 지속적인 공격

by 알 수 없는 사용자 2017. 7. 18.

우리말로 덩굴옻나무로 해석되는 Poisonivy는 정상 원격제어 프로그램으로 2005년부터 제작되었으며 서버 생성과 원격제어 기능을 가지고 있는 클라이언트를 생성한다. 200811월까지 업데이트가 되었으며 현재는 개발이 중단된 상태이다. 하지만 Poisonivy 제작자의 의도와는 다르게 뛰어난 기능 및 편리한 플러그인 설치 기능으로 인해 악의적인 목적으로 많이 사용되고 있다.

[그림-1] Poison Ivy 제작자 홈페이지 (현재는 폐쇄)

Poisonivy를 이용한 주요 공격 사례는 다음과 같다.

일시

내용

2008

해외 금융 서비스 업계

2009

미국 및 해외의 방위산업 계약자

20113

EMC RSA 해킹

2011

The Nitro Attacks

2012

Molerats (aka Gaza Hackers Team)에서 이스라엘 정부 공격

20172

몽골 정보 기관 공격

[-1] Poisonivy를 이용한 공격 사례


2008년도 경 해외 금융 서비스 업계 공격에 사용된 정황이 가장 먼저 확인되었으며 2009년에는 방위산업에 가담하고 있는 업체들 컴퓨터에서 Poisonivy가 발견되었다.

공격자에게 유용한 RAT(Remote Administration Tool)로 전세계에 이름을 알리게 된 것은 2011 3 EMC RSA가 해킹되어 OTP 생성 소스 코드가 유출된 사건이었다. 공격에 사용된 샘플은 2011 8월 핀란드 F-시큐어 블로그에 공개되었다. 기본적으로 문서 파일 취약점을 이용해 취약점이 존재하는 시스템에서 문서를 열어 볼 때 Poisonivy 백도어를 설치했다. 훔친 OTP 정보를 바탕으로 2011 5월 록히드마틴(Lockheed Martin) 내부 시스템에 접속해 정보를 유출했다. 2011 10월 미국 시만텍이 공개한 니트로 공격(The Nitro Attacks)과 2017년 2월 몽골 정보기관 공격에도 Poisionivy는 사용되었다.

 

특징

Poisonivy 서버 파일의 크기는 6~10KB 정도로 작은 게 특징이다. 크기가 이렇게 작은 이유는 서버가 어셈블리로 제작되었으며 주요 기능은 파일로 존재하지 않고 클라이언트에 접속 후 메모리에만 다운로드한다. 원격제어 기능만 보면 다른 프로그램과 크게 차이가 없지만 Poisonivy가 인기 끄는 이유는 모듈화, 스레드, 확장 기능으로 생각된다.

 

[그림-2] 인터넷 익스플로러 메모리에 삽입된 Poisonivy

서버를 생성할 때 실행 파일 이외에 쉘코드(shellcode) 형태로도 존재한다. 쉘코드는 C, 델파이, 파이썬 등으로 만들 수 있다. 쉘코드 형태로 제작해 스크립트 형태로 실행할 경우 화이트 리스트 기반 보안 제품도 우회할 수 있다.

 

기능

피해자의 컴퓨터에 설치할 프로그램을 빌드 할 때 레지스트리 Run 키 이름, 복제 위치(System 경로 or Windows 경로), 자가 삭제 기능 등을 설정할 수 있다.

[그림-3] 빌드 초기 설정

악성코드가 실행되면 스레드(Thread)로 동작하며 시스템 폴더나 윈도우 폴더에 복사 한 뒤 설정에 따라 원본 파일을 삭제하고 레지스트리에 등록한다.

[그림-4] 초기 설정 코드(파일 복사 및 파일 삭제)

설정에 따라 기본 브라우저나 자기 자신 또는 원하는 프로세스에 인젝션을 할 수 있다. 일반적으로는 시스템의 기본 브라우저를 찾아 해당 메모리 영역에 악성코드를 삽입한다.

[그림-5] 기본 웹 브라우저 확인 후 인젝션

이후 필요한 나머지 기능은 네트워크를 통해 받아 메모리에서 동작한다.

 

[그림-6] 주요 기능 및 시스템 정보 획득

Poisonivy의 주요 기능이다. 아래에 표로 내용을 정리하였다

주기능

세부 기능

제어

파일 삭제 및 복사, 레지스트리 등록 및 삭제, 프로세스 정보 획득 및 종료, 서비스 삭제 및 등록, 디바이스, 정보 획득, 실행창 정보 획득

도구

포트스캔, 리모트 쉘 실행, 저장된 암호 유출

감시

키로킹, 오디오, 스크린샷, 웹캠

관리

업데이트, 재시작, 자가 삭제

[-2] Poisonivy 기능

상기 [-2]이외에 플러그인 및 업데이트를 통해 새로운 기능 추가도 가능하다


암호화 된 통신

PoisonIvy 설명서에 따르면 통신 암호화는 256 비트 Camellia 암호화로 이뤄졌다. 일본에서 제작한 암호화로 관련 홈페이지에서 암호화 관련 소스 코드도 다운로드할 수 있다.

[그림-7] Camellia 홈페이지

지정된 암호 값(기본값은 admin)을 알면 패킷의 암호를 풀 수 있다.

[그림-8] 패킷으로 전송되는 PE

전송된 패킷을 복호화할 경우 위 그림과 같이 명령어를 통해 모듈별 PE가 전송되는 것을 확인할 수 있다.

현재 V3에서 Poisonivy 백도어는 다음 진단명으로 진단하고 있다.

-       Trojan/Win32.Poison (2011.11.14.00)


댓글