# Bucles bash sobre IPs

> Lo que ahorra horas: enumerar **toda la red** de golpe a partir de la salida greppable de Nmap. Usa Operadores Bash.

## Ping sweep (descubrir hosts sin nmap)
```bash
for i in $(seq 1 254); do ping -c1 -W1 10.11.1.$i >/dev/null && echo "10.11.1.$i UP"; done
```
```cmd
for /L %i in (1,1,254) do @ping -n 1 -w 200 10.5.5.%i >nul && echo 10.5.5.%i up
```
(PowerShell rápido → Port scanner PowerShell). Útil tras un foothold para mapear la red interna antes de Tunneling.

## Filtrar resultados de nmap (greppable)
```bash
grep "445/open" smb.txt | cut -d' ' -f2     # IPs con ese puerto
grep -c "445/open" smb.txt                  # cuántos hosts lo tienen
grep "Status: Up" scan.gnmap | cut -d' ' -f2  # hosts vivos
```

## Bucle sobre IPs (anatomía)
```bash
for ip in $(grep "445/open" smb.txt | cut -d' ' -f2); do
    echo "=== $ip ==="
    enum4linux -a $ip < /dev/null 2>/dev/null | grep -i alfred
done
```
- `< /dev/null` → evita que se cuelgue en prompts `Password:`.
- Si falta `done`, bash se queda en `for>` (Ctrl+C).

## Enumerar SMB de todos y luego grep
```bash
for ip in $(grep "445/open" smb.txt | cut -d' ' -f2); do enum4linux -a $ip < /dev/null > enum_$ip.txt 2>&1; done
grep -l "alfred" enum_*.txt                    # en QUÉ host está el usuario
grep -iE 'remark|flag|OS\{' enum_HOST.txt      # flag en comentarios de shares
```

## Flags en comentarios de shares de toda la red
```bash
for ip in $(grep "445/open" smb.txt | cut -d' ' -f2); do echo "=== $ip ==="; rpcclient -U "" -N $ip -c "netshareenumall" 2>/dev/null | grep -i "flag\|OS{"; done
```

Relacionado: SMB · Enumeración · OSCP MOC
