
USB HID driver emulation with PID/VID (0x3bca/0x27bb) of Plenom A/S Busylight Alpha, that is supported by Mimikatz. When mimikatz is executed, a thread is spwaned by default that tries to locate one of the busylights that is supported. All HID devices are enumerated, if PID/VID is matching then packets are sent to flash the busylight in different colours.
Émulation d'un pilote USB HID avec PID/VID (0x3bca/0x27bb) du Plenom A/S Busylight Alpha, pris en charge par Mimikatz. Lorsque mimikatz est exécuté, un thread est généré par défaut et tente de localiser l'un des busylights pris en charge. Tous les périphériques HID sont énumérés ; si le PID/VID correspond, des paquets sont envoyés pour faire clignoter le busylight de différentes couleurs.
Il existe trois types de paquets envoyés à ce périphérique par mimikatz :
busylight::off est appeléComme ce périphérique émule un périphérique HID qui imite fidèlement le véritable périphérique USB, mimikatz ne peut pas faire la différence entre les deux.
Le pilote est un pilote umdf2, ce qui signifie :
Il émule le comportement du busylight de manière transparente. Le pilote vérifie si l'un des trois paquets (start, keepalive, stop) a été reçu ; si c'est le cas, il charge une DLL et appelle respectivement les trois fonctions exportées. La DLL n'a pas besoin d'être signée, même si cela peut faciliter une distribution de confiance. La fonctionnalité de la DLL peut être modifiée facilement.
Elle possède trois fonctions exportées :
Elles sont appelées respectivement par le pilote. Actuellement, trois modes de rapport différents sont implémentés :
Le format suivant est affiché dans le journal des événements (ou sur les deux autres interfaces de journalisation) sous Windows Logs\Application
Tool started. PID: 13456
Assez basique, mais les deux informations les plus importantes y sont. C'est soit started/stopped, soit keepalive, ce qui signifie que l'outil était en cours d'exécution à ce moment-là. PID est l'identifiant du processus.
Étant donné que les pilotes UMDF s'exécutent dans l'espace utilisateur avec un utilisateur à faibles privilèges, les informations sur les autres processus ne peuvent pas être récupérées en profondeur ; cela devrait être fait par un autre service avec des privilèges plus élevés.
Les opérations suivantes doivent être effectuées en tant qu'utilisateur élevé :
install.batLes opérations suivantes doivent être effectuées en tant qu'utilisateur élevé :
uninstall.batIl a été testé sur trois installations Windows 10 différentes avec un serveur rsyslog.
Les variantes de Mimikatz suivantes ont été testées :
Version originale de Mimikatz depuis le 8 octobre 2015 (Détecté)
Original compilé en DLL (Détecté)
Original compilé en PowerShell (Invoke-Mimikatz) (Détecté)
PowerSploit - Invoke-Mimikatz (Détecté)
CrackMapExec - Invoke-Mimikatz (Détecté)
Shellenium - Invoke-Mimikatz (Détecté)
Cobalt Strike (Non détecté)
Module kiwi de Metasploit (Non détecté)
Pypykatz (Non détecté)