상세 컨텐츠

본문 제목

악성 워드 문서를 통해 유포되는 Hancitor 악성코드

악성코드 분석 리포트

by Hexer 2022. 3. 11. 16:01

본문

 

1. 개요

 Hancitor 악성코드는 주로 악성 피싱 이메일을 통해 유포되는 ‘다운로더’ 유형의 악성코드이다. 피싱 이메일을 통해 매크로가 포함된 악성 문서를 유포한 뒤, 사용자의 매크로 실행을 유도하여 Hancitor 악성코드를 드롭 및 실행하는 형태가 다수 발견되고 있다. 공격자는 Hancitor 악성코드를 이용하여 최종적으로 CobaltStrike, Pony Stealer, Ficker Stealer, Zeppelin 랜섬웨어, Cuba 랜섬웨어 등 인포스틸러나 랜섬웨어와 같은 추가 악성코드를 유포한다. 

지난 11월 초 미국의 금융, 정부, 의료, 제조, IT 등의 주요 인프라 내 조직 49곳 이상을 해킹한 Cuba 랜섬웨어 그룹 역시 Hancitor 악성코드를 이용하여 랜섬웨어를 유포한 것으로 확인되었다.

국내에서도 지속적으로 피싱 이메일을 통해 Hancitor 악성코드가 유포되는 정황이 발견되고 있으므로 이메일 내 링크나 첨부파일 열람 시 주의가 필요하다.

 

2. 악성코드 샘플 정보

피싱 이메일을 통해 유포된 것으로 확인되는 악성 문서 샘플 정보는 아래와 같다.

구분 내용
샘플명 0929_9545200010193.doc
MD5 58EE7D9FD3DE8E9E0B2344784AB3D112
SHA1 FC06EC16F8941DFC4722BA74E811C0FE27BE45BA
Keyword #매크로, #OLE 패키지
VirusTotal https://www.virustotal.com/gui/file/fda181a36f090bad64cdbe07d07fad501a93561581533712d00ad9ecabd70b17

[표 1] 분석 샘플 정보

 

3. 악성코드 동작 흐름도

본 보고서에서는 악성 MS Office Word 문서를 통해 Hancitor 악성코드가 유포되는 과정에 대한 분석을 진행하였으며, 대략적인 악성코드 동작 흐름은 아래 그림과 같다.

[그림 1] 악성코드 동작 흐름도

 

4. 악성코드 상세 분석

4.1 0929_9545200010193.doc (1차 악성 Word 문서)

악성 Word 문서 열람 시 콘텐츠 사용 버튼을 클릭하여 매크로 실행을 유도하는 문구를 확인할 수 있다. 해당 문서에는 ‘zoro.kl’ 이라는 이름의 OLE 패키지(2차 악성 워드문서)가 포함되어 있다.

[그림 2] 매크로 실행 유도 및 OLE 패키지
 

 

악성 매크로가 실행되면 Name 함수를 통해 %TEMP% 경로에 생성된 OLE 패키지(zoro.kl)를 “zoro.doc” 파일명으로 변경하여 특정 경로(%APPDATA%\microsoft\templates\)로 이동시킨다.

[그림 3] 파일 이동 (%TEMP%\zoro.kl → %APPDATA%\microsoft\templates\zoro.doc)

 

이후, 이동된 zoro.doc 파일을 특정 패스워드를 사용하여 오픈한다. 

※ 패스워드 : doyouknowthatthegodsofdeathonlyeatapples?

[그림 4] zoro.doc Open

 

4.2 zoro.doc (2차 악성 Word 문서)

2차 악성 Word 문서인 zoro.doc도 마찬가지로 악성 매크로와 OLE 패키지를 포함하고 있다. 

문서에 포함된 “gelfor.dap” 이름의 OLE 패키지가 바로 DLL 형태의 Hancitor 악성코드이다.

[그림 5] 매크로 실행 유도 및 OLE 패키지
 

 

악성 매크로가 실행되면 Name 함수를 통해 %TEMP% 경로에 생성된 OLE 패키지(gelfor.dap)를 “gelforr.dap” 파일명으로 변경하여 특정 경로(%APPDATA%\microsoft\templates\)로 이동시킨다.

[그림 6] 파일 이동 (%TEMP%\gelfor.dap → %APPDATA%\microsoft\templates\gelforr.dap)
 

 

이후, rundll32.exe를 통해 DLL 형태의 Hancitor 악성코드 (gelforr.dap)를 실행한다.

[그림 7] rundll32.exe를 통한 Hancitor 악성코드 (gelforr.dap) 실행
 

 

4.3 gelforr.dap (Hancitor)

Hancitor 악성코드는 실행 시 감염PC의 각종 정보들을 수집한다. 

[그림 8]은 감염PC의 고유 식별값(GUID)을 생성하는 루틴이다. 네트워크 어댑터의 MAC Address와 볼륨시리얼넘버를 재료로하여 XOR 연산을 거쳐 최종적으로 GUID를 생성한다.

[그림 8] 감염PC의 고유 식별값(GUID) 생성

 

 

