Pular para o conteúdo
Skillpedia
Testes35 mil · #6068

performing-firmware-extraction-with-binwalk

Ajuda seu agente a extrair e analisar o conteúdo de firmwares. Ele encontra arquivos, sistemas de arquivos e informações importantes dentro deles. É útil para entender o que está em dispositivos como roteadores ou sistemas embarcados.

O que ela faz

Esta ferramenta analisa o software interno (firmware) de dispositivos eletrônicos. Ela extrai e examina os arquivos escondidos dentro desse software para encontrar informações importantes, como senhas, configurações ou partes do sistema.

Quando usar

  • ✓Ao investigar o firmware de um roteador ou câmera baixado da internet.
  • ✓Para procurar por senhas ou chaves de segurança escondidas no software de um aparelho.
  • ✓Ao analisar o software de um dispositivo para entender como ele funciona ou encontrar falhas.

Exemplo do que pedir para a IA

“Analise o firmware deste dispositivo e procure por senhas ou chaves de acesso.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-firmware-extraction-with-binwalk/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-firmware-extraction-with-binwalk/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa um programa chamado 'binwalk' para escanear o firmware. Ele identifica e extrai diferentes tipos de arquivos que estão dentro dele, como sistemas de arquivos e dados comprimidos, para que você possa examiná-los.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-firmware-extraction-with-binwalk

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-firmware-extraction-with-binwalk/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Realizando Extração de Firmware com Binwalk

Quando Usar

  • Analisando firmware de dispositivos IoT baixado de sites de fornecedores ou extraído de chips de memória flash
  • Engenharia reversa de firmware de roteadores, câmeras ou dispositivos embarcados para pesquisa de vulnerabilidades
  • Identificando sistemas de arquivos embarcados (SquashFS, CramFS, JFFS2, UBIFS) dentro de "blobs" de firmware
  • Detectando regiões criptografadas ou comprimidas usando análise de entropia
  • Extraindo credenciais codificadas, chaves de API, certificados ou arquivos de configuração de firmware
  • Realizando avaliações de segurança de dispositivos embarcados em testes de penetração autorizados

Não use para analisar binários de aplicativos de desktop padrão ou amostras de malware que não sejam imagens de firmware; use ferramentas dedicadas de análise de malware em vez disso.

Pré-requisitos

  • binwalk v3.x instalado (pip install binwalk3 ou do gerenciador de pacotes do sistema)
  • Python 3.8+ com bibliotecas padrão (struct, math, hashlib, subprocess)
  • Ferramentas SquashFS (unsquashfs) para montar sistemas de arquivos SquashFS extraídos
  • Jefferson para extração de sistemas de arquivos JFFS2 (pip install jefferson)
  • Sasquatch para variantes não padrão de SquashFS usadas por fornecedores como TP-Link e D-Link
  • Utilitário strings (GNU binutils) para extração de strings
  • Opcional: firmware-mod-kit para empacotar novamente imagens de firmware modificadas

Fluxo de Trabalho

Etapa 1: Reconhecimento Inicial do Firmware

Execute uma varredura de assinatura para identificar tipos de arquivos embarcados e seus deslocamentos:

# Basic signature scan - identify all recognized file types
binwalk firmware.bin

# Scan with verbose output showing confidence levels
binwalk -v firmware.bin

# Scan for specific file types only
binwalk -y "squashfs" firmware.bin
binwalk -y "gzip\|lzma\|xz" firmware.bin

# Opcode scan to identify CPU architecture
binwalk -A firmware.bin

# Scan for raw strings to find version info, URLs, credentials
binwalk -R "password" firmware.bin
binwalk -R "http://" firmware.bin

Etapa 2: Análise de Entropia

Analise a entropia para identificar regiões criptografadas, comprimidas e em texto puro:

# Generate entropy plot
binwalk -E firmware.bin

# Entropy with specific block size for higher resolution
binwalk -E -K 256 firmware.bin

# Combined entropy and signature scan
binwalk -BE firmware.bin

