Diapositivas Buffer Overflow (PenTesting4)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 102

Diplomado en Seguridad Informática

Penetration testing
OSWALDO VELASQUEZ A.
Penetration testing

“[...]test de intrusión o pentesting evalúan


los niveles de seguridad de un sistema o
red mediante la simulación, en un entorno
controlado, de un ataque por parte de un
usuario malicioso conocido comúnmente
como hacker”
(Gnozales Perez, 2013)
Penetration testing: methodologies
Methodology: OSSTMM
Open Source Security Testing Methodology (OSSTMM)
Comprobación de seguridad de:
➢ Seguridad física
➢ Seguridad en redes de datos y telecomunicaciones
➢ Seguridad inalámbrica
➢ Seguridad de Procesos
➢ Ingeniería social
➢ Cumplimiento
Dispone de varias fases:
➢ Identificación
➢ Revelación de datos sensibles
➢ Análisis de vulnerabilidades y debilidades criptológicas
➢ Análisis de vulnerabilidades y debilidades en accesos físicos, redes de
datos, redes inalámbricas, sistemas, servicios y aplicaciones
➢ Validación de la confidencialidad en accesos físicos, redes de datos,
redes inalámbricas, sistemas, servicios y aplicaciones
➢ Detalle técnico de los análisis
➢ Contramedidas
Methodology: OWASP
Open Web Application Security Project.
Su fases son:
➢ Pasiva
➢ Activa

Dentro de la fase activa se dispone de los


siguientes procesos:
➢ Recopilación de información
➢ Pruebas de la configuración y despliegue de la
administración
➢ Pruebas de la gestión de identificación
➢ Pruebas de autenticación
➢ Pruebas de autorización
➢ Pruebas de la gestión de sesiones
➢ Pruebas de validación de entrada
➢ Pruebas de manejo de errores
➢ Pruebas de cifrado
➢ Pruebas de lógica de negocio
Categories of Penetration Test

White Box
Es el mas completo, el Pentester conoce todos los datos sobre el
Sistema: estructura, contraseñas, IPs, firewalls, etc.

Black Box
Es el mas "real" ya que el Pentester no tiene apenas datos sobre la
organización y actúa como si fuere un ciberdelincuente.

Grey Box
Es un hibrido de black box y white box, el Pentester posee cierta
información.
Penetration testing: phases
Penetration testing: phases
Footprinting and Reconnaissance
Footprinting and Reconnaissance

“Es la recopilación de toda la


información posible sobre el
objetivo o red objetivo”
(Certified Ethical Hacker)
Search Engines

Crawlers -> indexar


Search Engines
Google Dork: https://www.exploit-db.com/

• Muestra las páginas web almacenadas en la • Restringe los resultados a aquellos sitios web que
[cache:] caché de Google. [allintitle:] contienen todas las palabras clave de búsqueda en el
título.

• Muestra las páginas web que tienen enlaces a • Restringe los resultados a los documentos que contienen
[link:] la página web especificada. [intitle:] la palabra clave de búsqueda en el título.

• Enumera las páginas web que son similares a la • Restringe los resultados a aquellos que contienen todas
[related:] página web especificada. [allinurl:] las palabras clave de búsqueda en la URL.

• Presenta cierta información que Google tiene • Restringe los resultados a documentos que contienen
[info:] sobre una página web en particular. [inurl:] todas las palabras clave de búsqueda en la URL.

• Restringe los resultados a los sitios web en el • Encuentra información para una ubicación específica
[site:] dominio dado. [location:]
WebSite

HTTP:
➢ lynx
➢ wget
➢ Curl
➢ Firefox
WebSite
➢Web Copier
https://www.httrack.com/
Browse website offline

➢Way Back Machine


https://archive.org/
Explora versiones archivadas de sitios
web.

➢CeWL
Extrae todas las palabras posibles de un
sitio web.

➢MetaGoofil
Obtener información, de metadatos de
documentos públicos (pdf, doc, xls, ppt,
docx, pptx, xlsx)
Email

SMTP = 25

POP3 = 110