다음은 감염PC의 컴퓨터 이름과 사용자 계정명을 수집하는 루틴이다.

[그림 9] 컴퓨터 이름 및 사용자 계정명 수집
 

 

도메인 트러스트 정보를 수집하는 루틴도 확인할 수 있다. 이는 감염PC가 AD 환경인지 체크하기 위한 목적인 것으로 판단되며, 실제로 AD환경일 경우와 그렇지 않을 경우 추가 다운로드 되는 악성코드가 상이한 케이스가 발견된 바 있다.

 
[그림 10] 도메인 트러스트 정보 수집

 

[그림 11]은 특정 도메인(api.ipify.org)에 접속하여 감염PC의 공인IP를 확인하는 루틴이다.

[그림 11] 공인IP 수집

 

Hancitor 악성코드는 내부에 악성코드 빌드 버전과 C2 서버 목록이 담긴 구성 정보를 RC4 알고리즘을 통해 암호화하여 저장하고 있다. [그림 12 상단]은 RC4 키 생성 및 복호화 루틴이며, 내부 저장하고 있는 8바이트 데이터(그림 12 하단 빨간색 영역)를 sha1 해싱 한 뒤, 그 결과 값의 40bit 길이 만큼을 RC4 키로 사용한다.

※ RC4 키 생성 재료 : 58 5B E3 F0 4E F5 7B EC (Hex)

※ RC4 키 : ad 81 8c 68 7f (Hex)

[그림 12] RC4 알고리즘을 통한 Hancitor 구성 정보(빌드 버전, C2 서버 목록) 복호화

 

해당 샘플의 복호화가 완료된 Hancitor 구성 정보는 아래와 같다.

[그림 13] Hancitor 구성 정보(빌드 버전, C2 서버 목록) 복호화 결과
 

 

감염PC에 대한 정보 수집이 완료되면 키워드별로 수집 정보를 매칭하여 C2 서버로 전송할 데이터를 생성한다.

[그림 14] C2 서버로 전송할 데이터 생성1
 
 
[그림 15] C2 서버로 전송할 데이터 생성2

 

[표 2]는 각 키워드별 수집되는 정보를 정리한 것이다.

구분 내용
GUID Bot ID
BUILD 악성코드 빌드 버전
INFO 컴퓨터 이름, 사용자 계정명
EXT 도메인 트러스트 정보
IP 공인 IP
TYPE 1 (하드코딩)
WIN 운영체제 정보

[표 2] 키워드별 수집 정보

 

C2 서버로 감염PC 정보를 전송하면 아래와 같이 Base64 인코딩 형식의 데이터를 수신한다.

※ 분석 당시 C&C 서버 접속이 되지 않아 해당 샘플의 PCAP 파일을 확보하여 분석을 진행하였음.

 
[그림 16] C2 서버로 감염PC 정보 전송 및 데이터 수신

 

[그림 17]은 C2 서버에서 수신한 데이터를 복호화하는 루틴이다. 수신한 데이터의 첫 4바이트를 제외한 값을 Base64디코딩 후 XOR(Key : 7A) 연산을 통해 복호화하는 것으로 확인된다.

[그림 17] 수신 데이터 복호화 루틴

 

 

복호화 루틴을 토대로 [그림 16]에서 수신한 데이터를 복호화 시 아래와 같은 문자열을 확인할 수 있다. 분석 샘플의 경우, C2 서버로부터 ‘l’ 명령과 추가 악성코드 다운로드 URL을 수신하였다.

※ 분석 당시 추가 악성코드 다운로드 URL 접속 불가.

[그림 18] 수신 데이터 복호화 결과

 

 

C2 서버로부터 수신되는 명령의 종류는 총 5가지 (‘b’, ‘e’, ‘l’, ‘n’, ‘r’)이며, 각 명령에 따른 악성 행위는 아래 그림과 같다. 최종적으로 Hancitor 악성코드는 C2 서버에서 수신한 명령에 따라 추가 악성PE 파일이나 쉘코드를 다운로드하여 실행하는 ‘다운로더’의 기능을 수행한다.

[그림 19] 수신 명령에 따른 악성 행위
 

 

5. IOC

분석을 통해 확인된 감염 식별지표는 아래와 같다.

구분 내용
File %APPDATA%\microsoft\templates\zoro.doc
%APPDATA%\microsoft\templates\gelforr.dap
MD5 75FD0E273B0A955BA224523BC951326B (zoro.doc)
32799A01C72148AB003AF600F8EB40DC (gelforr.dap)
SHA1 43F91F94E3F95392EF67E312B4C30A3F0A86C8CB (zoro.doc)
4354221A3CF91F4827478BE5C2ED2482FDB049F3 (gelforr.dap)
C&C http://forkineler[.]com/8/forum.php
http://yemodene[.]ru/8/forum.php
http://fordecits[.]ru/8/forum.php
http://4maurpont[.]ru/41s.bin
http://4maurpont[.]ru/41.bin

 

 

보안관제센터 MIR Team

 

관련글 더보기

댓글 영역