문서인 줄 알고 클릭했는데, 내 PC가 위험하다?
공격자는 사용자의 신뢰를 악용하기 위해 금융기관이나 공공기관의 안내문을 사칭하기도 한다. 최근 김수키(Kimsuky) 그룹이 이러한 안내문뿐만 아니라 투자 전략, 사업 협력 제안, 시장 분석 등 업무 관련 주제를 악용한 악성 LNK 파일로 정보 탈취형 악성코드 KimJongRAT을 유포하고, 정상 원격 관리 도구인 MeshAgent를 악용한 사례가 확인됐다. 특히 Windows Defender 서비스 상태에 따라 후속 악성코드의 실행 경로를 달리하는 것이 특징이다. 악성 파일은 어떻게 유포되고, 감염 이후에는 어떤 일이 벌어질까? 이번 공격의 주요 특징과 대응 방안을 살펴보자.

업무 문서로 위장한 악성 LNK 파일 유포
공격자는 주로 피싱 이메일에 포함된 링크를 통해 악성 LNK 파일을 다운로드하도록 유도하는 것으로 알려졌다. LNK는 Windows의 바로가기 파일 형식으로, 특정 프로그램이나 명령을 실행하는 데 사용된다. 공격자는 이러한 특성을 악용해 정상 문서처럼 보이는 파일에 악성 명령을 숨겼다.
이번 공격에서는 GitLab 저장소를 통해 다양한 악성 LNK 파일이 유포됐다. 확인된 악성 LNK 파일에는 디지털 자산, 블록체인, AI 등 특정 산업과 관련된 용어나 Korea, Korean 등 한국과의 연관성을 나타내는 표현이 영문 파일명에 사용됐으며, 한글로 작성된 파일명도 확인됐다. 일부 파일은 실제 확장자가 .lnk임에도 .pdf.lnk와 같은 이중 확장자를 사용해 PDF 문서로 오인하도록 위장하기도 했다.
사용자가 악성 LNK 파일을 실행하면 PowerShell이 호출되고, Windows의 정상 유틸리티인 mshta를 통해 외부 URL의 스크립트가 실행된다. 이후 pdfko.zip이 실행되는데, 이는 ZIP 확장자를 사용하지만 실제로는 난독화된 VBScript를 포함한 HTML 파일이다. 해당 스크립트는 디코이 문서를 다운로드해 실행한 뒤, 후속 악성코드를 생성하고 실행한다.

[그림 1] 디코이 문서 실행 화면
Windows Defender 상태에 따라 달라지는 악성코드 실행 방식
디코이 문서를 실행한 스크립트는 Windows Defender 서비스 상태를 확인하고, 그 결과에 따라 서로 다른 방식으로 후속 악성코드를 실행한다. 서비스가 활성화된 경우에는 PowerShell 기반 KimJongRAT을 실행하며, 비활성화된 경우에는 DLL 기반 로더를 통해 추가 악성 모듈을 실행하는 방식이다.
1. Windows Defender 서비스 활성화 시: PowerShell 기반 KimJongRAT 실행 (pipe.zip)
Windows Defender 서비스가 활성화된 것으로 판단되면 HTML 파일의 textarea 요소에 포함된 Base64 데이터를 디코딩해 pipe.zip 압축 파일을 생성한다. 이 파일에는 1.ps1, 1.log, 2.log 등 세 개의 파일이 포함돼 있다. 1.ps1은 전달받은 파일의 내용을 Base64 디코딩해 메모리에서 실행하는 역할을 한다. 1.log는 정보 탈취와 백도어 기능을 수행하는 KimJongRAT 계열의 PowerShell 스크립트이며, 2.log는 키 입력과 클립보드 내용을 수집하는 스크립트다.
KimJongRAT의 PowerShell 변형인 1.log가 실행되면 감염 시스템의 UUID를 식별자로 사용하고, 암호화된 설정 파일인 pserver.log를 다운로드한 뒤 AES로 복호화해 명령제어(C2) 서버 주소를 획득한다.
이후 가상 환경 여부를 검사하고 시스템 정보와 최근 문서 경로, 브라우저 로그인 데이터, 암호화폐 지갑 확장 프로그램 정보, Telegram·Discord 데이터, NPKI·GPKI 인증서 등을 수집한다. 또한 Windows 레지스트리의 자동 실행 항목에 WindowsSecurityCheck 값을 등록해 사용자가 로그온할 때 악성 PowerShell 스크립트가 실행되도록 지속성을 확보한다.
이어서 2.log를 실행해 키 입력과 클립보드 내용을 수집하고, C2 서버에 주기적으로 접속해 명령을 확인한다. 공격자는 C2 명령을 통해 특정 파일이나 폴더를 업로드하거나, 추가 파일을 다운로드하고, 전달한 명령을 실행할 수 있다.
특히 C2 서버로부터 appkey 명령을 수신하면 암호화된 appload.log 파일을 다운로드하고, AES로 복호화해 appload.dll을 생성한다. 이 DLL은 브라우저 정보 탈취 모듈과 정상 원격 관리 도구인 MeshAgent를 다운로드하고, 이를 정상 프로세스에 인젝션하는 로더 역할을 수행한다.
먼저 appload.dll은 64비트 및 32비트 환경에 대응하는 브라우저 정보 탈취 모듈을 각각 app, app32라는 이름으로 다운로드한다. 이후 해당 파일을 RC4로 복호화하고, Chrome 또는 Edge 프로세스를 생성한 뒤 복호화된 모듈을 인젝션한다.

