Mostrando las entradas con la etiqueta python. Mostrar todas las entradas
Mostrando las entradas con la etiqueta python. Mostrar todas las entradas

miércoles, 3 de septiembre de 2014

Passwords de famosos... serán sencillos? Acá un script para averiguarlo.

Hola! Por estas fechas ya es un trending topic la noticia de las fotos de Jennifer  Lawrence y de otras actrices norteamericanas. Pues no serán las últimas, ni fueron las primeras. Sin contar a los millones de desconocidos por la farándula que les ha pasado lo mismo.

Primero lo primero, reglas doradas:
  1. Asegura tus contraseñas, hazlas basadas en frases. No hay que ser astro-físico para eso.
  2. No subas a Internet lo que no quieras que se comparta... igual que lo anterior, no hay que esperar la carta de aceptación de Yale para suponer lo obvio.
  3. Asegura bien tus dispositivos móviles. Claves basadas en frases, bloqueo remoto, etc. Falta de leer un poco, alegar ignorancia en la época de la tecnología es un absurdo.
  4. No te hagas fotos íntimas con los aparatos móviles (smartphones, tablets, etc.), mucho menos las compartas en Internet... aplica explicación de la regla 1.
  5. Cierra bien las sesiones antes de abandonar cualquier servicio o App que necesite logeo que estés utilizando. La magia se quedó en Hogwarts, tu tienes que buscar el botón de logout.
  6. No te fíes de ningún servicio on-line. DE NINGUNO! Para esta regla se necesita tener un poco de "malicia indígena" y es tan rara de encontrar como el sentido común.
Aclarado el punto anterior, vamos al fútbol. Muchos medios indican que el leak ha sido culpa de iCloud y otros indican que los usuarios usaron claves sencillas de hackear. Yo diría que, ambos.

Razones para segurar lo anterior:
  1. El lunes 01/09/2014 fue publicado en github un script (en Python) que parece haber permitido a los usuarios realizar fuerza bruta contra cuentas en iCloud, gracias a una vulnerabilidad en el servicio Find My iPhone.
  2. Los ataques por fuerza bruta resultan simples y rápidos de realizar cuando las contraseñas de las víctimas son, relativamente sencillas de analizar. Recuerden que descubrieron bastantes contraseñas, lo que supone una omisión de la regla dorada número 1 de arriba.
Resumiendo, la vulnerabilidad descubierta en dicho servicio parece haber dejado a los usuarios realizan fuerza bruta sin ningún tipo de bloqueo o de alerta (dejo acá la duda de si lo probé o no). Una vez que la contraseña ha sido obtenida mediante esta técnica, el atacante puede utilizarla para acceder a otros servicios de iCloud con total libertad.

Notas finales:
  • El script que han liberado, aplica fuerza bruta, o sea, prueba y error. Recuerda que al utilizar la herramienta, la cuenta queda bloqueada después de cinco intentos, ya que Apple se dió cuenta de la filtración.
  • Si conoces cuentas de Apple donde probar el script, date por enterado que lo más probable es que las bloquees. Básicamente estarías haciendo un ataque DoS.
  • Queda bajo tu responsabilidad usar o no el script!

Nos vemos.

jueves, 24 de abril de 2014

vFeed® – Cross-Linked Vulnerability XML Database

Deseo mostrarles una herramienta hecha en Python (que la verdad uso mucho) muy útil llamada vFeed. Pero para explicarla, primero debo contarles brevemente qué es un CVE.

Pues bien, los Common Vulnerabilities and Exposures (CVE), son una lista de información registrada sobre conocidas vulnerabilidades de seguridad, donde cada referencia tiene un número de identificación único. De esta forma provee una nomenclatura común para el conocimiento público de este tipo de problemas y así facilitar la compartición de datos sobre dichas vulnerabilidades. La información y nomenclatura de esta lista es usada en la National Vulnerability Database, que es el repositorio más grande de información sobre vulnerabilidades.

Una vulnerabilidad recién descubierta, para que sea incorporada totalmente al listado, tiene que seguir un proceso que consta de tres etapas:

  1. Etapa de presentación inicial
  2. Etapa de candidatura
  3. Etapa de ingreso en la lista (si es que la candidatura es aceptada)

Por esta razón la lista CVE no tiene vulnerabilidades de 0-Day (recién descubierta). OK la clase hasta aquí!!

Resulta y pasa que hay herramientas que nos facilitan la recolección de estos CVE's para saber que exploit usar contra un sistema. Una de estas es el vFeed® – The Open Source Correlated and Cross-Linked Vulnerability XML Database... vaya nombre! Fue hecha por NJ OUCHN (@toolswatch en Twitter) y fue construida con tecnologías Open Source:
  • Python
  • sqlite3
  • openCVSS.py v1.3 lib escrita por Brandon Dixon de 9b+
Básicamente es un listado de datos en XML que te permiten correlacionar una búsqueda de CVE's. Y puedes descargarla de su repositorio en GitHub aquí. Puedes usar la siguiente línea en un terminal:  git clone https://github.com/toolswatch/vFeed.git. Si no tienes usuario de GitHub te recomiendo bajarla de este otro link en formato zip.

Se podría ver así gráficamente:

vCORE_v2_Eg