IMAP = 143.
Email
Email: Clients

Contiene detalles de envió:


✓Servidor de correo remitente
✓Fecha y hora
✓Sistema de autenticación
✓Remitente
✓IP
Email: Header
Email: Header
Email: Tools
Los atacantes o utilizan
para enviar emails
maliciosos, y además,
obtienen información.
Whois Lookup
Whois consulta las BD remotas para obtener información de registro de
dominio (Registros Regionales de Internet RIR).

Las consultas Whois Whois ayuda a un


retornan: atacante a:
✓ Detalles de nombre de ✓ Obtener información de
dominio contacto de dominio
✓ Detalles de dueños de ✓ Crear un mapa de la
nombre de dominio red objetivo
✓ Servidores de nombre de ✓ Obtener detalles de la
dominio red del objetivo
✓ Fecha de creación de
dominio
✓ Vencimiento de registro
✓ Actualización de registro
Domain Name System (DNS)
Domain Name System(DNS)
Tipo Descripción
Registro
A Apunta a un IP de un host
MX Apunta al dominio de un server mail
NS Apunta a un Servidor de Nombre
CNAME Nombre canónico, permite alias a host
SOA Autoridad de zona, DNS primario
SRV Servicio de Registros
PTR Registro Inverso. IP to Name Domain
RP Persona responsable
HINFO Información de host https://www.dnsstuff.com/
TXT Texto del registro https://network-tools.com/
https://whois.domaintools.com/
https://www.tamos.com/
Domain Name System(DNS)
Ej.: site:microsoft.com -inurl:www

Netcraft.com: https://searchdns.netcraft.com/
Ej.: find subdomain matches
“*.microsoft.com”
Traceroute
ICMP Traceroute

UDP Traceroute

TCP Traceroute
Traceroute Tools
Path Analizer Pro
Realiza un tracing de rutas de red con
pruebas de rendimiento, DNS, Whois y
resolución de red para investigar la red.
https://www.pathanalyzer.com/

VisualRoute
Es una herramienta de diagnóstico de
traceroute y redes que identifica la
ubicación geográfica de los routers,
servidores y otros dispositivos IP.
http://www.visualroute.com/
Other Tools
Countermeasures
✓Restringir el acceso a redes sociales manejados desde la organización
✓Configurar los Web Servers correctamente para evitar fugas de información
✓Educar a los empleados para usar seudónimos en su blogs, grupos y fórums
✓No revelar información critica en comunicados de prensa, reportes anuales,
catalogo de productos, etc.
✓Limitar la cantidad de información publicada en su website/internet
✓Usar técnicas de fooprinting para descubrir y remover toda la información
publicada
✓Prevenir motores de búsqueda desde el cache de la pagina web y usar
nombres anónimos para registrar los servicios
Countermeasures
✓Desarrollar y hacer cumplir políticas de seguridad para regular la
información que los empleados pueden revelar a terceros
✓Establecer DNS externo y aparte o usar DNS dividido, y restringir la
transferencia de zona a servidores autorizados
✓Deshabilitar el listado del directorio en los web servers
✓Llevar a cabo capacitaciones periódicas de concienciación sobre
seguridad, capacitar a los empleados sobre diversos tipos y riesgos de
ingeniería social
✓Opte por los servicios de privacidad en la base de datos de búsqueda de
Whois
Countermeasures
✓Encriptar y proteger las claves que manejen información sensitiva
✓Colocar los documentos críticos, como planes de negocios y documentos
patentados, fuera de línea (offline) para prevenir ataques de exploit
✓Capacitar a los empleados para prevenir ataques de ingeniera social
✓Cambiar los datos proporcionados a los que registrar los dominios de
Internet para ocultar los datos de contacto de la organización
✓Deshabilitar la funcionalidad geoetiquetado en las cámaras para prevenir
seguimientos geográficos
Scanning
Scanning

“Es un conjunto de procedimientos


