SOC Prime Bias: 높음

22 Jul 2026 07:09 UTC

TAG-150의 진화하는 기술: DinDoor, DenoRAT, 및 NightshadeC2

Author Photo
SOC Prime Team linkedin icon 팔로우
TAG-150의 진화하는 기술: DinDoor, DenoRAT, 및 NightshadeC2
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

TAG-150은 Deno 기반 멀웨어를 중심으로 다단계 침투 체인을 사용하는 정교한 공격을 진행하고 있습니다. 이 캠페인은 ClickFix 스타일 사회 공학을 사용하여 MSI 설치 프로그램의 실행을 유도하며, 이는 DinDoor, DenoRAT, 궁극적으로는 NightshadeC2를 배포합니다. Deno 런타임을 활용함으로써 공격자는 고급 원격 액세스 및 정보 탈취 기능을 얻습니다.

조사

eSentire의 위협 대응 유닛은 한 금융 고객의 환경에서 ClickFix 스타일 명령어를 중단시켰습니다. 조사를 통해 Windows 실행 명령어로 시작된 감염 연쇄가 발견되었으며, AI로 생성된 PowerShell 단계가 뒤따랐습니다. Griffin20.ps1는 Deno 런타임을 설치하는 데 사용되었습니다. 나중에 DinDoor, DenoRAT 및 NightshadeC2 RAT를 배포하는 Python 기반 메모리 로더가 포함되었습니다.

완화

조직은 운영상 가능한 경우 그룹 정책 개체를 통해 Windows 실행 명령 프롬프트를 비활성화하는 것을 고려해야 합니다. ClickFix 스타일의 미끼 성공률을 줄이기 위해 강력한 피싱 및 보안 인식 교육 프로그램을 구현하는 것도 추천됩니다. 다음 세대의 안티바이러스 또는 엔드포인트 감지 및 대응 솔루션을 배포하는 것이 가시성, 감지 및 격리를 위한 필수 사항입니다.

대응

이 활동이 감지되면, 감염 연쇄를 억제하기 위해 영향을 받은 호스트를 즉시 격리해야 합니다. 조직은 24/7 관제 탐지와 대응 제공자 또는 동등한 사건 대응 팀을 고용해 빠른 억제 및 완전한 복구를 지원해야 합니다. 식별된 Deno 기반 멀웨어 구성 요소에 대한 지속적인 모니터링도 권장됩니다.

공격 흐름

시뮬레이션 실행

전제 조건: 테어어메트리 및 기본 상태 점검이 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 발동시키기 위해 고안된 적 기법(TTP)의 정확한 실행을 상세하게 설명합니다. 명령 및 설명은 반드시 식별된 TTP를 직접적으로 반영하고 탐지 논리에 의해 기대되는 정확한 데이터를 생성해야 합니다. 추상적이거나 관련 없는 예제는 오진을 초래할 것입니다.

  • 공격 서술 및 명령: 공격자는 Windows 호스트에 성공적으로 발판을 마련하고 DenoRAT 비콘을 활성화하려 시도하고 있습니다. 전통적인 서명 기반의 EDR을 회피하기 위해 멀웨어는 “Living-off-the-Land” 네트워크 패턴을 사용하며, 표준 HTTP/S를 통해 통신합니다. 멀웨어는 특정 엔드포인트로 GET 요청을 전송하여 C2 서버에 체크인하려 시도할 것입니다. /user and /message-event. 이 시뮬레이션은 비콘 동작을 모방해 SOC의 탐지 논리가 이 특정 문자열이 웹 액세스 로그에 나타날 때 발동되는지 확인합니다.

  • 회귀 테스트 스크립트:

     # DenoRAT C2 비콘 시뮬레이션 스크립트
      # 이 스크립트는 DenoRAT에 의해 사용되는 특정 HTTP GET 요청을 모의하여 탐지 규칙을 발동시킵니다.
    
      $C2_URL = "http://localhost" # 로컬 테스트 웹 서버 주소로 대체
      $Endpoints = @("/user", "/message-event")
    
      Write-Host "[+] DenoRAT C2 시뮬레이션 시작..." -ForegroundColor Cyan
    
      foreach ($Endpoint in $Endpoints) {
          $Target = $C2_URL + $Endpoint
          Write-Host "[*] C2 체크인 시뮬레이션: $Target" -ForegroundColor Yellow
          try {
              # GET 요청 실행
              $Response = Invoke-WebRequest -Uri $Target -Method Get -ErrorAction SilentlyContinue
              Write-Host "[+] 요청 발송 완료. 상태 코드: $($Response.StatusCode)" -ForegroundColor Green
          }
          catch {
              # 엔드포인트가 실제로 존재하지 않으면 404가 예상되므로, 이는 테어어메트리를 테스트하기에 적합합니다.
              Write-Host "[!] 요청 발송 완료 (예상 404/연결 오류): $_" -ForegroundColor Gray
          }
          Start-Sleep -Seconds 2
      }
    
      Write-Host "[+] 시뮬레이션 완료." -ForegroundColor Cyan
  • 정리 명령:

     # 시뮬레이션 스크립트에 의해 지속적인 변경이 이루어지지 않습니다.
      # 필요한 경우 웹 서버 로그를 정리하기 (주의: 로그를 삭제합니다!):
      # Remove-Item -Path "C:inetpublogsLogFilesW3SVC1*.log" -Force
      Write-Host "[+] 정리: 지속적인 증거가 생성되지 않았습니다." -ForegroundColor Green