Archive for October 2013

Asaltando "sombras" con python

  En esta entrada vamos a realizar un ataque de fuerza bruta basado en diccionario sobre el fichero /etc/shadow que utilizan las distribuciones de GNU/Linux.

Este fichero contiene la contraseña cifrada de cada usuario del sistema (los que la tengan) y se complementa con otro fichero como es /etc/passwd.

Dicho archivo esta formado por numerosas líneas como la que sigue:
     usuario:password:último:pueda:vida:aviso:caduca:duración:reserv

 Donde:
    [-] usuario es el nombre del usuario.
    [-] password es la contraseña cifrada correspondiente al usuario.
    [-] último  son los días transcurridos desde la última vez que se cambió la
          clave, cuenta desde el día 1/1/1970.
    [-] pueda son los días que deben pasar antes de que la clave pueda ser
          cambiada.
    [-] vida es el tiempo de vida de la clave antes de que tenga que ser
          cambiada.
    [-] aviso es el número de días de aviso al usuario antes que expire la clave.
    [-] caduca son los días en que la clave quedara deshabilitada tras caducar.
    [-] duración son los días de duración de la cuenta desde 1/1/1970.
    [-] reserv pertenece a un campo reservado.

 El anterior ejemplo es un caso genérico, veamos ahora los valores de un usuario “real”:

usuario:$6$3oNSayeE$Cqe3MB4N/oHgEJw6JTXGIg3oNmDhvgBMSf/rNm2Hab0cn28psM1htq3TFebQJ4At1LkQKuu5/T/LocYYtjZMP0:16003:0:99999:7:::

En esta ocasión el campo que llama nuestra atención es password que a su vez se subdivide en varias secciones:

$6$3oNSayeE$Cqe3MB4N/oH….

Es decir:

$algoritmo_cifrado$salt$password_cifrado

Donde:
  [-] algoritmo_cifrado representa en función del numero el cifrado utilizado, siendo 1 md5, 2a blowfish, 5 SHA-256 y 6 SHA-512. Este último es el utilizado por las distribuciones actuales.
  [-] salt es un valor generado al azar utilizado junto con la contraseña para generar el password cifrado que vemos en el campo contiguo. Es útil para evitar ataques mediante tablas hash ya preparadas como son las conocidas rainbow tables.
  [-] password_cifrado es la contraseña del usuario cifrada con el algoritmo especificado junto con el salt.

Una vez ya conocemos la estructura podemos programar nuestro propio código para realizar ataques de diccionario a ficheros shadow y obtener las contraseñas de los usuarios.

 Para la prueba hemos utilizado la librería crypt de python (versión 2.7.x) que junto con la función del mismo nombre nos permite descifrar las contraseñas de los usuarios contenidos en el fichero.

El código está alojado en la sección de herramientas de 0verl0ad, concretamente aquí, donde podéis encontrar el código junto con una carpeta llamada test que contiene un fichero shadow y un diccionario breve para hacer las pruebas.

Por último comentar que la aplicación no es multiproceso, por tanto es lenta, pero nos permite ver como podemos hacer nuestro propio script para realizar ataques de diccionario a ficheros de este tipo. En siguientes entradas solucionaremos esto 😉

Si queréis ampliar información aquí tenéis un par de entradas que me han resultado útiles:

Nos leemos en breve 😀

Leer artículo original: Asaltando "sombras" con python

Wifi Pineapple : WiFi Relay + iPhone




La piña WiFi te ofrece distintas formas de proveerle internet: ya sea por BAM, Ethernet con el PC, Android Usb Tethering, etc. En fin la situación era que soy dueño de un Iphone [Si, me gustan] y tengo mi plan ilimitado de Internet por lo que no quería pagar una BAM solo para la Piña y la idea no era andar con el PC en todas partes. Busqué por un montón de sitios opciones que me permitieran conectar la piña al Iphone por usb y realizar un tethering pero no era soportado debido a ciertos paquetes ausentes.




Entonces hay que aprovechar lo que tenemos:

PiñaWifi | WifiPineaple MK4
Iphone 4 
Adaptador USB wifi | Crolatus 
Un Hub Ordinario xD
Memoria Usb [Para las Infusiones]


Conectamos mediante el Hub, el usb con nuestras infusiones y el Adaptador USB WiFi Crolatus y verificamos que lo reconozca mediante la pestaña usb accediendo por el navegador http://172.16.42.1:1471











La idea es alimentar a la Piña mediante compartir Internet inalambrico desde el iPhone y hacer correr sslstrip | Todo esto si mediar la necesidad de un computador.


