Ethical Hacking
}
El levantamiento comienza por:
1. Búsqueda del nombre de dominio (Ej.
empresa.com)
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.Práctica:Archive.org
Ambiente: Cualquiera
Vaya al sitio Web:
www.archive.org
,
utilice la herramienta para buscar
Práctica:dnsstuff
}
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
}
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
}
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
}
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
}
Window Scan:
◦
Este rastreo es similar al ACK, la detección se realiza
revisando el tamaño de las ventanas.
}
ICMP Echo Scan:
◦
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.
}
List Scan:
◦
Este tipo de escaneo simplemente genera e imprime la
}
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
}
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
}
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é
}
Blaster Scan:
◦
Este es un rastreo de puertos TCP sistemas para
basados en *nix.
◦
Realiza ping a los equipos para determinar
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:
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
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
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
}
Proxy: es un servidor que puede ser utilizado cómo
intermediario para conexiones con otros equipos.
}
Es común utilizar servidores distribuidos por varios
}
Tor es una de las herramientas de proxy-socks mas
conocidas y utilizadas.
}
Funciona re-direccionando todo el tráfico a un servidor
}
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
}
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
}
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
}
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
}
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
}
<A HREF= “http://sitio.com/comment.cgi?
mycomment=<SCRIPT>codigo-malicioso</SCRIPT>"> Click
here</A>
}
<A HREF= “http://sitio.com/comment.cgi?
}
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:
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
}
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.
}
‘%c0 es el código de la tabla
Basic Latin
El número
más grande
es %7f ( 127
D)
Pero, %af > %7f, lo
Que significa que el sistema
“da la vuelta” ,%80-%af=%2f
}
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
◦
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
◦
Existen innumerables vulnerabilidades descritas y
explotables utilizando los servicios DCOM.
◦
Un atacante que tenga éxito en aprovecharse de
}
reinaldo@guije:~$
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
}
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
}
https:www.XXX.com/process_login.php?
name=reinaldo& password=´%20OR%20´’%3d´
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=reinaldo AND pwd=´´ OR´ ´=´ ´:
SELECT nombre FROM usuarios WHERE uid=‘’
AND pwd=´´; INSERT INTO userlist
}
https://www.xxx.xxx/vuln.cgi?param=%27’;+CREATE
+TABLE+mia+%28bar+TEXT%29;
}
https://www.xxx.xxx/vuln.cgi?param=%27’;+LOAD
+DATA+INFILE+%27%2fetc%2f%passd/27+INTO
+TABLE+mia;
}
https://www.xxx.xxx/vuln.cgi?param=%27’;+SELECT
+%2a+FROM+mia
CREATE TABLE mia (bar
TEXT)
LOAD DATA INFILE ‘/etc/passwd’ INTO TABLE mia
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
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
Servidor Envía Reto
Usuario
Cifra
Reto con
Clave
Usuario envía Reto Cifrado
Servidor
compara reto
enviado con
reto recibido
Cliente
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.
¿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)
Algunos Ataques de DoS
"
SYN flood
"
TCP FIN flood
"
Connec:on flood
"
Land Atack
"
finger bomb
"
email bomb
"
MAC flooding
"
DNS flood
"
Supernuke/
Winnuke
"
Teardrop/Newtear
"
Paquetes
fragmentados
"
Bucle UDP/Snork
Smurf
"
Enviar un paquete ICMP-‐Echo-‐Request a
un‘SMURF amplifier’ network (A-‐class
broadcast address).
"
Todos los ordenadores de esa red
¿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