오늘은 북한 해킹 조직 김수키(Kimsuky)에서는 만든 전문의약품 제약 회사를 노리는 악성코드-화이트 생명과학 ERP 사양서 에 대해서 알아보겠습니다.
일단 ERP 사양서는 회사의 업무를 컴퓨터 프로그램으로 옮기려고 누가, 언제, 어디서, 어떤 자료, 어떻게 처리할지를 상세히 기록한 문서라고 생각을 하시면 됩니다. 일단 해당 업체는 전문의약품과 일반 의약품을 생산하는 전문 의약품 생산 업체로 속여서 아마도 다른 곳을 노린 것이 아닐까? 생각이 됩니다.
파일명: 화이트 생명과학 ERP 사양서.lnk
사이즈:1 MB
MD5:5c3bf036ab8aadddb2428d27f3917b86
SHA-1:e9c16aa2e322a65fc2621679ca8e7414ebcf89c0
SHA-256:d4c184f4389d710c8aefe296486d4d3e430da609d86fa6289a8cea9fde4a1166
악성코드 분석

1.엑셀 파일로 위장
commandlinearguments에는 매우 긴 cmd.exe 과 PowerShell 실행
dir 명령으로 PowerShell 경로를 찾고 call %a 로 실행하고 PowerShell 실행 목적
iconlocation:.xlsx 는 바로 가기가 Excel 문서처럼 보이도록 위장
사용자는 실제로는 .lnk 바로가기 를 실행하지만, 겉으로는. xlsx 문서처럼 보이게 하는 것이 특징
[소프트웨어 팁/보안 및 분석] - 윈도우에서 파일 확장자 표시 방법
윈도우에서 파일 확장자 표시 방법
오늘은 윈도우에서 파일 확장자를 표시하는 방법에 대해 알아보겠습니다. 일단 해당 파일 확장자를 표시를 안하더하도 컴퓨터를 사용하는 데에는 문제가 되지 않습니다. 다만, 해당 파일 확장
wezard4u.tistory.com
2.XOR 난독화
XOR 0xC7 로 복호화하고 C:\sysconfigs 에 저장하고 schtasks 예약 작업을 통해 지속 실행되도록 등록
3.SysWOW64 PowerShell 사용 의미
System32=64비트 바이너리
SysWOW64=32비트 바이너리
즉 64비트 Windows에서 32비트 PowerShell 을 실행 목적
4.PowerShell 코드 역할
실행 위치 확인
특정 크기의 .lnk 파일 찾기
LNK를 바이너리로 열기
미끼 xlsx 추출
C:\sysconfigs 생성 및 은닉
payload 3개 추출
예약 작업 생성 및 실행
5.현재 위치 확인과 TEMP fallback
$GoL에는 현재 작업 디렉터리가 포함
System32
Program Files
검색 위치를 %temp% 로 변경
fallback 경로 사용
%temp% 표기
cmd.exe 안에서 PowerShell 문자열로 전달
실행 전에 cmd.exe 가 %temp% 를 실제 TEMP 경로로 확장할 수가 있음
6.자기 자신 LNK 검색 방식
0x5A27 을 10진수로 변경
0x5A27 = 23079 bytes
크기가 정확히 23,079바이트인 .lnk 파일을 찾음
7.LNK를 파일 컨테이너 사용
$bDoT 는 .lnk 파일을 읽기 위한 파일 스트림
Seek() 를 사용
LNK 본문:0x00000000,0x11CA
미끼 파일:0x000011CA,0x2570,XLSX 데이터->.xlsx로 저장 후 실행
예약 작업 XML:0x0000373A,0x0D66 Task Scheduler XML->파일로 저장 후 schtasks create xml에 사용
PowerShell 페이로드:0x000044A0,0x13F1->XOR 인코딩된 PS1 0xC7로 XOR 복호화 후 .ps1로 저장
JavaScript 페이로드:0x00005891,0x0196->XOR 인코딩된 JS 0xC7로 XOR 복호화 후 .js로 저장
파일 끝:0x00005A27 전체 LNK 종료 위치 파일 크기 검증

8.첫 번째 미끼 Excel 파일
의미
LNK 내부 0x11CA 위치에서 0x2570 바이트를 읽어들임
해당 데이터를 원본 LNK와 같은 이름의 .xlsx 파일로 저장
예를 들어서
원본: 화이트 생명과학 ERP 사양서.lnk
생성:화이트 생명과학 ERP 사양서.xlsx
실제로 Excel 문서가 열리는것을 확인 가능
앞서 이야기 한것 처럼 LNK는 아이콘도 Excel 문서처럼 보이게 설정되어 있음
사용자로서는 .lnk 인지 알아차리기 어려움 특히 Windows에서 알려진 파일 형식의 확장명 숨기기 옵션이 켜져 있으면 더 위험 그러니 반드시 해당 부분은 윈도우 설정에서 변경
9.예약 작업 XML
생성 폴더
C:\sysconfigs
낚시용 폴더 정상 시스템 설정 폴더처럼 보이게 한 이름
XML 추출
Task Scheduler XML
10.PowerShell 스크립트
저장 파일명
파일명은 두 조각으로 분기
opakib.p
s1=opakib.ps1
최종 경로
C:\sysconfigs\opakib.ps1
XOR 복호화
보안 제품에서 .ps1 같은 문자열이 탐지되는 것을 막으려고
11. JavaScript 스크립트
C:\sysconfigs\copa08o.js
12.예약 작업 생성
schtasks /create /tn "Avast Secure Browser VPS Differential Update Ex" /xml C:\sysconfigs\sop0ef903r /f
즉시 실행
Avast Secure Browser VPS Differential Update Ex:어베스트(Avast) 보안 브라우저가 사용하는 바이러스 데이터베이스(VPS) 업데이트
sop0ef903r 파일

