꿈을꾸는 파랑새

오늘은 일본에서 이메일로 発注書および在庫確認のお願い 으로 위장한 악성코드 PDF인 発注書.PDF에 대해서 분석을 해 보겠습니다.
파일명:発注書.PDF
사이즈:1 MB
MD5:356fa97f14f8863a6d1e0048fad45116
SHA-1:07de20e4e75975f10f3fea7764005eb3e2a5ba61
SHA-256:28916c496d32ee3fde4f9edb44dda56d737cf194116bf9ca67e99cf14db9be63
이번 악성코드는 PDF 파일로 작성된 것이 특징이며 PDF 파일을 열었을 때에는 확실하게 어떤 문서이다는 것을 확인할 수가 없고 사용자가 마우스로 클릭하면 해당 악성코드 주소에서 파일을 내려받기하고 6ea3d8d0.img 이라는 파일이 생성되고 그리고 나서 해당 6ea3d8d0.img를 압축프로그램으로 풀면 Click to open the file.vbs 이라는 파일을 볼 수가 있습니다.
일본에서는 다음과 같은 제목으로 유포되고 있습니다.

악성 PDF 파일에 포함된 주소
악성 PDF 파일에 포함된 주소

発注書および在庫確認のお願い
発注内容確認のお願い
引用元と異なる件名も確認
레터헤드 배경이 심하게 흐릿하게 처리된 형태로 파일 크기가 너무 커서 표시할 수 없으니 이미지를 클릭하여 내용을 다운로드하고 확인하라는 선명하고 눈에 띄는 텍스트 상자를 볼 수가 있으며 이러한 사회공학적 기법은 의도적인 사용자 기만행위를 통해 수신자가 외부 하이퍼링크를 실행하도록 유도하여 내장된 스크립트나 스트림 객체만을 탐지하는 자동 정적 보안 필터를 효과적으로 우회하기 위한 목적입니다.

PDF 악성코드
PDF 악성코드

여기서 분석을 해야 하는 것은 Click to open the file.vbs 이라는 파일입니다.
파일명:Click to open the file.vbs
사이즈:1 MB
MD5:493459e39273df7b71f22e12df90a748
SHA-1:414399e19db2daea22d2347e95aa3d3323091c3c
SHA-256:29453368a7c14218e8cdbacd177c6b82e30a8642e9aa5bfec4b48067219d9214

최종 VBS 파일
최종 VBS 파일

Click to open the file 분석

1.KEY:6lJHrNxziH6HByN|DATA:
여기서 KEY 값은 확인된 코드 범위에서는 실제 복호화 키로 사용되지 않고 암호화 키라기보다는 포맷 마커 또는 분석 방해용 값이 맞을 것 같음
2.중복 실행 방지
WMI를 통해 현재 실행 중인 프로세스를 조사하면 wscript.exe,cscript.exe에서 동일 파일이 두 번 실행되는 상황을 탐지하게 됩니다.
두 개 이상 발견하면 다음 메시지를 보여 줍니다.
The file is corrupted and cannot be opened.
Error code 0x00215
ChrW()를 수십 번 연결해 생성 AV/EDR 탐지를 어렵게 만들기 위한 목적

CyberChef base 64 디코딩 결과Base64 디코딩 결과
CyberChef base 64 디코딩 결과

3.관리자 권한으로 재실행
스크립트에 /elevated 인수가 없다면 스스로 자신을 다시 실행 그리고 사용자는 Windows UAC 창을 보게 될 것입니다.
UAC bypass 는 하지 않음
4.사이트에 파일 다운로드
Domain:agent(.)jpword(.)cc
URL:hxxps://agent(.)jpword(.)cc/setup(.)pdf
HTTP method:GET
HTTP 객체:MSXML2(.ServerXMLHTTP(.6.0
PDF 가 아닌 setup.zip 으로 저장
5.다운로드 위치
%ProgramData%\setup.zip
실패시 %TEMP%\setup.zip
Scriptlet.TypeLib의 GUID를 얻고 {},- 등을 제거해 랜덤 디렉터리를 생성
6.내려받기 검증
ServerXMLHTTP로 GET 요청 후 HTTP status == 200인지 검사
이후 ADODB.Stream을 이용해 바이너리를 저장하며 파일 크기가 1024 bytes 인지 검사
따라서 서버가 죽었거나 정상 페이로드가 내려오지 않으면 이후 단계는 실행하지 않고 종료

파일 다운로드 부분
파일 다운로드 부분

7.ZIP 압축 해제
Windows 기본 COM 객체 Shell.Application 의 Namespace()를 사용
별도의 7z.exe, PowerShell Expand-Archive 등을 사용하지 않기 때문에 추가 도구 없이 Windows 기본 기능만으로 압축을 해제를 진행
압축 해제 완료 여부를 조건으로 반복 검사
8.MSI 실행 명령
최종적으로 구성되는 명령은 대략 다음과 같음
msiexec.exe /i "(랜덤폴더)\UEMSAagent.msi/quiet
TRANSFORMS="(랜덤폴더)\UEMSAagent.mst
NABLESILENT="yes"
REBOOT="ReallySuppress"
INSTALLSOURCE="Manual"
SERVER_ROOT_CRT="(랜덤폴더)\DMRootCA-Server(.)crt
DS_ROOT_CRT="(랜덤폴더)\DMRootCA.crt"
관리자 권한,GUI 없음, 재부팅 방해, MST 적용,인증서 지정 조건으로 진행됨
9.설치 프로세스 감시
스크립트는 단순히 MSI를 실행하고 바로 끝나지 않으며 
WMI에서msiexec.exe 를 반복적으로 조회
그리고나서 CommandLine에 UEMSAagent.msi 가 들어간 프로세스가 존재하는지 확인
설치가 끝날 때까지 약 2초 단위로 대기
따라서 공격자가 단순 파일 다운로드 가 아니라 설치 완료까지 lifecycle을 관리하게 한 loader
10. 설치 완료 후 흔적 삭제
설치가 끝나면 상당히 공격적인 정리 작업
삭제 대상: 랜덤 압축 해제 폴더
%ProgramData%\setup(.zip
또는 fallback 환경에서는 %TEMP%\setup(.zip 이 제거
즉 포렌식 시 원본 MSI/MST/CRT가 남지 않도록 만들어져 있는 것이 특징
11.스크립트 삭제
마지막에는 현재 실행 중인 VBScript까지 삭제
ping은 네트워크 목적 아 아니고 
ping 127(.0(.0(.1 을 몇 번 실행하면서 삭제 전 짧은 지연시간을 만드는 기법
이후 del /f /q 로 자신을 삭제
12. 디지털 서명 부분
파일 후반부에는 Authenticode 형식의 SIG Begin signature block 이 존재
내부 인증서 문자열에서 확인되는 서명자 이름은
QUICK HEAL TECHNOLOGIES LIMITED
이며 Subject 문자열에
C=China도 보임
또 DigiCert Timestamp 관련 인증서 체인과 20260804180243Z
형태의 타임스탬프 정보가 보이는 것이 특징
단 Quick Heal이 실제로 이 악성 행위에 서명했다. 고 결론 내리면 안 됨
따라서 정확한 표현은 Quick Heal Technologies Limited라는 Subject를 가진 서명 블록이 존재한다.
그리고 악성코드에서 특별하게 키로그 또는 기타 부분은 보이지 않았습니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band