
# Analyse technique du wiper Bibi-Windows ciblant des organisations israéliennes
Le 30 octobre, l'équipe d'intervention en cas d'incident de Security Joes a découvert un nouveau wiper Linux nommé "BiBi-Linux", déployé par un groupe hacktiviste pro-Hamas pour détruire leur infrastructure. Puis, le 1er novembre 2023, ESET Research a tweeté à propos d'une version Windows du BiBi Wiper déployé par BiBiGun, un groupe hacktiviste soutenu par le Hamas qui a fait ses débuts pendant le conflit Israël-Hamas de 2023.
Dans cet article, nous allons examiner la version Windows du BiBi Wiper, connue sous le nom de "BiBi-Windows Wiper"
Lors de l'exécution, le BiBi-Windows Wiper vérifie si des arguments ont été passés au BiBi Wiper. L'argument ici est le répertoire à détruire - bibi.exe <directory_to_destroyed>. Si aucun argument n'est fourni, il exécute la routine suivante pour récupérer les lecteurs cibles :
Lit le chemin codé en dur : "C:\Users"
Obtient les lecteurs de disque actuellement disponibles à l'aide de GetLogicalDrives(), où la valeur de retour est le masque de bits, puis il parcourt les 26 lecteurs (A-Z). Ensuite, il effectue un test de bit avec le masque de bits récupéré pour déterminer les lecteurs accessibles sur le système et ajoute ":\" au nom du lecteur.
Ici, il exclut le lecteur C en vérifiant i != 2, où 2 est la position du bit pour le lecteur C
Ensuite, pour les lecteurs disponibles à l'exception du lecteur C, il exécute GetDriveTypeA(), qui récupère le type de lecteur. Le BiBi-Windows Wiper ne cible ici que les types de lecteurs suivants :

Par conséquent, le BiBi-Windows Wiper cible :
Ensuite, il affiche les répertoires cibles sur la console, récupère le NumberOfProcessors via GetNativeSystemInfo() et, en fonction du nombre de processeurs, calcule les threads puis les affiche sur la console.

Ensuite, il crée un nouveau thread qui lit les commandes stockées en sens inverse, puis crée un nouveau processus à l'aide de CreateProcessA pour exécuter ces commandes. Voici les commandes :

De plus, il crée un autre thread qui exécute les routines principales du Wiper. Les routines du Wiper effectuent les actions suivantes :

Comprenons maintenant comment BiBi-Windows Wiper détruit les données sur la machine.
Mersenne Twister PseudoRandom Number Generator Algorithm, qui génère des nombres aléatoires comme illustré ci-dessous.
sub_140008BF0() effectue ensuite un modulo (%) avec la valeur "0xFF + 1 = 100" et le résultat (reste) de l'opération modulo est l'octet qui est écrasé dans le fichier cible, octet par octet.
Exemple ci-dessous avec un fichier contenant les données "hello" et qui est écrasé par ces 5 octets aléatoires dans une boucle.
ogfile_val -> rand_num % (hardcoded_val + 1) -> overwrite_val
h - 0xDD9B40A5 % 0x100 -> 0xA5
e - 0x37905317 % 0x100 -> 0x17
l - 0x54B7A20C % 0x100 -> 0x0C
l - 0xDBD10533 % 0x100 -> 0x33
o - 0x18ED3C42 % 0x100 -> 0x42
Fichier écrasé avec des octets aléatoires - Détruit !

Maintenant, une fois les données du fichier écrasées par des octets aléatoires et le fichier détruit, le BiBi Wiper renomme le fichier de la manière suivante :
rand_no = twisterfunc()
remainder_output = rand_no % (0x3D + 1)
wide_string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
filename_byte = wide_string[remainder_output * 2]
Thus,
if random num = 0xC6D15D79
mod_out = 0xC6D15D79 % 0x3E => 0x31
offset = 0x31 × 0x2 = 0x62
so the 62nd indexed value in the wide string becomes one of the character for the filename. In this case the value is "n"
La même routine est exécutée 0xA (10) fois et toutes les valeurs indexées sont concaténées pour former le nom de fichier aléatoire, par ex. 1wnRvB6teT, puis l'extension ".BiBi" (Bibi est un surnom utilisé pour le Premier ministre israélien, Benjamin Netanyahu) est ajoutée avec le numéro du round à la fin de la manière suivante - <rand_filename>.BiBi

Ainsi, de cette manière, le BiBi-Windows Wiper détruit tous les fichiers des répertoires cibles en écrasant les données des fichiers avec des octets aléatoires. Comme la boucle, c'est-à-dire les rounds, est infinie, le Wiper continuera à écraser les fichiers plusieurs fois de manière récursive avec des octets aléatoires jusqu'à l'infini et ne s'arrêtera pas, détruisant ainsi complètement les fichiers de la machine !
Exécution du BiBi-Windows Wiper montrant le répertoire cible, les cœurs CPU, les threads, le numéro du round, les statistiques et le fichier détruit avec l'extension .BiBi

Merci d'avoir lu ! - knight0x07