SOC Prime Bias: 높음

10 Jun 2026 20:37 UTC

MLTBackdoor의 기술 분석

Author Photo
SOC Prime Team linkedin icon 팔로우
MLTBackdoor의 기술 분석
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Zscaler ThreatLabz는 2026년 5월 새로운 악성코드 패밀리인 MLTBackdoor를 식별했습니다. 이 위협은 다단계 ClickFix 감염 체인을 통해 전달되며 랜섬웨어 운영자들이 초기 액세스를 구축하고 횡적 이동을 지원하기 위해 사용하는 것으로 보입니다. 악성코드는 강력한 난독화, 도메인 생성 알고리즘, Beacon Object File (BOF) 로더에 의존하여 실행 후 기능을 확장합니다. 네트워크 통신은 TLS로 암호화되어 있으며, 합법적인 Microsoft Delivery Optimization 트래픽과 유사하게 설계되어 정상적인 네트워크 행동에 녹아들도록 도움을 줍니다.

조사

분석은 감염 체인을 conhost.exe 도메인을 통해 다운로드한 압축 아카이브의 endpointdlp.dll RC4 암호화된 페이로드를 해독하여 MLTBackdoor 바이너리로 로드했습니다. 연구원들은 악성코드가 혼합 불린 산술, 제어 흐름 평탄화, 간접 시스템 호출 및 맞춤형 암호화 통신 프로토콜을 사용하여 분석 및 탐지를 방해한다고 발견했습니다. 내장된 BOF 로더는 운영자들이 메모리 내에서 추가 Cobalt Strike 스타일 모듈을 실행할 수 있게 합니다.

완화

수호자들은 식별된 명령 및 제어 도메인을 차단하고 관련된 DGA 패턴을 모니터링해야 합니다. 탐지는 또한 특정 사용자 에이전트 문자열과 /api/v1/telemetry 포트로 443발송되는 TLS 트래픽에 초점을 맞춰야 합니다. 보안 팀은 conhost.exe 에 기록된 인자들과 endpointdlp.dll 임시 디렉토리에서의 생성에 대해 의심스러운 사용을 주의 깊게 관찰해야 합니다. API 해싱과 간접 시스템 호출 사용에 대한 행동 기반 탐지는 MLTBackdoor 활동에 대한 가시성을 더욱 개선할 수 있습니다.

대응

MLTBackdoor 활동이 탐지되면 영향을 받은 엔드포인트를 즉시 격리하고 악성 프로세스를 종료하며 초기 로더에 의해 Temp 디렉토리에 떨어진 모든 파일을 제거하십시오. 조사원들은 이후 추가 BOF 모듈 또는 추가 페이로드에 대한 포렌식 검토를 수행해야 합니다. 잠재적으로 노출된 자격 증명은 재설정하고, 동일한 거래 수단을 사용한 횡적 이동 시도를 식별하기 위해 위협 헌팅을 확장해야 합니다.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 %% Nodes step_a["<b>기법</b> – <b>T1189 드라이브-바이 타협</b>: 공격자가 손상된 웹사이트를 방문할 때 악의적인 콘텐츠를 전송합니다.<br/><b>기법</b> – <b>T1204.001 사용자 실행: 악성 링크</b>: 피해자가 페이로드 실행을 유도하는 잘 만들어진 링크를 클릭합니다."] class step_a action step_b["<b>기법</b> – <b>T1659 콘텐츠 주입</b>: 합법적인 웹페이지에 악의적인 코드가 주입되어 방문자가 손상된 콘텐츠를 받게 됩니다."] class step_b action step_c["<b>기법</b> – <b>T1553.002 서명된 바이너리 프록시 실행 (Defender)</b>: 서명된 Microsoft Defender 바이너리를 사용하여 실행을 프록시합니다.<br/><b>기법</b> – <b>T1574.001 실행 흐름 하이재킹: DLL 검색 순서 하이재킹</b>: DLL 해결 순서를 조작하여 악성 코드를 로드합니다.<br/><b>기법</b> – <b>T1218 서명된 바이너리 프록시 실행</b>: 신뢰할 수 있는 서명된 바이너리를 통해 페이로드를 실행합니다."] class step_c action step_d["<b>기법</b> – <b>T1027.007 난독화/저장된 파일: 임베디드 페이로드</b>: 매크로 바이너리 분석 (MBA) 및 압축 파일 형식 (CFF)을 사용하여 탐지를 회피하기 위해 페이로드를 난독화합니다."] class step_d action step_e["<b>기법</b> – <b>T1497.001 가상화/샌드박스 회피: 시스템 검사</b>: 가상화된 환경을 검사합니다.<br/><b>기법</b> – <b>T1497.003 가상화/샌드박스 회피: 시간 검사</b>: 분석을 감지하기 위해 시간 검사를 사용합니다.<br/><b>기법</b> – <b>T1622 디버거 회피</b>: 디버거의 존재를 감지하고 행동을 변경합니다."] class step_e action step_f["<b>기법</b> – <b>T1568 도메인 이름 생성, 난독화 또는 변경</b>: 명령 및 제어를 위한 수많은 도메인 이름을 생성합니다.<br/><b>기법</b> – <b>T1104 웹 서비스 (백업 C2)</b>: 백업 통신 채널로 웹 서비스를 사용합니다."] class step_f action step_g["<b>기법</b> – <b>T1090 프록시</b>: 프록시를 통해 C2 트래픽을 경로화합니다.<br/><b>기법</b> – <b>T1205 트래픽 신호</b>: 합법적인 트래픽 내에 신호 정보를 인코딩합니다.<br/><b>기법</b> – <b>T1001.003 난독화/암호화된 네트워크 트래픽: 프로토콜 가장</b>: 사용자 에이전트를 스푸핑하여 정상 TLS 443 트래픽으로 가장합니다."] class step_g action step_h["<b>기법</b> – <b>T1105 인그레스 도구 전송</b>: 손상된 호스트에 네트워크를 통해 2단계 페이로드를 전송합니다."] class step_h action step_i["<b>기법</b> – <b>T1546.006 이벤트 트리거 실행: 컴포넌트 오브젝트 모델 하이재킹 (BOF 로더)</b>: 버퍼 오버플로 (BOF) 로더를 사용하여 비콘 오브젝트 파일을 로드하고 실행합니다."] class step_i malware %% Connections step_a –>|leads_to| step_b step_b –>|leads_to| step_c step_c –>|leads_to| step_d step_d –>|leads_to| step_e step_e –>|leads_to| step_f step_f –>|leads_to| step_g step_g –>|leads_to| step_h step_h –>|leads_to| step_i "

