Diapositivas Buffer Overflow (PenTesting4)
Diapositivas Buffer Overflow (PenTesting4)
Diapositivas Buffer Overflow (PenTesting4)
Penetration testing
OSWALDO VELASQUEZ A.
Penetration testing
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
• 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
➢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
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
✓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.
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.
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
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
Nmap Zenmap:
◦ -O: perform OS
Discovery IPv4
◦ -6 –O: perform OS
Discovery IPv6
Enumeration
Enumeration
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.
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 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/