꿈을꾸는 파랑새

오늘은 예비군을 노린 것으로 추정되는 김수키(Kimsuky) 악성코드인 향토예비군 훈련 참가 안내에 대해서 글을 적어 보겠습니다. 일단 예비군은 대한민국 예비군(ROK Reserve Forces, ROK RF)은 대한민국 국군에 편제된 예비군이며 편성 대상은 현역 이후 예비역으로 전역한 사람과 보충역을 마친 사람들이며 전시에는 현역에 따르게 됩니다.

아무튼, 오늘 대한민국 예비군에 관심이 많으신 북한 김수키(Kimsuky)에 대해서 알아보겠습니다.
파일명:향토예비군 훈련 참가 안내.lnk
사이즈:1 MB
MD5:bb88940e915b11f6330b7446f6037f5b
SHA-1:693d6dac7afa49d1a9d07ef0c6184ebb3a9998e7
SHA-256:1a88cb87d0242a6f3383295057d938098c10461e92ea015bc649a5a67f243c79

향토예비군 악성코드 에 포함된 코드
향토예비군 악성코드 에 포함된 코드

악성코드 분석

이번도 마찬가지로 ASCII 값 103으로 장난 치 놓은 것은 같음
1.Google Chrome 아이콘 위장
\Google\Chrome\Application\chrome.exe 로 구글 크롬이 설치돼 있으며 구글 크롬 아이콘으로 보임
2.십진수 PowerShell로 복호화하는 코드
복호화 키:VNi^k
키의 ASCII 값에 103을 더하는 방식을 사용
V=86+103=189
N=78+103=181
i=105+103=208
^=94+103=197
k=107+103=210
이런 식으로 됨
마지막 숫자가 의미 없는 패딩 으로 만들어 놓으면 좋은 말로 분석 방해 나쁜 말로 너~뻉이 쳐라~

파워셀 복호화
파워셀 복호화

3.복호화 함수
암호문 바이트를 C라고 하고 반복 키를 K라고 가정했으면
C<=K 이면
P=K-C
사용자 정의 감산 인코딩 핵심 코드나 문자열,설정 파일 숨기려는 목적 여기서는 PowerShell 코드 복호화 목적
4.PS1 저장
복호화된 문자열을 사용자 앱 데이터 경로인 %APPDATA%\fgkpxjbgthy.ps1에 파일로 생성 및 저장
5.GitHub 기반 페이로드 전달
복호화된 내용에서는 GitHub Personal Access Token 형식 이 보이며 경로는 다음과 같이 됩니다.
hxxps://raw(.)githubusercontent(.)com/jeni534/qmcoiuser/main
GitHub User:jeni534
Repository:qmcoiuser
Branch:main
그리고 해당 PowerShell를 복원하면 다음과 같은 결과를 확인할 수가 있습니다.

복원 PowerShell 분석

1.네트워크 통신 준비와 문자열 난독화
인증 토큰: $tkf 변수에 GitHub 개인 엑세스 토큰(PAT)을 할당하여 비공개 저장소에 접근하거나 API 호출 제한을 우회하는 방식을 사용
URL 조합은 다음과 같음
h+t+t+PS+…. 와 같이 문자열을 더해 실제 통신할 C&C(명령 제어) 서버 또는 페이로드 호스팅
앞서 이이기한 GitHub User:jeni534 이 됨
2. 실행 스크립트 생성
시스템의 숨겨진 폴더인 %AppData% 경로에 vbdoijfrgry.ps1라는 이름의 PowerShell 파일을 생성
$str 변수에 정의된 코드가 기록
실행 시 GitHub에서 ScmovbidxjfgS(.)txt 파일을 다운로드하여 dfvojorhgry.ps1라는 이름으로 저장하고 이를 실행(&$aaa;)하도록 실행이 돼 있음
3. 예약 작업 생성
사용자가 컴퓨터를 껐다 켜더라도 악성코드가 계속 실행되도록 시스템 예약 작업(Scheduled Task)을 등록
실행 대상
Task 이름:.NETRUdKBIEGE FremeweRGe9287347235233 MHHEN t4.2-w3094729136848273523
실행 명령
PowerShell.exe
-WindowStyle Hidden
-nop
-NonInteractive
-NoProfile
-ExecutionPolicy Bypass
%APPDATA%\vbdoijfrgry.ps1
감염 후 5분 뒤 처음 실행하고 이후 10분마다 반복

악성코드 실행시 작업 스케줄러에 등록
악성코드 실행시 작업 스케줄러에 등록

4.PDF 생성
정상 PDF를 실행할 수가 있는 파일 이 아니고 실행 시 에러가 나옴
임시 폴더($env:TEMP)에 보험서류.pdf 라는 파일 만듦
하지만, 실제 PDF 구조가 아닌 error이라는 단순한 텍스트만 파일 안에 기록
Start-Process 명령으로 이 가짜 PDF 파일을 실행
사용자는 보험 서류를 열었다고 생각하지만, PDF 뷰어에서 손상된 파일 또는 오류 메시지가 뜨게 됩니다.
사용자는 단순히 파일이 깨졌구나 라고 생각하지만 백그라운드에서는 악성코드 예약 작업과 다운로드가 완료
즉 여기서 눈칫밥 먹었으면 향토예비군하고 보험 서류하고 전혀 관계없는 내용인 것 알고 있음
5.분석 방해 목적 자기 삭제
사용자가 클릭하여 실행했던 원본 스크립트 파일 자체를 강제로 삭제
악성코드 분석가가 최초 감염 경로와 원본 파일을 추적하기 어렵게 만드는 것이 특징
최종적으로 분석하기 위해서 ScmovbidxjfgS.txt 필요하나 404라서….
hxxps://raw(.)githubusercontent(.)com/jeni534/qmcoiuuer/main/ScmovbidxjfgS(.)txt

PDF 실행시 화면
PDF 실행시 화면

공격 대상
대한민국 예비군 편성 대상자
군 관련 기관, 방산업체 종사자
공공기관 또는 기업 임직원 중 예비군 훈련 대상자
그럼 탐지가 되었다면 악성코드만 제거하는 것이 아닌 작업 스케줄러 및 기타 폴더에 생성된 파일도 함께 찾아서 제거해야 하는 불편함이 발생

공유하기

facebook twitter kakaoTalk kakaostory naver band