martes, 29 de septiembre de 2015

2.4. Reflexión


Bien, parece claro que herramientas hay para poner en jaque la seguridad de cualquier sitio en Internet, o al menos de aquellos que no se preocupen por su seguridad. De entrada, por lo tanto, parece interesante que todo el mundo sea consciente de esto para que al menos se les active la alerta y pongan los medios para protegerse.

Como ejemplo de unas cuantas herramientas básicas para preocupar a cualquiera tenemos el ping, whois y sobre todo nmap. Podemos así averiguar si un host está activo, quién lo gestiona (para mediante ingeniería social sacarle información útil) y a qué vulnerabilidades puede estar expuesto en función de los servicios que tenga instalados. Usando por otro lado herramientas como Wireshark (u otras) podemos capturar tráfico de red que nos permita obtener información sensible de conexiones telnet (no tanto de SSH). Apostar por canales encriptados se muestra entonces necesario, y cuanta más encriptación mejor.
Precisamente el uso de algoritmos de encriptación o creación de hashes antiguos o débiles puede hacer que los hackers sean capaces de obtener esa información sensible con técnicas como SQL injection para obtener los hashes de las contraseñas de los usuarios de una base de datos, lo que unido a programas crackeadores como John the Ripper (y otros) puede llevarnos a obtener las contraseñas.

Esto significa que si no cuidamos la seguridad de nuestros sistemas debemos atenernos a las consecuencias (aunque tengamos razón legal) pues es lo mismo que no cuidar la seguridad de tu casa. Podrás denunciar al ladrón pero la culpa es en parte tuya por dejar la puerta abierta.

Se debe permitir entonces el uso y creación de estas herramientas o no? Si hablamos de pura creatividad informática me parece claro que sí, pues todo lo que sea comprender mejor un sistema redunda en su mejoría, al tiempo que alerta de las debilidades y puede ser la base para el desarrollo de otros códigos útiles en otros contextos. Si debe ser algo controlado o no la respuesta es igual de clara: se intentará controlar (por motivos económicos o de seguridad militar) pero la libertad en internet hará que sea algo imposible de acotar, y esto es bueno.

Como curiosidad señalar que posiblemente la serie Mr. Robot gira en torno a estos temas.



SQL injection

Tras instalar correctamente la unidad virtual y loguear extraemos los hashes md5 de los usuarios:


Usando John the Ripper sacamos que la contraseña para admin (y para Bob) es password.




Para 
Gordon abc123
Hack charley
Pablo letmein

John the Ripper John the Ripper

2.1. Capturando tráfico con Wireshark

Primera parte: 

Análisis de la traza telnet-raw.pcap

Hay dos sesiones Telnet

1ª-

SO: OpenBSD/i386 

login fake
password user

comandos 

ls 
ls -a
/sbin/ping www.yahoo.com
exit

2ª-
SO: OpenBSD 2.6-beta

login fake
password user

comandos

ls
ls -a
/sbin/ping www.yahoo.com
exit

Segunda parte: 

El certificado se recibe en el paquete dos, server hello SSL 3.0

Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004)

Significa que se usará un algoritmo de llave pública RSA  para verificar las firmas e intercambiar información encriptada RC4, siendo MD5 la función hash para verificar el contenido.  

Tiene una longitud de 1020 bytes

emitido por http://ocsp.verisign.com
para             login.passport.com
válido         01/09/2004 hasta 02/09/2005 

Se puede extraer el certificado



Se asegura la identidad del servidor login.passport.com de Microsoft

Tercera parte: 

Analizamos esta traza con tráfico SSH . Corresponde a una conexión SSH con el servidor forja.mondragon.edu. Podemos comprobar si está online y qué puertos abiertos tiene:


Efectivamente tiene abierto el puerto 22 que corresponde a la conexión SSH.

Vemos que los mensajes encriptados comienzan a partir del paquete 20 tras haberse negociado el cifrado (aes 128 ctr) y las claves.

A diferencia del CBC, el CTR significa que tanto la encriptación como el desencriptado es paralelizable.

A partir del intercambio de claves Diffie-Helman todo va encriptado

No es posible por lo tanto ver contraseñas, pero podemos suponer que el paquete 20 contiene la autenticación.

Actualizo información del host forja.mondragon.edu

Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.3-7+squeeze27


martes, 22 de septiembre de 2015

Herramientas básicas para obtener información de servidores externos

Vamos a ver cómo obtener información de un site como www.euskalert.net

Primero usaremos algún tipo de utilidad de ping para obtener información previa, como si el host está vivo, cuanto tarda en responder. Usamos la utilidad  hping3 bajo debian


Podemos afinar el ping de esta manera



Explicación:


Se envía al puerto 80 un paquete con el flag TCP SYN activado recibiendo nosotros otro paquete SYN y ACK activados (flags=SA). Sabemos además que el host de destino tiene una ventana de 65535 (cantidad máxima de información en bytes que el receptor está preparado para recibir).


Después podemos ver algunos datos administrativos usando whois:




Por último podemos hacerle un scan general para ver si podemos saber qué sistema operativo está corriendo, aplicaciones y puertos abiertos. Usamos nmap (con gui o sin ella):



Vemos que el puerto 80 está abierto y que probablemente corre aplicaciones como CISCO IOS 10.x en un switch CISCO 3000. Consultando la Base de Datos de Vulnerabilidades Nacional de Estados Unidos obtenemos que es vulnerable a un ataque remoto que busque una denegación de servicios o que pueda ejecutar código arbitrario. Aquí se explica con más detalle la vulnerabilidad consistente en la posibilidad de que se procese un ICMP, PIMv2, PGM o URD que contenga en la cabecera del paquete IP "a specific crafted IP optionque posiblemente cuelguen el router al obligarle a posicionar memoria más allá de sus límites. Específicamente un paquete IPv4 puede contener opciones IP localizadas entre el encabezamiento y información en sí. Un atacante podría construir un paquete malicioso de esta manera:

 - una ip suplantada - la dirección de una de las interfaces del dispositivo como IP de destino  - una opción IP maliciosa- uno de estos protocolos:    + ICMP - Echo (Type 8) - 'ping'    + ICMP - Timestamp (Type 13)    + ICMP - Information Request (Type 15)    + ICMP - Address Mask Request (Type 17)    + PIMv2 - IP protocol 103    + PGM - IP protocol 113    + URD - TCP Port 465




La vulnerabilidad se publicó el 1/24/2007 7:28:00 PM y fue evaluada como de riesgo altísimo.

Actualizo usando la última versión de nmap 6.49beta4



Actualizo

Apache/2.4.7 (Ubuntu)

X-Powered-By: PHP/5.5.9-1ubuntu4.4

Sitios relevantes para el hacking ético

Como sitios relevantes por la cantidad y calidad de recursos que ofrecen sobre Hacking




Blog que directamente trata la cuestión, como así lo dice expresamente en su declaración de intenciones o filosofía:


[...] promovemos la defensa de cualquier sistema informático, desautorizando cualquier tipo de acción destructiva o de aprovechamiento lucrativo de cualquier tipo de vulnerabilidades o brechas de seguridad existentes en un sistema."
"La seguridad informática es un área en continuo crecimiento y cada vez se demandan más profesionales cualificados y con alto grado de conocimientos en redes, sistemas y seguridad. La idea original del blog era de la compartir nuestras experiencias de nuestro día a día. Era la idea original y seguirá siendo así siempre.





Del conocido Chema Alonso y bastante técnico y orientado a la ciberseguridad y al hacking ético. Imprescindible.




Como nodo social el de Seguridad Jabalí por su igual calidad e información.