RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Posts Tagged ‘ hacking ’

portada

 

Realizar hacking es más fácil de lo que parece o al menos eso es lo que trato de hacer parecer con este blog y hago lo propio cada vez que dicto capacitaciones en diversas empresas. Lo cierto es que lo único que necesitamos muchas veces es tan sólo un momento de lucidez, un momento de espiración, un poco de alcohol y dejar que las ideas fluyan a la buena o a la mala (cuando el cliente nos mete presión peor que Diego Godín cuando defiende a su selección) .

Después de una semana de agonía donde vi caer una vez mas a la selección peruana por las clasificatorias Rusia 2018, he decidido escribir sobre unas de las técnicas que suelo utilizar cuando nos solicitan realizar pruebas de Ingeniería Social, sólo necesitamos mezclar algunas técnicas del tipo spear phishing y obtendremos resultados muy interesantes. Vamos a utilizar un programa que todos suelen utilizar, el estúpido y sensual EXCEL.

¿Cómo lo vamos hacer?

  1. Primero, la idea es  utilizar Ingeniería Social para esto, hay que hacer que nuestro archivo Excel llegue a las manos de nuestra amigo víctima y que sea lo suficientemente creíble para que pueda ser abierta (aquí esta el ingenio y el verdadero trabajo).
  2. Una vez que nuestro causa víctima haya abierto el archivo, todo cae por su peso, producto de la ingenuidad, de la estupidez confianza que tienen las personas para ejecutar MACROS en los archivos Excel. Hay que admitirlo, a las personas les gusta Excel, al diablo con las Bases de Datos Oracle, MySQL, etc; la mejora base de datos para el común de los mortales un archivo XLS.
  3. El archivo Excel contiene una pequeña encuesta pero detrás de esto se ejecuta una MACRO muy linda, la macro hace lo siguiente:
    1. Crea unos archivos tipo LOGS en el directorio D:\ del computador, estos archivos sólo los utilizo como evidencia de que se puede ejecutar cualquier comando.
    2. La MACRO ejecuta comandos FTP y realiza una conexión a un servidor externo en Internet y envía archivos hacia un lugar lejano, muy lejano.
    3. Finalmente, la MACRO buscar archivos con una extensión específica, para la prueba de concepto (POC) sólo busca archivos PDF en el directorio D:\ ¿quieren algo más sofisticado? pues esfuércense un poquito.

  4. Finalmente, aparece un mensaje de agradecimiento indicando que han enviado los datos solicitados para la encuesta. A veces hasta te nuestro súper amigo víctima envía un correo indicando que ya respondió la encuesta y que merece un ascenso por ser tan proactivo.

Les dejo una imagen de la encuesta que se me ocurrió para el evento de ISACA del año 2015, cuando dabas CLIC en el botoncito “Enviar Encuesta” has sido OWNEADO.

2

 

Dejen volar su imaginación: algunas variantes interesantes

1. Que tal si …. obtenemos las contraseñas de las redes Wireless que almacenan los computadores.

Se me ocurre que en vez de ejecutar un simple IPCONFIG como en el ejemplo anterior, ejecutamos un comando para obtener las contraseñas en texto claro de las redes inalámbricas almacenadas en el computadores de nuestra víctima.

3

 

Y ya está, no necesitamos hacer mucho esfuerzo para obtener la contraseña de la red inalámbrica, además,  imaginemos un hacker un poco más interesado y preocupado en poder obtener información seguro que ya realizó algo de wardriving previo al envío del archivo Excel. Aquí puedes aprender como realizar wardriving de manera rápida y sencilla [AQUÍ].

 

2. Que tal si…. ejecutamos comandos interesantes

Y finalmente, se me ocurren ejecutar comandos interesantes para obtener información del computador de una organización y que puede servirnos para ir escalando privilegios en otros computadores de la organización, a continuación alguno de los comandos que podríamos utilizar:

  1. Net user: Para obtener los usuarios locales del sistema operativo o para agregar usuarios.
  2. Net localgroup Administradores [Administrators]: Para obtener los usuarios que pertenecen al grupo de Administradores
  3. Arp –a: Para obtener el listado de direcciones IP con las que ha estado en comunicación el computador.
  4. Netsh advfirewall firewall show rule name=all: Para obtener las reglas del firewall del computador.
  5. dir /s/b  D:\*.pdf: Para buscar archivos PDF en el directorio D:\ del computador de manera recurrente.
  6. Lo que sea fruto de tu imaginación.

4

 

¿Cómo prevenimos este tipo de ataques?

  1. Si nos encontramos en un dominio, es decir, nuestra computadora se encuentra attachada a un Active Directory, podemos configurar una GPO que deshabilite la ejecución de Macros.

    5
    Nota: Debes deshabilitar las macros para programa de Office, es decir, deshabilitar para Microsoft Word, Microsoft Excel, Microsoft Power Point, etc. Los excel son los mas peligrosos por lo general porque son los mas comunes.

    Nota2: Hay forma de sacarle la vuelta a la aplicación a la aplicación de la política del AD, toca guardar el archivo Excel en la Trusted Location, que son directorios donde la GPO no aplica. Absurdo por todos lados.

    7

  2. En general, no me da ninguna confianza ejecutar ningún archivo que contiene una MACRO. El mensaje de advertencia es tan grande que desanima a cualquiera abrir un archivo de este tipo. No lo abras!!