Archivos de Conexión:
Nuestro connect1.sh
#!/bin/sh


ifconfig wlan1 up


# Conexión a WPA2 usando wpa_supplicant

wpa_supplicant -i wlan1 -c clave1 -B
# "clave1" será un archivo creado por nosotros
#wlan1 es nuestro Adaptador Crolatus


#ipforwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

#Reset de iptables and config
iptables -F
iptables -X

iptables -A FORWARD -o wlan1 -i br-lan -s 172.16.0.0/24 -m conntrack --ctstate NEW -jACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

#un sleep de 6 segundos para que este lista la asociación..
sleep 6

# DHCP de OpenWrt
udhcpc -i wlan1

Ahora seguiremos con el archivo “clave1” mencionado en el script anterior que se trata en de nuestro wpa_passphrase, abrimos una consola y escribimos:

wpa_passphrase tu_SSID tu_clave 
#En mi caso wpa_passphrase "iPhone de Shine" "00000000" > clave1

#Si vamos al archivo veremos algo asi
# network={
# ssid="iPhone de Shine"
# #psk="00000000"
# psk=0d6f2eaab4ddeef7e6a6bbb0118774b279fa81ad0839e92a888ad528a95106e7
#}

Subiremos los archivos “connect1.sh” y “clave1” a la piña por ssh al directorio /pineapple/config/ 

Entraremos a la piña por el navegador http://172.16.42.1:1471 y entraremos a la configuración para setear el uso del boton WPS para que ejecute el script cuando presiones dicho boton entre 2-4 segundos.



















Ahora solo nos quedaría configurar el sslstrip para que se ejecute desde un comienzo al encender la Piña, existen otras formas de lanzarlo solo use su imaginación.

Listo, ya tenemos nuestra Piña lista para usada con el Internet del Iphone y lanzar el script con el boton WPS..

Leer artículo original: Wifi Pineapple : WiFi Relay + iPhone

Filtros en Facebook: ¿Desnudos no, pero Decapitados si?

Facebook.-  Nuevamente la famosa red social está en el ojo de todos, debido a lo comentado que resulto el hecho donde la se emitió la decapitación a una mujer por parte de un cartel de narcos mexicanos.

Facebook desató una ola de críticas con la controversial decisión de quitar la restricción en vídeos violentos, incluyendo aquellos que muestran decapitaciones.

En mayo pasado impuso una prohibición temporal en contenido gráfico explícito en respuesta a las quejas por videos que mostraban decapitaciones.

Facebook retiró los videos reportados y dijo que estaba revisando su política en ese tipo de contenido gráfico.

Ahora la compañía ha flexibilizado su posición. Permitirá la publicación de contenido violento como decapitaciones, siempre y cuando sea con la intención de crear conciencia en lugar de celebrar la violencia.


Las condiciones de usuario de Facebook prohíben fotos o videos que “glorifican la violencia o atacan a un individuo o a un grupo”.

Un portavoz de Facebook dijo que permitirá a los usuarios publicar videos violentos que condenen las acciones que ocurren en sus imágenes.

La firma dijo que podrían aparecer advertencias antes del inicio de los videos más explícitos.

El cambio en la política, reportado en primera instancia por BBC, generó protestas de parte de usuarios en Facebook y en Twitter.

El primer ministro británico, David Cameron, criticó la decisión. “Es algo irresponsable de parte de Facebook que publique videos de decapitación, especialmente sin advertencia. Deben explicar sus acciones a los padres preocupados”, tuiteó.

La nueva norma parece proporcionar una puerta de entrada para que ciertos tipos de contenido extremo esquiven los filtros existentes. Facebook prohíbe la desnudez, el consumo de drogas y la pornografía, restricciones seguirán vigentes.

Muchas de las críticas señalaron la aparente incoherencia en las políticas de Facebook, que permiten violencia extrema pero podrían llevar a que imágenes de madres amamantando sean retiradas.

El tema también reavivó un debate más amplio para determinar si Facebook es una plataforma de contenidos o un sitio de publicación de noticias.

Fuente

Independiente de la intención de la publicación de un video, es totalmente reprochable la postura de Facebook debido a que finalmente estos vídeos con alto contenido de violencia seguirán estando a solo un click, de los usuarios de la red social y lo niños que navegan día a día.




Leer artículo original: Filtros en Facebook: ¿Desnudos no, pero Decapitados si?

Bugtroid, un arsenal en tu dispositivo Android

Bugtroid es una aplicación para sistemas operativos Android desarrollada por el equipo de  Bugtraq que reúne unas 200 aplicaciones relacionadas con temas de auditoria de seguridad, ya sea anonimato, auditoria web, de redes o temas forenses entre otras muchas categorías.

Como condición indispensable para exprimirla al máximo, es necesario ser root en el terminal. En cuanto a sus versiones, podemos acceder a ella de dos formas, una gratuita y otra de pago. La primera nos permite probar algunas aplicaciones y poco más, es principalmente una lista de todas las aplicaciones disponibles para hacernos una idea de la cantidad de herramientas que la componen. La potencia de la aplicación viene si compramos la versión PRO de ésta, por  apenas 1,85€ disponemos de todas las posibilidades.

Su funcionamiento es sencillo, se trata de una lista de aplicaciones organizadas por categorías, cuando seleccionamos una, ésta se instala en nuestro dispositivo. Esto nos ayuda a tener solo instaladas las aplicaciones que queramos y no “ensuciar” nuestro dispositivo de herramientas que no vayamos a utilizar o que no sean compatibles.
En este último punto aparece la principal queja que tengo de la aplicación, y es que no sabes si la aplicación que estas instalando es compatible con tu dispositivo. Entiendo que la solución no es sencilla ya que ni los mismos desarrolladores de las aplicaciones muchas veces saben todos los dispositivos compatibles con ellas, pero si se implementara o si apareciera una lista con los dispositivos probados seria interesante.

Sin contar el anterior detalle, la aplicación recoge un completísimo catálogo y nos permite descubrir muchas aplicaciones que de otra forma ignoraríamos.

En cuanto a la aplicación, el primer menú que nos encontramos cuando la abrimos nos permite escoger entre aplicaciones de Android o de GNU/Linux junto con un menú de opciones que nos permite instalar los interpretes de Python, perl y ruby además de ajustar algunos parámetros.
 

Como he comentado antes, en su menú encontramos todo tipo de aplicaciones clasificadas por categorías, estas aplicaciones son por ejemplo WifiKill o Intercepter-ng por comentar algunas tratadas en este blog (mas adelante analizaré más 😉 ). Para su utilización basta con seleccionarla e instalarla, después veremos un acceso directo en el escritorio o en la versión PRO podemos ejecutarlas desde la misma Bugtroid.

Para descargar la versión gratuita:

https://play.google.com/store/apps/details?id=com.bugtroid.free.es

En cuanto a la versión de pago:

https://play.google.com/store/apps/details?id=com.bugtroid

En resumen, un completo catalogo de aplicaciones disponible para nuestros dispositivos que el equipo de Bugtraq se ha encargado de recoger para nosotros.

Nos leemos en breve 😉

Leer artículo original: Bugtroid, un arsenal en tu dispositivo Android

Upgradeando la Piña WiFi MK4 y no morir en el Intento






Estos días que ando con un “poco” más de tiempo, quise upgradear el firmware de la Piña y me di cuenta que mediante la plataforma el navegador arrojaba distintos problemas.


1) Decía descargar la versión 2.8.1 y realmente descargaba la 3.0.0 por lo que el MD5 no coincidía con el que te ofrece para comparar.


2) Al intentar usar el MD5 disponible directo del sitio (MK4)
arrojaba un error “Error, please check the file you specified. Error 7”



Buscando soluciones por las webs oficiales, di con la solución al Upgrade [ Sí, bendito ssh ]:

Nos conectamos a la piña por ssh:



ssh root@172.16.42.1
Password: pineapplesareyummy

Una vez dentro primero tendremos que generar un poco de espacio, ya que sino no podremos subir el firmware por scp a la piña. Entonces ejecutamos:




mtd -r erase rootfs_data

Luego de esto subimos por scp el fichero de Upgrade que descargamos desde la pagina oficial al directorio /tmp de la piña. así:

scp upgrade-2.8.1.bin root@172.16.42.1:/tmp/

Una vez dentro nuevamente de la piña por ssh, vamos a verificar el md5 del archivo haciendo un:


md5sum /tmp/upgrade-2.8.1.bin

Si correspondiera a la correcta, en este caso a:    17e4384a79e7fef9c267f7da34ed4743  Seguimos con el siguiente comando:



sysupgrade -n /tmp/upgrade-2.8.1.bin

Ahora solo queda hacer un reboot y listo !



Ahora a seguir instalando Infusions..

G0!

Leer artículo original: Upgradeando la Piña WiFi MK4 y no morir en el Intento

Buffer Overflow : The lazy way

¡Saludos!

    Hace mil que no dedico un poco de tiempo para el blog, pero es que me han estado liado en un par de cosas (como el pasado Navajas Negras… del cual saqué la conclusión de que en realidad las mejores charlas empezaban a partir de las 3 de la madrugada … animo a todos a que vayais el año que viene, es una experiencia cojonuda), que próximamente comentaremos por aquí.

   La cuestión es que estos últimos días me estoy pasando por el canal de IRC de los chicos de Highsec, y allí @ShellShockLabs me lió para ir haciendo algunos “Exploit me” entre todos. Lo cual agradezco mucho, porque nunca me había puesto “manos a la obra” con el tema de las vulnerabilidades en binarios, más allá de la teoría (lo mío es la seguridad a nivel web). De este “hagamos esto entre todos” (que entre todos significó que sólo nosotros dos lo hicimos).

   Era un Exploit Me! bastante sencillo, el cual su resolución (y explicación for dummies de lo que es un buffer overflow, altamente recomendado si empiezas) podeis encontrar aquí . En apenas unos minutos conseguimos hacerlo, pero algo nos escamaba. Lo que debería de haber sido (leed primero su post en Highsec antes de seguir leyendo) un simple “metemos los 64 bytes para rellenar el buffer, despues otros cuatro para pasarnos por la piedra EBP, y los 4 con la dirección de go_shell que se meriendan lo que había en EIP”, se quedó en un:…¿Porqué cojones hemos necesitado 76 bytes para pisar EBP y otros 4 para meter la direccion de go_shell en EIP?

  Tras divagar buscando las más exóticas respuestas por diversos foros de reversing, nos contestaron. El alineamiento de la pila, el “padding”.

  Resulta que el compilador mete su propia basura para poder alinear la memoria, aquí teneis la explicación for dummies   No quiero entrar en detalle sobre este aspecto, porque creo que @ShellShockLabs lo hará más en profundidad en Highsec, con este mismo ejemplo, y no quiero chafarle el post.

   Por mi parte,  para saber cuanta basura había que meter para poder sobreescribir EIP utilicé una estrategia de divide y vencerás: primero le metí 100 “A” y 100 “B”, al ver que en EIP habia 0x41414141, necesitábamos meter entre 64 (que era el espacio reservado para el buffer) y 100. Despues metí 70 A y 30 B, como seguía viendo “A”s en EIP, fui haciendo 75 A y 10 B, así hasta que llegué a que se necesitaban 76 + 4.

   Yo, amante de la ley del mínimo esfuerzo y los scripts en perl, me sentía frustrado por perder el tiempo en esta tarea (pues fue lo que más tiempo me consumió), asi que opté por hacerme algunas herramientas para próximas veces. Dichas herramientas las podeis ver en nuestro repositorio de GitHub, justo el botón que pone “Herramientas” en la parte superior derecha.

    Para saber cuantos bytes son necesarios podemos usar “seekHdestroy.pl”. Con el argumento –seek te devuelve una cadena bastante larga de caracteres que deberemos de pasarle como argumento a nuestro programa vulnerable:

   Hacemos un “GDB simple_login” para cargar el exploit me y “run”. Cuando nos pida el password le pasamos la cadena.

   Si hemos leido el post de Highsec, ya sabeis que hemos sobreescrito de forma brutal más allá de los 64 bytes y que por eso peta. Comprobemos los registers (info registers):

   Como podemos ver en la parte señalada EIP está escrito con 5a5a5a4c. Vale, ahora se lo pasamos a seekHdestroy usando como argumento –destroy:

  En menos de 20 segundos ya sabemos cuantos bytes necesitamos para sobreescribir EIP: 76 + 4 con la dirección de donde queramos que apunte. Para sacar donde está go_shell, usamos pr0lapso.pl que es un pequeño parser para objdump que estoy haciendo (todavía está en pañales, el objetivo final es que te saque directamente la shellcode incluyendo los NOPs necesarios):

  Ya sabemos donde: 0804851c. Ahora, para explotarlo, necesitaríamos meterle los 76 de basura (que calculemos con seekHdestroy) y estos 4 de la dirección pero expresada del revés. Tiramos de perl (esta parte es igual que en el post de Highsec):

Explotado en 5 minutos. Ahora, el siguiente paso es terminar pr0lapso para que me genere las shellcodes directamente, pero poco a poco. Como he dicho más arriba, todas estas herramientas las puedes encontrar en nuestro repo de github ( https://github.com/0verl0adLABS ).

Byt3z!

Leer artículo original: Buffer Overflow : The lazy way