2019년 전 세계를 집어삼킨 ‘코로나 19 바이러스’로 인해 우리의 일상과 사회 전반의 모습이 완전히 바뀌었다. ...대학교는 온라인 강의로 새 학기를 시작했고 과제 제출과 시험 등도 온라인 상에서 진행되었다. 비대면 사회로 변화되면서 일터로 출.퇴근하던 업무방식에도 큰 변화가 일어났다. 업무공간에서도 ‘사회적 거리두기’가 시행되면서 원격 및 재택근무, 화상회의 등 비대면 업무방식이 확산되었다. 2020 8월 코로나 19가 재확산되면서 디지털 인프라가 구축되어 있는 ICT 기업뿐만 아니라 대기업 및 유통업계도 재택근무에 돌입했다.

 

 그 결과, 온라인 상 보안의 위험성이 부각되기 시작했다. 인터넷 사용자를 대상으로 하는 사이버 공격이 증가하고 그 방법이 다양화 되고 있기 때문에 사용자의 주의가 필요하다. ASEC 주간 악성코드 통계에 따르면, 공격의 종류는 크게 InfoStealer, RAT (Remote Administration Tool), Coin Miner, 랜섬웨어, 다운로더 등으로 나눌 수 있으며 이번 분석에 사용된 Hancitor Malware는 이 중 다운로더 공격에 속한다.

 

[그림 1] ASEC 주간 악성코드 통계

 다운로더 악성코드의 대부분은 스팸 메일을 통해 유포되며, 사용자가 첨부파일을 실행시키도록 유도하는 방식으로 공격이 진행된다. 그리고 공격자들은 백신 진단 우회를 목적으로 프로그래밍 언어를 활용해 악성코드 외형을 패커로 패킹한다.

 따라서 이러한 방식으로 공격하는 인터넷 상에 공개된 맬웨어 중 하나를 선택하여 트래픽을 분석해보고, 공격이 내부에서 어떻게 진행되었는지 분석해보고자 한다.

 

 

2.1 Hancitor Malware 

 Chanitor라고 불리는 Hancitor는 피해자의 컴퓨터로의 초기 접속을 위해 사용되는 다운로더 악성코드이다. 주된 목적은 Hancitor 자체에 포함된 여러 개의 암호화된 URL 중 하나로 접속하여 맬웨어 페이로드(payload)를 다운로드하여 실행하는 것이다.

 Hancitor Pony Vawtrak 맬웨어를 공동으로 배포한 2014년에 처음 목격되었다. Hancitor 2014년부터 2021년까지 꾸준하게 활동하고 있으며 최근에는 추가적 활동으로 Cobalt Strike를 설치하는 형태가 유포되고 있어 사용자의 주의가 필요하다.

 

2.2 Hancitor Malware 동작 방식

[그림 2] Hancitor Infection Event Chain

 Hancitor는 스팸 메일의 첨부파일이나 다운로드 링크를 이용해 유포된다. 이 이메일들은 각각 docs.google.com의 구글 드라이브 URL HTTPS 링크로 포함한다. 이 구글 드라이브 페이지는 취약한 워드 문서 다운로드 페이지로 연결된다. 워드 문서가 다운로드 되면, 워드 문서에서 [그림 3]과 같은 매크로가 활성화되어 워드 문서에 내장된 Hancitor 페이로드 동적 링크 라이브러리(DLL)를 추출하고 실행시켜 초기 감염이 일어난다. 감염된 호스트는 Hancitor 명령과 컨트롤(C2) 트래픽을 일으킨다.

 

 

[그림 3] Microsoft Office 문서 파일 매크로 활성화 시

 실행된 DLL은 패킹된 형태이며, 실행 중 실제 Hancitor DLL을 디코딩한 후 메모리 상에서 실행시킨다. 이번에 분석할 Hancitor 25KB 사이즈를 갖는 작은 다운로더 악성코드이며, 사용자 및 컴퓨터 이름, IP 주소, 운영체제 버전과 같은 감염 PC의 기본적인 정보를 획득한 후 C&C 서버에 전달한다(C2 트래픽). C&C 서버는 현재 악성코드를 기준으로 3개를 갖는데, 여기에 차례대로 접속하면서 실패할 경우 다음 C&C 서버에 접속을 시도한다.

 

