🛰️ 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.txtEjemplo 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 archivosindex.htmlgenerados 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ón | Descripción |
|---|---|
-c | Reanudar descarga interrumpida |
--limit-rate=200k | Limita la velocidad de descarga |
--user y --password | Autenticación básica HTTP |
--no-check-certificate | Ignora errores SSL (útil con HTTPS inseguros) |
--mirror | Modo espejo: recursivo + timestamping |
--convert-links | Convierte enlaces para navegación offline |
--user-agent="..." | Cambia el agente de usuario HTTP |
--background | Ejecuta en segundo plano |
📥 Ejemplo completo para pentesting
Supongamos que levantás un servidor en Kali con:
python3 -m http.server 8000Y desde otra máquina descargás todo con:
wget -r -np -nH --cut-dirs=0 http://<IP>:8000/🧠 Tips útiles
-
Siempre usar
-cpara 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.