El core de vFeed recolecta los basis xml feeds generados por alguna referencia, web por ejemplo. (en este caso los tipo NVD o CVE) y los correlaciona a través de múltiples orígenes de información. Estos son ejemplos de estas fuentes:

  • OVAL (http://oval.mitre.org)
  • CAPEC (http://capec.mitre.org)
  • CVSS (http://www.first.org/cvss)
  • Microsoft MS
  • Mandriva
  • Redhat
  • Cisco

Instalación y uso

Para instalarla, descomprime el zip que bajaste del link que te mencioné anteriormente, ingresar a la carpeta donde lo descomprimiste (asumo que eres un geek e hiciste los dos pasos anteriores desde el terminal!!), ejecuta el siguiente comando para actualizar la BD local: ./vfeedcli.py update y listo. Recuerda actualizarla de cuando en cuando, ya que es una herramienta offline.

Para ver cuales parámetros usar y ejemplos de ejecución puedes irte a este link. Igual te doy un tip: ./vfeedcli.py get_cve CVE-2013-1347

Nos vemos malignos (dijo Chema Alonso...)

sábado, 19 de abril de 2014

Recolección de información con TinfoLeak.

Hola! Hoy deseo mostrarles una herramienta muy útil si necesitas recolectar información acerca de algún contacto de Twitter. Seguro dirás: "ninguna novedad... hay muchas". Pues si, pero esta Python-based tool que va por la versión 1.2 (y según su autor casi sale la 1.3) te arroja una muy rica cantidad de datos.

Al ser parametizable, permite ver datos básicos, cantidad de tweets, menciones, hashtags, ubicación geográfica y otros detalles.

Estas apps no intrusivas te permiten una recolección de datos previos, para múltiples propósitos. Cada quien sabrá para cuales... }:-)

Empecemos por el principio, su creador es Vicente Aguilera Diaz. @VAguileraDiaz. Representante del capítulo OWASP de España. Está hecha en python (v 2.7). La herramienta se llama Tinfoleak. Hay varios requisitos previos antes de usarla. Veamos a continuación:

  1. Asumo que están usando alguna versión de Linux, si tienes Windows asegúrate de buscar los instaladores adecuados. En mi caso uso una versión de Debian completamente inocente, la bella Kali.
  2. Si no tienes una cuenta de Twitter, pues deberás creártela. Dale, en 5 minutos haces este paso.
  3. Lo siguiente que necesitas es darte de alta como developer en Twitter. Esto para que puedas usar el API de Twitter, que va por la versión 1.1 (en este link encontrarás todo el framework necesario). Los pasos para hacerte developer puedes encontrarlos acá. Cuál es el resultado que debes esperar luego de seguir los pasos anteriores? Básicamente cuatro valores que deberás colocar en un archivo .py (py por Python) que luego explicaré.
  4. Los valores mencionados corresponden a los parámetros: CONSUMER_KEY (API Key), CONSUMER_SECRET, ACCESS_TOKEN y ACCESS_TOKEN_SECRET. Qué significan estos parámetros, no es relevante para este post, lo que debes saber es dónde colocarlos.
  5. Lo anterior nos lleva al siguiente paso. Bajen de la fuente original el programa Tinfoleak.
  6. Desempaqueten/descompriman el programa donde deseen. Abran el Tinfoleak.py con algún editor de texto. Busquen dichos parámetros (OAuth settings) y coloquen entre las comillas de cada uno, los valores que les asignaron en el sitio para developers de Twitter. Hasta aquí ha sido sencillo.
  7. No cierren el documento. Busquen la siguiente línea: api = tweepy.API(auth). La modifican de la siguiente manera: api = tweepy.API(auth, secure=True). Lo anterior es porque Twitter creo ciertas medidas de seguridad cuando ejecutas sus Apps desde programas externos. Si no hacen ese cambio les presentará un error similar a [‘SSL is required’, ‘code’: 92] ya que la invocación no es segura.
  8. Cierren el archivo anterior. El autor me comentó por correo que: Por otro lado, te informo que en los próximos días voy a publicar una nueva versión (la 1.3) de tinfoleak, que corrige algunos problemas, amplía la información obtenida y aporta una nueva e interesante funcionalidad. Si estás atento a mi web (http://vicenteaguileradiaz.com/tools/), la verás allí publicada en breve (seguramente antes del lunes 21 de abril). Así que ese fix que describí ya no se hará en la siguiente versión.
  9. Otro prerequisito es verificar si tenemos Tweepy. OK... respiremos un poco. Asumo que el autor usó Python porque es ultra simple de programar, y porque tiene librerías de virtualmente TODO. En nuestro caso necesitamos tweepy, que tiene toda la API de twitter. Normalmente se instala al instalar Python, si no, lo bajas y lo instalas. Si lo tienes, vete a la siguiente dirección: /usr/share/pyshared/tweepy/. Luego abres el archivo api.py y buscas la siguiente línea: api_root='/1'. Cambias el parámetro a api_root='/1.1' para que no te de el error: [The Twitter REST API v1 is no longer active. Please migrate to API v1.1]. Eso es porque Twitter cambió el API a la versión 1.1 y hay software que no ha sido actualizado, como el tweepy.
  10. Listo!!! Puedes ejecutar el TinfoLeak.py (recuerda que es con ./) con el parámetro --h para ver la ayuda. Te voy a dar mi ID de Twitter con la ejecución básica para que veas que sale (igual puedes usar la tuya): ./tinfoleak.py -n elbartocr -b
  11. Recuerda ejecutarlo en la carpeta donde lo bajaste.
Espero lo disfruten! Nos vemos!