Top Banner
ethical hacking JUCSE 2012 Universidad Católica de Santiago del Estero http://www.ucse.edu.ar/jucase2012 <html> <head> <title> JUCSE 2012 - Ethical Hacking </title> <div style='position:Absolute; top:; left:; z-index:; height:; width:; ' > <p>Ing. Diego Mauricio Ponce </p> <p>mail: [email protected] </p> </div> </head> </html> Loading C:\>echo “Seguridad en Aplicaciones...” ---------------------------------------
40
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ethical Hacking

ethical hacking

JUCSE 2012Universidad Católica de Santiago del

Estero

http://www.ucse.edu.ar/jucase2012

<html>

<head>

<title>JUCSE 2

012 - Ethical

Hacking </tit

le>

<

div style='pos

ition:Absolute

; top:; left:;

z-index:; hei

ght:; width:;

'>

<p>Ing. Diego

Mauricio Ponc

e </p>

<p>mail: dieg

[email protected]

du.ar</p>

<

/div>

</head>

</html>

Loading …

C:\>echo “Seguridad en Aplicaciones...”|----------------------------------------

Page 2: Ethical Hacking

Seguridad en aplicaciones

Que es una aplicación?

“Una aplicación es un programa informático escrito para cumplir

con los requerimientos que llevaron a la escritura del

mismo.”

Page 3: Ethical Hacking

Seguridad en aplicaciones

Que tipos de aplicaciones hay?

“Están los Operativos, las desktop y las Web.

Existen propietarias y libres, gratuitas y pagas.

Hay compiladas o interpretadas”

Page 4: Ethical Hacking

Seguridad en aplicaciones

Como se crea una aplicación?

Page 5: Ethical Hacking

Seguridad en aplicaciones