공격 흐름

시뮬레이션 실행

전제조건: 텔레메트리 및 기준 사전 비행 검사가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 유발하기 위해 설계된 적의 기술적 기법(TTP)의 정확한 실행을 설명합니다. 명령과 설명은 반드시 식별된 TTP를 직접 반영하고 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련이 없는 예제는 잘못된 진단을 초래할 수 있습니다.

  • 공격 내러티브 및 명령:

    1. 정찰 – DGA 도메인 해결 – 백도어는 DNS 쿼리를 생성합니다. hrs2y15sungu.com, 이는 내부 DGA에 의해 생성된 도메인입니다.
    2. 명령제어 접속 – TCP 소켓 열기 – PowerShell을 사용하여 공격자는 포트 443 (HTTPS)에서 해석된 IP에 대한 원시 TCP 연결을 생성하여 정상 트래픽에 섞입니다.
    3. 페이로드 검색 (T1105) – 동일한 소켓을 통해 백도어는 추가 모듈을 가져옵니다; 테스트를 위해 우리는 단순히 무해한 문자열을 보냅니다.

    이 단계들은 Sysmon Event ID 3 기록을 DestinationHostname = hrs2y15sungu.com와 만족시키며, 이는 Sigma 규칙의 선택 조건을 충족합니다.

  • 회귀 테스트 스크립트:

    # TC-20260610-A7B3Z – MLTBackdoor 명령제어 통신 시뮬레이션
    # -------------------------------------------------------
    # 1. 악성 도메인 해석 (시뮬레이션된 DGA 출력)
    $malDomain = "hrs2y15sungu.com"
    try {
        $ip = [System.Net.Dns]::GetHostAddresses($malDomain)[0].IPAddressToString
    } catch {
        Write-Error "Failed to resolve $malDomain – aborting test."
        exit 1
    }
    
    # 2. 해석된 IP로 포트 443에서 TCP 연결 열기
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($ip, $port)
    
    # 3. 무해한 페이로드 전송 (모듈 가져오기 시뮬레이션)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("TEST_PAYLOAD")
    $stream.Write($payload, 0, $payload.Length)
    
    # 4. 로그 생성을 보장하기 위해 잠시 연결 유지
    Start-Sleep -Seconds 5
    
    # 5. 정리
    $stream.Close()
    $client.Close()
    Write-Output "Simulation completed – connection to $malDomain ($ip:$port) closed."
  • 정리 명령:

    # 스크립트가 중단된 경우에 대비하여 남아 있는 소켓이 없는지 확인합니다
    Get-NetTCPConnection -RemotePort 443 |
        Where-Object { $_.RemoteAddress -eq (Resolve-DnsName hrs2y15sungu.com).IPAddress } |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }