SOC Prime Bias: 높음

01 12월 2025 17:35

플레이 랜섬웨어, 그릭스바 정찰 캠페인에서 SentinelOne으로 위장

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
플레이 랜섬웨어, 그릭스바 정찰 캠페인에서 SentinelOne으로 위장
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 RDP를 통해 Windows 서버에 배포되는 맞춤형 .NET 정찰 유틸리티인 Grixba에 의존하는 Play 랜섬웨어 작전을 설명합니다. Grixba는 SentinelOne 실행 파일(GT_NET.exe)로 위장하며 스캔 출력을 ExportData.db에 저장합니다. 이 도구는 PIA VPN IP 주소와 통신하고 암호로 보호된 data.zip 아카이브를 생성합니다. 이러한 아티팩트를 조기에 식별하면 랜섬웨어 단계 전에 공격을 중단할 수 있습니다.

Play 랜섬웨어 공격 분석

Field Effect MDR은 C:UsersPublicMusic 에 떨어진 Grixba 바이너리를 관찰하였습니다. data.dat와 함께, GT_NET.exe 를 실행하고 inf_g.dll을 해독하기 위한 XOR 키를 추출합니다. 추가 분석에서는 정찰과 ExportData.db의 생성을 위한 명령줄 스위치를 노출하였습니다. 조사관들은 또한 data.zip.

의 잠금을 해제하는 데 필요한 하드코딩된 암호 요소를 복구했습니다.

권장 조치로는 신뢰할 수 있는 백업 유지, 소프트웨어의 신속한 패치, DNS 방화벽 사용, 안전한 VPN 사용 강제, MFA 적용 및 초기 정찰 활동을 감지하기 위한 MDR/XDR 플랫폼 활용이 포함됩니다. 팀은 Grixba에 관련된 독특한 아티팩트 및 실행 동작을 계속 감시해야 합니다.

대응

GT_NET.exe, data.dat, inf_g.dll 또는 ExportData.db가 감지되면 대응자는 엔드포인트를 격리하고, 변동성 증거를 수집하고, 포함된 값에서 ZIP 암호를 추출하고, 측면 이동 또는 랜섬웨어 대비 단계를 조사해야 합니다. 사고 대응자는 또한 관련 IP 주소를 차단하고 RDP 액세스 로그를 면밀히 검토해야 합니다.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef malware fill:#ff9999 classDef data fill:#ccffcc %% 노드 initial_access[“<b>행위</b> – <b>T1021.001 원격 서비스: RDP</b><br/>공격자는 RDP를 사용해 초기 접근을 획득하고 <b>GT_NET.exe</b>와 <b>data.dat</b>를 C:\Users\Public\Music 경로에 드롭합니다.”] class initial_access action tool_gt_net[“<b>악성코드</b> – <b>이름</b>: GT_NET.exe<br/><b>설명</b>: RDP 세션 중 드롭되는 사용자 정의 .NET 페이로드”] class tool_gt_net malware execution_obfusc[“<b>행위</b> – <b>T1027.007 동적 API 해석</b><br/>난독화된 .NET 도구가 Base64 및 XOR 인코딩을 사용해 기능을 은닉합니다.”] class execution_obfusc action discovery[“<b>행위</b> – <b>T1016 시스템 네트워크 구성 발견</b>, <b>T1018 원격 시스템 발견</b>, <b>T1595.001 능동 스캐닝: IP 블록 스캔</b><br/>Grixba가 내부 네트워크를 스캔하고 호스트, 소프트웨어, 실행 중인 프로세스를 열거합니다.”] class discovery action collection[“<b>행위</b> – <b>T1560.001 수집 데이터 아카이브: 유틸리티를 통한 아카이브</b><br/>수집된 결과를 ExportData.db에 기록한 뒤 비밀번호로 보호된 data.zip으로 압축합니다.”] class collection action credential_extraction[“<b>행위</b> – <b>T1140 파일 또는 정보의 역난독화/디코딩</b><br/>XOR 키를 디코딩하여 data.dat를 복호화하고 ZIP 비밀번호를 생성합니다.”] class credential_extraction action preparation[“<b>행위</b> – 다음 단계 준비<br/>권한 상승 및 취약점 악용을 위한 인텔리전스를 활용합니다.”] class preparation action %% 연결 initial_access u002du002d> |드롭| tool_gt_net tool_gt_net u002du002d> |실행| execution_obfusc execution_obfusc u002du002d> |수행| discovery discovery u002du002d> |이후 단계| collection collection u002du002d> |생성| credential_extraction credential_extraction u002du002d> |가능하게 함| preparation

