Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BiBi-Windows-Wiper-Analysis — Análise Técnica do Wiper Bibi-Windows Direcionado a Organizações Israelenses | Kitploit
Ferramentas/GitHubGitHub/knight0x07/bibi-windows-wiper-analysis
Engenharia ReversaAnálise de MalwareForensia DigitalAnálise de BináriosInteligência de AmeaçasResposta a Incidentes
GitHubknight0x07/bibi-windows-wiper-analysis

BiBi-Windows-Wiper-Analysis

Análise Técnica do Wiper Bibi-Windows Direcionado a Organizações Israelenses

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
812há 2 anosAinda não revisado
Compartilhar

Análise Técnica do BiBi-Windows Wiper com Alvo em Organizações Israelenses

Em 30 de outubro, a equipe de Resposta a Incidentes da Security Joes descobriu um novo Wiper Linux chamado "BiBi-Linux", que estava sendo implantado por um grupo hacktivista pró-Hamas para destruir sua infraestrutura. E então, em 1º de novembro de 2023, a ESET Research tuitou sobre uma versão para Windows do BiBi Wiper implantada pelo BiBiGun, um grupo hacktivista apoiado pelo Hamas que estreou inicialmente durante o conflito Israel-Hamas de 2023.

Neste post, veremos a versão para Windows do BiBi Wiper, conhecida como "BiBi-Windows Wiper".

Análise Técnica

Após a execução, o BiBi-Windows Wiper verifica se algum argumento foi passado para o BiBi Wiper. O argumento aqui é o diretório a ser destruído - bibi.exe <directory_to_destroyed>. Se nenhum argumento for fornecido, ele executa a seguinte rotina para obter as unidades de destino:

  • Lê o caminho hardcoded: "C:\Users"

  • Obtém as unidades de disco atualmente disponíveis usando GetLogicalDrives(), onde o valor de retorno é o bitmask. Em seguida, itera pelas 26 unidades (A-Z). Depois, realiza um teste de bit com o bitmask recuperado para determinar as unidades acessíveis no sistema e anexa ":\" ao nome da unidade.

  • Aqui, ele exclui a unidade C verificando i != 2, onde 2 é a posição do bitmask para a unidade C.

  • Então, para as unidades disponíveis, exceto a unidade C, ele executa GetDriveTypeA(), que recupera o tipo de unidade. O BiBi-Windows Wiper aqui tem como alvo apenas os seguintes tipos de unidade:

    • DRIVE_FIXED
    • DRIVE_REMOVABLE
    • DRIVE_RAMDISK

1

Portanto, o BiBi-Windows Wiper tem como alvo:

  • O diretório hardcoded - "C:\Users"
  • E todas as unidades disponíveis, exceto a unidade "C:"

Além disso, ele imprime os diretórios de destino no console e recupera o NumberOfProcessors de GetNativeSystemInfo(); com base no número de processadores, calcula as threads e as imprime no console.

2

Em seguida, cria uma nova thread que lê os comandos armazenados de trás para frente e cria um novo processo usando CreateProcessA para executar esses comandos. Os comandos são:

  • cmd.exe /c bcdedit /set {default} recoveryenabled no - Desativa o Ambiente de Recuperação do Windows
  • cmd.exe / c bcdedit / set {default} bootstatuspolicy ignoreallfailures - Força o sistema a inicializar normalmente em vez de entrar no Ambiente de Recuperação do Windows
  • cmd.exe /c wmic shadowcopy delete - Exclui as Cópias de Sombra de Volume usando WMIC
  • cmd.exe /c vssadmin delete shadows /quIet /all - Exclui as Cópias de Sombra de Volume usando VssAdmin

3

Além disso, ele cria outra thread que executa as rotinas principais do Wiper. As rotinas do Wiper realizam as seguintes ações:

  • Os argumentos para a função Wiper são:
    • Arg1 - Caminho do diretório a ser destruído (pode ser fornecido pelo operador ou recuperado como explicado anteriormente)
    • Arg2 - Número de threads
  • Em seguida, ele inicia um loop infinito onde o contador é o valor da rodada "[+] Round %d\n" - portanto, uma vez que o Wiper é executado, ele continuará destruindo os dados infinitamente!
  • Além disso, com base no número de threads, ele cria várias threads em um loop que executam a função principal do Wiper.
  • O BiBi-Windows Wiper exclui os arquivos com extensão ".exe", ".dll" e ".sys"

4

Análise da Função Wiper

Agora vamos entender como o BiBi-Windows Wiper destrói os dados na máquina.

  • O Wiper primeiro percorre recursivamente o diretório a ser criptografado e depois recupera o tamanho dos arquivos de destino.
  • Em seguida, executa a função wiper em loop sobre os arquivos de destino com base no tamanho do arquivo, onde o segundo argumento para a função wiper é "0xFF".
  • A função Wiper implementa o Mersenne Twister PseudoRandom Number Generator Algorithm, que gera números aleatórios como mostrado abaixo.

5

  • O número aleatório gerado pela função sub_140008BF0() então realiza o módulo (%) com o valor "0xFF + 1 = 100" e a saída (resto) da operação de módulo é o byte que é sobrescrito no arquivo de destino, byte a byte.

7

Exemplo abaixo contra um arquivo contendo os dados "hello" e que está sendo sobrescrito por esses 5 bytes aleatórios em um loop.

ogfile_val -> rand_num % (hardcoded_val + 1) -> overwrite_val

root@kitploit:~
h - 0xDD9B40A5 % 0x100 -> 0xA5
e - 0x37905317 % 0x100 -> 0x17
l - 0x54B7A20C % 0x100 -> 0x0C
l - 0xDBD10533 % 0x100 -> 0x33
o - 0x18ED3C42 % 0x100 -> 0x42

Arquivo sobrescrito com bytes aleatórios - Destruído!

9

Agora, uma vez que os dados no arquivo são sobrescritos com bytes aleatórios e o arquivo é destruído, o BiBi Wiper altera o nome do arquivo da seguinte maneira:

  • Ele chama a função Mersenne Twister anterior novamente, onde o argumento hardcoded desta vez é "0x3D". Assim, uma vez que o número aleatório é gerado, ele realiza o módulo com "0x3E" e o valor de saída (resto) é armazenado de maneira semelhante.
  • Além disso, o valor do resto de saída é multiplicado por 2 e, em seguida, o valor é indexado em uma string ampla (wide string), conforme representado abaixo:
root@kitploit:~
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"

A mesma rotina é executada 0xA (10) vezes e todos os valores indexados são concatenados, formando o nome de arquivo aleatório, ex. 1wnRvB6teT; em seguida, a extensão ".BiBi" (BiBi é um apelido usado para o Primeiro-Ministro de Israel, Benjamin Netanyahu) é adicionada juntamente com o número da rodada no final, da seguinte maneira - <rand_filename>.BiBi

10

Portanto, dessa forma, o BiBi-Windows Wiper destruirá todos os arquivos nos diretórios de destino, sobrescrevendo os dados dos arquivos com bytes aleatórios. Como o loop, ou seja, as rodadas, vai até o infinito, o Wiper continuará sobrescrevendo recursivamente os arquivos várias vezes com bytes aleatórios até o infinito e não vai parar, destruindo completamente os arquivos na máquina!

Execução do BiBi-Windows Wiper mostrando o diretório alvo, núcleos da CPU, threads, número da rodada, estatísticas e arquivo destruído com a extensão .BiBi

12

Obrigado por ler! - knight0x07

Baixar ferramenta