6

 

Listo señores, el resto de lo que pueden hacer con Excel se los dejo a su imaginación. Nos vemos y happy hacking!! wq!

 

************************************************************

Popularity: 12% [?]

nunca confies en miHace un tiempo atrás leí una novela cuyo título me gustó mucho, Nunca confíes en mí , menudo nombre para una obra literaria no les parece?? La obra narra de manera espléndida el calenturiento y tormentoso amor entre Amanda y Gabriel, dos amigos de colegio que se reencuentran después de largos años despertando sus mas bajas pasiones y viviendo historias sin dudad cotidianas pero que encienden  el morbo de cualquier lector con ánimos de divertirse (mientras los protagonistas no seamos nosotros). El autor de esta obra es el peruano  Renato Cisneros y que tuvo la magnífica idea de terminar la obra de la mejor manera que se puede terminar una (y que contraviniendo las buenas costumbres sociales voy a proceder a contar), traicionando la confianza de sus amigos Amanda y Gabriel – los protagonistas de la obra – y  publicando la novela con los detalles del sórdido amor que habían vivido, colando como parte final del libro la frase que dio nombre a la obra: “Nunca confíes en mí”.

Recuerdo haber obsequiado este libro hace ya algún tiempo y es que no hay nada mas excitante que regalar un rompecabezas listo para ser armado por nuestra imaginación (y por nuestras vivencias), una buena novela literaria. Así que si alguna vez obsequié este libro, créanme fue el mejor regalo que pudieron haber recibido de mi (ya dejen de acusarme de tacaño por favor Smile).

 

 

¿Y qué tiene que ver todo esto con seguridad de información?  pues en mi último viaje a la ciudad heroica de Tacna [ver AQUÍ] realice 02 Charlas y 02 Talleres sobre seguridad informática y decidí realizar un experimento con los participantes del evento, el experimento consistía en que los participantes me brinden muy generosamente toda la información de sus celulares obviamente de la manera mas sutil posible y sin que ellos pudieran advertir lo que en realidad estaba ocurriendo. Aquí les explico como pero primero la respectiva ficha técnica:

  • Número de participantes: 20 personas aprox.
  • Edad de los participantes: Entre 20 y 30 años
  • Grado académico: Estudiantes y egresados de ingeniería de sistemas y computación
  • Lugar: Tacna – Perú (Universidad Nacional Jorge Basadre)
  • Nivel de seguridad informática: media (o quizás baja después del experimento)
  • Impulso para ganar: una camiseta del Blog de Omar

¿Quieren ver el premio que el feliz hackeado ganador se llevo por entregarnos toda la información de su celular? Pues aquí se los dejo y espero poder regalar más en mi próxima charla.

 

20141009_220641

Hackeando un Android

