복잡해진 실행 흐름, 김수키 LNK 공격의 변화

최근 김수키(Kimsuky) 그룹이 유포하는 악성 LNK 파일에서 눈에 띄는 변화가 포착됐다. 파이썬(Python) 기반 백도어 또는 다운로더 악성코드가 실행되는 흐름은 기존과 유사하지만, 실제 실행 과정에서는 한층 복잡해진 다층적 구조가 적용된 것이 특징이다. 또한, 정상 클라우드 서비스를 악용하고, 파이썬 기반 악성코드를 통해 탐지를 회피하려는 시도도 확인됐다. 외형만으로는 식별이 어려운 만큼 사용자 주의가 더욱 중요해지고 있다. 이번 글에서는 변화된 유포 방식과 주요 특징, 그리고 공격 흐름을 알아보자.

 

 

 

[표 1] 과거와 최근 유포 방식 변화

 

1. 과거 LNK 유포 방식
1-1. 초기 실행
기존 LNK 파일은 파워셸(PowerShell) 스크립트를 통해 외부 URL에서 BAT 파일을 다운로드하는 방식으로 동작한다.

  • URL: hxxps://qugesr[.]online/m/bDw

 

[그림 1] 악성 BAT 스크립트 파일

 

1-2. 중간 단계
다운로드된 BAT 파일은 ZIP 파일과 디코이 파일을 추가로 다운로드한다. 이후 분할된 ZIP 파일 조각을 각각 다운로드하고 병합해 하나의 압축 파일을 생성한다.

해당 압축파일에는 Python 스크립트, Python 인터프리터, XML 작업 스케줄러 파일(sch.db)이 포함돼 있으며, XML 파일을 기반으로 작업 스케줄러(Microsoft_Upgrade{10-9903-09-821392134})가 등록된다. 이후 작업 스케줄러에 의해 Python 스크립트가 실행되며, 최종적으로 파이썬 기반 백도어가 다운로드 및 실행된다.

 

[표 2] 추가 파일 다운로드

 

[그림 2] 정상 디코이 파일

 

2. 최근 LNK 유포 방식
2-1. 초기 실행
최근 유포된 LNK 파일인 “이력서(박성민).hwp.lnk” 및 “데이터 백업 및 복구 절차 수립 가이드(참고).lnk”는 과거에 유포된 사례와 동일하게 파워셸 스크립트를 실행하며, C:\windirr 경로에 숨김 및 시스템 속성을 가진 폴더를 생성한다. 이는 사용자의 일반적인 파일 탐색 과정에서 해당 경로가 노출되지 않도록 하기 위한 은닉 목적의 행위로 추정된다. 이후 해당 폴더에 LNK가 담고 있던 파일들을 생성 및 실행한다. 생성된 파일들 중에는 정상 디코이 파일이 있으며, LNK 파일명을 그대로 사용하는 HWP 문서가 생성된다.

 

 

 

[그림 3] 정상 디코이 파일

 

[표 3] 파일별 기능

 

2-2. 중간 단계
XML 파일을 기반으로 작업 스케줄러가 생성된다. 작업 스케줄러 이름은 GoogleUpdateTaskMachineCGI__{56C6A980-91A1-4DB2-9812-5158E7E97388}로 설정했다. XML 파일 내부에는 wscript.exe /b “C:\windirr\11.vbs” 명령어를 2025-08-26 15:17부터 17분 간격으로 계속 실행하는 작업 스케줄러가 정의돼 있다. 작업 스케줄러에 의해 11.vbs 파일이 실행되면 C:\windirr\pp.ps1 파일이 실행된다.

 

[그림 4] 등록된 작업 스케줄러

 

pp.ps1 파일은 C:\Users\Public\Documents\tmp.ini 파일을 생성한 뒤, [표 2]에 기재된 정보를 해당 파일에 저장한다. 공격자는 Dropbox 서비스를 정보 전송용 C2 채널로 사용했으며, 탈취된 정보는 <userdomain>_<날짜>_info.ini 형식의 파일명으로 업로드된다. 또한, 공격자 Dropbox 계정에 존재하는 zzz09_test.db_sent 파일을 다운로드해 C:\Users\Public\Music\hh.bat 경로에 저장한 후, cmd.exe /c C:\Users\Public\Music\hh.bat 명령으로 이를 실행한다.

 

[표 4] 탈취 정보

 

[그림 5] pp.ps1 코드 중 일부

 

hh.bat 파일은 아래 URL에서 분할된 두 개의 ZIP 파일 조각을 각각 다운로드한 후 병합해 %TEMP%\G9081234.zip 경로에 하나의 ZIP 파일로 생성한다. 이후 해당 ZIP 파일을 C:\winii 경로에 압축 해제한다. 압축 파일 내부에는 XML 작업 스케줄러 파일(norton.db)과 파이썬 백도어 파일(beauty.py)이 포함돼 있다.

 

[표 5] 추가 파일 다운로드

 

[그림 6] hh.bat 코드 중 일부

 

최종 파이썬 백도어 파일은 XML 작업 스케줄러 파일을 통해 실행된다. hh.bat 파일은 GoogleExtension{02-2032121-098}이라는 작업 스케줄러 이름으로 C:\winii\beauty.py 파일을 실행하도록 작업을 등록하며, 이를 통해 파이썬 백도어가 실행된다.

 

3. 파이썬 악성코드
파이썬 기반 악성코드는 두 개의 유형으로 확인된다. 외부 서버에서 추가 페이로드를 내려받는 다운로더, 다른 하나는 공격자의 명령을 원격으로 수행하는 백도어이다.

3-1. 백도어
백도어는 C2 서버인 45.95.186[.]232:8080 “HAPPY” 문자열을 가진 패킷을 전송한다. 이는 감염된 사실을 알리기 위한 목적으로 추정된다. 이후 매직 바이트(0x99 0x0A 0xBD 0x99) 기반의 고정 크기(4096바이트) 커스텀 프로토콜로 통신하며, 명령 코드에 따라 다음과 같은 기능을 수행한다.

  • 쉘 명령 실행
  • 드라이브 목록 조회
  • 파일 업로드 및 다운로드
  • 파일 삭제(삭제 전 랜덤 데이터 덮어쓰기) 및 실행(.exe, .bat, .vbs)

실제 분석 과정에서 드라이브 정보, 네트워크 설정(ipconfig 사용), 실행 중인 프로세스 정보(tasklist 사용)를 확인하는 동작이 관찰됐다.

 

[그림 7] 공격자 명령에 따른 기능 분기

 

[표 6] 명령에 따른 기능

 

[표 7] 공격자가 전달한 명령어

 

3-2. 다운로더
다운로더는 공격자가 운영하는 서버에 접속하여 VBS 및 BAT 파일을 %TEMP% 경로에 저장한 뒤, CREATE_NO_WINDOW(0x08000000) 플래그를 적용하여 콘솔 창 없이 백그라운드로 실행한다. 180초 대기 후 두 파일을 삭제하여 흔적을 제거한다.

 

[그림 8] 파이썬 다운로드 코드 중 일부

 

4. 김수키 공격 그룹 특징
4-1. XML 파일 기반 작업 스케줄러 등록
과거 김수키 그룹이 RAT 악성코드를 유포할 당시 사용했던 작업 스케줄러의 작업명과, 이번 백도어 유포 과정에서 사용된 작업 스케줄러의 작업명이 서로 유사한 점이 확인됐다.

 

[표 8] 작업 스케줄러의 작업명 유사성

 

4-2. 유사한 XML 파일명
과거 김수키 그룹은 sch_*.db 형태의 XML 파일을 작업 스케줄러 등록에 활용한 정황이 포착됐다.

 

[표 9] XML 파일명의 유사성

 

4-3. 기존 공격에서 사용된 디코이 파일과 동일한 파일 사용
과거 김수키 그룹이 사용했던 디코이 파일이 이번 LNK 파일에서도 사용됐다.

 

[그림 9] 과거 김수키 그룹이 사용한 정상 디코이 파일

 

 

5. 결론
이번 사례에서는 기존과 유사한 공격 흐름을 유지하면서, 중간 실행 단계에서 구조적인 변화가 확인됐다.

또한 Dropbox와 같은 정상 클라우드 서비스가 정보 전송 및 파일 다운로드 경로로 사용됐으며, 파이썬을 이용해 진단 회피를 시도한 것이 특징이다. 이 같은 변화는 공격 흐름의 큰 틀은 유지하되, 세부 구현을 지속적으로 변형해 탐지를 우회하려는 공격자의 전술적 특징을 보여준다.

문서 파일로 위장한 LNK 파일은 외형만으로는 악성 여부를 판단하기 어렵다. 따라서 출처가 불분명한파일은 항시 경계하고 함부로 실행해서는 안 된다.

 

 

출처 : AhnLab

02-553-2331
견적 요청
카카오톡 문의