[악성코드 분석리포트] 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] 프로세스 목록
또한 백신 프로그램이 실행 중인지 확인합니다.
[표 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 | 파일 다운로드 및 실행 |
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’ 로 진단하고 있습니다.