Volvamos a lo nuestro que es seguridad, entonces ¿cómo hackeamos un Android? de hecho la principal vulnerabilidad en los sistemas Android proviene de las aplicaciones que instalamos, debemos reconocer que pertenecemos (me incluyo) a una cultura totalmente Windoneana donde somos felices dando clicks en “Next, Next y Next” para instalar aplicaciones, pues aquí radica nuestra principal debilidad en instalar cualquier tipo de aplicación sin antes verificar los permisos y el origen de la misma. Aquí vamos explicar la manera más rápida y fácil de poder hacernos de información de un sistema operativo Android, vamos con los pasos:

  1. Ingeniería Social

    El truco para el éxito de este ataque consiste en ganar la confianza de la(s) otra(s) persona(s) para que se instalen la aplicación con toda la confianza del mundo, alguna de las ideas más utilizadas son las siguientes:

    - Google Play: El truco de los atacantes es engañarte mostrándote aplicaciones milagrosas en el store de Google, hasta la fecha se han detectado muchas – muchísimas – aplicaciones maliciosas en Google Play y es que basta subir aplicaciones con permisos “READ_EXTERNAL_STORAGE” y eso es todo, aquí pueden ver claros ejemplo de los que les cuento:

    * Aplicación maliciosa para hacer Dieta: [AQUÍ]
    * La estafa de la linterna milagrosa en Android: [AQUÍ]
    * 10 millones e aplicaciones maliciosas en Android: [AQUÍ]

    Basta con buscar “WhatsApp” en GooglePlay para obtener varios cientos de resultados, cada aplicación relacionada a WhatsApp que se muestra realiza alguna “maravilla”, ¿ustedes creen que realmente hacen esas maravillas?

    image



    - Instalar aplicaciones de terceros: El engaño de los atacantes consiste en lograr convencerte que puedas instalar una aplicación que no se encuentra en Google Play por cualquier motivo, por ejemplo yo le pedí a las participantes de mi experimento que lo instalaran porque el que contestaba todas las preguntas correctamente se llevaba una camiseta del blog Smile.

    - “Me prestas tu celular”: Es muy común que te pidan prestado tu celular, no? ya saben….. sólo quiero ver tus fotos, quiero entrar a una página de Google o quizás quiero instalarte algo sin que te des cuenta. La instalación de un APK malicioso demora menos de 60 segundos, así que nunca presten su celular, jamás!!

    image

  2. Instalando la Aplicación

    Una vez que hemos logrado ganar la confianza de nuestra víctima mediante alguna de las técnicas arriba descritas, tenemos que instalar la aplicación maliciosa. Aquí también tenemos algunas opciones para poder instalar la aplicación maliciosa, voy a colocar 02 ejemplos:

    * ANDRORAT: Una RAT (Remote Administration Tool) es una herramienta que nos permite administrar remotamente un dispositivo y en este caso específico un celular con el sistema operativo Android, de hecho, ANDRORAT es un proyecto escrito hace 02 años, por el 2012 para ser más exacto y que contiene algunas librerías que no están actualizadas para las últimas versiones del sistema operativo. La mejor manera de instalar ANDRORAT es “bind-eandola”, es decir, ocultándola dentro de otra aplicación  y que cuente con un funcionamiento básico.

    Para nuestro experimento lo escondimos en una aplicación que se llama “Trivia El Palomo” que contenía un pequeño cuestionario sobre preguntas de seguridad, el que respondía correctamente se hacía acreedor a una camiseta del blog.


    1 2


    Enlaces de ayuda:

    - AndroRat: El proyecto lo pueden encontrar [AQUÍ]
    - Versión “Trivia El Palomo”: La versión de AndroRat que hemos utilizado tiene una trivia y se han reemplazado algunas referencias para eliminar errores que aparecían en las nuevas versiones de Android (sobre los errores pueden leer aquí: LINK-1 y LINK-2). Les dejo el código para que lo puedan compilar por ustedes mismos si es que así lo requieren. Los créditos de esta versión se los lleva mi amigo Billy Grados, le pueden escribir a: billy.grados@gmail.com. Esta versión la pueden encontrar [AQUÍ]. (Cuidado que algunos Antivirus los reconocen como virus) 

    3




    * METASPLOIT: Todos ya conocen Metasploit, es seguramente la herramienta de hacking rápido más usado en la actualidad y no podía estar ajeno al hacking de Android. Lo que hace básicamente es generar un APK malicioso que ejecuta una sesión Meterpreter en el celular, es bastante sencillo el generarla.

    image



  3. Extrayendo la información

    * ANDRORAT: En el caso de haber logrado el acceso al celular mediante Androrat, digamos que tenemos 02 opciones para poder obtener acceso:

    Opción I: Haber configurado una dirección IP pública en la aplicación Android instalada: Si hicieron esto es porque desean tener acceso al celular desde cualquier lugar, entonces necesitan un servidor con una dirección accesible desde Internet. Esto lo pueden hacer a través de una configuración en sus routers caseros (NO-IP + NAT) o lo pueden hacer si es que alquilan un servidor VPS (Virtual Private Server) por unos meses, de hecho está se pueden conseguir por precios que no pasan los US$ 8 dólares mensuales.

    Opción II: Configurar una dirección IP no pública, es decir, que pueda ser utilizada en una red LAN, por ejemplo: 192.168.X.X, 172.16.XX. Si deciden colocar una dirección IP no ruteable tocará esperar a que el atacante y la víctima se encuentren en la misma red LAN. ¿Ya se les ocurren situaciones donde esto podría servir? Por ejemplo, en el caso de un(a) esposo(a) celoso(a), en el caso de una señora madre de familia preocupada por lo que sus pubertos hijos o hijas calenturientas hacen por internet, etc.; se requiere como base que el atacante y la víctima estén en la misma red LAN en algún momento del día (o cuando se conecten a la red wireless de la casa).

    Para nuestro experimento, hemos utilizado un servidor Ubuntu VPS que se encuentra en Internet con una dirección IP pública. Aquí las imágenes donde se muestra:

    - La conexión realizada entre el AndroRat y el dispositivo Android
    - Acceso a los mensajes SMS recibidos y enviados en el celular
    - Acceso a las imágenes recibidos a través de WhatsApp (en general acceso a todos los archivos del SDCARD)
    - Acceso a las bases de datos CRYPT7 que contienen las conversaciones de WhatsApp

    image 

    2014-10-22_23-58-14 

    image

    image 

    * METASPLOIT: A diferencia del AndroRat, en el caso de utilizar Metasploit necesitamos que la aplicación instalada sea abierta, es decir, no sólo que sea instalada sino que este en uso para establecer la conexión. La conexión se realiza según la imagen inferior y la sesión Meterpreter ya es bastante conocida, podríamos descargar los archivos que necesitemos como las imágenes y la base de datos de conversación de WhatsApp.

    image

    image


  4. Bonus Track

A. Descifrando WhatsApp: Lo primero que hay que tener en cuenta es la fecha de realización de este post, Octubre de 2014, es importante mencionarlo porque los mecanismos de cifrado de WhatsApp cambian frecuentemente así que es muy posible que si leen este post en algunos meses el mecanismo mostrado ahora ya no sirva. Dicho esto, les comento que en la actualidad WhatsApp se necesita lo siguiente para descifrar WhatsApp:

* Obtener el archivo “KEY” el mismo que está en la siguiente ruta: /data/data/com.whatsapp/files/key –  se requiere tener rooteado el celular para acceder a ese archivo.
* Obtener los archivos “CRYPT7” que contienen las conversaciones cifradas de WhatsApp, estos archivos están en: /sdcard/whatsApp/Databases/
*
Para descifrar los archivos “CRYPT7” utilizaremos la aplicación “WhatsApp-Viewer”, el proyecto lo pueden descargar de [AQUÍ]

Consideraciones Importantes:

- No se puede obtener el archivo “KEY” remotamente si es que el dispositivo no esta rooteado. No se puede y no insistan con esta pregunta. OJO: Sí se puede de manera local pero para nuestro caso que es hackear remotamente un Android no hay manera.
- El archivo “KEY” sólo puede ser obtenido en dispositivos Android 4.0 o versiones anteriores, esto ocurre porque extrañamente en estas versiones el archivo “KEY” tiene los permisos para poder ser descargados, en las nuevas versiones sólo tienen permisos de lectura y escritura para ROOT.


image

image



2014-10-29_21-33-43


B. Mi querido Perú: Si de algo no me cabe la menor duda es que los peruanos hemos desarrollado un talento especial para la imaginación, siempre se nos ocurre algo para poder obtener algún beneficio. Lamentablemente no siempre va por el lado de la legalidad (pequeño detalle, no?). Bueno esta vez, a una empresa y página peruana se le ocurrió la maravillosa idea que vender celulares Android hackeados, es decir, vender el celular Android con una versión customizada de AndroRat para espiar de manera ilícita a la víctima. ¿ No me creen? pues aquí la página peruana. De hecho es súper fácil ubicarlo a través de Google. Lo divertido del asunto es que venden una membresía Gold y Platinum jajajaja.


2014-10-29_22-40-58

 

Finalmente…. ¿ Cómo evito que esto me pase?

  • No instales aplicaciones “milagrosas” en tu celular, ni siquiera desde el GooglePlay
  • No instales aplicaciones de un origen desconocido, es decir, aquellas que no estén en el GooglePlay
  • ¿Tener un antivirus instalado en el celular ayuda? Sí ayuda pero no es la solución, por ejemplo, en los casos mostrados en este post el antivirus McAfee no ha reconocido la aplicación creada por MetaSploit como una aplicación maliciosa, el AndroRat si fue reconocido como aplicación maliciosa. En otro post escribiré como funcionan los antivirus en Android.

    2014-10-29_23-30-46

  • Revisa los permisos aceptados al instalar aplicaciones en tu celular, olvídate del “Next, Next, Next” al estilo Windows.
  • Finalmente, “nunca confíes en mi” cuando te diga que te instales una aplicación.

 

********************************************************************

Popularity: 29% [?]

Cuando tenía 16 años, cuando estaba por terminar el último año de colegio y cuando algunos de mis compañeros de aula lloraban ridículamente en medio de un mar de abrazos de despedida causados por el tan -  pero tan – esperado y épico viaje de promoción, a mi me dolía la cabeza. Siempre creí que tales escenas causaban nauseas en mi, desencadenando un pequeño, continuo y desesperante dolor de cabeza, no paso mucho tiempo para darme cuenta que el verdadero origen era otro, uno que me perseguiría por el resto de mi vida, triglicéridos.

Si señores, triglicéridos, y es que en ese momento a parte de no saber que carajos era eso,  no pude advertir lo jodido que sería llevar esa bendita enfermedad por el resto de mi vida. La verdad, he aprendido a cargar con los triglicéridos, tuve que darle una temprana despedida a las hamburguesas, papas fritas, pollo a la brasa y demás comida grasienta y rica de la  monumental gastronomía peruana, supongo que debe ser algún castigo de los dioses nacer en el país que se dice tener la comida más sabrosa del mundo y no poder disfrutarla en su totalidad.

Nunca se me hubiera ocurrido confesar mi dolencia en el blog, jamás!!! porque va en contra de lo que siempre predico, ya saben …. entre menos sepan de uno es mejor, les estás dando menos armas a todos aquellos que se la pasan jodiendo y pegándosela de valientes detrás de un blog, a todos esos estafadores que gastan su tiempo llamando a mi casa con menos ideas en cada intento (ya inventen otra cosa a parte de que estoy en arrestado en una comisaría por favor) y en general a todo aquel retrasado con problemas y complejos de inferioridad que está dispuesto a joder y a vociferar sus traumas en contra de otros por internet.

He decidido confesar mi enfermedad no porque haya renunciado a mi ideal de seguridad de información, sino porque lo que creí  hasta hace poco una enfermedad conocida sólo por mis padres, familiares y amigos muy cercanos es en realidad de conocimiento de todo el Perú, de los 30 millones de habitantes peruanos, de los casi 15 millones de ecuatorianos, de los 17.5 millones de chilenos, 47.2 millones de colombianos y de los 1,351 miles de millones de chinos que muy probablemente – y para suerte mía – no entienden ni una pisca de español.

Si señores con mucho pesar debo decirles que mis datos, nuestros datos, vuestros datos de análisis clínicos lo puede ver “cualquier hijo de vecino” sin tener mucho -  o casi nada – conocimiento informático.

