Cross Distribution Exploit Testing: 2da Parte.
El mes pasado publicamos el siguiente post junto con la herramienta:
http://github.com/infobyte/distro_checker
Una de las cosas que nos limitaba la primer version es que trabajabamos utilizando Docker. No todas las vulnerabilidades podían ser probadas utilizando esta herramienta ya que problemas relaciones con kernel no pueden ser explotados porque docker no es una sistema de virtualización es en pocas palabras un chroot con esteroides.
Hicimos nuevos cambios para incorporar ademas Vagrant de esta manera podemos probar cualquier tipo de vulnerabilidades ya que seria un entorno de virtualización completo.
Ejemplo:
El siguiente comando ejecutaría el comando id dentro de las distintas VMs especificadas en el variable “distros”
./vagrant_build.py -c id
Correría ese comando en las siguientes distros
distros = [
{‘name’ :’centos/7',
‘url’:’https://atlas.hashicorp.com/centos/7',
‘provider’:’virtualbox’},
{‘name’ :’ubuntu/vivid64',
‘url’:’https://atlas.hashicorp.com/ubuntu/vivid64',
‘provider’:’virtualbox’},
{‘name’ :’ubuntu/trusty64',
‘url’:’https://atlas.hashicorp.com/ubuntu/trusty64',
‘provider’:’virtualbox’},
{‘name’ :’debian/jessie64',
‘url’:’https://atlas.hashicorp.com/debian/jessie64',
‘provider’:’virtualbox’},
{‘name’ :’debian/wheezy64',
‘url’:’https://atlas.hashicorp.com/debian/wheezy64',
‘provider’:’virtualbox’},
]
Demo:
En la siguiente demo utilizamos el exploit ofs.c para la vulnerabilidad CVE-2015–1328 en distintas distribuciones de Ubuntu:
https://atlas.hashicorp.com/sincerely/trusty64
https://atlas.hashicorp.com/puphpet/ubuntu1204-x64
https://atlas.hashicorp.com/ubuntu/trusty64
Usamos otros repositorios salvo el ultimo ya que Ubuntu actualiza los últimos parches en su VM
Esta nueva version se encuentra disponible en
http://github.com/infobyte/distro_checker
Clean:
No se olviden de tener en cuenta los siguientes comandos para realizar limpieza
$ vagrant box list #lista de vms en nuestro repositorio local
$ vagrant box remove “vmname” #elimina la vm especificada
$ vagrant destroy #elimina vm del directorio local, si por algún problema cancelamos la ejecución de vagrant_build.py recomendamos correr este comando ya que es posible que haya quedado una VM en su repositorio.
Adicionalmente esta herramienta se puede también utilizar (como estamos haciendo en nuestro caso), para hacer pruebas de cross distribution testing sobre funcionalidades, instalación, setup de Faraday en distintos ambientes.
Espero que les sea de utilidad!
Saludos