실제 소프트웨어 다운로드가 원격 백도어를 감출 수 있는 방법
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
공격자는 RustDesk 다운로드 사이트(rustdesk.work)와 비슷한 사이트를 운영하며 트로이 목마 설치 프로그램을 제공하고 있습니다. 이 프로그램은 정식 RustDesk 설치 프로그램에 악성 로더인 Winos4.0을 포함하고 있습니다. 실행 시, 드로퍼가 logger.exe and Libserver.exe를 설치하고, 백도어를 메모리에서 로드하여 디스크 아티팩트를 줄입니다. 이 이식물은 을 통해 명령 및 제어를 설정하여 207.56.13.76 로 TCP/5666을 통해 지속적인 원격 액세스를 가능하게 합니다. 이 활동은 사회 공학 및 브랜드 사칭에 의해 이뤄지며, RustDesk 소프트웨어의 취약점은 아닙니다.
조사
분석가들은 악성 바이너리 rustdesk-1.4.4-x86_64.exe 를 얻어 정식 RustDesk 설치 프로그램과 무기화된 logger.exe 을 디스크에 기록하는 것을 관찰하였습니다. 이 구성 요소는 logger.exe 컴포넌트를 생성하고, Libserver.exe그 후에 WinosStager DLL 및 대규모 메모리 내 페이로드를 디스크에 해당 모듈을 유지하지 않고 배치합니다. 네트워크 텔레메트리는 207.56.13.76:5666으로의 아웃바운드 통신이 캠페인의 C2 채널로 평가된다는 것을 확인했습니다. 조사관들은 변조된 도메인(rustdesk.work), 드롭된 파일명 및 관련 파일 해시를 포함한 주요 IOC를 추출했습니다.
대응 방법
확인된 소프트웨어 획득 관행을 시행하고 공식 소스 (rustdesk.com)에서만 RustDesk를 다운로드하십시오. 트러스트되지 않은 바이너리의 실행을 방지하기 위해 애플리케이션 허용 목록(또는 동등한 제어)을 적용하십시오. 특히 사용자 쓰기 가능 디렉토리에서 유래된 ‘설치 프로그램’ 파일이 주의가 필요합니다. Outbound 트래픽을 모니터링하고 제한하며, TCP/5666으로의 연결에 대한 감지/차단 규칙을 추가하십시오. rustdesk.workDNS, 프록시 및 방화벽 제어 시 207.56.13.76 및 악의적 도메인을 차단하십시오.
대응
의 실행을 감지하고, logger.exe and Libserver.exe으로의 네트워크 연결에서 경고를 생성하십시오. 207.56.13.76:5666트로이 목마 설치 프로그램(및 사용 가능한 SHA-256 지표)를 각 엔드포인트에서 능동적으로 탐색하고 RustDesk가 승인되지 않은 소스에서 설치되었는지 확인하십시오. 해킹이 확인된 경우, 영향을 받은 호스트를 격리하고 악의적 프로세스 트리를 종료하며 관련 아티팩트를 제거하고 잠재적으로 노출된 자격 증명을 회전시키십시오(특히 설치 중 또는 이후 원격 세션 동안 사용된 모든 계정).
“graph TB %% 클래스 정의 classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ffdd99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% 노드 action_initial_access[“<b>활동</b> – 초기 접근<br/><b>기술</b>: T1204 사용자 실행”] class action_initial_access action tech_user_execution[“<b>기술</b> – T1204 사용자 실행<br/>피해자가 악성 콘텐츠 실행”] class tech_user_execution technique tech_malicious_link[“<b>기술</b> – T1204.001 악성 링크<br/>링크가 악성 설치 프로그램 다운로드로 유도”] class tech_malicious_link technique tech_trojanized_installer[“<b>기술</b> – T1204.002 트로이 목마 설치 프로그램<br/>설치 프로그램이 합법적으로 보이지만 페이로드 포함”] class tech_trojanized_installer technique malware_logger_exe[“<b>악성 소프트웨어</b> – logger.exe<br/>입력을 캡처하고 특권 작업 수행”] class malware_logger_exe malware tech_process_masquerade[“<b>기술</b> – T1036.011 가장<br/>프로세스 이름이 합법적으로 보이도록 위장됨”] class tech_process_masquerade technique tech_argument_spoof[“<b>기술</b> – T1564.010 인수 위장<br/>명령줄 인수가 허위로 작성됨”] class tech_argument_spoof technique tech_tls_injection[“<b>기술</b> – T1055.005 지역 저장소 주입<br/>TLS를 통한 코드 주입”] class tech_tls_injection technique tech_appcert_dll[“<b>기술</b> – T1546.009 AppCert DLL 실행<br/>AppCert DLLs를 사용하여 자동 실행”] class tech_appcert_dll technique tech_permission_hijack[“<b>기술</b> – T1574.005 실행 흐름 하이재킹<br/>설치 파일 권한 약점을 악용”] class tech_permission_hijack technique action_defense_evasion[“<b>활동</b> – 방어 회피<br/>탐지를 피하기 위한 여러 기술들”] class action_defense_evasion action action_persistence[“<b>활동</b> – 지속성<br/>장기적인 거점 확립”] class action_persistence action tech_registry_rc[“<b>기술</b> – T1037.004 레지스트리 RC 스크립트<br/>레지스트리를 통한 스크립트 실행”] class tech_registry_rc technique tech_active_setup[“<b>기술</b> – T1547.014 액티브 설정<br/>액티브 설정을 통한 자동 시작”] class tech_active_setup technique tech_preos_boot[“<b>기술</b> – T1542 운영 체제 이전 부팅<br/>부팅 프로세스에 훅”] class tech_preos_boot technique action_credential_access[“<b>활동</b> – 자격증명 액세스<br/>사용자 자격증명 탈취”] class action_credential_access action tech_keylogging[“<b>기술</b> – T1056.001 키로깅<br/>키 입력 기록”] class tech_keylogging technique tech_credential_dump[“<b>기술</b> – T1003 운영 체제 자격증명 덤핑<br/>암호 해시 추출”] class tech_credential_dump technique action_collection[“<b>활동</b> – 수집<br/>사용자 데이터 수집”] class action_collection action tech_screen_capture[“<b>기술</b> – T1113 스크린 캡처<br/>스크린샷 찍기”] class tech_screen_capture technique tech_video_capture[“<b>기술</b> – T1125 비디오 캡처<br/>비디오 녹화”] class tech_video_capture technique tech_audio_capture[“<b>기술</b> – T1123 오디오 캡처<br/>오디오 녹음”] class tech_audio_capture technique action_c2[“<b>활동</b> – 명령 및 제어<br/>원격 서버와 통신”] class action_c2 action tech_nonstandard_port[“<b>기술</b> – T1571 비표준 포트<br/>TCP 포트 5666 사용”] class tech_nonstandard_port technique tech_ftp_style[“<b>기술</b> – T1071.002 FTP 스타일 프로토콜<br/>FTP처럼 트래픽 인코딩”] class tech_ftp_style technique tech_port_knocking[“<b>기술</b> – T1205.001 포트 노킹<br/>포트 시퀀스를 통해 C2 신호 전송”] class tech_port_knocking technique malware_memory_resident[“<b>악성 소프트웨어</b> – 메모리 내 레지던트 페이로드<br/>RAM에 직접 로드”] class malware_memory_resident malware tech_registry_hide[“<b>기술</b> – 레지스트리 숨김 설정<br/>레지스트리에 설정 저장”] class tech_registry_hide technique %% 연결 action_initial_access u002du002d>|사용| tech_user_execution tech_user_execution u002du002d>|포함| tech_malicious_link tech_user_execution u002du002d>|포함| tech_trojanized_installer tech_malicious_link u002du002d>|배달| malware_logger_exe tech_trojanized_installer u002du002d>|번들| malware_logger_exe malware_logger_exe u002du002d>|수행| tech_process_masquerade malware_logger_exe u002du002d>|수행| tech_argument_spoof malware_logger_exe u002du002d>|TLS 주입| tech_tls_injection malware_logger_exe u002du002d>|사용| tech_appcert_dll malware_logger_exe u002du002d>|악용| tech_permission_hijack malware_logger_exe u002du002d>|활성화| action_defense_evasion action_defense_evasion u002du002d>|확립| action_persistence action_persistence u002du002d>|사용| tech_registry_rc action_persistence u002du002d>|사용| tech_active_setup action_persistence u002du002d>|사용| tech_preos_boot action_defense_evasion u002du002d>|활성화| action_credential_access action_credential_access u002du002d>|사용| tech_keylogging action_credential_access u002du002d>|사용| tech_credential_dump action_defense_evasion u002du002d>|활성화| action_collection action_collection u002du002d>|캡처| tech_screen_capture action_collection u002du002d>|캡처| tech_video_capture action_collection u002du002d>|캡처| tech_audio_capture action_defense_evasion u002du002d>|활성화| action_c2 action_c2 u002du002d>|비표준 포트를 통한 통신| tech_nonstandard_port tech_nonstandard_port u002du002d>|프로토콜 사용| tech_ftp_style action_c2 u002du002d>|사용| tech_port_knocking malware_logger_exe u002du002d>|거주 중| malware_memory_resident malware_memory_resident u002du002d>|레지스트리 설정 저장| tech_registry_hide “
공격 흐름
탐지
RustDesk 로그 파일이 생성됨(file_event 통해)
보기
원격 액세스 소프트웨어 도메인 통신 시도로 인한 명령 및 제어 활동 가능성(dns 통해)
보기
대체 원격 액세스 / 관리 소프트웨어(process_creation 통해)
보기
탐지: 실제 소프트웨어 다운로드가 원격 백도어를 숨길 수 있는 방법(SourceIP 기반 IOCs)
보기
탐지: 실제 소프트웨어 다운로드가 원격 백도어를 숨길 수 있는 방법(HashSha256 기반 IOCs)
보기
탐지: 실제 소프트웨어 다운로드가 원격 백도어를 숨길 수 있는 방법(DestinationIP 기반 IOCs)
보기
Winos4.0 네트워크 활동의 명령 및 제어 서버를 통한 탐지(윈도우 네트워크 연결)
보기
Winos4.0 백도어를 이용한 Trojanized RustDesk 설치 프로그램(윈도우 프로세스 생성)
보기
시뮬레이션 실행
사전 요구 사항: 텔레메트리 및 기준 비행 전 점검을 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 발동하기 위해 설계된 적의 기법(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP에 직접적으로 반영되어 탐지 논리가 예상하는 정확한 텔레메트리를 생성해야 합니다.
-
공격 설명 및 명령:
- 전달 및 실행: 공격자는 트로이 목마 RustDesk 설치 프로그램(
rustdesk-1.4.4-x86_64.exe)을 피싱 이메일을 통해 전달합니다. 파일은%TEMP%에 저장되고 고급 권한으로 실행됩니다. - 페이로드 드롭: 실행 후, 설치 프로그램은 두 개의 악성 바이너리(
logger.exeandLibserver.exe)를 동일 디렉터리에 추출하고 즉시 자식 프로세스로 시작합니다. - 지속성 (T1546.016):
logger.exe런-키 항목(HKCUSoftwareMicrosoftWindowsCurrentVersionRun)을 작성하여, 재부팅 후에도 지속성을 보장합니다. - 코드 주입 (T1574.005 / T1055.005):
Libserver.exereflective DLL을explorer.exe에 주입하여 고도의 임무 실행 권한을 얻고 공격자의 C2에 역쉘을 엽니다. - 회피 (마스커레이딩 – T1036.011): 모든 바이너리는 합법적인 소프트웨어와 혼합하기 위해 “RustDesk” 명명을 유지합니다.
- 전달 및 실행: 공격자는 트로이 목마 RustDesk 설치 프로그램(
-
회귀 테스트 스크립트: 아래 스크립트는 1-3단계를 자동화하여 세 개의 필요한 프로세스 생성 이벤트를 생성합니다. PowerShell을 사용하여 사전 배치된 악성 바이너리(안전을 위해 양성 자리 표시자로 시뮬레이션됨)를 복사하고 올바른 부모-자식 관계로 실행합니다.
# ------------------------------------------------- # 시뮬레이션 스크립트 – 트로이 목마 RustDesk 설치 프로그램 # ------------------------------------------------- # 전제 조건: C:Malware에 두 개의 양성 자리 표시자 실행 파일 배치(logger.exe 와 Libserver.exe 명명) # 실제 레드 팀 테스트에서는 실제 악성 페이로드가 사용됩니다. # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" $loggerPath = "$payloadDirlogger.exe" $libserverPath = "$payloadDirLibserver.exe" # 1. 가짜 설치 프로그램 배포(양성 exe의 사본) Write-Host "[*] 가짜 RustDesk 설치 프로그램 배포 중..." New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force # 2. 페이로드 드롭 시뮬레이트 – 자리 표시자 바이너리 복사 Write-Host "[*] 페이로드 드롭 중..." Copy-Item -Path "C:Malwarelogger.exe" -Destination $loggerPath -Force Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force # 3. 설치 프로그램 실행(부모 프로세스 생성) Write-Host "[*] 설치 프로그램 실행 중..." $installer = Start-Process -FilePath $installerPath -PassThru # 4. logger.exe를 설치 프로그램의 자식으로 실행 Write-Host "[*] logger.exe 실행(설치 프로그램의 자식)..." Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow # 5. Libserver.exe를 설치 프로그램의 자식으로 실행 Write-Host "[*] Libserver.exe 실행(설치 프로그램의 자식)..." Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow Write-Host "[+] 시뮬레이션 완료. SIEM에서 경고 확인." -
정리 명령: 임시 파일을 제거하고 잔여 프로세스를 종료하십시오.
# ------------------------------------------------- # 정리 스크립트 – 시뮬레이션 아티팩트 제거 # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" Write-Host "[*] 생성된 프로세스 중지 중..." Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] 파일 삭제 중..." Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료."