¿Las vulnerabilidades?

1. El muy “difícil” formulario de ingreso

*************************************************************************************************************
- Haga puño su mano por favor -  dijo la enfermera
- ¿No me va doler, verdad? – dijo el chico temeroso
- Listo, ya terminé, sus resultados estarán en Internet por la tarde. Ingrese a esta página web, su usuario es la primera letra de su nombre más su primer apellido.
- ¿Y la contraseña? – pregunté ansioso, esperando un error escandaloso, un error que me permita escribir un post y me generará una mueca de felicidad.
- La contraseña es simple, coloque su número de DNI y ya está.

*************************************************************************************************************

Así terminó la corta, escueta pero fructífera conversación con la enfermera. Es como sacarse la “Tinka” (lotería peruana que nunca ganaré por simple estadística), que te faciliten la contraseña de todos los usuarios del sistema en tan sólo 02 minutos de conversación. ¿Se dieron cuenta del error, verdad? Si no se dieron cuenta aquí lo explico:

A. ¿Ustedes creen que los usuarios cambian las contraseñas por defecto? Mentira, las personas no lo cambian y menos de sistemas que utilizan sólo una (01) o dos (02) veces al año. La gente es perezosa, tiene tiempo para escribir en Twitter todo el puto día pero no tienen tiempo para buscar el enlace de cambio de contraseña.

B. Tenemos un perfecto patrón de contraseñas, el usuario de acceso es SIEMPRE la primera letra del nombre del cliente sumado a su apellido paterno. No se hagan los santos ahora, acaso no es lo primero que ustedes prueban cuando hacen auditorías y análisis de vulnerabilidades, los patrones más comunes a probar son:

- Nombre de la empresa + año actual. Por ejemplo: Empresa2014.
- Nombre de la empresa + 01. Por ejemplo: Empresa01, a veces también se suele probar: Empresa02
- Nombre de usuario + año actual. Por ejemplo: Opalomino2014.
- Y obviamente están las contraseñas más estúpidas de todos los tiempos: [AQUÍ]

C. ¿De dónde sacamos el nombre y los números de DNI?

Se me ocurren muchos pero muchos lugares donde encontrar números de DNI con sus respectivas personas, voy a colocar sólo dos (02) sitios donde encontrarlos:

Nuestra querida red social: Facebook

Facebook es la versión moderna de la caja de Pandora, entrar a Facebook por la mañanas al despertar es encontrarse con un mundo de sorpresas: relaciones que inician, relaciones que terminan, relaciones que habían terminado y que vuelven a iniciar por décima vez, uno se encuentra con despechados, despechadas, con psicólogos frustrados, con acomplejados que reniegan porque pierden licitaciones, gente que no puede contener sus sentimientos, uno más estúpido que el anterior. Gracias Facebook, eres una fuente inagotable de entretenimiento.

Y claro, en Facebook también podemos encontrar números de DNI con sus respectivos nombres, allí están, listos para ser secuestrados por todo aquel que esté mediamente atento. Si no me creen… miren:

image image

El concurso de una camiseta colombiana presentada por “Jimmy Santi” a través de un programa deportivo y miles de peruanos hambrientos de mundial colocando todos sus datos en Internet. Yo se, yo se, Colombia ha hecho un espectacular mundial pero de allí a que los peruanos se aloquen por una camiseta extranjera me parece -  por decir lo menos – bochornoso y penoso.

Los datos los he cubierto con una barra de color negro pero están en la página de Facebook del programa televisivo, así como estos hay miles de concursos realizados por estos señores y por otros programas y siempre dejan todos los DNI expuestos al terminar el concurso.

En el centro comercial “Wilson”

Peruano que se respeta o al menos limeño que se respeta, ha caído en ese cementerio de computadores malogrados, computadores descuartizados, computadores que han sido rearmados tantas veces como un transformer, computadores utilizados (vendidos como nuevos)  y es que todo  aquel componente informático que busquemos será encontrado en el centro comercial Wilson.

image

Pero no sólo se venden computadores, todos saben que ese rinconcito antiguo y de arquitectura colonial también provee a cualquier – sí escuchaste bien a “cualquier” – transeúnte armado de 40 nuevos soles en su billetera todos los datos financieros, datos de identificación personal y de estado civil de todos los peruanos. Sólo es necesario ir con cara de despistado, preguntarle de manera sigilosa al morenaje que está parado como vigilante en la puerta de la casona, mostrarle con recelo el dinero, negociar el mejor estilo peruano y brindarle tu memoria USB para obtener los datos necesitados.

Hace como un año el amigo de un amigo estuvo por esos lares, no es que haya querido comprar algo de lo que venden, jamás!!! digamos que estuvo  haciendo algo de turismo extremo y le copiaron unos archivos, de hecho le copiaron unas carpetas a su memoria USB, todo por la módica suma descrita arriba. La imagen está distorsionada por obvias razones.

 

dnis

 

 

 

Lo alucinante de esto  es que todo ocurre a vista y paciencia de todos,  además, todos en el Perú sabe que esta información la comercializan sin ningún pudor y nadie hace nada, la ley contra delitos informáticos (Ley Beingolea) y la ley de protección de datos personales, ley 29733, son un saludo a la bandera. 

¿Y como exploto la vulnerabilidad?

De hecho, ya todos los que leen esto deben imaginárselo, cojan el IDE  que más les guste y desarrollen un script que coja los nombres, los números de DNI y utilícenlo como usuarios y contraseña. HTTPLib, URLib y CURL son buenas librerías a utilizar con python y php respectivamente. Allí lo voy a dejar. 

¿Soluciones?

De hecho hay varias y todas muy factibles de aplicar:

  • Generación de clave aleatoria para el primer ingreso. Nadie debería poder adivinar esta contraseña, deberían entregarte la contraseña en un sobre cerrado por ejemplo.
  • Forzar el cambio de contraseña tras el primer ingreso al sistema. (a mi  no me solicitó el cambio de contraseña).
  • Complejidad de contraseñas: caracteres alfanuméricos, por lo menos una mayúscula y por lo menos un caracter extraño.
  • Y, obviamente en la actualidad con todo el malware y mecanismos de hacking que existen, esto no basta pero créanme con eso ya estamos haciendo bastante.

 

2. Mala gestión de sesiones

Aquí no acaba todo, por si no fuera suficiente con todo lo explicado líneas arriba, me terminé yendo de narices al entrar al sistema y revisar mis resultados médicos, que por cierto esta vez tenían buenas nuevas para mí, es decir, los triglicéridos se habían ido a tomar un descanso y yo estaba muy bien. Encontré errores garrafales, me encontré en el terreno de lo incierto no sabía cuantos errores más podría encontrar, errores que bordeaban muy claramente la pelotudez y que hacen que todos los datos con información sensible sean vulnerables.

Iniciemos rápidamente, el análisis:

  • Cualquiera puede cambiar la contraseña de otro usuario

Obviamente lo primero que tocaba realizar después de encontrar ese fallo de seguridad era cambiar mi contraseña, ponerle una contraseña respetable, una contraseña tediosa, rimbombante y que contrastara con la primera ridícula contraseña entregada. Sin embargo me di cuenta que en la parte superior, la URL contenía un código de usuario, entonces supuse que ese era el código interno que me había generado el sistema, un código de cliente. Obviamente estoy tapando la URL (en la imagen inferior) y sólo dejo parte de mi código de usuario.

pass

 

Entonces, se me ocurrió editar la URL y colocar otro código de usuario, sólo seguir la secuencia, es decir, si mi código de usuario termina en 74095 que tal si prueba con un código que termine en 740976 o 74097 y ver que ocurre. Al parecer los desarrolladores  pensaron que utilizando un poco de JavaScript podían evitar que otra persona cambie las contraseñas de otro usuario, de hecho utilizaron el método OPEN del objeto WINDOW pero obviamente esto es fácilmente de bypassear.

 

pass2

Así que decidí cambiar el código de usuario y listo, sistema vulnerable. Resulta que cualquier usuario podría cambiar la contraseña de cualquier otro usuario.

pass4

 

  • Cualquiera puede ver mis exámenes médicos

Al final esto es lo más grave, el error descrito arriba se debe a una mala gestión de sesiones, es decir, al cambiar de página web no existe un pedacito de código de programación que valide si existe una sesión creada por cada usuario logueado en el sistema y que restrinja las opciones de acceso. Entonces, sólo tocaba verificar si los resultados de mi examen los podía ver cualquier usuario o peor aún cualquier persona SIN NECESIDAD de ingresar al sistema.

Abrí otro navegador, copié la URL de mi examen médico y lo pegue con ansias, lo correcto hubiera sido que me redirija a una página de ingreso de credenciales pero lamentablemente mi examen médico y mis triglicéridos son expuestos a cualquiera.

En conclusión, cualquier persona  – sin necesidad de tener un usuario en el sistema – puede ver los exámenes médicos de cualquier otro, dicho de otra manera, todos pueden ver de que enfermedades puede uno sufrir. Malaso!

examen2

 

¿Y , ¿cómo lo hago?

De hecho es demasiado simple, toca coger la URL que tiene una estructura como esta: “http://www.pagina.com/resultado.php?orden=2014000001”, copiarlo en cualquier browser y listo, tienes los resultados médicos sin requerir un usuario y contraseña. Para ver los resultados médicos de otra persona sólo toca ir modificando la serie, es decir, sería algo así: “?orden=2014000002” y luego “?orden=2014000003”, si se dan cuenta los primeros 04 dígitos corresponden al año y luego los siguientes al número de la orden (miren la imagen en la parte inferior) que es un número secuencial.

image

Descargar la página web de resultados con algún script es sumamente sencillo, de hecho aquí les dejo un script de como descargar páginas – en internet abunda información –, obviamente con el script que está en la parte inferior no van a poder descargar realizar ningún ataque, estaría loco si publico algo así.

 

 

Google Hacking

También me pregunte si el crawling de Google había visitado alguno de los sitios web, la imagen en la parte inferior evidencia que Google también conoce el resultado de algunos exámenes médicos, pero lo más grave de todo es que ahora si alguien que encuentra estas URL se dará cuenta que no hay una gestión de sesiones adecuada.

google

 

 