Hancitor C&C 주소

hxxp://sumbahas[.]com/8/forum.php

hxxp://staciterst[.]ru/8/forum.php

hxxp://semareake[.]ru/8/forum.php

 

 그러면 서버는 Hancitor로 하여금 하나 혹은 그 이상의 추가적인 맬웨어 페이로드를 다운로드하고 실행시키도록 한다. 이 예제에선 멜웨어 후속 조치를 위한 두 개의 추가적 페이로드를 전달하는 것을 확인할 수 있다.

 

 

2.2.1 Hancitor 후속 조치를 위한 추가적 페이로드 “Cobalt Strike”

 

 첫 번째 추가적 페이로드는 악성 행위자들 사이에서 점점 더 인기를 끌고있는 합법적인 침투 테스트 도구인 Cobalt Strike였다. 감염된 호스트가 동적인 디렉터리 환경(AD 환경)일 때, Hancitor Cobalt Strike를 전송한다. Cobalt Strike는 키 로깅과 같은 정보 탈취가 가능하며, 추가적인 공격을 용이하게 하기 위한 시스템 취약성을 이용할 수 있고, 감염된 시스템과 피해자의 네트워크 모두에서 그 활동을 숨기는데 도움이 되는 다양한 방법들을 갖고 있다. Cobalt Strike는 네트워크 ping 도구 또는 NetSupport Manager RAT 기반의 멜웨어와 같은 추가 악성 파일에 대한 또 다른 액세스 접근 채널을 제공한다. 예제 4에선 감염된 Windows 호스트가 Hancitor 이메일을 보내는데 사용되는 스팸봇으로서 동작하는 것까지 확인할 수 있다.

 

2.2.2 Hancitor 후속 조치를 위한 추가적 페이로드 “Ficker Stealer”

 

 두 번째 추가적 페이로드는 2020 8월에 처음 확인된 Malware-as-a-Service(MaaS) Ficker Stiller 였다. Ficker Stealer는 합법적인 서비스를 제공하는 것처럼 위장한 광고를 통해 정보를 탈취하는 악성코드이다. 2020년부터 러시아어를 사용하는 포럼에서 판매되고 있으며, 이를 구매한 공격자들이 다양한 방법으로 해당 악성코드를 유포하고 있다.

 

 Ficker Stealer 공격 단계

[1] 사용자가 다운로드 된 파일을 실행하면 해당 악성코드는 감염환경의 국가 정보를 확인한다. 만약, 러시아, 벨라루스, 우즈베키스탄, 우크라이나, 아르메니아, 카자흐스탄, 아제르바이잔에 포함된 국가에서 실행되었다면, 추가 악성행위를 수행하지 않고 종료된다.

 

[2] 감염환경의 인터넷 연결 여부를 확인한다. 이를 위해 IP 확인 사이트인 ipify로 연결하여 api.ipifiy.org/?format=xml에 대한 IP 주소 검사를 발생시킨다. 그 후, 감염환경의 IP 주소를 C:\ProgramData\kaosdma.txt에 저장한다.

 

[3] 인터넷에 연결되어 있다면, [그림 4]와 같이 감염환경의 정보, 스크린샷, 브라우저, 암호화폐 지갑 및 소프트웨어 정보를 수집한다.

 

[4] 수집한 정보를 XOR로 인코딩하여 공격자의 서버로 전송한다.

 

[그림 4] Ficker Stealer의 탈취 정보

 Ficker Stealer EXE 파일은 몇 주 동안 동일하게 사용된다.  2021-01부터 2021-03까지의 SHA256 해시 값은 다음과 같다.

 

