Para entender mejor el funcionamiento de este ataque, vamos a repasar cómo se actualiza el software hoy en día en la mayoría de los programas. La idea es que el programa, nada más ser ejecutado, realiza una conexión a los servidores del fabricante, buscando nuevas actualizaciones. Si hay alguna actualización disponible, se le ofrecerá al usuario – o no si está configurado para hacerlo de forma automática – la opción de instalar la nueva versión que será descargada y ejecutada por el propio programa instalado en la máquina.

 

Si un atacante intercepta esta petición por medio de un ataque Man in the Middle, puede responder indicando que hay una actualización pendiente y entregar un troyano en lugar de la actualización. Si el sistema de actualizaciones ha sido correctamente comprobado, el software no debería ser ejecutado si no viene firmado digitalmente por el fabricante, pero sin embargo hay mucho software que no hace esto.

 

Un ejemplo con MacPorts para Mac OS X

 

En este ejemplo, Francisco Amato realiza la demostración con MacPorts para Mac OS X, un software muy común para la distribución de paquetes open sorce que es vulnerable a los ataques de Evilgrade. A grandes rangos el MacPorts utiliza como sistema de actualizaciones lo siguiente:

 

a) Un servidor rsync para la actualización de su repositorio.

 

b) Los paquetes se distribuyen por http/ftp.

 

c) Antes de instalar un nuevo paquete verifica el md5/sha1 del repositorio local con el nuevo archivo y si es válido instala el paquete.

 

Evilgrade en MacPorts para Mac OS X

 

Para realizar el ataque en este entorno se deben seguir las siguientes tareas:

 

1) Preparar el servidor de rsync en el equipo del atacante, que en este ejemplo tiene la dirección IP 192.168.10.133, con todo repositorio válido de rsync.macports.org. Para ello los pasos son:

 

mkdir -p /dev/evilgrade/release/ports

mkdir -p /dev/evilgrade/release/base

#Obtenemos la información necesaria

/usr/bin/rsync -rtzv –delete-after –exclude=/PortIndex* rsync://rsync.macports.org/release/ports/ /dev/evilgrade/release/ports/

/usr/bin/rsync -rtzv –delete-after –exclude=/PortIndex* rsync://rsync.macports.org/release/base/ /dev/evilgrade/release/base/

 

2) Se configura el archivo/etc/rsyncd.conf:

 

max connections = 20

log file = /var/log/rsync.log

timeout = 300

[release]

comment = Stuff

path = /dev/evilgrade/release/

read only = yes

list = yes

uid = nobody

gid = nogroup

# auth users = craig

# secrets file = /etc/rsyncd.secrets

hosts allow = 192.168.10.0/24 #cambiar por la subnet correspondiente.

 

3) Arrancar el servicio rsync:

 

/etc/init.d/rsync start

 

4) Configurar evilgrade para atacar a un paquete concreto

 

En este ejemplo se va a atacar el paquete serf dentro de la categoría www. La idea es que cuando se instale este paquete, al mismo tiempo se deje una shell abierta en el puerto 5555. Para ello se tiene que editar en el repositorio el archivo

 

/dev/evilgrade/release/ports/www/serf/Portfile

 

y cambiar el checksums md5 por el hash de nuestro payload/agente que se encuentra en

 

/evilgrade/agent/serf-0.7.2.tar.bz2

 

 

También se podría preparar este repositorio para que todos los porfiles apunten a un mismo paquete con el mismo md5, con lo que cualquier instalación por port infectaría a la victima.
evilgrade MacPorts1
Figura 1: Hash md5 del fichero a ejecutar
Este agente tiene una línea, concretamente la 132, en el fichero Makefile.in para dejar una shell en el 5555
4) En el equipo de la víctima, con la dirección IP 192.168.10.42, es necesario hacer un ataque Man in the middle para cambiar la resolución de los dominios de rsync.macports.org y serf.googlecode.com. Para este ejemplo, en lugar de hacer un ataque Man in the middle, se ha modificado el fichero /etc/hosts con la siguiente configuración:
5) Se levanta el framework de evilgrade en el equipo del atacante 192.168.10.133
6) En el equipo de la victima se solicita una actualización del paquete serf

evilgrade MacPorts2
Figura 2: sudo port selfupdate y sudo port install serf
7) Se puede verificar que el atacante esta recibiendo el requerimiento por rsync leyendo el archivo de log /var/log/rsync.log
evilgrade MacPorts3
Figura 3: Log en servidor rsync

Y luego se puede comprobar el request en el framework de evilgrade:

evilgrade MacPorts4
Figura 4: Log en Evilgrade framework

8) Por ultimo el atacante se conecta a la shell abierta

evilgrade MacPorts5  

Figura 5: Shell obtenida en el puerto 5555

 

Con esta prueba se demuestra que si un atacante puede realizar un ataque de Man in the middle, DNS Poissoning, o un simple DHCP spoofing para añadir un nuevo servidor DNS a la red, puede instalar cualquier programa en un equipo Mac OS X que utilice MacPorts, debido a que no hay una comprobación robusta del software a instalar.

 

Para hacer este ataque es necesario descargar el agente y el módulo de MacPorts para Evilgrade, y descomprimirlo en el directorio raíz de evilgrade. También puedes descargar el framework Evilgrade desde Infobyte y además tienes un artículo sobre cómo detectar ataques Man in the middle en tu Mac OS X que te puede ser de ayuda en redes inseguras.

 

Via:Seguridad Apple

 

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock