Está en la página 1de 28

CONCEPTOS BÁSICOS Y

RECONOCIMIENTO

MAC

https://www.kali.org/tools/macchanger/

TCP - UDP
Los protocolos TCP (Transmission Control Protocol) y UDP (User Datagram
Protocol) son dos de los protocolos de red más comunes utilizados en la
transferencia de datos a través de redes de ordenadores.
El protocolo TCP, es un protocolo orientado a la conexión que proporciona una
entrega de datos confiable, mientras que el protocolo UDP, es un protocolo no
orientado a conexión el cual no garantiza la entrega de datos.
Una parte crucial del protocolo TCP es el Three-Way Handshake, un
procedimiento utilizado para establecer una conexión entre dos dispositivos.
Este procedimiento consta de tres pasos: SYN, SYN-ACK y ACK, en los que se
sincronizan los números de secuencia y de reconocimiento de los paquetes entre
los dispositivos. El Three-Way Handshake es fundamental para establecer una
conexión confiable y segura a través de TCP.

Puertos TCP comunes:

• 21: FTP (File Transfer Protocol) – permite la transferencia de archivos


entre sistemas.
• 22: SSH (Secure Shell) – un protocolo de red seguro que permite a los
usuarios conectarse y administrar sistemas de forma remota.
• 23: Telnet – un protocolo utilizado para la conexión remota a dispositivos
de red.
• 25: SMTP
• 53: DNS

1
• 80: HTTP (Hypertext Transfer Protocol) – el protocolo que se utiliza para
la transferencia de datos en la World Wide Web.
• 443: HTTPS (Hypertext Transfer Protocol Secure) – la versión segura de
HTTP, que utiliza encriptación SSL/TLS para proteger las comunicaciones
web.
• 110: POP3
• 139, 445: SMB
• 143: IMAP

Puertos UDP comunes:

• 53: DNS (Domain Name System) – un sistema que traduce nombres de


dominio en direcciones IP.
• 67/68: DHCP (Dynamic Host Configuration Protocol) – un protocolo
utilizado para asignar direcciones IP y otros parámetros de configuración
a los dispositivos en una red.
• 69: TFTP (Trivial File Transfer Protocol) – un protocolo simple utilizado
para transferir archivos entre dispositivos en una red.
• 123: NTP (Network Time Protocol) – un protocolo utilizado para
sincronizar los relojes de los dispositivos en una red.
• 161: SNMP (Simple Network Management Protocol) – un protocolo
utilizado para administrar y supervisar dispositivos en una red.

MODELO OSI
En redes de ordenadores, el modelo OSI (Open Systems Interconnection) es
una estructura de siete capas que se utiliza para describir el proceso de
comunicación entre dispositivos. Cada capa proporciona servicios y funciones
específicas, que permiten a los dispositivos comunicarse a través de la red.
A continuación, se describen brevemente las siete capas del modelo OSI:

1. Capa física: Es la capa más baja del modelo OSI, que se encarga de la
transmisión de datos a través del medio físico de la red, como cables de
cobre o fibra óptica.

2
2. Capa de enlace de datos: Esta capa se encarga de la transferencia
confiable de datos entre dispositivos en la misma red. También
proporciona funciones para la detección y corrección de errores en los
datos transmitidos.
3. Capa de red: La capa de red se ocupa del enrutamiento de paquetes de
datos a través de múltiples redes. Esta capa utiliza direcciones lógicas,
como direcciones IP, para identificar dispositivos y rutas de red.
4. Capa de transporte: La capa de transporte se encarga de la entrega
confiable de datos entre dispositivos finales, proporcionando servicios
como el control de flujo y la corrección de errores.
5. Capa de sesión: Esta capa se encarga de establecer y mantener las
sesiones de comunicación entre dispositivos. También proporciona
servicios de gestión de sesiones, como la autenticación y la autorización.
6. Capa de presentación: La capa de presentación se encarga de la
representación de datos, proporcionando funciones como la codificación
y decodificación de datos, la compresión y el cifrado.
7. Capa de aplicación: La capa de aplicación proporciona servicios para
aplicaciones de usuario finales, como correo electrónico, navegadores
web y transferencia de archivos.

Comprender la estructura en capas del modelo OSI es esencial para cualquier


analista de seguridad, ya que permite tener una visión completa del
funcionamiento de la red y de las posibles vulnerabilidades que puedan existir
en cada una de las capas.
Esto nos permite identificar de manera efectiva los puntos débiles de la red y
aplicar medidas de seguridad adecuadas para protegerla de posibles ataques.

3
MÁSCARAS DE SUBRED
Subnetting es una técnica utilizada para dividir una red IP en subredes más
pequeñas y manejables. Esto se logra mediante el uso de máscaras de red, que
permiten definir qué bits de la dirección IP corresponden a la red y cuáles a
los hosts.
Para interpretar una máscara de red, se deben identificar los bits que están en
“1“. Estos bits representan la porción de la dirección IP que corresponde a la red.
Por ejemplo, una máscara de red de 255.255.255.0 indica que los primeros tres
octetos de la dirección IP corresponden a la red, mientras que el último
octeto se utiliza para identificar los hosts.
Ahora bien, cuando hablamos de CIDR (acrónimo de Classless Inter-Domain
Routing), a lo que nos referimos es a un método de asignación de direcciones
IP más eficiente y flexible que el uso de clases de redes IP fijas. Con CIDR, una
dirección IP se representa mediante una dirección IP base y una máscara de red,
que se escriben juntas separadas por una barra (/).
Por ejemplo, la dirección IP 192.168.1.1 con una máscara de red
de 255.255.255.0 se escribiría como 192.168.1.1/24.

