꿈을꾸는 파랑새

오늘은 북한 해킹 단체인 김수키(Kimsuky)에서 만든 악성코드인 북한의 대외 전략 분석 및 남북관계 개선 방안에 대해서 글을 적어보겠습니다. 해당 악성코드는 대북 정책 문서로 위장한 악성 LNK(바로가기) 파일로 유포하고 있으며 C2 서버로 깃허브(GitHub)를 활용하던 과거 방식과 달리 이번 공격에서는 깃랩(GitLab) 플랫폼으로 변경된 것을 확인할 수가 있습니다.
파일명:북한의 대외 전략 분석 및 남북관계 개선 방안.lnk
사이즈:1 MB
MD5:302725413076d1aeaee2d7f2b3692646
SHA-1:9a6946ca040c259a59deb11942d94ebbcff0cdef
SHA-256:2df24d850d6a50410e6503bc449a61778e5e88722ea4e20e198ea61e45a6903e
해당 악성코드는 지난번에 분석한 이력서 같은 거와 같은 방식을 사용하는 것이 특징
다만, 복호화 키만 변경된 것뿐

악성코드 에 포함된 코드
악성코드 에 포함된 코드

악성코드 분석

1. 난독화 방식
1차 스크립트는 단순 Base64가 아님
숫자열을 만든 뒤 키 NFG87%br 바이트에 103을 더한 값을 기준으로 각 요소를 비교하여 복원
키 순환 사용
바이트 단위 커스텀 연산
일부는 pw_num - data[i] 일부는 원본 유지
마지막에 UTF-8 문자열로 캐스팅
2.복호화된 2차 페이로드의 정체
복호화 결과물은 PowerShell이 아니라 JavaScript/Node.js 코드
복원된 코드에는 require("hxxps"),require("fs"),require("child_process"),require("path"),require("os"),require("axios") 가 포함
네트워크 통신
파일 저장
자식 프로세스 실행
OS 판별
HTTP 다운로드
를 수행하는 Node.js 기반 다운로더 및 설치 목적 
페이로드 크기가 6307 bytes

firefox.ps1 내용
firefox.ps1 내용

