SOC Prime Bias: 심각

06 11월 2025 09:01

“EndClient RAT” – 새로운 Kimsuky APT 악성코드

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
“EndClient RAT” – 새로운 Kimsuky APT 악성코드
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

EndClient RAT 분석

EndClient RAT는 최근에 관찰된 원격 접속 트로이 목마로, 서명된 바이너리 또는 스크립트 드로퍼(도난당한 코드 서명 인증서를 사용하여 SmartScreen/AV를 회피함)를 통해 도착하며, 원격 셸/명령 실행, 파일 업로드/다운로드, 지속성, HTTP(S)를 통한 C2를 제공하고, 현재까지 낮은 탐지율을 보였으며, IOC와 함께 초기 기술 보고서에 문서화되었습니다.

즉각적인 조치로는 파일 해시 및 인증서 일련 번호 수집, 알려진 C2 도메인/URL 차단, 예상치 못한 코드 서명 인증서의 취소 또는 고정, 애플리케이션 화이트리스트 활성화, 이메일/첨부 파일 제어 강화 및 비정상적 서명 실행 파일 사냥하기 포함됩니다.

조사

기술 분석은 다음 ATT&CK 기술을 드러냅니다: T1059.003 (명령-셸을 숨겨진 cmd.exe 및 명명된 파이프를 통해), T1105 (도구 전송을 다운로드/업로드 명령을 통해 유입하기), T1569.001 (프로세스 생성하기), T1053.005 (지속성을 위한 예약된 작업), T1027 (암호화/저장된 파일 – AutoIT 스크립트 컴파일 및 Avast 발견 시 다형성 변이), T1547.009 (단축 아이콘 수정 – 시작 시 LNK), T1543.003 (Windows 서비스 – schtasks.exe를 hwpviewer.exe로 복사하기), T1036.005 (위장 – 도난당한 인증서를 사용하는 서명된 MSI), T1574.001 (실행 흐름 장악 – DLL 호출), T1129 (공유 모듈 – Base64, LZMA, 이진 검색에 공통 메모리 스텁 사용). RAT는 전역 뮤텍스(GlobalAB732E15-D8DD-87A1-7464-CE6698819E701)를 사용하여 여러 인스턴스를 방지하고, Avast AV를 확인하며, 매분마다 실행되는 “IoKlTr”라는 예약 작업을 생성하고, 파일을 C:UsersPublicMusic에 드롭합니다. 네트워크 C2는 TCP를 통해 116.202.99.218:443로 수행되며, “endClient9688” 및 “endServer9688″라는 센티넬 프레임 JSON 마커를 사용합니다.

완화

서명되지 않았거나 의심스러운 MSI 설치 프로그램, 특히 도난당한 인증서로 서명된 MSI 설치 프로그램의 실행을 차단하십시오. “IoKlTr” 또는 이와 유사한 이름의 예약 작업 생성 및 시작 폴더 내 LNK 파일(e.g., Smart_Web.lnk)에 대한 모니터링 및 경고를 설정합니다. 전역 뮤텍스 값 및 AutoIT 바이너리(AutoIt3.exe)의 사용을 탐지합니다. 네트워크 방출 필터링을 시행하여 C2 IP 116.202.99.218 및 사용자 정의 JSON 마커를 사용하는 모든 트래픽을 차단합니다. 컴파일된 AutoIT 스크립트를 검사하고 다형성 파일 변이를 탐지할 수 있는 엔드포인트 보호를 배포합니다. 손상된 인증서에 대한 코드 서명 검증 및 취소를 구현합니다.

응답

감염이 의심될 경우, 영향을 받은 호스트를 격리하고, 포렌식 분석을 위해 메모리 덤프와 MSI 파일을 수집하며, 예약된 작업 정의, LNK 파일 및 뮤텍스 목록을 캡처하십시오. 드롭된 모든 바이너리를 해시하고 알려진 IOC와 비교하십시오. 예약된 작업을 제거하고, LNK 단축 아이콘을 삭제하며, RAT와 관련된 C:UsersPublicMusic의 파일을 삭제하십시오. C2 IP를 차단하고 방화벽 규칙을 업데이트하십시오. 환경 전반에 걸쳐 뮤텍스, 명명된 파이프 패턴 및 사용자 정의 JSON 마커에 대한 지표 사냥을 수행하십시오. 관련 이해당사자에게 결과를 제공하고, 영향을 받은 인권 단체에 알리는 것을 고려하십시오.

