🛰️ wget

wget es una herramienta de línea de comandos para descargar archivos desde la web, soportando HTTP, HTTPS y FTP.

Ideal para:

  • Automatizar descargas
  • Bajar sitios enteros
  • Recuperar archivos en pentests (ej: payloads, wordlists, reportes, etc.)

📌 Sintaxis básica

wget [opciones] <URL>

🔹 Ejemplos rápidos

▪ Descargar un archivo

wget http://ejemplo.com/archivo.txt

▪ Descargar y guardar con otro nombre

wget -O salida.txt http://ejemplo.com/archivo.txt

▪ Descargar múltiples archivos desde una lista

wget -i lista.txt

Ejemplo de lista.txt:

http://example.com/file1.txt
http://example.com/file2.txt

🧪 Verificá primero con --spider

Antes de hacer la descarga completa, podés probar con:

wget --spider -r -np --reject-regex 'venv/' http://192.168.0.5:8000/

✅ Opción: Excluir un directorio con --reject-regex

wget -r -np -nH --cut-dirs=0 --reject-regex 'venv/' http://192.168.0.5:8000/

Traer Directorios de una URL

Si un servidor HTTP está exponiendo sus directorios (típico índice de Apache o Nginx con directory listing habilitado), podés descargar todo el contenido del directorio de varias maneras.

🔹 Opción 1: wget con recursividad

wget -r -np -nH --cut-dirs=1 -R "index.html*" http://servidor.com/directorio/

🔍 Explicación de flags:

  • -r: descarga recursiva.

  • -np: no seguir enlaces hacia directorios superiores.

  • -nH: no guardar con el nombre del host.

  • --cut-dirs=1: elimina un nivel de directorio al guardar localmente.

  • -R "index.html*": evita guardar los archivos index.html generados por el servidor.


🔹 Opción 2: wget plano (si no hay subdirectorios)

wget -r -l1 -A "*" http://servidor.com/directorio/
  • -l1: solo un nivel de profundidad.

  • -A "*": acepta todos los archivos.


🔸 Descarga recursiva

▪ Descargar un sitio o directorio entero

wget -r http://192.168.0.10:8000/

▪ Opciones recomendadas para scrapeo limpio:

wget -r -np -nH --cut-dirs=0 http://192.168.0.10:8000/
  • -r: recursivo
  • -np: no seguir a directorios padres
  • -nH: no crear carpeta con nombre del host
  • --cut-dirs=N: ignora N niveles del path

🛠️ Otras opciones útiles

OpciónDescripción
-cReanudar descarga interrumpida
--limit-rate=200kLimita la velocidad de descarga
--user y --passwordAutenticación básica HTTP
--no-check-certificateIgnora errores SSL (útil con HTTPS inseguros)
--mirrorModo espejo: recursivo + timestamping
--convert-linksConvierte enlaces para navegación offline
--user-agent="..."Cambia el agente de usuario HTTP
--backgroundEjecuta en segundo plano

📥 Ejemplo completo para pentesting

Supongamos que levantás un servidor en Kali con:

python3 -m http.server 8000

Y desde otra máquina descargás todo con:

wget -r -np -nH --cut-dirs=0 http://<IP>:8000/

🧠 Tips útiles

  • Siempre usar -c para evitar repetir descargas grandes.

  • Para evitar problemas con certificados en CTFs: --no-check-certificate

  • Para navegar sitios offline: --mirror --convert-links


📚 Recursos


📌 wget es una herramienta clave en cualquier pentest o entorno forense. Ligero, potente y automatizable.


herramientas