로딩
티스토리 데이터 처리 중입니다.

국세청 사칭 김수키(Kimsuky) 에서 만든 악성코드-비밀번호.txt

 국세청 사칭 김수키(Kimsuky) 에서 만든 악성코드-비밀번호.txt

오늘은 국세청 사칭 김수키가 만든 악성코드인 비밀번호.txt에 대해 핵심 내용을 정리합니다. 파일명은 비밀번호.txt.lnk 이며 크기는 약 1MB이고 해시 정보로 MD5, SHA-1, SHA-256이 제시됩니다. 악성코드의 분석에 따르면 mshta.exe를 이용해 HTML 애플리케이션을 실행하고 hxxps://link24(.)kr/8Iy8Zbd 에서 파일을 다운로드합니다. 다운로드된 파일은 pwko.zip으로 위장되지만 실제로는 VBScript이며 파이썬으로 해석할 수 있습니다. 이 VBScript를 통해 Google Drive를 C2 및 페이로드 저장소로 활용하며 추가 파일을 다운로드하고 AES로 복호화한 뒤 DLL을 rundll32로 실행하는 로더가 작동합니다. 초기에는 WScript.shell COM 객체를 생성해 VBScript에서 Windows 명령을 숨김 창으로 실행합니다. first 실행 명령은 %temp% 로 이동하고 Google Drive에서 password.txt 를 내려받아 실행 및 열기를 시도합니다. 숨김 실행은 oShell.Run으로 구현됩니다.

다음으로 시스템 상태를 점검하는 흐름이 나타납니다. WinDefend 서비스의 상태를 확인하고 Defender가 중지된 경우 %localappdata%에 user.txt를 다운로드해 실행하려 시도합니다. 이후 sys.log를 Google Drive에서 다운로드하고 PowerShell에서 AES 복호화를 수행해 sys.dll 로 저장한 뒤 이를 rundll32로 로딩합니다. 이 외에도 pipe.log를 다운로드해 AES 복호화를 거쳐 pipe.zip을 만들고 압축 해제하는 분기가 존재합니다. 전반적으로 단순 다운로더를 넘어 암호화된 페이로드를 로컬에서 복호화하고 DLL 로딩으로 실행하는 구조가 특징입니다. 추가 페이로드는 VBScript와 WScript.Shell 명령 실행을 통해 유도되며, 네트워크 활동은 비공개화된 서버 URL을 포함해 다층적으로 은닉됩니다.

C2 경로와 지속성은 Google Drive의 파일 암호화 및 복호화 과정을 거쳐 실제 C2를 구성하는 방식으로 이루어집니다. 서버 주소는 스크립트 내부의 평문에 노출되지 않고 serverenc.log 를 통해 AES로 복호화되어 생성되며, 지속성은 Run 키 HKCU에 WindowsSecurityCheck 이름으로 등록됩니다. 샌드박스 회피를 위한 가상환경 탐지 문자열이 포함되며 탐지 시 자기 파일을 삭제하고 종료합니다. 수집 대상으로는 Chrome, Edge, Naver Whale, Firefox 등의 브라우저 암호와 쿠키, 지갑 관련 데이터가 포함되며 암호화폐 지갑 확장 ID를 하드코딩해 수집합니다. 또한 로컬 확장 설정과 IndexedDB를 수색해 지갑 시드와 키스토어를 노립니다.

업로드 방식은 파일을 XOR 0xFE 로 암호화한 뒤 multipart/form-data로 5MB 단위로 분할 전송하는 방식이 특징이며 네트워크에서 파일명 일부가 노출될 수 있지만 본문은 암호화됩니다. 백도어 기능은 무한 루프를 돌며 주기적으로 C2를 확인하고 추가 DLL 로더를 실행하며 C2 명령에 따라 파일을 업로드, 다운로드, 실행하는 구조를 갖습니다. GetAppKey 함수에서 Google Drive의 추가 페이로드를 수신하고, 지속성은 Run 키 및 Google Drive 링크, AES key와 IV를 포함한 다양한 IOC를 통해 유지됩니다. 키로거 모듈은 키 입력, 클립보드, 현재 활성 창 제목을 수집해 k.log에 저장하고 10ms 간격으로 다수의 가상키를 모니터링하며 창 제목 변화도 기록합니다. 이러한 수집 내용은 공격자가 어떤 프로그램이나 사이트에서 어떤 정보를 입력했는지 파악하게 합니다.

마지막으로 본 분석은 김수키 동무의 활동에 대한 기술적 묘사와 함께 악성 행위의 다층적 구성 요소를 확인하게 됩니다.