Saltar al contenido
OPS // KITitspentest.sh

R-GNU

GNU parallel

Lanza el mismo comando contra una lista de hosts, URLs o archivos en paralelo.

Sitio oficialVolver al catálogo

RESUMEN

GNU parallel toma una lista de entradas — hosts, URLs, archivos, usuarios o filas de tabla — y ejecuta un comando o un script corto una vez por línea, en varios núcleos de una máquina o en varios equipos por SSH. Un trabajo también puede ser un comando que lee de una tubería; parallel parte el flujo y alimenta bloques a los workers.

Si ya usas xargs o bucles de shell, los nombres de las opciones te resultarán familiares. A diferencia de un bucle en background ingenuo, agrupa la salida de cada job para que el resultado se vea como una corrida secuencial, así que puedes encadenarlo al siguiente comando. Incluye job log, ETA, reintentos y --dry-run. La concurrencia por defecto es el número de núcleos, a menudo demasiado alta contra un objetivo en vivo — fija -j tú.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Lanzar nmap, httpx o nuclei contra una lista de hosts en lotes controlados en vez de un bucle serial.

  • 02

    Sondear una lista de subdominios o URLs con curl, dig o wget durante el recon.

  • 03

    Aplicar el mismo script de enum o parseo a muchos archivos de loot a la vez.

  • 04

    Repartir jobs largos entre unas VMs de lab con --sshlogin cuando una máquina no alcanza.

PRIMEROS PASOS

Cuando un paso de recon o enum es un bucle sobre una lista — hosts, URLs, archivos — y un for serial se queda corto.

  1. Confirma que cada línea de la lista está dentro del alcance autorizado.
  2. Haz un dry-run con --dry-run para ver los comandos exactos antes de lanzarlos.
  3. Empieza con un -j bajo, --eta y --joblog para vigilar el ritmo y guardar evidencia.
  4. Sube la concurrencia solo si el objetivo y las reglas de engagement siguen aguantando.
parallel -j 10 --eta --joblog recon.log nmap -Pn -T3 -sV {} :::: hosts.txt

ANTES DE USARLA

Qué revisar antes de lanzarla

La concurrencia multiplica el ruido: un -j alto contra un solo host parece una inundación y puede disparar IDS, WAF o el límite de ritmo acordado.

Debian y Kali también empaquetan el parallel de moreutils, un comando distinto e incompatible — instala GNU parallel (a menudo el paquete gnu-parallel) y verifica parallel --version.

La salida llega según terminan los jobs salvo que pases --keep-order; guarda --joblog para que el informe tenga un registro reproducible.

SIGUE EXPLORANDO

Ver toda la fase →