본문 바로가기

공지사항

이스트시큐리티 소식을 알려드립니다.

[악성코드 분석리포트] Trojan.MSIL.Bladabindi

보안공지 2019-07-26
Trojan.MSIL.Bladabindi


최근 어벤져스 엔드게임 영화 토렌트 파일로 위장한 악성 파일이 발견되었습니다. 파일명은 ‘Avengers Endgame.2019-1080p.FHDRip.H264.AAC-RTM rcs.torrent’(이하 ‘Trojan.MSIL.Bladabindi’)로 토렌트 파일처럼 보이지만 실제로는 악성 행위를 하는 실행 파일입니다. 


최초 악성 파일은 패킹 및 난독화되어 있으며, 50여개의 다양한 명령 제어 기능을 가지고 있는 점이 특징입니다. 따라서, 악성코드에 감염될 경우 공격자의 명령에 따라 추가 악성 행위를 시도하거나 2차 피해가 발생할 수 있으므로 사용자의 주의가 필요합니다.


본 보고서에서는 ‘Trojan.MSIL.Bladabindi’ 악성코드에 대해 상세분석하고자 합니다.


악성코드 상세 분석


최초 악성코드는 다음과 같이 ‘Avengers Endgame.2019-1080p.FHDRip.H264.AAC-RTM rcs.torrent’ 이란 파일명으로 영화 토렌트 파일로 위장하여 사용자를 속입니다. 하지만 이 악성코드는 실제 토렌트 파일이 아닌 유니코드 확장자 변조 기법이 사용된 exe 파일입니다. 사용자는 토렌트 파일로 착각해 해당 파일을 실행하면 악성 코드에 감염될 수 있습니다.


[그림 1] 토렌트 파일로 위장한 악성코드


이 악성코드는 패킹되어 있으며 내부에 ‘NJ-win-allus-cp준비’, ‘Stub’ 2개 파일을 내장하고 있습니다. 내장된 파일들은 악성코드를 설치하고 원격제어 기능을 수행합니다.


1. 코드 난독화

일반적으로 닷넷으로 제작된 프로그램 경우, 디컴파일을 통하여 내부코드 확인이 가능합니다. 이 때문에 공격자는 코드 난독화 프로그램인 ‘.net Reactor’를 이용하여 코드를 숨겼습니다.


[그림 2] 난독화된 코드 화면


2. 악성코드 설치

최초 파일에서 실질적인 악성행위를 수행하는 파일을 임시 폴더 내 드롭합니다. 이 파일은 ‘%TMP%.exe’ 파일명을 가지며 패킹되어 있습니다. 다음과 같이 이 파일은 코드 내부에  인코딩되어 저장되어 있습니다.


[그림 3] 인코딩된 코드가 저장되어 있는 화면


3. 분석 환경 우회 및 백신 탐지

현재 실행 중인 프로세스 리스트를 받아오고, 프로세스 창 캡션에 분석 도구 혹은 가상 환경에서 사용하는 캡션 이름이 포함되어 있는지 확인합니다. 포함되어있는 경우 자기 자신 프로세스를 종료합니다.


[그림 4] 프로세스 캡션 이름 비교 코드


비교하는 분석 도구 및 분석 환경 프로세스 이름은 다음과 같습니다.


Process Hacker, Process Explorer, dnSpy, CodeReflect, Reflector, ILSpy, VGAuthService, VBoxService, Sandboxie Control, IPBlocker, TiGeR-Firewall, smsniff, exeinfoPE, NetSnifferCs, wireshark, apateDNS, SbieCtrl, SpyTheSpy

[표 1] 프로세스 목록

또한 백신 프로그램이 실행 중인지 확인합니다.


[그림 5] 백신 프로세스 비교 코드 

ESET, AVG, Avira, Total Security 360, AhnLab-V3, BitDefender, ByteHero, ClamVA, F-Prot, F-Secure, GData, Jiangmin, Kaspersky, McAfee, microsoft security essentials, Norman, nProtect, Panda, Prevx, Sophos, SUPERAntiSpyware, Symantec, TheHacker, TrendMicro, VBA32, VIPRE, ViRobot, VirusBuster, Avast

[표 2] 백신 프로그램 목록

4. 자가 복제 및 자동 실행 등록


4-1. 자가복제

각 드라이브의 루트(C:\, D:\ 등)와 ‘C:\Users\All Users\’, 시작프로그램 폴더(shell:startup), ‘C:\ProgramData’ 경로에 ‘Windows.exe’ 파일 이름으로 자가 복제한다. 다음은 드라이브 루트 경로에 자가 복제하는 코드입니다.


[그림 6] 자가 복제 코드


자가 복제 이후, ‘C:\ProgramData’에 복사한 ‘Windows.exe’으로 다시 실행한다.


4-2. 자동 실행 등록

작업 스케줄러에 ‘NYAN’, ‘NYANP’ 이름으로 각각 1분, 5분마다 악성코드가 자동 실행될 수 있도록 등록한다. 작업 스케줄러 등록 외에 자동 실행 레지스트리와 시작프로그램(shell:startup)에도 등록하여 윈도우 부팅시 자동 실행될 수 있도록 한다.


[그림 7] 작업 스케줄러 등록 화면

5. 키로깅

레지스트리 ‘HKCU\Software\Windows.exe\’ 하위 [kl]에 날짜, 프로세스 타이틀, 키 입력 정보를 저장합니다. 이 기능은 오픈소스인 LimeRat을 기반으로 제작되었습니다.


[그림 8] 키로깅 코드의 일부