Ley de Protección de Datos Personales, 29733

Mi tesis de maestría es sobre la Ley de Protección de Datos Personales y en la empresa donde trabajo – Kunak Consulting – brindamos consultoría sobre la implementación y adecuación de las empresas a esta ley. La vulnerabilidad encontrada y descrita en este post está totalmente relacionada a este tema, así que toca explicar algunos detalles sobre la misma:

Fuentes:

  • Reglamento de Ley de Protección de Datos Personales: [AQUÍ]
  • Directiva de Seguridad de la Información dada por la Autoridad Nacional de Protección de Datos Personales: [AQUÍ]

Datos sensibles:

La ley indica como datos sensibles lo siguiente:

image

Categorización:

Además, los requisitos como las medidas de control varían dependiendo del tipo de la clasificación de los datos personales, la directiva de seguridad de información indica lo siguiente en este caso (ver imagen inferior) y la clasificación del tratamiento para estos datos personales caen perfectamente en COMPLEJO y CRÍTICO en algunos casos. Por ejemplo, cuando se habla de “en múltiples localizaciones” se hace referencia a la TRANSFERENCIA de información, tema tratado ampliamente en la ley y cuando se habla de “respaldada por una norma legal”, pues como sabrán es obligatorio por las empresas que los empleados de una organización sean sometidos a exámenes preventivos anuales y finalmente los datos sensibles, hacen referencia a información sobre la salud.

 

image

 

Datos finales:

  1. Como verán no se ha utilizado ninguna herramienta de búsqueda de vulnerabilidades, todo lo realizado fue a través de un browser y un teclado.
  2. Reporté el error a la empresa en cuestión (que no ha sido mencionada), indicándoles que como un cliente de ellos y que almacenan mis exámenes médicos tenían una grave vulnerabilidad, sin embargo, hasta la fecha no hay respuesta al correo enviado ni a la llamada telefónica realizada.
  3. Ojala identifiquen su vulnerabilidad porque me imagino que exponer triglicéridos como en mi caso no es tan grave pero estoy seguro que puede haber información extremadamente sensible.

 

********************

Me encontré con una canción muy buena hace poco, la comparto porque cuando se tiene triglicéridos pareciera que uno sólo quiere “Vacaciones permanentes”.

Popularity: 15% [?]

Vamos a terminar esta serie de post sobre las inyecciones de código a través de imágenes CAPTCHA. Habíamos desarrollado en los post anterior:

ANÁLISIS CAPTCHA: INYECCIÓN DE CÓDIGO SQL–PARTE I [AQUÍ]

  • Identificación de la vulnerabilidad
  • Explicación de los mecanismos de explotación

ANÁLISIS CAPTCHA: INYECCIÓN DE CÓDIGO SQL–PARTE II [AQUÍ]

  • Descarga de la imagen captcha a través de python
  • Tratamiento de la imagen captcha descargada con python

Sería buena idea que revisaran estos post  para poder entender este último con más claridad. En esta última parte toca realizar siguiente:

  1. Explicación del ataque a través de Blind SQLi
  2. Automatización del ataque con un script en Python

Explicación del ataque a través de Blind SQLi

Cuando uno realiza un ataque del tipo Blind SQLi, tenemos dos manera de poder explotarla: inyecciones “Boolean Based” y “Time Based”, como nos encontramos con un formulario que ingresa comentarios en la base de datos, es decir nos enfrentamos a un INSERT, vamos a utilizar las inyecciones del tipo “Time Based”.

Para realizar las inyecciones de este tipo y obtener información de este tipo el flujo de acciones realizadas por una herramienta como SQLMAP es mas o menos el siguiente:

 

image

 

Sin embargo, ahora que tenemos que descifrar la imagen captcha del formulario el flujo cambia ligeramente, aunque el cambio no es muy grande toca tenerlo presente para entender finalmente como funciona el script desarrollado. El nuevo flujo es el siguiente:

 

image

 

Como lo habrán notado, las características principales de que debe cumplir este script son acciones recurrentes: descargar el captcha, procesar la imagen (identificar las letras) y finalmente verificar si la imagen descargada es la correcta. Estas características no son soportadas por SQLMap por lo que tienen que ser características primordiales implementadas en el script.

Descifrado de la imagen captcha

Como habíamos tratado en la segunda parte de este post, primero toca descargar y trabajar la imagen lo mejor posible para finalmente descifrarlo e identificar los valores que tiene la imagen. Para poder analizarlo en este caso vamos a utilizar un software de “Reconocimiento Óptico de Caracteres” (OCR), Google ha desarrollado un software de reconocimiento óptico llamado Tesseract-OCR y para este caso nos vale muy bien poder utilizarlo.

Podríamos utilizarlo de diversas maneras: la primera que se me ocurre es analizando letra por letra trabajada previamente y la segunda que se me ocurre es analizando todas las letras en una sola acción; creo que dependería de la situación a la que nos enfrentemos, por ejemplo, si tuviéramos caracteres inclinados sería mejor utilizar el análisis de caracter por caracter, en este caso no es necesario esto por lo que vale analizar toda la imagen a la vez.