4
La máscara de red se representa en notación de prefijo, que indica el número de
bits que están en “1” en la máscara. En este caso, la máscara de
red 255.255.255.0 tiene 24 bits en “1” (los primeros tres octetos), por lo que su
notación de prefijo es /24.
Para calcular la máscara de red a partir de una notación de prefijo, se deben
escribir los bits “1” en los primeros bits de una dirección IP de 32 bits y los bits
“0” en los bits restantes. Por ejemplo, la máscara de red /24 se calcularía
como 11111111.11111111.11111111.00000000 en binario, lo que equivale
a 255.255.255.0 en decimal.
En cuanto a clases de direcciones IP, existen tres tipos de máscaras de
red: Clase A, Clase B y Clase C.

• Las redes de clase A usan una máscara de subred predeterminada


de 255.0.0.0 y tienen de 0 a 127 como su primer octeto. La
dirección 10.52.36.11, por ejemplo, es una dirección de clase A. Su
primer octeto es 10, que está entre 1 y 126, ambos incluidos.
• Las redes de clase B usan una máscara de subred predeterminada
de 255.255.0.0 y tienen de 128 a 191 como su primer octeto. La
dirección 172.16.52.63, por ejemplo, es una dirección de clase B. Su
primer octeto es 172, que está entre 128 y 191, ambos inclusive.
• Las redes de clase C usan una máscara de subred predeterminada
de 255.255.255.0 y tienen de 192 a 223 como su primer octeto. La
dirección 192.168.123.132, por ejemplo, es una dirección de clase C. Su
primer octeto es 192, que está entre 192 y 223, ambos incluidos.

Es importante tener en cuenta que, además de estos tres tipos de máscaras de


red, también existen máscaras de red personalizadas que se pueden utilizar
para crear subredes de diferentes tamaños dentro de una red.
Tal y como mencionamos en la descripción de la clase anterior sobre los CIDRs
(Classless Inter-Domain Routing), se trata de un método de asignación de
direcciones IP que permite dividir una dirección IP en una parte que identifica la
red y otra parte que identifica el host. Esto se logra mediante el uso de
una máscara de red, que se representa en notación CIDR como una dirección

5
IP base seguida de un número que indica la cantidad de bits que corresponden
a la red.
Con CIDR, se pueden asignar direcciones IP de forma más precisa, lo que
reduce la cantidad de direcciones IP desperdiciadas y facilita la administración
de la red.
El número que sigue a la dirección IP base en la notación CIDR se
llama prefijo o longitud de prefijo, y representa el número de bits en la
máscara de red que están en “1“.
Por ejemplo, una dirección IP con un prefijo de /24 indica que los primeros 24
bits de la dirección IP corresponden a la red, mientras que los 8 bits restantes
se utilizan para identificar los hosts.
Para calcular la cantidad de hosts disponibles en una red CIDR, se deben contar
el número de bits “0” en la máscara de red y elevar 2 a la potencia de ese
número. Esto se debe a que cada bit “0” en la máscara de red representa un bit
que se puede utilizar para identificar un host.
Por ejemplo, una máscara de red de 255.255.255.0 (/24) tiene 8 bits en “0“, lo
que significa que hay 2^8 = 256 direcciones IP disponibles para los hosts en esa
red.

A continuación, se representan algunos ejemplos prácticos de CIDR:

• Una dirección IP con un prefijo de /28 (255.255.255.240) permite hasta 16


direcciones IP para los hosts (2^4), ya que los primeros 28
bits corresponden a la red.
• Una dirección IP con un prefijo de /26 (255.255.255.192) permite hasta 64
direcciones IP para los hosts (2^6), ya que los primeros 26
bits corresponden a la red.
• Una dirección IP con un prefijo de /22 (255.255.252.0) permite hasta 1024
direcciones IP para los hosts (2^10), ya que los primeros 22
bits corresponden a la red.

6
CALCULAR SUBREDES
En esta clase, explicamos cómo calcular para la dirección IP 192.168.1.0/26, su
máscara de red, el número total de hosts a repartir, el identificador de red y la
dirección Broadcast.
A continuación, se detalla paso a paso cómo hemos ido calculando cada
apartado:

1. Cálculo de la máscara de red:

La dirección IP que se nos dio es 192.168.1.0/26, lo que significa que los


primeros 26 bits de la dirección IP corresponden a la red y los últimos 6
bits corresponden a los hosts.
Para calcular la máscara de red, necesitamos colocar los primeros 26
bits en 1 y los últimos 6 bits en 0. En binario, esto se ve así:

• 11111111.11111111.11111111.11000000

Cada octeto de la máscara de red se compone de 8 bits. El valor de cada octeto


se determina convirtiendo los 8 bits a decimal. En este caso, los primeros 24
bits son todos 1s, lo que significa que el valor decimal de cada uno de estos
octetos es 255. El último octeto tiene los últimos 6 bits en 0, lo que significa que
su valor decimal es 192.
Por lo tanto, la máscara de red para esta dirección IP es 255.255.255.192.

1. Cálculo del total de hosts a repartir:

En este caso, se pueden utilizar los 6 bits que quedan disponibles para
representar la parte de host. En una máscara de red de 26 bits, los 6
bits restantes representan 2^6 – 2 = 62 hosts disponibles para asignar.
El número máximo de hosts disponibles se calcula como 2^(n) – 2, donde n es
la cantidad de bits utilizados para representar la parte de host en la máscara de
red.

1. Cálculo del Network ID:

7
Para calcular el Network ID, lo que debemos hacer es aplicar la máscara de red
a la dirección IP de la red. En este caso, la máscara de red es 255.255.255.192,
lo que significa que los primeros 26 bits de la dirección IP pertenecen a la parte
de red.
Para calcular el Network ID, convertimos tanto la dirección IP como la máscara
de red en binario y luego hacemos una operación “AND” lógica entre los dos.
La operación “AND” compara los bits correspondientes en ambas direcciones y
devuelve un resultado en el que todos los bits coincidentes son iguales a “1” y
todos los bits no coincidentes son iguales a “0“.
En este caso, la dirección IP es 192.168.1.0 en decimal y se convierte en binario
como 11000000.10101000.00000001.00000000. La máscara de red
es 255.255.255.192 en decimal y se convierte en binario
como 11111111.11111111.11111111.11000000.
Luego, aplicamos la operación “AND” entre estos dos valores binarios bit a bit.
Los bits correspondientes en ambos valores se comparan de la siguiente
manera:

El resultado final es el Network ID, que es 192.168.1.0. Este es el identificador


único de la subred a la que pertenecen los hosts.

1. Cálculo de la Broadcast Address:

La Broadcast Address es la dirección de red que se utiliza para enviar paquetes


a todos los hosts de la subred. Para calcularla, necesitamos saber el Network
ID y la cantidad de hosts disponibles en la subred.
En el ejemplo que estamos trabajando, ya hemos calculado el Network
ID como 192.168.1.0. La cantidad de hosts disponibles se calcula como 2^(n) –
2, donde n es la cantidad de bits utilizados para representar la parte de host en
la máscara de red. En este caso, n es igual a 6, ya que hay 6 bits disponibles
para la parte de host.

8
Para calcular la Broadcast Address, debemos asignar todos los bits de la parte
del host de la dirección IP a “1“. En este caso, la dirección IP es 192.168.1.0 y
se convierte en binario como 11000000.10101000.00000001.00000000.
Para encontrar la dirección Broadcast, llenamos con unos la parte
correspondiente a los bits de host, es decir, los últimos 6 bits:
11000000.10101000.00000001.00111111 (dirección IP con bits de host
asignados a “1“)
Luego, convertimos este valor binario de regreso a decimal y obtenemos la
dirección de Broadcast: 192.168.1.63. Esta es la dirección a la que se enviarán
los paquetes para llegar a todos los hosts de la subred.
https://www.ipaddressguide.com/cidr
https://blog.jodies.de/ipcalc

NMAP
Nmap es una herramienta de escaneo de red gratuita y de código abierto que
se utiliza en pruebas de penetración (pentesting) para explorar y auditar redes y
sistemas informáticos.
Con Nmap, los profesionales de seguridad pueden identificar
los hosts conectados a una red, los servicios que se están ejecutando en ellos
y las vulnerabilidades que podrían ser explotadas por un atacante. La
herramienta es capaz de detectar una amplia gama de dispositivos, incluyendo
enrutadores, servidores web, impresoras, cámaras IP, sistemas operativos y
otros dispositivos conectados a una red.
Asimismo, esta herramienta posee una variedad de funciones y características
avanzadas que permiten a los profesionales de seguridad adaptar la misma a
sus necesidades específicas. Estas incluyen técnicas de escaneo agresivas,
capacidades de scripting personalizadas, y un conjunto de herramientas
auxiliares que pueden ser utilizadas para obtener información adicional sobre los
hosts objetivo.
65535 puertos
Hay
nmap para ver los puertos abiertos.
ip route

9
nmap -p 1-100 ( del 1 al 100)
-p- ( todos los rangos)
Poner nmap + IP solo --> No es muy conveniente.
Un puerto puede estar abierto --> ofrece servicio.
Puede estar cerrado o filtrado.
--top-ports 500 --> Lista los 500 puertos más comunes.
--open --> Para filtrar puertos abiertos.
nmap -p --open IP
-v --> Para ir viendo el proceso del nmap
man nmap --> Ver el manual de nmap
/-n --> No aplica DNS.
- T --> Temporizado. A número más alto/más rápido va. Savitar dice que suele
usar el -T5.
nmap -p- -T5 -sT --open IP -v -n
-sT --> Lanza un SYN de forma que cuando llegue la respuesta. Si contesta RST,
está cerrado, si no, responde SYN a secas. Para posteriormente, lanzar un ACK
( established).
tcpdump -i ens33 -w (escribir) Captura.cap -v ( ver el número de paquetes).
wireshark Captura.cap &>/dev/null & disown ( a parte, en segundo plano y no se
cierre la consola).
tcp.port == 22 en wireshar y vemos los paquetes. El SYN es nuestro, nos
responde con un SYN de nuevo y luego ACK.
iwconfig--> Especificamos en33 la de DHCP
-Pn --> Para que des por hecho que el host atacado está abierto.
Por UDP:
nmap -p- -T5 --open -sU IP -Pn -v -n
arp-scan -I ens33 --localnet
arp-scan es una herramienta de línea de comandos utilizada para realizar un
escaneo de la tabla ARP en una red local. ARP (Address Resolution Protocol)
es un protocolo utilizado para mapear direcciones IP a direcciones MAC en una
red Ethernet. arp-scan aprovecha este protocolo para descubrir y enumerar las
direcciones IP y MAC de los dispositivos presentes en una red local.

nmap -sn IP IP | grep -oP'\d{1,3}\.\d{1,3}\.\d{1,3}' | sort

10
** La opción -sn en Nmap (Network Mapper) se utiliza para realizar un escaneo
de tipo "Ping Scan" o "Ping Sweep". En lugar de realizar un escaneo de puertos,
como lo hace Nmap de forma predeterminada, un escaneo de ping busca
determinar qué hosts están activos en la red identificando aquellos que
responden a las solicitudes de ping (ICMP Echo Request).
Cuando utilizas la opción -sn con Nmap, el programa enviará solicitudes de ping
a un rango de direcciones IP para verificar si los hosts están activos y responden.
La opción -sn en Nmap (Network Mapper) se utiliza para realizar un escaneo de
tipo "Ping Scan" o "Ping Sweep". En lugar de realizar un escaneo de puertos,
como lo hace Nmap de forma predeterminada, un escaneo de ping busca
determinar qué hosts están activos en la red identificando aquellos que
responden a las solicitudes de ping (ICMP Echo Request).
Cuando utilizas la opción -sn con Nmap, el programa enviará solicitudes de ping
a un rango de direcciones IP para verificar si los hosts están activos y responden.
La opción -sn en Nmap (Network Mapper) se utiliza para realizar un escaneo de
tipo "Ping Scan" o "Ping Sweep". En lugar de realizar un escaneo de puertos,
como lo hace Nmap de forma predeterminada, un escaneo de ping busca
determinar qué hosts están activos en la red identificando aquellos que
responden a las solicitudes de ping (ICMP Echo Request).
Cuando utilizas la opción -sn con Nmap, el programa enviará solicitudes de ping
a un rango de direcciones IP para verificar si los hosts están activos y responden.
Con -O mayúscula detecta el sistema operativo. Es muy agresivo y hace muchas
peticiones y no es muy adecuado.
Con respecto a puertos:
nmap -p22,80 -sV ( versión y servicio - fingerprinting) IP

NMAP CONTRA FIREWALLS


Cuando se realizan pruebas de penetración, uno de los mayores desafíos es
evadir la detección de los Firewalls, que son diseñados para proteger las redes
y sistemas de posibles amenazas. Para superar este obstáculo, Nmap ofrece
una variedad de técnicas de evasión que permiten a los profesionales de
seguridad realizar escaneos sigilosos y evitar así la detección de los mismos.
Algunos de los parámetros vistos en esta clase son los siguientes:

11
• MTU (–mtu): La técnica de evasión de MTU o “Maximum Transmission
Unit” implica ajustar el tamaño de los paquetes que se envían para evitar
la detección por parte del Firewall. Nmap permite configurar manualmente
el tamaño máximo de los paquetes para garantizar que sean lo
suficientemente pequeños para pasar por el Firewall sin ser detectados.
• Data Length (–data-length): Esta técnica se basa en ajustar la longitud
de los datos enviados para que sean lo suficientemente cortos como
para pasar por el Firewall sin ser detectados. Nmap permite a los usuarios
configurar manualmente la longitud de los datos enviados para que sean
lo suficientemente pequeños para evadir la detección del Firewall.
• Source Port (–source-port): Esta técnica consiste en configurar
manualmente el número de puerto de origen de los paquetes enviados
para evitar la detección por parte del Firewall. Nmap permite a los usuarios
especificar manualmente un puerto de origen aleatorio o un puerto
específico para evadir la detección del Firewall.
• Decoy (-D): Esta técnica de evasión en Nmap permite al usuario
enviar paquetes falsos a la red para confundir a los sistemas de
detección de intrusos y evitar la detección del Firewall. El comando -
D permite al usuario enviar paquetes falsos junto con los paquetes reales
de escaneo para ocultar su actividad.
• Fragmented (-f): Esta técnica se basa en fragmentar los
paquetes enviados para que el Firewall no pueda reconocer el tráfico
como un escaneo. La opción -f en Nmap permite fragmentar los paquetes
y enviarlos por separado para evitar la detección del Firewall.
• Spoof-Mac (–spoof-mac): Esta técnica de evasión se basa en cambiar
la dirección MAC del paquete para evitar la detección del Firewall. Nmap
permite al usuario configurar manualmente la dirección MAC para evitar
ser detectado por el Firewall.
• Stealth Scan (-sS): Esta técnica es una de las más utilizadas para realizar
escaneos sigilosos y evitar la detección del Firewall. El comando -
sS permite a los usuarios realizar un escaneo de tipo SYN sin establecer
una conexión completa, lo que permite evitar la detección del Firewall.
• min-rate (–min-rate): Esta técnica permite al usuario controlar la
velocidad de los paquetes enviados para evitar la detección del Firewall.

12
El comando –min-rate permite al usuario reducir la velocidad de los
paquetes enviados para evitar ser detectado por el Firewall.

- f --> Fragmenta paquetes. Envía de forma fragmentada los paquetes.


nmap -p22 IP -f
Capturamos los paquetes con tcpdump -i enS0E3 -w Captura.cap &>/dev/null &
disowned
Y vemos los paquetes fragmentados con:
ip.flags.mg ==1
ip.flags.mg == 0 --> Paquete completo.
Se deben rensamblar.
--mtu + múltiple de 8 para eludir firewalls.
-D --> Que se vean muchas ips y no solo la nuestra.
nmap -p22 IP -D IP diferente
En Wireshark veríamos tcp.port ==22, las dos IPs, lanzan SYN al mismo puerto.
Esto permite ver puertos que pueden salir como filtrado y que luego esté abierto.
ip.dst == la ip de destino.
Se puede jugar con los puertos de origen también para evitar el firewall.
nmap -p22 IP --open -T5 -v -n --source-port 53
Existe el parámetro --data-lenght 21 para manipular el tamaño de los paquetes
para evitar ser detectados.
Para las macs:
--spoof-mac Dell -Pn
-sS --> Stealh Scan --> Es rápido. Envías un SYN - Si está abierto SYN / ACK y
contestas RST ( cierras la connexión). No dejan evidencias en algunos firewalls.

Ejemplo de búsqueda:
nmap -p- --open -sS --min-rate 5000 ( mínimo paquete a tramitar) -v -n -Pn
IP

Capturar --> tcpdump -i XXX -w Captura.cap -v


Abro wireshark --> wireshark -r &>/dev/null & disown

13
RESUMEN:
-- mtu --> Ajusta los tamaños de los paquetes para hacerlos más pequeños y que
no los detecten.
- data-lenght --> Longitud de datos, la establecemos nosotros.
-source-port --> Puerto de origen.
-D --> Envía paquetes falsos desde otras IP que pongamos nmap IP -D Ip
-f --> Fragmenta paquetes.
-spoof-mac --> Más Dell por ejemplo y falsea la mac.
-sS --> Escaneo sigiloso en el que devuelve RST cuando el puerto está abierto.
-min-rate --> Ponemos la velocidad de los paquetes. Poner 5000 da buen
resultado.

SCRIPTS EN NMAP
-sC es para los scripts.
-sV para la versión
locate .nse | wc -l ( contamos las líneas)
Hay unos 660 scripts.
Con -sC te lanza un conjunto, los más populares.
-sCV --> Se pueden compactar.
Lo más famoso ftp-anon.nse y http-robots.txt.nse
El ftp tiene el modo anonimous y puedes entrar por ahí si está configurado el
modo anonimous. El robots valida la ruta robots.txt, pueden haber entradas de
ruta.
A los scripts se les puede echar un ojo con cat y la ruta del script.
--script --> Le decimos uno concreto.
Cada script tiene un conjunto de categorías.
Con locate .nse los vemos.
locate.nse | xargs grep "categories" A cada línea se le hace un grep.
Entre llaves veremos las categorías.
Existen diferentes categorías de scripts disponibles en Nmap, cada una diseñada
para realizar una tarea específica. Algunas de las categorías más comunes
incluyen:

14
• default: Esta es la categoría predeterminada en Nmap, que incluye una
gran cantidad de scripts de reconocimiento básicos y útiles para la
mayoría de los escaneos.
• discovery: Esta categoría se enfoca en descubrir información sobre la
red, como la detección de hosts y dispositivos activos, y la resolución de
nombres de dominio.
• safe: Esta categoría incluye scripts que son considerados seguros y que
no realizan actividades invasivas que puedan desencadenar una alerta de
seguridad en la red.
• intrusive: Esta categoría incluye scripts más invasivos que pueden ser
detectados fácilmente por un sistema de detección de intrusos o un
Firewall, pero que pueden proporcionar información valiosa sobre
vulnerabilidades y debilidades en la red.
• vuln: Esta categoría se enfoca específicamente en la detección de
vulnerabilidades y debilidades en los sistemas y servicios que se están
ejecutando en la red.

Para verlo todo mejor:


locate .nse | xargs grep "categories" | grep -oP '".*?"' | sort -u
Y lo vemos todo ordenado por órden alfabético y cadenas únicas.
Son 14 categorías.
locate .nse | xargs grep "categories" | grep -oP '".*?"' | sort -u | wc -l
Safe y vuln es menos detectable.
Ejemplo:
nmap -p22 IP --script ="vuln and safe" -vN --> Lanzamos de vuln y safe a la vez.
"vuln or safe" --> Uno o el otro.
Creamos un mkdir admin
python3 -m http.server 80 --> Creamos un servidor.
pwdx PID --> Vemos en que ruta del sistema se ejecuta el servicio.
Atacamos con NMAP:
nmap -p80 IP --script http-enum
** Este script lanza un ataque de fuerza bruta con diccionario para ver los
directorios que pueden haber. En nuestro caso, nos detecta admin que es el que
hemos creado.

15
Podemos ver el tráfico con wireshark capturando con tcpdum -i XXX -w
Captura.cap -v
Lo abrimos con wireshark -r Captura.cap &>/dev/null & disown
O desde consola con tshark -r Captura.cap 2>/dev/null
Para ver los datos podemos hacer :

SCRIPTS NMAP CON LUA

Nmap permite a los profesionales de seguridad personalizar y extender sus


capacidades mediante la creación de scripts personalizados en el lenguaje de
programación Lua. Lua es un lenguaje de scripting simple, flexible y poderoso
que es fácil de aprender y de usar para cualquier persona interesada en crear
scripts personalizados para Nmap.
Para utilizar Lua como un script personalizado en Nmap, es necesario tener
conocimientos básicos del lenguaje de programación Lua y comprender la
estructura básica que debe tener el script. La estructura básica de un script de
Lua en Nmap incluye la definición de una tabla, que contiene diferentes campos
y valores que describen la funcionalidad del script.
Los campos más comunes que se definen en la tabla de un script de Lua en
Nmap incluyen:

• description: Este campo se utiliza para proporcionar una descripción


corta del script y su funcionalidad.
• categories: Este campo se utiliza para especificar las categorías a las
que pertenece el script, como descubrimiento, explotación, enumeración,
etc.
• author: Este campo se utiliza para identificar al autor del script.
• license: Este campo se utiliza para especificar los términos de la licencia
bajo la cual se distribuye el script.

16
• dependencies: Este campo se utiliza para especificar cualquier
dependencia de biblioteca o software que requiera el script para funcionar
correctamente.
• actions: Este campo se utiliza para definir la funcionalidad específica del
script, como la realización de un escaneo de puertos, la detección de
vulnerabilidades, etc.

Una vez que se ha creado un script de Lua personalizado en Nmap, se puede


invocar utilizando el parámetro –script y el nombre del archivo del script. Con la
creación de scripts personalizados en Lua, es posible personalizar aún más las
capacidades de Nmap y obtener información valiosa sobre los sistemas y
servicios en la red.
Luego escaneamos con nmap --script /home/parrot/example.nse (ruta del
archivo) -p22,80 -Pn ( y ya lo que querámos meterle).

DESCRIPTORES DE ARCHIVOS
La enumeración de puertos es una tarea crucial en las pruebas de penetración y
seguridad de redes. Tal y como hemos visto, Nmap es una herramienta de línea
de comandos ampliamente utilizada para esta tarea, pero existen alternativas
para realizar la enumeración de puertos de manera efectiva sin utilizar
herramientas externas.
Una alternativa a la enumeración de puertos utilizando herramientas externas es
aprovechar el poder de los descriptores de archivo en sistemas Unix. Los
descriptores de archivo son una forma de acceder y manipular archivos y
dispositivos en sistemas Unix. En particular, la utilización de /dev/tcp permite la
conexión a un host y puerto específicos como si se tratara de un archivo en el
sistema.
Para realizar la enumeración de puertos utilizando /dev/tcp en Bash, es posible
crear un script que realice una conexión a cada puerto de interés y compruebe
si el puerto está abierto o cerrado en función de si se puede enviar o recibir datos.
Una forma de hacer esto es mediante el uso de comandos como “echo” o “cat“,
aplicando redireccionamientos al /dev/tcp. El código de estado devuelto por el
comando se puede utilizar para determinar si el puerto está abierto o cerrado.

17
Aunque esta alternativa puede ser menos precisa y más lenta que el uso de
herramientas especializadas como Nmap, es una opción interesante y viable
para aquellos que buscan una solución rápida y sencilla para la enumeración de
puertos en sistemas Unix. Además, este enfoque puede proporcionar una mejor
comprensión de cómo funcionan los descriptores de archivo en los sistemas Unix
y cómo se pueden utilizar para realizar tareas de red.
Creamos un nuevo script llamado portScan.sh
Le damos permisos con chmod +x portScan.sh

18
DESCUBRIMIENTO DE EQUIPOS EN LA RED LOCAL
(ARP e ICMP)

Con home -I
Con ifconfig y vemos nuestra IP y la máscara de red.
Tenemos herramientas:
nmap -sn IP/máscara de subred
Nmap te reporta los equipos que están en la red.
Otras herramientas por ARP:
arp-scan --> arp-scan -I (interfaz de red) --localnet ( en la red local).
Pueden haber duplicados. Para evitar los duplicados:
--ignoredups
netdiscover -i (interfaz). Pero es muy lenta.
En auditorias es muy común que las máscaras puedan variar por segmentación
de red. Se pueden encontrar equipos en otras IPs porque el cliente se confunde
entre subneting y segmentación.
Mejor investigar el resto de subredes, ampliando el subneting. Aunque
pensemos que es clase C, podemos probar como si fuera clase B.
(ping -c 1 IP) &>/dev/null

timeout 1 bash -c "ping -c IP" &>/dev/null

1. 2>/dev/null: Esta notación redirige únicamente la salida de error (stderr)


a /dev/null. En otras palabras, redirige los mensajes de error generados
por el comando para que no se muestren en la terminal ni se registren en
el archivo de salida. El número "2" se refiere al descriptor de archivo para
la salida de error.

Ejemplo:

bashCopy code
comando 2>/dev/null

19
2. &>/dev/null: Esta notación redirige tanto la salida estándar (stdout) como
la salida de error (stderr) a /dev/null. Significa que tanto los resultados
normales como los mensajes de error se descartan.

Ejemplo:

bashCopy code
comando &>/dev/null

Si luego miramos el código de estado:


echo $?
Para ver el código de estado.
Podemos ponerle && echo "[+] Está abierta"
Script en bash

Otra opción:

RESUMEN:
arp-scan -I enS0e3 --localnet --ignoredups
msscan -p- -v -Pn IP/MS --rate=1000 o 10000 o 5000 ( a variar).

20
CASO PRÁCTICO
https://www.hackerone.com/
Antes de iniciar una auditoría en esta plataforma, es fundamental fijar un objetivo
claro, además de definir el alcance de la auditoría. Esto se logra a través del
concepto de “Scope“, que establece los límites de la auditoría, así como los
sistemas y aplicaciones que pueden ser auditados.
DUna de las principales maneras de vulnerar es a través del correo electrónico.
A continuación, las webs utilizadas:

• Hunter: https://hunter.io/
• Intelligence X: https://intelx.io/ --> Es un buscador de correos, dominios,
información... Se pueden encontrar credenciales por brechas, correos.
• Phonebook.cz: https://phonebook.cz/ --> Aquí vemos correos para hacer
phishing e ingeniería social.
• Clearbit Connect: Chrome Extension
• https://email-checker.net/ --> Validar correos electrónico

Como atacante, lo bueno es obsesionarse con las víctimas. Para poder sacar
toda la información posible. Para ver en qué páginas está, en que redes sociales
está.

RECONOCIMIENTO DE IMÁGENES

Una de las herramientas en línea que vemos en esta clase es


‘PimEyes‘. PimEyes es una plataforma en línea que utiliza tecnología
de reconocimiento facial para buscar imágenes similares en Internet en
función de una imagen que se le proporciona como entrada. Esta herramienta
puede ser útil en la detección de información personal de una persona, como sus
perfiles en redes sociales, direcciones de correo electrónico, números de
teléfono, nombres y apellidos, etc.
El funcionamiento de PimEyes se basa en el análisis de patrones faciales, que
son comparados con una base de datos de imágenes en línea para encontrar
similitudes. La plataforma también permite buscar imágenes de personas que

21
aparecen en una foto en particular, lo que puede ser útil en la investigación de
casos de acoso o en la búsqueda de personas desaparecidas.

https://pimeyes.com/en

DNS
phonebook.cz
Salen dominios, subdominios... incluso información privilegiada no restringida.
También te da emails, URLS y dominios.
Utilizamos dos herramientas:
Una pasiva --> ctrf que detecta dominios y subdominios y se ejecuta con -->
python3 ctrf -d XXX.com
Activa --> Gobuster --> Descargando una lista que almacenamos en
/usr/share/seclist.
Usamos el siguiente comando:
gobuster vhost -u https://tinder.com -w
/usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -t 20
Nos da casi todo 403, por tanto, grep -v "403" --> URL prohibida
Podemos usar diccionarios mayores como el de 110000.txt
wfuzz es otra herramienta.
Salen muchos 403 de nuevo -->
wfuzz -c --hc=403 -t 20 -w /usr/share/SecLists/Discovery/DNS/subdomains-
top1million-5000.txt -H "Host: FUZZ.tinder.com" https://tinder.com
Si ponemos --sc nos busca por código.
Usamos otro que es el sublist3r pero no encuentra nada y lo veo flojo.
Se usan todas las herramientas, se copia en un archivo y se ordenan con sort -
u para tener cadenas únicas.

BRECHAS DE SEGURIDAD
https://www.dehashed.com/
Esta página nos dice brechas que pueden tener un dominio en una auditoria.
Pero es de pago.

22
En el curso podemos ver cómo funciona la web. Se ven correos con los usuarios
y contraseña hasheada. Pero a veces está almacenada en texto claro. En
algunas si que salen. Si alguna está hasheada con 32, podemos usarla como
md5 y revertirla.
Se puede ver en LINKEDIN el perfil de la compañía donde salen los empleados.
Y a partir de ahí, podemos ir mirando correos, dominios, subdominios y utilizar
ingeniería social.

TECNOLOGÍAS EN PÁGINAS WEB


Desde el punto de vista de la seguridad, es fundamental conocer
las tecnologías y herramientas que se utilizan en una página web. La
identificación de estas tecnologías permite a los expertos en seguridad evaluar
los riesgos potenciales de un sitio web, identificar vulnerabilidades y diseñar
estrategias efectivas para proteger la información sensible y los datos críticos.
Existen diversas herramientas y utilidades en línea que permiten identificar las
tecnologías utilizadas en una página web. Algunas de las herramientas más
populares incluyen Whatweb, Wappalyzer y builtwith.com. Estas
herramientas escanean la página web y proporcionan información detallada
sobre las tecnologías utilizadas, como el lenguaje de programación, el servidor
web, los sistemas de gestión de contenido, entre otros.
La herramienta whatweb es una utilidad de análisis de vulnerabilidades que
escanea la página web y proporciona información detallada sobre las tecnologías
utilizadas. Esta herramienta también puede utilizarse para identificar posibles
vulnerabilidades y puntos débiles en la página web.
Wappalyzer, por otro lado, es una extensión del navegador que detecta y
muestra las tecnologías utilizadas en la página web. Esta herramienta es
especialmente útil para los expertos en seguridad que desean identificar
rápidamente las tecnologías utilizadas en una página web sin tener que realizar
un escaneo completo.
Builtwith.com es una herramienta en línea que también permite identificar las
tecnologías utilizadas en una página web. Esta herramienta proporciona
información detallada sobre las tecnologías utilizadas, así como también
estadísticas útiles como el tráfico y la popularidad de la página web.

23
A continuación, os proporcionamos los enlaces correspondientes a las
herramientas vistas en esta clase:

• Whatweb: https://github.com/urbanadventurer/WhatWeb
• Wappalyzer: https://addons.mozilla.org/es/firefox/addon/wappalyzer/
• Builtwith: https://builtwith.com/

Procedemos con xiaomi.com


Usamos whatweb --> whatweb thttps://miwifi.com
Cuando vemos algo que no sabemos qué es, lo buscamos. Pone Tengine,
JQuery...
Tengine.exe es un servidor web y es de comercio electrónico. Tiene nginx es un
servidor web.
JQuery y su versión --> Esto vale oro. Para ver que emplean. Si es antiguo, es
vulnerable casi siempre. Jquery es una librería multiplataforma de JavaScript. La
última versión es más moderna que la que sale. JQuery lastet versión. Hay
vulneravilidades típicas relacionadas con JQuery --
> https://security.snyk.io/package/npm/jquery/1.5.1
El wappalyzer te lo hace pero directamente.

FUZZING
Vamos a miwifi.com. Como se podrían ver rutas:
https://miwifi.com/ --> Van cambiando dependiendo de donde cliquemos.
Tenemos que encontrar directorios:
GOBUSTER:
gobuster dir -u https://miwifi.com/ -w /usr/share/SecLists/Discovery/Web-
Content/directory-list-2.3-medium.txt -t 200
Para quitar el 403 y 404 --> gobuster dir -u https://miwifi.com/ -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t
200 --add-slash -b 403,404
Para ver extensiones --> gobuster dir -u https://miwifi.com/ -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t
200 --add-slash -b 403,404 -x php,html,txt

24
Otra manera --> gobuster dir -u https://miwifi.com/ -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t
50 -b 403,404 -x php,html,txt --> Donde vemos más cosas.
Para ver los códigos exitosos ( por ejemplo el 200) --> gobuster dir -u
https://miwifi.com/ -w /usr/share/SecLists/Discovery/Web-
Content/directory-list-2.3-medium.txt -t 50 -x html -s 200 -b '' --> Hay que
meterle al final una black list con una cadena vacia.
Otra herramienta es wfuzz:
wfuzz -c -t 200 -w /usr/share/SecLists/Discovery/Web-Content/directory-
list-2.3-medium.txt https://miwifi.com/FUZZ
Donde siempre hay que poner FUZZ donde queremos que se meta el payload.
En este caso, al final de la URL.
Para quitar el código de estado 404--> wfuzz -c --hc=404, 403 -t 200 -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
https://miwifi.com/FUZZ
Otra manera --> wfuzz -c -L --hc=404,403 -t 200 -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
https://miwifi.com/FUZZ/ --> Pero hay que meterla la barra al final. El L es el
follow del redirect.
** El codigo 301 es URL movida por el cliente.
Para ver líneas de contenido--> wfuzz -c --sl=216 --hc=404,403 -t 200 -w
/usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
https://miwifi.com/FUZZ/
Para esconderlas --> --hl
--sh == Para caracteres.
--hh --> Para quitar caracteres.
Este tipo de payload, es de diccionario. Se puede poner también como -z file
/usr/share....
Hay otros tipos de payloads.
wfuzz -c --hc=404,403 -t 200 -w /usr/share/SecLists/Discovery/Web-
Content/directory-list-2.3-medium.txt https://miwifi.com/FUZZ.htmt --> Se le
concatena el html y deben aparecer los que existen.
Se pueden buscar con otras extensiones.

25
Hay un payload de tipo lista -z list,html-txt-php --> wfuzz -c --hc=404,403 -t 200
-w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-
medium.txt -z list,html-txt-php https://www.miwifi.com/FUZZ.FUZ2Z

Vamos a enumerar ID con un payload de range:


wfuzz -c -t 200 -z range,1-20000
'https://www.mi.com/shop/buy/detail?product_id=FUZZ'
wfuzz -c --hw=6515 -t 200 -z range,1-20000
'https://www.mi.com/shop/buy/detail?product_id=FUZZ' --> Filtramos por
palabras con --hw
Otra heramienta es Ffuf.

./ffuf -c -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-
medium.txt -u https://miwifi.com/FUZZ/ --mc=200

BURPSUITE:
Burpsuite &>/dev/null & disown --> Para abrirlo en segundo plano.

26
Es un intermediario, hacemos petición de origen al destino de web, burpsuite se
mete en medio y hace que las consultas pasen por burpsuite con un proxy. Se
pueden ver cómo se ven las solicitudes, se puede registrar.

GOOGLE DORKS / GOOGLE HACKING

google.es
tinder.com --> Aislado el dominio, salen cosas que no tienen nada que ver pero
que dan alusión al dominio principal.
site:tinder.com --> Fuerzas a que salga el dominio tinder.com
site:tinder.com filetype:txt --> Con la extensión txt.
Se pueden buscar pdf, word, excel..
intext:tinder.com --> En el texto de la entrada debe salir tinder.com
intext:tinder.com filetype:pdf
Me podría bajarme los archivos pdf con wget y con la herramienta exiftool ver si
hay metadatos. Y vemos la información del documento.
Hay una página que es pentest-tools que recoge 18 google dorks. En google
hacking pones target y puedes seleccionar uno de los 18 google dorks. Es legal
todo.
wpcontect en wordpress se pueden ver los recursos y puedes enumerar.
Otra web para sploits --> https://www.exploit-db.com/
En worpress --> inurl:wp-config.php.txt --> Se puede enumerar y almacena datos
claros de registro. Puede haber backups por ejemplo.

27
IDENTIFICACIÓN Y VERIFICACIÓN EXTERNA DE
LA VERSIÓN DEL SISTEMA OPERATIVO
En nmap -O veíamos el sistema operativo pero es muy agresivo.
Para verlo de forma más rápida como--> arp-scan -I xxx --localnet --ignoredups
Si le lanzamos un ping -c 1 xxx.xxx.xxx. y a otra IP y vemos que el TTL ( Tiempo
de vida), son diferentes para cada SO. Puedes determinar el SO con este valor.
Las Windows suelen tener 128 de TTL y las máquinas Linux rondan los 64 o
255.
wichSystem.py | xargs bat --> Lo vemos más cuco y es un Script que hizo el. Lo
descargamos y lo metemos en la ruta /usr/bin/whichSystem.py , pero debe estar
en el PATH. Debe tener permisos de ejecución.

28

También podría gustarte