94e60de577c84625da69f785ffe7e24c889bfa6923dc7b017c21e8a313e4e8e1

 

 이번 분석에 사용된 Hancitor pcaps Windows 기반의 맬웨어를 포함하고 있다. 따라서 Windows 기반의 컴퓨터를 사용한다면 감염의 위험이 있어, Windows 기반이 아닌 BSD, Linux, MacOS 등에서 실행하였다.

 


3.1 분석에 필요한 사전지식

 

3.1.1 TCP Flags 16bit Value

 

 TCP(Transmission Control Protocol)의 동작은 3-WAY Handshake 방식을 통해 두 지점 간에 세션을 연결하여 통신을 시작하고 4-WAY Handshake를 통해 세션을 종료하여 통신을 종료한다. 세션 연결과 해제 이외에도 데이터를 전송하거나 거부, 세션 종료 같은 기능이 패킷의 Flag 값에 따라 달라지게 된다. TCP Flag는 기본적으로 6가지로 구성된다.

SYN(연결 시작) : 통신 시작 시 세션을 연결하기 위한 플래그

ACK(확인 응답) : 송신 측으로부터 패킷을 잘 받았음을 알려주는 플래그

RST(연결 재설정) : 비정상적인 세션을 끊기 위해 연결을 재설정하기 위한 플래그

PSH(삽입) :빠른 응답을 위해 OSI 7계층의 응용계층으로 바로 전송하도록 하는 플래그

URG(긴급) :긴급한 데이터 전송을 위해 우선순위를 높여 긴급하게 전달하는 플래그

FIN(연결 종료) : 더 이상 전송할 데이터가 없고 세션 연결을 종료시킨다는 플래그

 

TCP Flags 16진수로 표현했을 때의 값을 나타내면 아래 [그림 5]과 같다.

[그림 5] TCP Flag 16진수 표현값

 

3.1.2 SSL/TLS Handshake

[그림 6] SSL/TLS Handshake 과정

 HTTPS로 접속할 때는 TCP 3-way Handshake와 별도로 SSL/TLS Handshake 과정을 거친다. SSL/TLS Handshake 통신을 암호화하는 데 사용할 암호화 알고리즘과 키를 결정하고 서버를 확인하며 실제 데이터 전송을 시작하기 전에 보안 연결이 이루어졌는지 확인하는 과정이다. 해당 과정을 통하여 세션을 생성할 수 있고 이 후 두 노드의 통신은 세션 상에서 수행된다. SSL/TLS Handshake를 사용하면 SSL 또는 TLS 클라이언트 및 서버가 통신하는 보안 키를 설정할 수 있다.

 

 SSL(Secure Sockets Layer) Certificate Authority(CA)라 불리는 서드파티로부터 서버와 클라이언트 인증을 하는데 사용된다. 주로 전송계층과 응용계층 사이에서 보안조치를 할 때 사용한다. SSL TLS(Transport Layer Security)의 과거 명칭이다.

 

[그림 6]에서 보듯, 이 과정에서 클라이언트와 서버는 Client Hello, Server Hello, Certificate, Server Hello Done 등의 메시지를 주고 받는다. 위의 메시지를 주고받은 후, 클라이언트와 서버는 데이터를 교환하기 시작한다.

 


[1] ASEC 주간 악성코드 통계 《https://asec.ahnlab.com/ko/22926/

[4] Ficker Stealer 탈취 정보 https://isarc.tachyonlab.com/m/3936

[5] TCP Flag 16진수 표현값 https://m.blog.naver.com/PostView.nhn?blogId=stop2y&logNo=221018537228&proxyReferer=https:%2F%2Fwww.google.com%2F

 

'Project > Network' 카테고리의 다른 글

Hancitor Analysis by Wireshark (4)  (0) 2021.08.19
Hancitor Analysis by Wireshark (3)  (0) 2021.08.19
Hancitor Analysis by Wireshark (2)  (0) 2021.08.19
DNS Spoofing 공격 & 차단 방법  (0) 2021.06.15

+ Recent posts