26 dic. 2011

0day en AirOS (Acceso como Root)


Bueno, me ha llegado un mail bastante interesante sobre un 0day en Arios, y no sé de que tanto tiempo estemos hablando, pero revisando un poco me he dado cuenta que sigue muy vigente...

Y esto decia el mail:

AirOS remote root 0day

since some genius decided to write worm for this, here is early santa for you, kids:

1. http://www.shodanhq.com/search?q=airos
2. click arbitrary system
3. change http://X.X.X.X/login.cgi?uri=/ to http://X.X.X.X/admin.cgi/sd.css
4. profit?

IRCNet opers: expect some decent KNB bot mayhem for a while :)
Lo que dice es que es una manera de obtener acceso al panel de administrador de AirOS sin autentificarse, es una suerte de bypass, y es bastante simple, también dice que algún genio inventó un gusano que se aprovecha de esto, así que nos lo deja de regalo de navidad...

Si no entendieron mucho, entro a explicar.

AirOS creado por Ubiquiti se basa en un sistema operativo avanzado capaz de manejar un poderoso sistema inalámbrico y funciones de enrutamiento, desarrollado con una interfaz de usuario simple, limpia e intuitiva (a diferencia con otros sistemas).

Bueno, la vulnerabilidad que ya fue parchada en la última versión, pero que sigue siendo muy explotable, simplemente en determinado servidor que tenga AirOS hay que cambiar los valores de la url y ya está, se tiene acceso al panel de admin sin necesidad de contraseña:

Url de logeo sin modificar:
http://X.X.X.X/login.cgi?uri=/

Acceso al panel de admin sin autentificación:
http://X.X.X.X/admin.cgi/sd.css


Una vez bypasseado pueden subir archivos (como una shell), pueden ejecutar comandos, lo que se les ocurra...

Para encontrar servidores con AirOS simplemente usar el todopoderoso SHODAN:
http://www.shodanhq.com/search?q=airos

[+] Salu2
[+] Zion3R



Nos ha llegado un aporte muy bueno de Nineain que se los dejo a continuación a modo de profundización en este tema:

En Diciembre del 2011, sd de fucksheep.org liberó un 0day que afectaba a los sistemas AirOS 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.

Imagen 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:

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

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:

./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

Leo Romero

Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como ingeniero de software en varios proyectos y como asesor tecnológico para empresas.

0 Notaciones:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (11) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Black Hat (5) BlackHat (1) Blackploit (24) Brute Force (3) Bug (105) Bypass Password (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (9) Cryptsetup (1) DDoS (11) DEF CON (3) DEFCON (6) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (63) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) GhostShell (1) GNU/Linux (4) Google (1) Guía (1) Hack T00LZ (129) Hack Tips (63) Hacked (5) Hacking (17) Hacking Hardware (5) HashCat (1) Herramientas (120) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (4) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (191) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (9) PDF (6) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (9) PRISM (1) Privacidad (1) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (4) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (142) Seguridad Web (139) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (73) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (47) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (65) Wireless Tools (13) XSS (15)

 
biz.