공격 흐름

시뮬레이션 실행

필수 조건: Telemetry & Baseline Pre-flight Check가 성공해야 합니다.

이 섹션은 감지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 상세히 설명합니다. 명령과 서술은 식별된 TTP를 직접 반영하여 감지 논리가 기대하는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예시는 오진을 초래할 것입니다.

  • 공격 내러티브 및 명령:

    적은 손상된 워크스테이션에서 초기 기반을 확보했습니다. 측면 이동 전에 내부 네트워크를 매핑하기 위해 명령 및 제어 서버에서 Grixba 정찰 바이너리(GT_NET.exe)를 다운로드하고 Sigma 규칙이 겨냥한 인수 집합을 사용하여 이를 실행합니다. 선택된 인수-m:scanall -i:d는 도메인에 연결된 호스트를 모두 검색하도록 강제하며,-i:r-i:f는 각각 원격 공유와 파일 공유를 열거합니다. 이러한 인수는 툴의 기본 페이로드에 일반적이며, 탐지 규칙이 감시하는 고유한 명령줄 문자열을 생성합니다.

    단계:

    1. 툴 다운로드(테스트 폴더에서 복사하여 시뮬레이션).
    2. 각 타겟 인수 집합을 사용하여 바이너리를 실행하여각 경우에 규칙이 작동하도록 합니다.
    3. 프로세스를 잠시 실행 상태로 유지하여이벤트가 SIEM에 캡처되도록 합니다.
  • 회귀 테스트 스크립트:

    # 회귀 테스트 스크립트 – Grixba 정찰 도구 실행
    # ----------------------------------------------------
    # 가정 사항:
    #   • GT_NET.exe는 C:TempGT_NET.exe에 있습니다(실제 경로로 대체)
    #   • 바이너리를 호출할 수 있는 충분한 권한으로 실행 중
    # ----------------------------------------------------
    
    $exePath = "C:TempGT_NET.exe"
    
    if (-Not (Test-Path $exePath)) {
        Write-Error "GT_NET.exe를 $exePath에 찾을 수 없습니다. 중단."
        exit 1
    }
    
    # 1. -m:scanall -i:d로 실행
    Write-Host "`n[+] '-m:scanall -i:d'로 GT_NET.exe 실행 중..."
    Start-Process -FilePath $exePath -ArgumentList "-m:scanall -i:d" -WindowStyle Hidden -PassThru | Out-Null
    Start-Sleep -Seconds 5
    
    # 2. -i:r로 실행
    Write-Host "`n[+] '-i:r'로 GT_NET.exe 실행 중..."
    Start-Process -FilePath $exePath -ArgumentList "-i:r" -WindowStyle Hidden -PassThru | Out-Null
    Start-Sleep -Seconds 5
    
    # 3. -i:f로 실행
    Write-Host "`n[+] '-i:f'로 GT_NET.exe 실행 중..."
    Start-Process -FilePath $exePath -ArgumentList "-i:f" -WindowStyle Hidden -PassThru | Out-Null
    Start-Sleep -Seconds 5
    
    Write-Host "`n[+] 실행 완료. SIEM에서 탐지 여부를 확인하세요."
  • 정리 명령:

    # 정리 - 남아 있는 GT_NET.exe 프로세스를 종료하고 바이너리를 제거하십시오.
    Get-Process -Name "GT_NET" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    $exePath = "C:TempGT_NET.exe"
    if (Test-Path $exePath) {
        Remove-Item $exePath -Force
        Write-Host "[+] GT_NET.exe가 제거되었습니다."
    } else {
        Write-Host "[*] GT_NET.exe가 존재하지 않음; 삭제할 것이 없음."
    }