Interpretando valores de entropia:

  • 0.0 - 1.0: Regiões vazias ou de preenchimento (bytes nulos, preenchimento com 0xFF)
  • 1.0 - 5.0: Dados em texto puro, código, strings ASCII, configuração
  • 5.0 - 7.0: Dados comprimidos (gzip, LZMA, zlib)
  • 7.0 - 7.99: Dados fortemente comprimidos ou criptografados
  • ~8.0: Entropia máxima, provavelmente dados criptografados ou aleatórios

Etapa 3: Extrair Arquivos Embarcados

Extraia todos os componentes identificados da imagem de firmware:

# Automatic extraction of known file types
binwalk -e firmware.bin

# Recursive extraction (matryoshka mode) for nested archives
binwalk -Me firmware.bin

# Recursive extraction with depth limit
binwalk -Me -d 5 firmware.bin

# Extract specific file type with custom handler
binwalk -D "squashfs filesystem:squashfs:unsquashfs %e" firmware.bin

# Manual extraction of data at a known offset
dd if=firmware.bin of=extracted.squashfs bs=1 skip=327680 count=4194304

Etapa 4: Montar e Inspecionar Sistemas de Arquivos Extraídos

Monte os sistemas de arquivos extraídos para inspeção detalhada:

# Mount SquashFS filesystem
mkdir /tmp/squashfs_root
unsquashfs -d /tmp/squashfs_root extracted.squashfs

# Mount CramFS filesystem
mkdir /tmp/cramfs_root
mount -t cramfs -o loop extracted.cramfs /tmp/cramfs_root

# Extract JFFS2 filesystem
jefferson extracted.jffs2 -d /tmp/jffs2_root

# Inspect the extracted filesystem
ls -la /tmp/squashfs_root/
find /tmp/squashfs_root -name "*.conf" -o -name "*.cfg" -o -name "*.key"
find /tmp/squashfs_root -name "passwd" -o -name "shadow"

Etapa 5: Análise de Strings e Descoberta de Credenciais

Procure por dados sensíveis no sistema de arquivos extraído e no firmware bruto:

# Extrair todas as strings imprimíveis
strings -a firmware.bin > all_strings.txt
strings -n 12 firmware.bin | sort -u > long_strings.txt

# Procurar por credenciais e segredos
grep -rni "password\|passwd\|secret\|api_key\|token" /tmp/squashfs_root/etc/
grep -rni "BEGIN.*PRIVATE KEY" /tmp/squashfs_root/

# Encontrar URLs e endpoints codificados
grep -rnoE "https?://[a-zA-Z0-9./?=_-]+" /tmp/squashfs_root/

# Procurar por arquivos de certificado
find /tmp/squashfs_root -name "*.pem" -o -name "*.crt" -o -name "*.key" -o -name "*.p12"

# Identificar versões do busybox e de serviços
strings /tmp/squashfs_root/bin/busybox | grep "BusyBox v"

…
Perguntas frequentes

O que é firmware?

Firmware é o software que vem de fábrica em dispositivos eletrônicos, como roteadores, TVs ou câmeras. Ele controla as funções básicas do aparelho.

O que é análise de entropia?

É uma forma de medir o quão 'aleatórios' ou 'aleatórios' os dados dentro do firmware parecem. Dados muito aleatórios geralmente significam que estão criptografados ou comprimidos.

O que são sistemas de arquivos como SquashFS?

São formas de organizar e comprimir arquivos dentro do firmware, comuns em dispositivos menores. Essa ferramenta sabe como abrir e extrair o conteúdo deles.

Detalhes

Descrição original do autor

Performs firmware image extraction and analysis using binwalk to identify embedded filesystems, compressed archives, bootloaders, kernel images, and cryptographic material. Covers entropy analysis for detecting encrypted or compressed regions, recursive extraction of nested archives, SquashFS/CramFS/JFFS2 filesystem mounting, and string analysis for credential and configuration discovery. Activate

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6068
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas