⚪ Port Scanning

Open Ports

TCP

Nmap
nmap -n -Pn -sS -p- --min-rate="5000" 192.168.1.2                    # ipv4
nmap -n -Pn -sS -p- --min-rate="5000" -6 fe80::a00:27ff:fe7b:77f7    # ipv6
proxychains nmap -n -Pn -sT -p- --min-rate="5000" 192.168.1.2        # tunnel / proxy (proxychains)
Xargs
seq 1 65535 | xargs -P 50 -I {} bash -c 'echo "" > /dev/tcp/192.168.1.2/{} &>/dev/null && echo -e "[+] Port: {} OPEN"' 2>/dev/null
Netcat
nc -zvw 1 192.168.1.2 1-65535
PowerShell
1..65535 | % {echo ((New-Object Net.Sockets.TcpClient).Connect("192.168.1.2", $_)) "TCP port $_ is open"} 2>$null
Bash
Host
#!/bin/bash

echo -e "\n[!] Start Discovery:"

for port in $(seq 1 65535); do
  timeout 1 bash -c "echo '' &>/dev/null < /dev/tcp/192.168.1.2/$port" 2>/dev/null && echo -e "\t[+] $port" &
done; wait
Hosts
#!/bin/bash

hosts=("192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5")

for host in ${hosts[@]}; do
  echo -e "\n[+] Host: $host"
  for port in $(seq 1 10000); do
    timeout 1 bash -c "echo '' > /dev/tcp/$host/$port" 2>/dev/null && echo "[*] Ports: $port - Active" &
  done; wait
done
Metasploit
use auxiliary/scanner/portscan/tcp
show options
set PORTS 1-65535
set RHOSTS 192.168.1.2
set THREADS 10
run

UDP

nmap -sU --top-ports="10" 192.168.1.2
nmap -sU --top-ports="20" 192.168.1.2
nmap -sU --top-ports="30" 192.168.1.2
nmap -sU --top-ports="40" 192.168.1.2
nmap -sU --top-ports="50" 192.168.1.2
nmap -sU --top-ports="100" 192.168.1.2

nmap -sUVC -p1-100 192.168.1.2
nmap -sUVC -p101-200 192.168.1.2
nmap -sUVC -p69,161 192.168.1.2

SCTP

nmap -n -Pn -sY -p- --min-rate="5000" 192.168.1.2

El puerto SCTP por donde corre un servicio, tiene ser convertido a TCP para poder interactuar con el de forma correcta.

socat TCP-LISTEN:8081,fork SCTP:192.168.1.2:8080

Services & Versions

TCP

nmap -n -Pn -sVC -p<PORTS> 192.168.1.2                      # ipv4
nmap -n -Pn -sVC -p<PORTS> -6 fe80::a00:27ff:fe7b:77f7      # ipv6
proxychains nmap -p<PORTS> -sTVC 127.0.0.1 2>/dev/null      # tunnel / proxy (proxychains)

nc -vn <IP> <PORT>                                          # banner grabbing
timeout 0.1 bash -c "nc -nv 192.168.1.2 <PORT>"             # banner grabbing

UDP

nmap -sU -sVC -p161,500 192.168.1.2

SCTP

nmap -p22,80,8080 -sYVC 192.168.1.2

Output (Nmap)

Los formatos de salida y parámetros relevantes de nmap son:

Flag Description
-oN Normal
-oG Grepable
-oX XML


El archivo de salida con extensión .xml generado con el parámetro -oX (XML), se puede convertir a HTML con xsltproc y posteriormente podemos levantar un servidor HTTP para visualizar el contenido de una forma amigable.

# apt install -y xsltproc
xsltproc nmap.xml >/var/www/html/index.html ; service apache2 start

Function (copy-ports)

Función para agregar a .bashrc/.zshrc para copiar puertos abiertos desde un archivo saliente de nmap.
(Una vez agregada la función a .bashrc/.zshrc es necesario reiniciar la terminal para que se apliquen los cambios).

# apt install -y xclip
copy-ports () {
  if [ -n "$1" ]
  then
    grep -oP '\d{1,5}/tcp' $1 | cut -d '/' -f 1 | xargs | tr ' ' ',' | tr -d '\n' | xclip -sel clip
  else
    echo "[i] Usage: copy-ports <nmap file>"
  fi
}

© d4t4s3c 2023-2025

results matching ""

    No results matching ""