Que es una aplicación WEB?› “Según OWASP (The Open Web Application Security Project http://www.owasp.org) una aplicación WEB es un software de aplicación cliente / servidor que interactúa con usuarios u otros sistemas, utilizando HTTP”

Page 6: Ethical Hacking

Seguridad en aplicaciones

Como son las aplicaciones WEB?› Se desarrollan como cualquier otra aplicación.

› Su ejecución no depende del Sistema Operativo anfitrión, sino depende de una aplicación conocida como browser.

› El código de una aplicación WEB no se ajusta a un único lenguaje. Una aplicación WEB puede ser una combinación de 1 o mas lenguajes.

Page 7: Ethical Hacking

Seguridad en aplicaciones

Como se ejecutan las aplicaciones WEB?› La ejecución de una aplicación WEB consta de una serie de pasos. Primero se inicia un Browser Segundo se introduce una dirección URL

Tercero, comienza la iteración entre el usuario y la aplicación

Page 8: Ethical Hacking

Seguridad en aplicaciones

Como se ejecutan las aplicaciones WEB?

Browser

URL

Page 9: Ethical Hacking

Seguridad en aplicaciones

Componentes de una Aplicación WEB

ClienteInternet

Servidor

Page 10: Ethical Hacking

Seguridad en aplicaciones

Recopilación de Información (pruebas de firma digital).› Dada la cantidad de servidores WEB que existen en el mercado, es necesario obtener con precisión de que servidor se trata el sistema que es objetivo del test (Ataque).

› Existen diferentes formas de inferir esta información.

› Se debe tener en cuenta que los servidores brindan información de acuerdo al contexto de su implementación.

Page 11: Ethical Hacking

Seguridad en aplicaciones

Recopilación de Información (pruebas de firma digital).› Herramientas:

netcat (http://netcat.sourceforge.net/) es una herramienta de red que permite a través de intérprete de comandos abrir puertos TCP/UDP en un HOST, asociar una shell a un puerto en concreto y forzar conexiones UDP/TCP.

Page 12: Ethical Hacking

Seguridad en aplicaciones

Recopilación de Información (pruebas de firma digital).› Herramientas:

httprint (http://net-square.com/httprint.html) es una herramienta automatizada que por el intermedio de diccionario de firmas, puede llevar el análisis de un servidor.

Page 13: Ethical Hacking

Seguridad en aplicaciones

Recopilación de Información (pruebas de firma digital).› Herramientas:

netcraft (http://news.netcraft.com/) es una herramienta on line la cual nos permite recopilar información acerca de los servidores WEB objetivo.

Page 14: Ethical Hacking

Seguridad en aplicaciones

Descubrimiento de Aplicaciones.› Encontrar que aplicaciones específicas se encuentran instaladas en un servidor web es un elemento esencial en un test de vulnerabilidades de una aplicación web.

› Muchas aplicaciones tienen vulnerabilidades y estrategias de ataque conocidas, que pueden ser explotadas para conseguir control remoto o explotación de los datos de la aplicación.

Page 15: Ethical Hacking

Seguridad en aplicaciones

Descubrimiento de Aplicaciones.› Pruebas de Caja Negra.

Direcciones URL de base diferente: El punto de entrada obvio de una aplicación web es http://www.ejemplo.com . Pero nada obliga a tener la aplicación en la “/” del sitio. Por ejemplo podemos tener 3 aplicaciones publicadas así: http://www.ejemplo.com/ap01 http://www.ejemplo.com/ap02 http://www.ejemplo.com/ap03En donde http://www.ejemplo.com no tenga absolutamente nada.

Page 16: Ethical Hacking

Seguridad en aplicaciones

Descubrimiento de Aplicaciones.› Pruebas de Caja Negra.

Direcciones URL de base diferente: descubrir aplicaciones publicadas de esta manera puede no ser sencillo, se puede apelar a lo siguiente: Una mala configuración del servidor que permita listar el árbol de directorios.

las aplicaciones pueden estar referenciadas por otras páginas web; en tal caso, es posible que hayan sido recorridas e indexadas por motores de búsqueda. Si sospechamos podemos buscar vía Google usando el operador site y examinando el resultado de una consulta “site: www.ejemplo.com”.

Page 17: Ethical Hacking

Seguridad en aplicaciones

Descubrimiento de Aplicaciones.› Pruebas de Caja Negra.

Puertos No Estándar: los protocolos http y https funcionan en el puerto 80 o 443 respectivamente, pero nada impide configurar una aplicación en otro puerto, por ejemplo http://www.ejemplo.com:2500

Para esto podemos utilizar la herramienta nmap (http://nmap.org/) y hacer un barrido en todos los puertos. por ejemplo nmap -PO –sT –sV –p1-65535 192.168.100.1

Page 18: Ethical Hacking

Seguridad en aplicaciones

Descubrimiento de Aplicaciones.› Pruebas de Caja Negra.

Puertos No Estándar: salida del comando nmap.

Page 19: Ethical Hacking

Seguridad en aplicaciones

Spidering y Googling. › Las web spiders son las herramientas más potentes y útiles desarrolladas en Internet. Una spider sirve para una función, el Data Mining. Una spider típica (como Google) funciona inspeccionando las páginas de un sitio web una por una de forma automatizada, almacenando la información relevante para crear un registro de páginas, direcciones e-mail metatags, datos de formularios, información sobre las direcciones URL, enlaces, etc. Después, la spider recorre los enlaces de la página, recolectando información relevante en cada una de las páginas siguientes, y así sucesivamente. De esta red de rutas recorridas se deriva el término 'araña', 'spider'.

Page 20: Ethical Hacking

Seguridad en aplicaciones

Herramienta Spidering.› Para este caso podemos usar el comando wget (http://www.gnu.org/software/wget/).Nuestro objetivo es crear un mapa de la aplicación con todos los puntos de acceso (puertas) de la aplicación.

Page 21: Ethical Hacking

Seguridad en aplicaciones

Herramienta Googling.› Se basa en el potencial del motor de búsquedas Google.com, como se sabe las búsquedas que podemos hacer a través de google pueden ser enriquecidas por parámetros y comandos extras. Por ejemplo si deseamos buscar solo PDF, debemos usar la siguiente sintaxis: filetype:pdf <frase de búsqueda>

Page 22: Ethical Hacking

Seguridad en aplicaciones

Acceso a Directorios y Archivos Ocultos.› Aunque la mayoría de archivos en un servidor web son gestionados directamente por el propio servidor, no es raro encontrar archivos sin referencias y/o olvidados, que pueden ser utilizados para obtener importante información sobre la infraestructura o credenciales.

Page 23: Ethical Hacking

Seguridad en aplicaciones

Acceso a Directorios y Archivos Ocultos.› Herramienta Nikto (http://cirt.net/nikto2)/Wikto (http://www.sensepost.com/labs/tools/pentest/wikto) es un Escáner de Servidores WEB. El escáner lo realiza sobre directorios y archivos que pueden ser potencialmente sensibles.

Page 24: Ethical Hacking

Seguridad en aplicaciones

Acceso a Directorios y Archivos Ocultos. Fuerza Bruta.› Herramienta OWASP Dirbuster (https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project) es una aplicación Java multi hilo diseñada para obtener por fuerza bruta los nombres de directorios y archivos en servidores Web. A menudo ocurre que lo que ahora parece un servidor Web en una fase de instalación por defecto, no lo es, y tiene páginas y aplicaciones ocultas. DirBuster trata de encontrar estos archivos y directorios

Page 25: Ethical Hacking

Seguridad en aplicaciones

Acceso a Directorios y Archivos Ocultos. Fuerza Bruta.› Herramienta OWASP Dirbuster

Page 26: Ethical Hacking

Seguridad en aplicaciones

SQL Injection.› SQL Injection es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos. El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL.

Page 27: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, ASP y SQL.› Sobre variables de programa, es decir podemos inyectar código en las variables que construyen la cadena SQL. Por ejemplo veamos en ASP:

Page 28: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, ASP y SQL.› Como se pudo observar, que al introducir un usuario y un password correcto, la sentencia devolverá una fila de la Tabla. Y si el usuario o password es incorrecto, no devolverá nada. O sea da a entender que la sentencia devolverá una fila siempre y cuando las credenciales sean correctas. Típico Login.

Page 29: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, ASP y SQL.› Supongamos que el usuario introduce lo siguiente:

› En consecuencia a los datos ingresados, la sentencia SQL quedará de la siguiente forma:

txtUsuario: ' OR 'A'='A txtPassword: ' OR 'A'='A

SELECT * FROM DB_SQL.USUARIOS WHERE USU_ID='' OR 'A'='A' AND USU_PWD='' OR 'A'='A'

Page 30: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, ASP y SQL.› La sentencia anterior es equivalente a:

› Teniendo en cuenta la expresión lógica la sentencia es equivalente a:

› Con lo que se debilito la clausula WHERE y lo mas probable es que se inicie sesión con el primer usuario de la tabla.

SELECT * FROM DB_SQL.USUARIOS WHERE USU_ID='' OR TRUE AND USU_PWD='' OR TRUE

SELECT * FROM DB_SQL.USUARIOS WHERE TRUE AND TRUE

Page 31: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, ASP y SQL.› Por otro lado si el atacante introdujo lo siguiente:

› Quedando la sentencia:

› En este caso no solo debilito la clausula WHERE sino que también se inyecto código malicioso.

txtUsuario: ' OR 'A'='A txtPassword: ' OR 'A'='A'; DELETE FROM DB_SQL.USUARIOS WHERE 'A'='A;

SELECT * FROM DB_SQL.USUARIOS WHERE USU_ID='' OR 'A'='A' AND USU_PWD='' OR 'A'='A'; DELETE FROM DB_SQL.USUARIOS WHERE 'A'='A';

Page 32: Ethical Hacking

Seguridad en aplicaciones

SQL Injection, que medidas tomar.› Utilizar procedimientos almacenados, los cuales se deben invocar de forma parametrizada.

› Validar los datos ingresados por el usuario, por ejemplo con expresiones regulares.

› Minimizar el nivel de permiso concedido al usuario sobre la BD.

› Realizar un correcto manejo de los errores.

Page 33: Ethical Hacking

Seguridad en aplicaciones

XSS, Cross Site Scripting.› XSS, del inglés Cross-site scripting es un tipo de inseguridad informática típico de las aplicaciones Web, que permite a una tercera parte inyectar en páginas web código en un lenguaje de script como ser JavaScript, VBScript, PHP, Perl, Python, etc, evitando medidas de control.

Page 34: Ethical Hacking

Seguridad en aplicaciones

XSS, Indirecto.› Este tipo de XSS es más frecuente encontrarlo en las aplicaciones web. El código JavaScript que se incrusta en el documento HTML no es persistente en el tiempo, es decir, solo afecta al usuario que utiliza el navegador.

Page 35: Ethical Hacking

Seguridad en aplicaciones

XSS, Indirecto.› Ejemplo. Sea el código del sitio:

//index.php<html> <head>

<title>Buscador vulnerable</title> </head> <body>

<form method="get" action="buscador.php"> <input type="text" name="buscar"> <input type="submit" value="Buscar">

</form> </body> </html>

Page 36: Ethical Hacking

Seguridad en aplicaciones

XSS, Indirecto.

› Si el usuario ingresa “coches de segunda”, sin darse cuanta a generado código html. Quedando la URL así.

//buscador.php<html> <head>

<title>Buscador vulnerable</title> </head> <body>

echo 'Estas buscando:'.$_GET['buscar']; </body> </html>

http://www.servidorvulnerable.com/buscador.php?buscar=coches%20de%20segunda

Page 37: Ethical Hacking

Seguridad en aplicaciones

XSS, Indirecto.› Ahora si el usuario manipula los datos de entrada e introduce <script>alert(XSS)</script>, la pagina cargada contendrá el siguiente código

http://www.servidorvulnerable.com/buscador.php?buscar=<script>alert(XSS)</script>

//buscador.php<html> <head>

<title>Buscador vulnerable</title> </head> <body>

Estas buscando:<script>alert(XSS)</script></body> </html>

Page 38: Ethical Hacking

Seguridad en aplicaciones

XSS, Indirecto.› Como resultado de la ejecucion del script se visualizara una mensaje con la frase XSS.

› De esta forma se puede introducir desde un simple “Alert” hasta código malicioso.

Page 39: Ethical Hacking

Seguridad en aplicaciones

XSS, Persistente.› Funciona localizando puntos débiles en la programación de los filtros de HTML si es que existen, para publicar contenido (como blogs, foros, etc.). Normalmente el atacante tratara de insertar tags como <iframe>, o <script>, pero en caso de fallar, el atacante puede tratar de poner tags que casi siempre están permitidas y es poco conocida su capacidad de ejecutar código. De esta forma el atacante podría ejecutar código malicioso.

<div fu="alert('Hola mundo');" STYLE="background-image: url(javascript:eval(this.fu))">

Page 40: Ethical Hacking

ethical hacking

THE END …

<html>

<head>

<title>JUCSE 2

012 - Ethical

Hacking </tit

le>

<

div style='pos

ition:Absolute

; top:; left:;

z-index:; hei

ght:; width:;

'>

<p>Ing. Diego

Mauricio Ponc

e </p>

<p>mail: dieg

[email protected]

du.ar</p>

<

/div>

</head>

</html>

Exit …

C:\>echo “Seguridad en Aplicaciones...”|----------------------------------------