graph TB %% 클래스 정의 classDef technique fill:#99ccff classDef process fill:#ffdd99 classDef discovery fill:#ddffdd classDef exfil fill:#ffcc99 classDef c2 fill:#ff99cc %% 노드 A[“<b>기법</b> – <b>T1210 원격 서비스 악용</b><br/>포트 8530/8531에서 인증되지 않은 WSUS 역직렬화”] class A technique B[“<b>기법</b> – <b>T1059.003 명령 실행</b><br/>wsusservice.exe 또는 w3wp.exe가 cmd.exe를 생성”] class B process C[“<b>기법</b> – <b>T1059.001 PowerShell</b> 및 <b>T1027.009 난독화된 파일 또는 정보</b><br/>Base64로 인코딩된 페이로드를 디코딩 후 실행”] class C process D1[“<b>기법</b> – <b>T1033 시스템 소유자/사용자 탐색</b><br/>명령: whoami”] class D1 discovery D2[“<b>기법</b> – <b>T1087.002 도메인 계정 탐색</b><br/>명령: net user /domain”] class D2 discovery D3[“<b>기법</b> – <b>T1016 네트워크 구성 탐색</b><br/>명령: ipconfig /all”] class D3 discovery E[“<b>기법</b> – <b>T1567.004 웹훅을 통한 데이터 유출</b> (HTTP PUT, T1102.002)<br/>도구: Invoke‑WebRequest 또는 curl”] class E exfil F[“<b>기법</b> – <b>T1090.003 다중 홉 프록시</b> 및 <b>T1071.001 웹 프로토콜</b><br/>명령 및 제어 트래픽”] class F c2 %% 연결 A u002du002d>|악용| B B u002du002d>|생성| C C u002du002d>|실행| D1 C u002du002d>|실행| D2 C u002du002d>|실행| D3 D1 u002du002d>|수집| E D2 u002du002d>|수집| E D3 u002du002d>|수집| E E u002du002d>|전송| F

공격 흐름

CVE-2025-59287 시뮬레이션

시뮬레이션 실행

사전조건: Telemetry & Baseline 비행 전 점검이 통과해야 합니다.

  • 공격 서사 및 명령어:

    1. 서명된 MSI를 전달하십시오 (StressClear.msi) 피해 호스트에.
    2. MSI를 실행하십시오 조용히, 내장된 AutoIt 스크립트(payload.au3).
    3. AutoIt 스크립트는 AutoIt3.exe,를 실행하여 숨김 cmd.exe 를 열어 역방향 셸을 열었습니다.
    4. 지속성을 설정하기 위해, 스크립트는 정품 schtasks.exe 를 C:WindowsTemphwpviewer.exe 로 복사하고 시스템 시작 시 이 이름 변경된 바이너리를 호출하는 예약된 작업을 등록합니다.
    5. 숨겨진 cmd.exe 프로세스는 인수 hidden 와 함께 시작하여 사용자 가시성을 피하며, 규칙의 제외 기준에 따라 올바르게 생략됩니다.
  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # EndClient RAT Delivery & Execution Simulation
    # -------------------------------------------------
    # 1. 서명된 MSI 설치(AutoIT 페이로드 제공)
    msiexec /i "C:TempStressClear.msi" /quiet /norestart
    
    # 2. 추출된 AutoIt 스크립트 찾기(시뮬레이션 경로)
    $autoitScript = "C:ProgramDataStressClearpayload.au3"
    
    # 3. AutoIt3.exe와 함께 스크립트 실행
    $autoItExe = (Get-Command "AutoIt3.exe" -ErrorAction SilentlyContinue).Source
    if (-not $autoItExe) {
        Write-Error "AutoIt3.exe not found on system. aborting."