6. 원격제어 기능

C&C(‘bom1004.codns.com’)로부터 공격자의 명령을 받아 원격제어 기능을 수행합니다.


[그림 9] 원격제어 코드의 일부


악성코드에 포함된 명령어는 총 50개이며, 명령어 별 기능 설명은 다음과 같습니다.


명령어

기능설명

TextToSpeech

채팅 기능

delchrm

크롬 브라우저 종료 및 쿠키/로그인 데이터 삭제

taskmgrON

작업관리자 On/Off

OpenWebpageHidden

사용자 몰래 iexplorer브라우저를 통한 웹페이지 접속

MonitorOFF

모니터 OFF

RwareDEC

암호화된 파일 복호화 기능

NormalMouse

마우스 우클릭 좌클릭 위치를 바꾼다.

ChngWLL

바탕화면 변경

kl

키로깅 정보 전송

msgbox

메시지 박스 출력

ddos.slowloris.start

Slowloris DDoS 공격 시작

ll

서버 연결 Option

DisableCMD

CMD 비활성화

RwareSU

랜섬노트 드롭 및 실행

seed

uTorrent 배포

HideBar

작업 표시줄 숨김

restartme

시스템 재부팅

GiveMeAdmin

eventvwr.exe를 이용한 UAC 우회

BitcoinOFF

BitcointGrabber 중지

taskmgrOFF

작업관리자 비활성화

EventLogs

EventLog 삭제

antiprocstop

프로세스 체크 및 중지

shutdownme

시스템 종료

ReverseMouse

마우스 버튼 변경

spreadusbme

USB에 자가 복제

ClearClp

클립보드 삭제

EnableCMD

CMD 활성화

MonitorON

모니터 ON

SetClp

클립보드 복사

ddos.ARME.stop

ARME DDoS 공격 중지

ddos.slowloris.stop

Slowloris DDoS 공격 중지

OpenWebpage

웹페이지 오픈

ddos.ARME.start

ARME DDoS 공격 시작

botk

wscript.exe, cmd.exe 작업 삭제 및

자동 실행 등록

BitcoinON

BitcoinGrabber 시작

Rware

랜섬웨어 기능

pcspecs

시스템 사양 확인

prof

HKCU\Software\Windows.exe’ 레지스트리 생성 및 삭제

ShowBar

작업 표시줄 보이기

BlockWebpage

호스트 파일을 변조하여 웹사이트 차단

antiproc

특정 프로세스 실행 시 종료

searchwallet

비트코인 설치여부 확인

PLG

변수 설정정보 리셋

Ex

봇기능 재시작

up

파일다운로드 및 재실행

ret

수집된 정보를 서버로 전송

CAP

화면캡쳐

un

악성코드 종료제거 기능

inv

레지스트리에 바이너리 저장 및 변수 정보 설정

rn

파일 다운로드 및 실행

[표 3] 원격제어 명령어 별 기능 목록


7. 주요 기능

원격제어 기능에서 다른 원격제어 악성코드와 달리 디도스, 랜섬웨어 기능, 비트코인 지갑 주소 변경 기능이 존재합니다. 


7-1. DDoS 공격

본 악성코드에서 사용하는 디도스 공격에는 ‘ARME Attack’과 ‘Slowloris Attack’이 있습니다. 공격자의 디도스 공격 명령이 내려지면 감염PC는 공격자가 지정한 특정URL로 DDoS 공격을 시도합니다.


[그림 10] ARME DDoS 공격 코드의 일부


[그림 11] Slowloris Attack 코드 일부


7-2. 랜섬웨어 기능

njrat이 다른 원격 제어 악성코드와 다른 점은 기능 중 랜섬웨어 기능이 존재합니다. 공격자는 금전적 목적을 가지고 파일 암호화하며 암호화된 파일은 “.Lime”확장자를 가진다. 복호화 기능 또한 내부에 존재합니다.


[그림 12] 랜섬웨어 기능


7-3. 비트코인 지갑 주소 변경

프로세스 캡션 이름에 ‘BITCOIN’ 문자열이 있는 경우, 클립보드에 저장된 텍스트 내용을 ‘13LmFmtuvTcUKZzK5yMMrwjuLqj1khe84F’ 주소로 변경합니다. 공격자 지갑 주소로 변경하여 비트코인을 탈취하려는 것으로 보입니다.


[그림 13] 비트코인 지갑 주소 변경 코드 일부


결론


‘Trojan.MSIL.Bladabindi’ 악성코드는 원격제어 기능을 수행하는 악성코드로서, 키로깅, PC 제어 등 50여개의 원격제어 명령 기능을 가집니다. 주된 기능에 디도스(ARME DDoS, Slowloris DDoS), 비트코인 지갑 주소 변경, 랜섬웨어 기능이 포함되어 있어 치명적인 피해를 입힐 수 있습니다.


또한 이번에 발견된 공격의 특징은 오픈소스인 njRat과 LimeRat의 소스코드를 취합하여 제작었다는 점입니다. 오픈소스를 이용한 공격 방법의 위험성은 초보적인 해커조차 악성코드를 쉽게 제작할 수 있다는 접근성에 있습니다.


위와 같은 악성코드 피해를 예방하기 위해서는 출처가 불분명한 곳에서의 URL 클릭 혹은 파일 다운로드를 지양해야 하며 보안 업체들은 오픈소스로 제작된 악성코드 차단 방법에 대해 연구를 진행해야 합니다.


현재 알약에서는 ‘Trojan.MSIL.Bladabindi’ 로 진단하고 있습니다.