usados para identificar hosts, ports
y servicios en la red”
(Certified Ethical Hacker)
TCP/IP Communication
TCP esta orientado a la conexión, i.e., prioriza el establecimiento de conexión antes de
transferir los datos entre las aplicaciones.
TCP Communication Flags
La comunicación TCP esta controlada por las diferentes Flags y esta en el TCP Header

Los datos No habrá más Resetear la


contenidos en el transmisión conexión
paquete deben
procesarse
inmediatamente

Enviar todo Confirmación Inicializa la


inmediatamente de recepción conexión
al buffer de de paquete
datos entre hosts
Scanning Tools
Unicornscan
https://sourceforge.net/projects/osace/
SolarWinds Port Scanner
https://www.solarwinds.com/
PRTG Network Monitor
https://www.paessler.com/
Omnipeek Network Protocol Analizer
https://www.liveaction.com/products/om
nipeek-network-protocol-analyzer/
Host Discovery
Host Discovery: ARP Ping Scan
✓Envía paquetes para descubrir los dispositivos de la red, incluso si estos están ocultos por
restricciones de firewall.
✓Cuando se envía paquetes ICMP a un host destino, este reacciona.
✓Los atacantes lo utilizan para ver si un host esta activo.
❑Si el IP con su HW esta activo, entonces, el host generara una respuesta.
❑Si no, después de un cierto numero de intentos el SO abandona el host.

✓En el tool Nmap Zenmap, se utiliza:


◦ -sn: para deshabilitar el port scan
◦ -PR: ARP ping scan
Host Discovery: UDP Ping Scan
✓Envía paquetes UDP al objetivo.
✓El puerto usado para enviar los
paquetes UDP es 40, 125.
✓En el tool Nmap Zenmap, se utiliza:
◦ -sn: para deshabilitar el port scan
◦ -PU: UDP ping scan
Host Discovery: ICMP ECHO Ping Scan
✓El ICMP permite realizar un ICMP a
través de un firewall.
✓ICMP ECHO ping scan envía una solicitud
ICMP ECHO request a un host objetivo.
◦ Si el host esta vivo, este retornara un ICMP
ECHO reply
◦ Si Destination Unreachable es paquete
ICMP que envía el router al host origen. El
mensaje en sí significa que este router
considera inalcanzable el destino al que
quiere llegar el host.

✓En el tool Nmap Zenmap, se utiliza:


◦ -PE: ICMP ECHO ping scan
Host Discovery: ICMP ECHO Ping Sweep
✓Ping Sweep, permite verificar host vivos en
un rango de direcciones IP, es decir, se envía
múltiples ICMP echo.
✓Los atacantes calculan la mascara de subred
para identificar el numero de hosts
presentes.
✓El Ping realizado también detalla el tiempo
que tarda un paquete en realizar un viaje
completo, denominado “round-trip time”
(tiempo de ida y vuelta).
✓En el tool Nmap Zenmap, se utiliza:
◦ -PE: envía ICMP ECHO en un rango de IPs.
Host Discovery: Ping Sweep Tools
✓Angry IP Scanner
✓https://angryip.org/
✓Determina, hostnames, MAC addresses,
scan ports

✓Visual Ping Tester


✓http://pingtester.net/

✓OpUtils
✓https://www.manageengine.com/products/
oputils/
Host Discovery: Ping Sweep Contramedidas
1. Configura el firewall para detectar y prevenir
los ping sweep.
2. Usar un IDS(Intrusion Detection Systems) y un
IPS(Intrusion Prevention Systems) como Snort
para detectar y prevenir intentos de ping
sweep.
3. Evaluar el tipo de trafico ICMP de la red.
4. Cortar conexiones ICMP de mas de 10
solicitudes.
5. Usar un DMZ (Firewall denominado Zona
desmilitarizada) y permitir solo comandos:
ICMP ECHO_REPLY, HOST UNREACHABLE, y
TIME EXCEEDED
6. Limitar el trafico ICMP usando ACLs (Access
Control Lists) y permitir permisos soso de IP
específicos de un ISP.
Host Discovery: ICMP Timestamp Ping Scan
✓Los atacantes lo utilizan para realizar ICMP timestamp request and reply messages
consultas de tiempo de espera de los
mensajes enviados por los hosts.
◦ Un objetivo responderá con tiempos de
espera a la consulta solicitada.
◦ Ante una solicitud ICMP TimeStamp, la
respuesta del host de destino es condicional,
y puede o no responder con valor de tiempo.

