SOC Prime Bias: 중간

27 4월 2026 18:17

가짜 문서, 실제 접근: Foxit 사칭으로 은밀한 VNC 제어 가능

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
가짜 문서, 실제 접근: Foxit 사칭으로 은밀한 VNC 제어 가능
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

위협 행위자들이 합법적인 Foxit PDF 설치 프로그램처럼 보이는 악성 실행 파일을 배포하고 있습니다. 이 가짜 설치 프로그램은 UltraVNC 구성 요소를 가짜 GPU 테마 디렉토리에 배치하고 Run 레지스트리 키를 통해 지속성을 유지하는 유해한 MSI 패키지를 가져옵니다. 설치되면, 맬웨어는 숨겨진 VNC 서버를 설정하고 악성 도메인으로 아웃바운드 연결을 시작하여 공격자에게 타겟 시스템에 대한 은밀한 원격 접속을 제공합니다.

조사

조사 결과, 다음과 같은 가짜 파일이 발견되었습니다: datei.exe and personalfoxypdf.msi, 이 파일은 UltraVNC를 C:intel-GPU에 다운로드 및 설치했습니다. 배치 스크립트는 네트워크 프로파일 GUID를 열거하고, 방화벽 예외를 생성하며, 고유 식별자를 IDD.txt에 기록하고, gpu.exe 를 시작하는 Run 레지스트리 항목을 추가했습니다. 연구원들은 또한 맬웨어가 강제로 hallonews.servemp3.com:5500에 연결하는 것을 관찰했고, rundll32.exe 를 강제 종료하고 피해자를 현혹시키기 위해 여권 이미지 미끼를 표시했습니다.

완화

조직은 응용 프로그램 허용 목록을 시행하고, 실행 전에 설치 프로그램 코드 서명을 검증하며, 신뢰할 수 없는 MSI 파일을 차단하고, 알려지지 않은 실행 파일을 가리키는 Run 레지스트리 항목을 모니터링해야 합니다. 또한 의심스러운 도메인으로의 아웃바운드 트래픽을 제한해야 합니다. 예상치 못한 설치 프로그램을 신뢰할 수 있는 소프트웨어로 가장한 위험에 대해 사용자 인식은 여전히 중요합니다.

대응 조치

이 활동이 감지되면, 즉시 영향을 받은 엔드포인트를 격리하고, UltraVNC 프로세스를 종료하며, C:intel-GPU 디렉토리 및 악성 Run 레지스트리 항목을 삭제하십시오. 잠재적으로 노출된 자격 증명을 재설정하고, 전체 포렌식 조사를 수행하며, 식별된 침해 지표를 포함하도록 탐지 규칙을 업데이트하십시오.

공격 흐름

시뮬레이션 실행

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

공격 서사 및 명령어

  1. 숨겨진 “intel‑GPU” 디렉토리 생성 합법적인 GPU 공급업체 경로를 모방하기 위해.
  2. 악성 페이로드 배포 (gpu.exe, UltraVNC.ini등을 해당 디렉토리에 배치하십시오. 실행 파일은 위장하기 위해 이름이 변경된 UltraVNC 서버 바이너리의 복사본입니다.
  3. 배치 스크립트 배포 (gpu.cmd) 이것이:
    • 인바운드 VNC를 허용하는 방화벽 규칙 추가 (포트 5900).
    • 위해 VNC 서비스를 등록합니다 sc create.
    • 최소 설정을 기록합니다 UltraVNC.ini.
  4. 배치 스크립트를 실행합니다 사용하는 방법 cmd.exe (서명된 바이너리 프록시 실행).

이 단계들은 감지 규칙에 나열된 정확한 파일 생성 이벤트를 생성하고, 부가적인 프로세스 생성 및 방화벽 규칙 이벤트를 풍부하게 사용할 수 있습니다.

회복 시험 스크립트

# -------------------------------------------------
# 스텔스 VNC 제어 시뮬레이션 - PowerShell
# -------------------------------------------------
# 1. 숨겨진 디렉토리 준비
$targetDir = "$env:ProgramDataintel-GPU"
if (-Not (Test-Path $targetDir)) {
    New-Item -Path $targetDir -ItemType Directory -Force | Out-Null
    # 폴더 숨김 (옵션)
    attrib +h $targetDir
}

# 2. 가짜 GPU 파일 배포 (데모용 양호한 자리를 차지하는 파일)
$files = @("gpu.txt","gpu.exe","gpu.cmd","UltraVNC.ini","IDD.txt")
foreach ($f in $files) {
    $path = Join-Path $targetDir $f
    Set-Content -Path $path -Value "Placeholder for $f" -Encoding ASCII -Force
}

# 3. 최소 UltraVNC.ini 기록 (진짜 설정은 더 광범위합니다)
@"
[VNC]
Password=redteam
"@ | Set-Content -Path (Join-Path $targetDir "UltraVNC.ini") -Encoding ASCII -Force

# 4. 서비스 등록 및 방화벽 규칙 추가를 위한 배치 스크립트 생성
$batchPath = Join-Path $targetDir "gpu.cmd"
@"
@echo off
rem VNC를 위한 방화벽 규칙 추가 (포트 5900)
netsh advfirewall firewall add rule name=`"UltraVNC`" dir=in action=allow protocol=TCP localport=5900
rem UltraVNC 서비스 등록 (이름이 변경된 실행 파일 사용)
sc create UltraVNC binPath= `""$targetDirgpu.exe`"" start= auto
"@ | Set-Content -Path $batchPath -Encoding ASCII -Force

# 5. cmd.exe를 통해 배치 스크립트 실행 (서명된 바이너리 프록시)
Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$batchPath`"" -WindowStyle Hidden -Wait

Write-Host "스텔스 VNC 시뮬레이션 완료."

정리 명령어

# -------------------------------------------------
# 스텔스 VNC 아티팩트 정리
# -------------------------------------------------
$targetDir = "$env:ProgramDataintel-GPU"

# 방화벽 규칙 제거
netsh advfirewall firewall delete rule name="UltraVNC" > $null 2>&1

# 서비스 삭제
sc stop UltraVNC > $null 2>&1
sc delete UltraVNC > $null 2>&1

# 디렉토리와 모든 파일 제거
if (Test-Path $targetDir) {
    Remove-Item -Path $targetDir -Recurse -Force
}

Write-Host "정리 완료."