[그림 2] 인젝션 대상 프로세스
브라우저 정보 탈취 모듈은 브라우저의 Local State 파일에서 암호화된 키 정보를 읽고, COM 인터페이스가 제공하는 복호화 기능을 호출한다. 복호화에 성공하면 획득한 키 정보를 파일로 저장한다. 또한 브라우저의 기본 프로필과 추가 프로필 경로를 탐색해 쿠키 데이터베이스(DB)를 복사한다. 이렇게 수집한 브라우저 키와 쿠키 DB는 압축 과정을 거쳐 상위 PowerShell 스크립트인 1.log에 의해 C2 서버로 전송된다.

[그림 3] 브라우저 프로필의 쿠키 DB 복사
이와 함께 MeshAgent도 악용한다. MeshAgent는 원격 화면 조회, 사용자 입력 제어, 명령 실행, 파일 접근 및 전송 등의 기능을 제공하는 도구다. 이번 공격에서는 appload.dll이 MeshAgent 실행 파일과 설정 파일을 다운로드한 뒤, Windows의 정상 작업 관리자 프로그램인 Taskmgr.exe를 별도 경로에 복사한다. 이후 복사한 파일로 프로세스를 생성하고 MeshAgent 페이로드를 인젝션하는 방식으로 정상 프로세스를 악용한다.
2. Windows Defender 서비스 비활성화 시: DLL 기반 악성코드 실행 (sys.dll)
Windows Defender 서비스가 비활성화된 경우에는 DLL 기반 로더인 sys.dll을 통해 후속 악성코드를 실행한다. 이 과정에서 스크립트는 Dropbox에서 user.txt와 sys.log 파일을 다운로드한 뒤, sys.log를 복호화해 sys.dll을 생성한다.
sys.dll은 추가 악성 모듈의 다운로드와 실행을 담당한다. 먼저 설정 파일인 user.txt의 첫 16바이트를 RC4 키로 사용해 나머지 데이터를 복호화한다. 복호화된 설정에는 브라우저 정보 탈취 모듈과 KimJongRAT 모듈을 다운로드하기 위한 네 개의 URL이 포함돼 있다.

[그림 4] user.txt 파일을 읽고 설정 데이터를 복호화하는 코드
이를 통해 64비트 및 32비트 브라우저 정보 탈취 모듈인 app, app32와 KimJongRAT 정보 탈취백도어 모듈 net, notepad.log를 다운로드한다.
app과 app32는 앞서 설명한 활성화 분기의 모듈과 동일한 기능을 수행한다. 한편 net과 notepad.log에 해당하는 파일은 각각 RC4로 복호화한 후 메모리에 로드돼 동작한다.
먼저 net은 KimJongRAT 계열의 정보 탈취 모듈이다. 브라우저 계정과 쿠키 데이터, 메일 계정 정보, 암호화폐 지갑 확장 프로그램 및 Exodus 지갑 데이터, Telegram·Discord 데이터, NPKI·GPKI 인증서 등을 수집한다. 이후 시스템 및 계정 정보 수집 결과를 micro.log에 저장하고, 수집한 파일들과 함께 압축해 micro.zip 파일을 생성한다.

[그림 5] 브라우저 로그인 정보 수집
생성된 micro.zip 파일은 백도어 모듈인 notepad.log를 통해 C2 서버로 전송된다. notepad.log는 원격 명령 실행, 파일 다운로드 및 업로드, 추가 모듈 다운로드, 정보 수집 결과 전송 등의 기능을 수행한다. 먼저 암호화된 설정 파일인 u.log를 다운로드해 복호화하고 C2 서버 주소를 확보한다.
이후 C2 서버의 명령에 따라 파일 목록을 수집하거나 추가 모듈을 다운로드하고, 파일을 송수신할 수 있다. 또한 MeshAgent 페이로드와 설정 파일을 수신하는 기능도 포함돼 있다. 이와 함께 키 입력과 클립보드 데이터를 수집하고, net 모듈이 생성한 micro.zip 파일과 함께 C2 서버로 전송한다.
지속성 확보를 위한 기능도 확인됐다. notepad.log는 Windows 레지스트리의 자동 실행 항목에 NetService 값을 등록해 사용자가 다시 로그온할 때 sys.dll이 재실행되도록 한다.
이처럼 이번 공격은 Windows Defender 서비스 상태에 따라 서로 다른 실행 경로를 사용하지만, 두 경로 모두 정보 탈취와 백도어 기능을 수행한다. 특히 PowerShell 기반 경로에서는 appload.dll을 통한 브라우저 정보 탈취와 MeshAgent 프로세스 인젝션이 확인됐으며, DLL 기반 경로에서는 sys.dll을 통해 정보 탈취 모듈과 백도어 모듈을 별도로 실행하고 수집한 데이터를 C2 서버로 전송하는 구조가 확인됐다.
기존 공격과의 연관성과 대응 방안
안랩은 이번 사례에서 지난 5월 확인된 김수키 그룹의 악성 LNK 유포 사례와 동일한 PowerShell C2 주소 및 MeshAgent 설정값을 확인했다. 이를 통해 기존 공격과의 연관성을 파악했다.
다만 유포 및 실행 방식에는 일부 변화가 있었다. 악성 LNK 파일의 유포 인프라가 GitHub에서 GitLab으로 변경됐으며, 일부 후속 파일의 다운로드에는 기존 Google Drive 대신 Dropbox가 사용됐다.
추가로, DLL 기반 백도어의 C2 주소도 달라졌다. 이는 공격자가 기존 공격 구조를 유지하면서 유포 인프라와 일부 실행 방식을 변경하고 있음을 보여준다.
이러한 공격에 대응하려면 출처가 불분명한 이메일이나 메시지에 포함된 링크를 통해 파일을 다운로드하지 않도록 주의해야 한다. 특히 PDF 등 정상 문서로 보이더라도 실제 확장자가 .lnk인 경우에는 실행하지 않아야 한다.
조직의 보안 담당자는 의심스러운 LNK 파일과 HTML 위장 파일의 수신·실행 흔적을 점검하고, 파워셸및 mshta를 통한 비정상적인 스크립트 실행 여부를 확인할 필요가 있다. 또한 브라우저 정보에 대한 비정상적인 접근, 정상 프로세스에 대한 악성 모듈 인젝션, MeshAgent의 비정상적인 배포·실행 흔적 등도 점검 대상이다.
의심스러운 파일을 수신했거나 관련 행위가 확인된 경우에는 보안 담당자를 통해 추가 조사를 진행하고 필요한 차단 조치를 수행해야 한다.
공유 등급: TLP:GREEN
본 콘텐츠는 AhnLab TIP에 게시된 위협 정보를 바탕으로, 독자가 쉽게 이해할 수 있도록 주요 내용을 요약·재구성한 자료입니다. 위협 관련 상세 정보는 AhnLab TIP에서 확인할 수 있습니다.
- AhnLab콘텐츠마케팅팀