✓El ICMP Timestamp es utilizado


generalmente para tiempos de
sincronización.
✓Es muy útil para verificar si un host esta
activo, cuando el administrador a bloqueado
el ping tradicional ICMP ECHO
✓En el tool Nmap Zenmap, se utiliza:
◦ -PP: ICMP timestamps
Host Discovery: ICMP Address Mask Ping Scan
✓Los atacantes envían una consultara obtener
información de la mascara de subred.
✓Sin embargo, la respuesta de la máscara de
dirección del host de destino es condicional y
puede o no responder con la subred
adecuada.
✓Esta técnica es usada cuando los
administradores bloquean los pings ICMP
ECHO.
✓En el tool Nmap Zenmap, se utiliza:
◦ -PM: ICMP address mask ping scan
Host Discovery: TCP SYN Ping Scan
✓Sondea los puertos para determinar si el host esta online y verifica si existe reglas de firewall.
✓El atacante inicializa una comunicación de tres vías y da un “handshake” apretón de manos:
◦ Envía un TCP flag SYN vacío.
◦ Después de recibir el flag ACK, entonces el atacante confirma que el hosts esta activo y termina la
conexión con un flag RST.

✓En el tool Nmap Zenmap, se utiliza:


◦ -PS: TCP SYN
Host Discovery: TCP ACK Ping Scan
✓Muy similar a TCP SYN con menores variaciones.
✓Por defecto usa el puerto 80.
En el tool Nmap Zenmap, se utiliza:
◦ -PA: TCP ACK
Host Discovery: IP Protocol Ping Scan
✓Envía ping IP paquete con cabeceras IP a un numero de protocolo especifico.
✓Tiene el mismo formato que el ping TCP y UDP.
✓Este protocolo envía diferentes paquetes usando diferentes IP protocolos.
✓Se puede configurar el DEFAULT_PROTO_PROBE_PORT_SPEC en el archivo
nmap.h durante el tiempo de compilación.
✓En el tool Nmap Zenmap, se utiliza:
◦ -PO: IP protocol ping scan
Port and Services Discovery
Port Scanning Techniques
Port and Services Discovery: TCP Connect/Full Open Scan
✓El escaneo de conexión TCP, detecte
cuando un puerto está abierto después
de completar el protocolo de three-way
handshak.
✓El escaneo de conexión TCP establece
una conexión completa y se cierra la
conexión enviando un paquete RST
✓No requiere de privilegios de
superuser
✓Zenmap:
◦ -sT: TCPConnect/Full open scan
◦ -v: para recibir la información de la
exploración tan pronto llegue
Port and Services Discovery: Stealth Scan(Half-open Scan)
✓El Stealth Scan implica restablecer
abruptamente la conexión TCP entre el cliente
y el servidor antes de que se completen las
señales de three-way handshake, dejando así la
conexión medio abierta.
✓Los atacantes utilizan el stealth scanning para
eludir las reglas del firewall, así como los
mecanismos de registro, y se esconden bajo la
apariencia del tráfico regular de la red.
✓Zenmap:
◦ -sS: Stealth Scan
Port and Services Discovery: Inverse TCP Flag Scan
Los atacantes envían paquetes TCP para
investigar los puertos abiertos, con una
bandera TCP (FIN, URG, PSH):
◦ Si no responde, implica que los puertos están
abiertos
◦ Si la respuesta RST significa que el puerto está
cerrado.

Ventaja:
◦ Evita muchos IDS y logs

Desventaja:
◦ Necesita privilegios de super usuario
◦ Es mas efectivo en sistema basados en BSD
Port and Services Discovery: Xmas Scan
Los atacantes envían frame TCP con los
flags FIN, URG, y PUSH.
El escaneo con el flag FIN solo funciona
con SO basados en la implementación
TCP/IP RFC 793
El escaneo Xmas no funcionara con
ninguna versión de Microsoft Windows
✓Zenmap:
◦ -sX: Xmas scan
◦ -sF: FIN scan
◦ -sN: NULL scan
Port and Services Discovery: TCP Maimon Scan
Los atacantes envían FIN/ACK, y:
◦ Si no hay respuesta, entonces , el puerto
esta Abierto|Filtrado.
◦ Si existe una respuesta con RST, entonces
el puerto esta cerrado.

Sin embargo, en muchos sistemas BSD,


el puerto está abierto si el paquete se
cae en respuesta a la solicitud.
Zenmap:
◦ -sM: TCP Maimon Scan
Port and Services Discovery: ACK Flag Probe Scan
Los atacantes envían paquetes con la
flag ACK, y estos analizan el header de
la información (TTL y campo WINDOW)
recibe un RST para determinar si el
puerto esta abierto o cerrado.
Los atacantes envían también un ACK
con un numero randomico de
secuencia:
◦ Si no hay respuesta, quiere decir que el
puerto esta filtrado.
◦ Si hay una respuesta RST, entonces, el
puerto no esta filtrado.

Zenmap:
◦ -sA: ACK flag probe scan
Port and Services Discovery: ACK Flag Probe Scan: TTL
Se analiza el campo TTL y los valores de
paquetes recibidos con el valor RST.
◦ Si el valor TTL del paquete RST en un puerto
en particular es menor que el valor límite de
64, entonces el puerto esta abierto.

Zenmap:
◦ -ttl <number>: TTL based scan
Port and Services Discovery: ACK Flag Probe Scan Window-based
Se analiza el campo de tamaño de Window y
los valores de paquetes recibidos con el valor
RST.
◦ Si el valor del tamaño de Window del paquete
RST en un puerto no es cero, entonces el puerto
esta abierto.

Zenmap:
◦ -sW: Window based scan
Port and Services Discovery: ACK Flag Probe Scan Window-based
Ventajas:
✓Este tipo de scan puede evadir el
IDS en muchos de los casos.

Desventajas:
✓Es extremadamente lento y puede
explotar solo SO vulnerables
basados en BSD
Port and Services Discovery: IDLE/IPID Header Scan

Cada paquete IP en Internet tiene


un número de identificación de
fragmento (IPID); un SO aumenta el
IPID para cada paquete enviado,
por lo tanto, probar un IPID le da al
atacante el número de paquetes
enviados después de la última
prueba. Una máquina que recibe
paquetes SYN|ACK no solicitados
con un RST. Se ignorará un RST no
solicitado.
Port and Services Discovery: IDLE/IPID Header Scan

Nmap –Pn –p- –sI 192.168.10 192.168.1.17


zombie objetivo
Port and Services Discovery: UDP Scanning
UDP Port Open
◦ No hay protocolo de enlace TCP de three-way handshake para el escaneo UDP.
◦ El sistema no responde con un mensaje cuando el puerto está abierto.

UDP Port Closed


◦ Si se envía un paquete UDP a un puerto cerrado, el sistema responderá con un mensaje de puerto ICMP inaccesible.
◦ El Spyware, los Trojan horses y otras aplicaciones maliciosas utilizan puertos UDP.

Zenmap:
◦ -sU: UDP scan
Port and Services Discovery: SCTP INIT Scanning
Los atacantes envían un bloque (Chunk) INIT al objetivo:
◦ Una respuesta INIT+ACK chunk, implica que el puerto esta abierto.
◦ Mientras que una respuesta ABORT chunk, indica que el puerto esta cerrado.
◦ Si el objetivo responde con un ICMP unreachable exception, indica que el puerto ha sido filtrado
Se utiliza para: VoIP, IP telephony, etc. Zenmap: -sY: SCTP INIT scan
Port and Services Discovery: SCTP COOKIE ECHO Scanning
Los atacantes envían un COOKIE ECHO
chunk al objetivo:
◦ Si no hay respuesta implica que el Puerto
esta abierto
◦ Si la respuesta es ABORT chunk el Puerto
esta cerrado

Solo los IDS pueden detectar un SCTP


COOKIE ECHO chunk
Zenmap:
◦ -sZ: SCTP COOKIE ECHO scan
Port and Services Discovery: SSDP and List Scanning
El Simple Service Discovery Protocol (SSDP) es un protocol de red que trabaja junto a UPnP.
Los atacantes utilizan las vulnerabilidades de UPnP, para realziar ataques de Buffer Overflow o DoS attackes.
El scaneo genera una lista de IP/Names.
La resolucion de DNS reverso para identificar los nombres de host
Zenmap:
◦ -sL: perform lista scan
Port and Services Discovery: IPv6 Scanning
✓Se incrementa el tamaño de 32 bits a 128 bits
para soportar mas niveles de escaneo.
✓Los atacantes necesitan obtener direcciones
de trafico de red, registro de logs, o recibir de:
cabeceras de archivo emails.
Zenmap:
◦ -6: perform IPv6 scaning
Port and Services Discovery: Service Version Discovery
✓Las versiones ayudas a los atacantes a definir que tool utilizaran.
✓Permitirá determinar las vulnerabilidades y los exploits que se aplicarían.
✓Por ejemplo si un atacante detecta un protocolo de versión SMBv1 que esta corriendo con un
servicio de basado el SO Windows, el atacante puede fácilmente atacar con un Ransorware
WannaCry.
Zenmap:
◦ -sV: detectar la versión de los servicios
Countermeasures Port scanning
1. Configurar firewall y reglas IDS para detector bloques de testing de prueba.
2. Ejecutar tools de scanning de puertos para determinar si el firewall esta detectando la actividad de
escaneo de puertos.
3. Asegurar la configuración de enrutamiento el los routers.
4. Se debe actualizar permanentemente los router, IDS, firmware de los firewall.
5. Usar un conjunto de reglas personalizadas para bloquear puertos no utilizados.
6. Filtra paquetes ICMP en los firewalls y routers.
7. Verificar que la red solo tenga los puertos necesarios disponibles.
8. Asegurar que la propiedad anti-scanning y anti-sppoofing este configuradas.
OS Discovery: Banner Grabbing
ACTIVO PASIVO

✓Los paquetes especialmente diseñados ✓Banner grabbing pueden provenir de errores de


se envían al SO remoto y se anotan las mensaje
respuestas. ◦ Los mensajes de errores proveen información acerca
del tipo de servidor, tipo de SO, y SSL utilizado
✓Las respuestas son comparadas con una
base de datos que determina el SO. ✓Sniffing de trafico de la red
◦ Capturando y analizando los paquetes, se puede
✓Las respuestas provine de diferentes SO, determinar que SO se esta utilizando.
que pueden variar de acuerdo a su
implementación de su stack TCP/IP. ✓Banner grabbing de extensión de paginas
◦ Ejemplo: .aspx indica que el Serves es IIS y la
plataforma Windows.
OS Discovery: identification
Se puede identificar
buscando el Time To
Live (TTL) y el TCP
window size en la
cabecera del paquete
TCP.

Nmap Zenmap:
◦ -O: perform OS
Discovery IPv4
◦ -6 –O: perform OS
Discovery IPv6
Enumeration
Enumeration

La enumeración permite al atacante crear conexiones activas


con un sistema objetivo y realiza consultas.

Los atacantes utilizan la información extraída para identificar


eslabones y con ello realizar ataques a contraseñas para
obtener acceso no autorizado a los recursos.

Las técnicas de enumeración se llevan a cabo en un entorno


de intranet.
Services and Ports to Enumeration
Gaining Access
CEH Hacking Methodology (CHM)
Cracking Passwords

Microsoft Authentication
• Security Accounts Manager (SAM) Database
• NTLM Authentication
• Kerberos Authentication
Security Accounts Manager (SAM) Database

