본문 바로가기

Analysis

05. TrickBot

TrickBot 악성코드는 Dyreza 악성코드의 후속작으로 금융권을 타격하는 악성코드로 알려져있다. 본 글에서는 해당 악성코드를 분석한다.

Malware TrickBot
OS Windows7
action Stealer

 

위장 화면

정상 프로그램처럼 위장된 화면이다. 처음 파일을 실행하게 되면 위 그림처럼 정상 프로그램으로 위장되어 있다.

 

자체적으로 디코딩을 하는 루틴

하지만 실제로 파일을 실행할 경우 자체적으로 인코딩 되어있는 파일 내용을 디코딩 함으로써 악성행위를 하는 메인 루틴을 복호화하게 된다.

 

명령라인 문자열 변환

디코딩 루틴을 지나서 자신의 메인 루틴 복호화가 끝나게 되면 파일 명령을 위한 명령라인을 파싱한 다음 문자열 인자로 변환한다.

 

vm 환경 검사

해당 악성코드가 실행중인 환경이 VM 환경 안에서 실행되고 있는지를 검사하기 위해서 "pstorec.dll", "vmcheck.dll", "api_log.dll" 등을 이용해 환경을 검사한다.

 

시스템 디렉토리 경로 탈취

이후 VM 환경이 아니라면 행위를 지속하며 시스템 디렉토리 경로를 탈취한다.

 

WinDefend 서비스 정보 탈취

윈도우 운영체제 자체 백신 프로그램인 WinDefend 서비스를 중지하고 제거까지 도달하며 해당 행위를 위해 문자열을 파싱한 뒤 서비스 매니저로 서비스를 연다. WinDefend 서비스가 열리지 않을 경우에는 현재 서비스 중이 아님으로 판단하여 다음 행위로 이어나가지만 정상적으로 열릴 경우 현재 서비스 중이라고 판단하여 해당 서비스 정보를 탈취한다.

 

WinDefend 서비스 중지

앞선 행위에서 WinDefend가 정상적으로 서비스 중일경우 cmd 명령창을 이용해 "/c sc stop WinDefend" 명령어로 WinDefend 서비스 사용을 중지시킨다.

 

WinDefend 서비스 삭제

WinDefend 서비스 사용 중지 후에 cmd 명령창을 한번 더 실행해 "/c sc delete WinDefend" 명령어로 WinDefend 서비스 자체를 삭제해버린다.

 

윈도우 백신 프로그램 종료

WinDefend 서비스를 중지, 삭제시킨 후에는 윈도우 자체 백신 프로그램 목록을 가져와 해당 백신 프로그램들이 동작중인지를 검사한 뒤 만약 동작중이라면 종료시키는 행위를 이어나간다.

 

실시간 모니터링 기능 종료

백신 프로그램까지 무력화 시킨 후 cmd 명령창을 생성해 "/c powershell Set-MpPreference -DisableRealtimeMonitoring $true" 명령어를 이용해 윈도우 디펜더의 실시간 모니터링 기능을 종료시킴으로써 악성코드 행위에 대한 탐지를 무력화시킨다.

 

스파이웨어 탐지 우회

레지스트리 키 "SOFTWARE\Policies\Microsoft\Windows Defender" 아래 DisableAntiSpyware 값을 0으로 바꿔 스파이웨어를 탐지하는 윈도우 디펜더의 행위를 중지시켜 스파이웨어 탐지를 우회한다.

 

윈도우 디펜더 주의 알람 중지

레지스트리 키 "SOFTWARE\Windows Defender Security Center\Notifications" 아래 DisableNotifications 값을 0으로 바꿔 윈도우 디펜더의 주의 알람 행위를 중지시킨다.

 

파일 존재 여부 확인

백신, 방화벽, 윈도우 디펜더의 탐지 행위를 모두 무력화 시킨 뒤에는 폴더 경로를 가져오고 본 파일을 복사하는 시도를 한다. 해당 악성코드는 본 파일을 복사한 뒤 복사한 파일을 자식 프로세스로 실행시켜 악성행위를 이어나가기 때문에 본 파일을 먼저 복사한다.

 

본 파일 복사

앞선 행위에서 복사된 파일이 없을 경우 %APPDATA%\Roaming 아래에 appnet 이라는 폴더를 생성하고 해당 폴더에 본 파일을 복사한다.

 

자식프로세스 생성

복사한 본 파일을 자신 프로세스로 생성하고, 생성된 자식 프로세스에서는 윈도우 기본 프로그램인 "svchost.exe"가 변조된 파일을 실행시켜 행위를 이어나간다.

 

자동 실행

분석한 악성코드에서는 자동실행을 위해 레지스트리를 변경하는 것이 아니라 작업스케쥴러를 이용해 재부팅될 때마다 자동 실행되도록 만든다.

 

생성된 파일

자식 프로세스에서 "svchost.exe" 파일을 이용해 악성코드가 실행된 PC의 웹 브라우저, 네트워크 정보, 공유 파일 정보, 시스템 정보등에 대해 탈취를 위해 DLL 인젝션을 수행하고 해당 정보들을 탈취한다.

 

암호화 형태

탈취한 정보들, 탈취 후 보낼 C&C 정보들은 모두 암호화 된 형태로 저장된다.

 

복호화 후

C&C가 정의된 파일을 복호화 하게 되면 위의 그림처럼 일련의 IP 들이 존재하며 해당 IP들은 탈취한 정보를 전송할 서버의 IP들이다.

 

dinj 파일

저장되는 파일에서 dinj 파일의 경우에는 위 그림과 같이 공격 대상 온라인뱅킹에 대한 정보를 저장하고 있다.

 

sinj 파일

저장되는 파일에서 sinj 파일 또한 공격 대상 온라인 뱅킹에 대한 정보를 저장하고 있다.

 

아래는 주요파일 정보이다.

systeminfo64 PC의 시스템 정보를 수집하는 모듈, 윈도우 버전, CPU 타입, RAM, 사용자 계정, 설치된 소프트웨어, 서비스 목록 등을 수집해 저장
injectDll64 웹브라우저에 인젝션되는 모듈, 인터넷 뱅킹을 모니터링하고 정보를 탈취하는 기능을 함

 

-Reference

Trickbot 금융정보 탈취 악성 코드, https://asec.ahnlab.com/1072

반응형

'Analysis' 카테고리의 다른 글

07. 도메인 쉐도잉  (0) 2019.05.30
06. LokiBot  (0) 2019.05.30
04. Shamoon  (0) 2019.01.14
03. CVE-2018-4878  (0) 2019.01.04
02. GandCrab Ransomware V5.0  (0) 2018.11.30