Znalezienie Flippera (Zero)

Feb 07 2023
Witam kolegę Blue Teamer. Czy słyszałeś o tych nowych fantazyjnych dekoracjach „Flipper” i zastanawiasz się, o co tyle szumu? Czy Twój CISO przyszedł do Ciebie w panice z prośbą o sprawdzenie, czy użytkownicy podłączają je do swoich stacji roboczych? Cóż, trafiłeś we właściwe miejsce.

Witam kolegę Blue Teamer. Czy słyszałeś o tych nowych fantazyjnych dekoracjach „Flipper” i zastanawiasz się, o co tyle szumu? Czy Twój CISO przyszedł do Ciebie w panice z prośbą o sprawdzenie, czy użytkownicy podłączają je do swoich stacji roboczych? Cóż, trafiłeś we właściwe miejsce.

Poznaj… Flippera Zero.

Jeśli chcesz dowiedzieć się więcej o ich możliwościach, sugeruję sprawdzenie ich strony internetowej . Mam jeden i uwielbiam go; jednak jestem pewien, że jako obrońca cybernetyczny zastanawiałeś się „Jak mogę wykryć, czy użytkownik w naszej sieci próbuje użyć go do zhakowania planety?” Na to odpowiadam – nie masz lepszych zajęć? NIE? Oto kilka sposobów na wykrycie podłączenia ich do urządzenia z systemem Windows.

Flipper Zero ma wiele różnych trybów i modułów, dzięki którym w systemie Windows może wyglądać jak wiele różnych urządzeń. Dwa, które zamierzamy omówić, to tryb „domyślny”, w którym flipper jest podłączony bez uruchamiania modułu, a drugi to USB Remote AKA poruszanie myszą.

Kiedy Flipper Zero jest podłączony przez USB bez uruchamiania określonego modułu, pozostawia bardzo unikalny podpis, którego można szukać w dziennikach. Z naszych testów wynika, że ​​Flippers w tym trybie (w chwili pisania tego tekstu) będzie emulować STMicroelectronics VID 0483 z PID 5740. Będzie również zawierać unikatowy na całym świecie numer seryjny urządzenia jako część DeviceID (zamazałem nasz w przykładzie poniżej).

Oto przykładowe polecenie programu PowerShell, które wyświetla te informacje:

Get-CimInstance -Class win32_PnpSignedDriver `
| Select-Object Description, DeviceClass, DeviceID, DeviceName, Manufacturer `
| Select-String Flip

      
                

Te informacje są również zapisywane w rejestrze systemu Windows:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_0483&PID_5740\

      
                

index=main event_platform=Win event_simpleName=DcUsbDevice* 
    DeviceInstanceId="USB\\VID_0483&PID_5740\\flip*"
| table _time
    , event_simpleName
    , ComputerName 
    , DeviceInstanceId 
    , DeviceManufacturer
    , DevicePropertyClassName
    , DevicePropertyDeviceDescription
    , DeviceSerialNumber
| sort 0 -_time

Gdy Flipper Zero jest podłączony do systemu Windows, który emuluje mysz (taką jak moduł poruszania myszą), sprawy stają się nieco… mniej oczywiste.

Opcje menu do podłączenia Flipper Zero jako myszy USB:

Po podłączeniu do systemu Windows za pomocą tego modułu Flipper będzie emulować VID i PID odbiornika USB Logitech Unifying — AKA jednego z tych złych chłopców.

Tylko jeden problem: nie wyświetla producenta jak zwykłe odbiorniki Logitecha ! Zawiera również tylko ogólny/domyślny opis. W poniższym przykładzie mam zarówno urządzenie Flipper Zero działające jako urządzenie wejściowe USB, jak i odbiornik USB firmy Logitech podłączony do komputera z systemem Windows.

((Get-CimInstance -Class win32_PnPSignedDriver) `
| Where-Object {($_.Description -like '*USB*' -and $_.DeviceClass -match 'HIDClass')}) `
| Select-Object Description, DeviceClass, DeviceID, Manufacturer `
| Sort-Object DeviceID

      
                
Pay special attention to the Description and Manufacturer values.

Ponownie, jeśli przechwytujesz te dane do SIEM lub EDR, oto przykładowe zapytanie, które znaleźliśmy i działa w CrowdStrike.

index=main event_platform=Win event_simpleName=DcUsbDevice*
    DeviceInstanceId="USB\\VID_046D&PID_C529\\*"
| where isnull(DeviceManufacturer)
| table _time
    , event_simpleName
    , ComputerName
    , DeviceInstanceId
    , DeviceManufacturer
    , DevicePropertyClassName
    , DevicePropertyDeviceDescription
    , DeviceSerialNumber
| sort 0 -_time

Twój ruch, bezczelny delfinie…