%SystemRoot%/system32/config/SAM
NTLM Authentication
Kerberos Authentication
Password Cracking
Non-Electronics Attacks
Active Online Attacks
Active Online Attacks (Cont.)
Active Online Attacks
Passive Online Attacks
Vulnerability Exploitation
Buffer Overflow
Un búfer es una región de la memoria que se usa para retener temporalmente los datos mientras se mueve de un
lugar a otro dentro de una computadora. Mientras que un caché es un área de almacenamiento temporal donde
los datos a los que se accede con frecuencia se pueden almacenar para un acceso rápido.

Un buffer overflow es un error que se produce


cuando un programa no controla la longitud
de los datos que va a intentar almacenar en
una zona de memoria llamada buffer.
Buffer Overflow
✓Un búfer es un área de ubicaciones de
memoria adyacentes asignadas a un
programa o aplicación para manejar sus datos
en tiempo de ejecución.
✓El desbordamiento el búfer es una
vulnerabilidad común en aplicaciones que
aceptan más datos que el búfer asignado.
✓Esta vulnerabilidad permite que las
aplicaciones excedan el búfer mientras
escriben datos en el búfer y sobrescriben las
ubicaciones de memoria vecinas.
✓Los atacantes aprovechan la vulnerabilidad
del desbordamiento del búfer para inyectar
código malicioso en el búfer para dañar
archivos, modificar datos de programas,
acceder a información crítica, escalar
privilegios, obtener acceso al shell, etc.
Buffer Overflow: Vulnerability
✓Falta de verificación de límites.
✓Usar versiones anteriores de lenguajes de
programación.
✓Uso de funciones inseguras y vulnerables.
✓Falta de buenas prácticas de programación.
✓No establecer los principios adecuados de
filtrado y validación.
✓Ejecutando código presente en el
segmento de pila.
✓Asignación de memoria incorrecta.
✓Falta de limpieza en el código.
Buffer Overflow: Vulnerability
Buffer Overflow: Vulnerability
Registros
Un registro es como si fuese una
variable. Se trata de una región de
memoria en la que podemos almacenar
y leer datos.

✓EAX (Extended Accumulator Register)


✓EBX (Extended Base Register)
✓ECX (Extended Counter Register)
✓EDX (Extended Data Register)
✓ESI (Extended Source Index)
✓EDI (Extended Destination Index)
✓EBP (Extended Base Pointer)
✓ESP (Extended Stack Pointer)
✓EIP (Extended Instruction Pointer)
Type Buffer Overflow: Stack Based
Una pila se utiliza para la asignación de memoria
estática y almacena las variables en el orden “Last-in
First-out”(LIFO).
Tiene dos operaciones:
◦ PUSH almacenar datos en la pila
◦ POP remover datos de la pila

Cuando una función comienza a ejecutarse, un stack


frame se inserta en la pila en el registro ESP.
Cuando la función regresa, el stack frame se abre y la
ejecución se reanuda desde la dirección de retorno
almacenada en el registro EIP.
Si una aplicación es vulnerable al desbordamiento del
búfer basado en stack, los atacantes toman el control
del registro EIP para reemplazar la dirección de
retorno de la función con el código malicioso que les
permite obtener acceso de shell al sistema de destino.
Type Buffer Overflow: Stack Based
Type Buffer Overflow: Head-Based Buffer
✓La memoria principal se asigna dinámicamente
en tiempo de ejecución durante la ejecución del
programa y almacena los datos del programa.
✓El desbordamiento basado en el head se
produce cuando un bloque de memoria se
asigna a un head y los datos se escriben sin
comprobar los límites.
✓Esta vulnerabilidad conduce a sobrescribir el
puntero de objeto dinámico, heads de
encabezado, datos basados en head, tabla de
funciones virtuales, etc.
✓Los atacantes explotan el desbordamiento del
búfer basado en head para tomar el control de
la ejecución del programa.
✓A diferencia de los desbordamientos de pila,
los desbordamientos de pila son inconsistentes
y tienen diferentes técnicas de explotación.
Windows Buffer Overflow Exploitation
Pasos involucrados en la explotación de la vulnerabilidad de desbordamiento de búfer
basada en Windows
Windows Buffer Overflow Exploitation: 1. Perform Spiking
Spiking permite a los atacantes enviar paquetes TCP
o UDP diseñados al servidor vulnerable para que se
bloquee.
Spiking ayuda a los atacantes a identificar
vulnerabilidades de desbordamiento de búfer en las
aplicaciones de destino.

Netcat:
Utilizado para ataques de análisis y la escritura en
las conexiones de red mediante TCP o UDP.
Windows Buffer Overflow Exploitation : 2. Perform Fuzzing

✓Los atacantes utilizan fuzzing para


enviar una gran cantidad de datos al
servidor de destino para que
experimente un desbordamiento del
búfer y sobrescriba el registro EIP.
✓Fuzzing ayuda a identificar la cantidad
de bytes necesarios para bloquear el
servidor de destino.
✓Esta información ayuda a determinar la
ubicación exacta del registro EIP, lo que
ayuda aún más a inyectar shellcode
malicioso.
Windows Buffer Overflow Exploitation: 3. Identify the Offset

Los atacantes utilizan las herramientas del Metasploit framework como programadas en Ruby, como:
pattern_create y pattern_offset, que permiten identificar el desplazamiento y la ubicación exacta del
registro EIP.
Windows Buffer Overflow Exploitation: 4. Overwrite the EIP Register
Sobrescribir el registro EIP permite al atacante identificar si el registro EIP se puede controlar y se puede
sobrescribir con shellcode malicioso
Windows Buffer Overflow Exploitation: 5. Identify Bad Characters
Los badchars son caracteres inválidos o “malos” los cuales el programa a explotar no los acepta, por lo
consiguiente el atacante cuando genere su shellcode la misma no sirve.
Antes de inyectar el código de shell en el registro EIP, los atacantes identifican caracteres incorrectos que
pueden causar problemas en el código de shell.

badchars =
("\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f"
"\\x20\\x21\\x22\\x23\\x24\\x25\\x26\\x27\\x28\\x29\\x2a\\x2b\\x2c\\x2d\\x2e\\x2f\\x30\\x31\\x32\\x33\\x34\\x35\\x36\\x37\\x38\\x39\\x3a\\x3b\\x3c\\x3d\\x3e\\x3f\\x40"
"\\x41\\x42\\x43\\x44\\x45\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\\x50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58\\x59\\x5a\\x5b\\x5c\\x5d\\x5e\\x5f"
"\\x60\\x61\\x62\\x63\\x64\\x65\\x66\\x67\\x68\\x69\\x6a\\x6b\\x6c\\x6d\\x6e\\x6f\\x70\\x71\\x72\\x73\\x74\\x75\\x76\\x77\\x78\\x79\\x7a\\x7b\\x7c\\x7d\\x7e\\x7f"
"\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d\\x8e\\x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9d\\x9e\\x9f"
"\\xa0\\xa1\\xa2\\xa3\\xa4\\xa5\\xa6\\xa7\\xa8\\xa9\\xaa\\xab\\xac\\xad\\xae\\xaf\\xb0\\xb1\\xb2\\xb3\\xb4\\xb5\\xb6\\xb7\\xb8\\xb9\\xba\\xbb\\xbc\\xbd\\xbe\\xbf"
"\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd7\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf"
"\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff")
Windows Buffer Overflow Exploitation: 6. Identify the Right Module
En este paso, los atacantes
identifican el módulo correcto del
servidor vulnerable que carece de
protección de memoria.
En Immunity Debugger, puede usar
scripts como mona.py para
identificar módulos que carecen de
protección de memoria.
Windows Buffer Overflow Exploitation: 7. Generate Shellcode and
Gain Shell Access
Los atacantes utilizan el comando msfvenom para generar el código de shell e inyectarlo en el registro EIP
para obtener acceso de shell al servidor vulnerable de destino.
Windows Buffer Overflow Exploitation: Escenario de trabajo

https://github.com/stephenbradshaw/vulnserver
https://www.immunityinc.com/products/debugger
https://www.python.org/downloads/release/python-371/

También podría gustarte