C:\sysconfigs\copa08o.js를 wscript.exe로 반복 실행하도록 등록하는 지속성 확보 하기 위한 부분
copa08o.js 분석

copa08o.js는 PowerShell 페이로드 실행용 JS 런처
opakib.ps1 분석

Dropbox API를 C2처럼 사용하여 감염 PC 정보를 업로드하고, Dropbox에서 명령용 BAT 파일을 내려받아 실행하는 목적의 PowerShell
$sCoMoH = "h"+"tt":URL 문자열 조립용 접두어
IoK_RoCo4:RC4 암호화,복호화 함수
RoCo_EoNoC:문자열을 RC4 + Base64로 인코딩
OoOoOoOo_u:시스템 정보 수집 후 Dropbox 업로드
OoOoOoOo_r:Dropbox 파일 이름 변경
OoOoOoOo_d:Dropbox에서 BAT 명령 파일 다운로드 및 실행
메인 루틴:피해자 ID 생성, OAuth 토큰 발급,업로드,다운로드 실행

업로드
hxxps://content(.)dropboxapi(.)com/2/files/upload
RC4 함수 분석
S-box 초기화:$S = 0..255
KSA,Key Scheduling Algorithm:첫 번째 for ($i = ....
PRGA,keystream 생성:for ($k = .....
암호화,복호화:$Data[$k] -bxor .....
RC4는 XOR 기반 스트림 암호이므로 같은 함수로 암호화와 복호화가 모두 가능
pw093oKbG 키를 사용해서 공인 IP 주소, 프로세스 목록 암호화
암호화하지 않음
도메인@@사용자이름
OS 버전
정보 수집 및 업로드 함수
피해자 정보 수집->일부 인코딩->임시 파일 생성->Dropbox 업로드
날짜 및 시간 생성
Dropbox에 업로드되는 파일명 사용
도메인과 사용자이름 수집
조직 환경 여부, 사용자 계정명, 도메인 가입 여부를 파악하는 데 사용을 할 것임
공인 IP 수집
OpenDNS resolver를 이용해 현재 외부 공인 IP를 확인하는 방식
목적
피해자 외부 IP 식별
국가/ISP/조직 추정
NAT 뒤에 있는 환경 구분
감염 호스트 식별 보조
공인 IP는 바로 업로드하지 않고 RC4+Base64 처리
OS 버전 수집
공격자는 Windows 버전, 빌드, 호환 가능한 후속 페이로드 판단 목적 이며 Get-Process 전체 결과를 문자열로 변환하고 RC4 + Base 64 처리를 통해서 실행되고 있는 프로세스 목록 수집
올리기 되는 파일 구조는 다음입니다.
DOMAIN@@USERNAME
OS_VERSION
RC4_BASE64_PUBLIC_IP
RC4_BASE64_PROCESS_LIST
최종 URL
hxxps://api(.)dropboxapi(.)com/2/files/move_v2
Dropbox 다운로드 URL
hxxps://content(.)dropboxapi(.)com/2/files/download
요약
1.감염 시스템의 MAC 주소 기반 고유 ID 생성
2.Dropbox OAuth access token 발급
3.사용자명,도메인,OS 버전, 공인 IP, 프로세스 목록 수집
4.일부 수집 정보를 RC4+Base64로 인코딩
5.Dropbox에 피해자 정보 업로드
6.Dropbox에서 피해자별 명령 파일 다운로드 시도
7.다운로드 성공 시 BAT 파일로 저장 후 숨긴 실행
8. 실행한 명령 파일을 Dropbox에서 _call 이름으로 변경
LNK->XML->JS->PS1 방식으로 실행
아무튼, 이렇게 실행이 되고 있으므로 조심하는 습관을….
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
| Microsoft Edge(마이크로소프트 엣지)실행 시 모든 비밀번호를 메모리에 평문으로 저장 문제 발생 중 (0) | 2026.05.06 |
|---|---|
| Windows 11 KB5083769 업데이트 인해 백업 소프트웨어 오류 발생 (0) | 2026.05.05 |
| 정체를 알수 없는 APT 악성코드-NovaCX_Agency_Updated_2026047_091100_version_1_8.docx.lnk (0) | 2026.05.04 |
| 김수키(Kimsuky)에서 만든 악성코드-install.bat (0) | 2026.04.30 |
| 김수키(Kimsuky) KB 국민카드 사칭 악성코드-KB_202604.html.lnk (0) | 2026.04.24 |
| Kimsuky(김수키)에서 만든 악성코드-2026년 한국 에너지 기술개발산업 최종 평가 위원회 (0) | 2026.04.20 |
| 윈도우 10 KB5082200,윈도우 11 KB5083769 보안 업데이트 (0) | 2026.04.17 |
| 어도비 Acrobat 및 Reader 제로데이 취약점에 대한 긴급 패치 배포 (0) | 2026.04.16 |