Utilizar Tesseract-OCR de Google no es nada complicado, tiene versiones para Windows y para Linux y puede ser llamado desde un script Python con facilidad, lo pueden descargar desde [AQUÍ].

 

SNAGHTML31942f8

 

SNAGHTML2d489c6

 

Desarrollo del Script en Python

En base a lo explicado arriba lo último que toca realizar es el script en python según al segundo flujo mostrado, para el desarrollo del script he utilizado parte del script que alguna vez me compartió  “ALGUIEN” pero ha tocado modificarlo para agregarle la nueva lógica explicada.

Popularity: 13% [?]

En el post anterior analizamos el escenario vulnerable al que nos enfrentaremos y explicamos los motivos por los cuales las herramientas de búsqueda y explotación de vulnerabilidades no sirven (al menos no para este caso. Debido a lo explico, tocaba realizar un ataque con un análisis y herramientas personalizadas.

  • Realizar una solicitud a la página web del formulario para obtener la imagen que contiene el Captcha y descifrarlo.
  • Obtener la cookie de petición de la página web, la cookie se asocia con la imagen Captcha obtenida.

Sin mucho floro vamos a iniciar a explicar como hacerlo.

1. Obtener la imagen Captcha y la Cookie

Vamos a usar Python 2.7 y la librería URLLIB para obtener la imagen.

Voy a explicar rápidamente lo que realizamos en cada línea:

  • urllib.urlretrieve: Nos conectamos a la página y descargamos la imagen que contiene el Captcha y lo almacenamos como “captcha.png”
  • URLopen[1]['set-cookie']: Obtenemos la cookie, esto nos sirve debido a que el código Captcha está asociado a la sesión creada.

Los detalles restantes no lo voy a explicar, es decir, tendrán que de pronto entrar a la documentación para entender el total del código. Aunque creo que con lo que explico está súper claro.

 

2. Trabajando la imagen Captcha

Aquí podríamos explayarnos sobre como tratar imágenes, en especial porque depende de la imagen con la que nos encontremos. Hay todo tipo de imágenes que contienen un Captcha pero para nuestro ejercicio vamos a trabajar la imagen desde dos perspectivas: limpieza del lienzo, tamaño de la imagen y mejoramiento del mismo.

  1. Limpieza del lienzo y mejoramiento: Vamos a borrar el fondo de la imagen para que sólo queden sólo los números y además vamos a cambiarle el color a negro.
  2. Tamaño de la imagen: Vamos a aumentar su tamaño.

Lo primero que vamos a ejecutar es la función RESIZER ( ), obtenemos el tamaño de la imagen y la multiplicamos por 5 el alto y el ancho de la imagen original para finalmente volver a grabarla con el nombre captcha.png.

Lo segundo que vamos a ejecutar es la función MONOCROMO ( ), el objetivo de la misma y limpiar el fondo del lienzo y dejarlo limpio por completo. La estrategia para limpiar el lienzo (al menos de este Captcha) es encontrar un patrón en el fondo de la imagen para poder modificar cada pixel que cumple con ese patrón.

Para este caso en particular lo peculiar es que el color del fondo siempre es de un color más tenue que el color negro de los números, eso se puede traducir en  el modelo RGB para encontrar un patrón. El modelo RGB asigna un valor de intensidad a cada pixel, entre más claro sea el color, es decir, más se acerque al color blanco el valor RGB es superior y entre más se acerque al negro el valor RGB es valor tiende a cero.

En la imagen se muestra los tres (03) valores que componen el modelo RGB  y cada uno tiene un valor de 200, por lo que la suma de los tres valor siempre será un número superior a 400, obviamente he llegado a esa conclusión después de analizar varios pixeles del fondo de la imagen que estamos analizando.

7

Es por ese motivo que el script realizamos lo siguiente:

  1. pix = img1.load(): Utilizamos el método load para obtener acceso a cada pyxel.
  2. sum(pix[x,y])<400: Si la suma de los tres valores del modelo RGB es superior a 400 (es decir no es color negro del número), lo que vamos a realizar es que lo convertimos a color blanco y viceversa si es inferior a 400 cambiamos el pyxel en color negro de la siguiente manera: pix[x,y]=(0,0,0).

Después de trabajar la imagen podemos ver la importante diferencia entre el antes y el después, primero colocaré la imagen agrandada con el lienzo de fondo y la segunda imagen con el lienzo limpio, de esta manera la imagen queda más legible para luego ser reconocida.

 

9

 

8

Aquí vamos a dejar el segundo POST donde hemos trabajado la imagen a través de Python. Algunos detalles adicionales que me gustaría mencionar:

  1. El módulo Image de Python tiene muchas funciones y métodos. Pueden revisar la documentación aquí: [AQUÍ]
  2. Existen Captcha más complejos, por ejemplo con los números con cierto grado de inclinación y tocaría utilizar funciones matemáticas para encontrar el grado de inclinación y rotar la imagen, es decir, caracter por caracter.
  3. Toca trabajar con un script distinto según sea el tipo de imagen con los que nos encontremos, en otro post publicaré como manejar imágenes inclinadas y con líneas que cruzan la imagen principal, pero eso será en otro post.

Aquí dejo el script para que lo revisen con calma y vayan practicando.

Popularity: 21% [?]