3.2차 페이로드의 주요 문자열
복구된 스크립트에는 아래와 같은 문자열이 존재
hxxps://malicanbur(.)pro
/winnmrepair_
/linnmrepair_
/macnmrepair_
/winnmrepair.release
patches(.)zip
patches
start(.)vbs
wscript
curl/7.68.0
tar
-xf
-C 
운영체제 식별
OS 별 경로 및 URL 선택
ZIP/TAR 아카이브 다운로드
압축 해제
내부 실행 스크립트 실행
4.C2
복원된 코드에서 기본 URL은 hxxps://malicanbur(.)pro
여기에 OS에 따라 서로 다른 경로를 사용
Windows:/winnmrepair_...
Linux:/linnmrepair_...
macOS:/macnmrepair_...
별도로 hxxps://malicanbur(.)pro/winnmrepair(.)release 도 사용
한 개의 도메인으로 여러 플랫폼을 동시에 지원하게 한 인프라라는 의미
5.Windows에서 실제 감염 흐름
1. 사용자가 위장된 LNK 클릭
2.LNK 내부 PowerShell이 실행됨
3. 숫자열 디코딩 후 %APPDATA%\firefox.ps1 생성
4.숨김 PowerShell로 firefox.ps1 실행 
5.복호화된 JS/Node 코드가 실행됨
6.hxxps://malicanbur(.)pro/winnmrepair(.)release 또는 유사 경로에서 patches(.) zip 다운로드 시도 
7. 임시 폴더에 patches.zip 저장
8.tar -xf 로 patches디렉터리에 압축 해제 
9.해제 후 start.vbs 를 wscript 로 실행
windowsHide: true,detached: true,stdio: "ignore" 설정으로 백그라운드 실행 
6.다운로드 및 복구 기능
HEAD` 요청으로 content-length 확인
이미 받은 파일 크기 확인
Range: bytes=start-end 헤더를 이용한 부분 다운로드 및 재개
다운로드 실패 시 재시도
스트림 완료 여부와 실제 파일 길이 비교
정상 완료 안 되면 삭제 후 재다운로드  
7.멀티플랫폼 지원
복원된 코드에는 os.platform() 결과에 따라 분기하는 로직 존재
win32
darwin
linux
OS에 따라 경로 및 저장 경로 다르게 설정 및 실행 명령
Windows에서는 start.vbs +wscript
Linux/macOS에서는 셸 스크립트 방식
특히 macspatch.sh 문자열과 /var/tmp/ 사용
이전의 공격 방식보다는 윈도우 에 국한 된것이 다양한 OS 를 노림
IOC
파일/경로
%APPDATA%\firefox.ps1
%TEMP%\patches.zip
%TEMP%\patches
start.vbs
/var/tmp/macspatch.sh 계열 가능성  
도메인
hxxps://malicanbur(.)pro
hxxps://malicanbur(.)pro/winnmrepair(.)release
hxxps://malicanbur(.)pro/winnmrepair_ml2j(.)release 형태
Linux,macOS용 /linnmrepair_..., /macnmrepair_... 경로 
문자열
NFG87%br
firefox.ps1
patches.zip
patches
start.vbs
curl/7.68.0

firefox.ps1 분석

1.초기 실행 시 생성 파일
%TEMP%\북한대외전략분석_및_남북관계개선방안.pdf
GitLab에서 다운로드됨
실제로는 정상 문서 위장+실행 유도용
바로 실행됨 (&$yyyd) 
즉:사용자 속이기용 디코이+실행 트리거
2.AppData 내부 드롭 파일
원래Yahoo.rtf로 다운로드 후 확장자 변경
실제:JScript Encoded Script
다운로드 후 바로 .jse 로 이름 변경됨
3.PowerShell Payload 저장
내부에 암호화 해제+다운로드+실행 로직 포함
메인 로더 스크립트
AES 복호화 클래스 동적 생성 (Add-Type)
GitLab에서 암호화된 payload 가져옴
복호화 후 실행
4.2차,3차 실행 파일
암호화된 파일(scall.txt,ajobcall.txt) 복호화 결과
실제 실행되는 페이로드
5.추가 다운로드 파일들 (GitLab)
다운로드 파일
docx.pdf
Yahoo.rtf
scall.txt (암호화됨)
ajobcall.txt(암호화됨)
GitLab PRIVATE-TOKEN 사용:인증 필요
private repo로 페이로드 숨김

악성코드 가 생성한 작업 스케줄러
악성코드 가 생성한 작업 스케줄러

6.지속성 (Persistence) 확보
Scheduled Task 생성
10분 후 실행
이후 30분마다 반복
실행 대상:
wscript.exe //b //nologo "Yahoo.jse"
news.ps1 분석
이게 핵심
1.정보 수집 파일
%APPDATA%\Microsoft\<IP>-<시간>-0956_info.txt
수집 내용
OS 부팅 시간
OS 정보 (버전, 빌드, 아키텍처)
PC 정보
노트북,데스크탑 여부
OS 설치 날짜
백신 이름
바탕화면 파일 목록
실행 중인 프로세스
2.암호화 파일
AES 기반 암호화
Salt +PBKDF2 사용
키:KiLLP7ss#"
공격자가 복호화 가능한 형태로 변환
3.원본 삭제
평문 정보 파일 삭제 (증거 제거)
4.암호화 파일도 삭제
전송 후 로컬 흔적 제거
5.자기 자신 삭제
수집 항목
시스템 정보
OS 이름,버전,빌드
아키텍처 (x64 등)
설치 날짜
마지막 부팅 시간
하드웨어
PC 타입 (노트북,데스크탑)
보안 상태
설치된 백신 목록
EDR,AV 탐지 회피용 데이터 수집 목적?
사용자 데이터
바탕화면 파일 목록
현재 실행 중 프로세스
브라우저,지갑 프로그램,VPN 여부
분석 환경 탐지

news.ps1 내용
news.ps1 내용

네트워크
IP 주소 포함됨
3.암호화 로직
AES (AesManaged)
PBKDF2 (Rfc2898DeriveBytes)
랜덤 Salt (32 bytes)
Key:32 bytes
IV:16 bytes
4.데이터 유출
GitLab로 업로드
POST hxxps://gitlab(.)com/api/v4/projects/.../repository/files/...
PRIVATE-TOKEN 사용
base64 인코딩 후 업로드
공격자가 GitLab을 데이터 수집 서버(C2)로 사용

악성코드 가 생성한 PDF 파일
악성코드 가 생성한 PDF 파일

PDF 내용

북한은 미중 경쟁+러우 전쟁:신냉전 구조를 활용하여 외교 전략을 재편
목표는 핵보유국 지위 기정사실화+협상력 극대화
최근에는 단순 대응에서 벗어나 능동적 다극화 전략으로 전환
남북관계는 당분간 적대적 두 국가+차가운 평화 상태 유지
해당 악성코드 PDF 파일 내용을 대충 보면 러시아-우크라이나 전쟁 과 북한의 외교 전략 인것을 위장해서 대북 관계자를 노린 것으로 추측할 수가 있음

공유하기

facebook twitter kakaoTalk kakaostory naver band