Imagen oficial de Faraday en Docker

Docker

Hace unas semanas estuvimos comentando en otro post sobre Docker

Hoy en día estamos utilizando docker como plataforma para testing de nuestro proceso de instalación en Faraday

Nos pareció muy interesante armar una imagen oficial de docker.  Para esto nos basamos en Ubuntu 14.10 por defecto viene con Faraday, CouchDB, SSH pre-configurado, Usuario root password toor

Inicializando Faraday:

root@isrlab:~/dev# docker run -t -i infobyte/faraday /root/run.sh



Con este comando inicializamos el container con Faraday conectado a couchdb con un workspace de prueba "workspace"
Faraday es inicializado con ./faraday.py -gui=no-gui --update sin entorno grafico, va intentar actualizar la ultima version desde el repositorio de git

Obtener la dirección ip del container:
root@isrlab:~/dev# docker inspect $(docker ps -lq) | grep \"IPAddress
          "IPAddress": "172.17.0.62",

Interface Web-UI:

Apuntando el navegador http://172.17.0.62/reports/_design/reports/index.html pueden acceder a la Web-UI de Faraday.


Interface ZSH:

Para empezar a ejecutar comandos podemos utilizada la interfase ZSH, para esto deben conectarse por SSH usuario root password toor
root@isrlab:~/dev# ssh root@172.17.0.62
root@172.17.0.62's password:
root@250f83a02a3a:~# cd faraday/
root@250f83a02a3a:~/faraday# ./faraday-terminal.zsh
>>> WELCOME TO FARADAY
[+] Current Workspace: workspace
[+] API: OK
[faraday](workspace) 250f83a02a3a# ping 127.0.0.1
[faraday](workspace) 250f83a02a3a# ping 127.0.0.1 >&1 > /root/.faraday/zsh/output/09cfbbb7-ab8a-44ca-9a64-9128029d8f41.output && python2 /root/.faraday/zsh/plugin_controller_client.py send_output cGluZyAxMjcuMC4wLjE= "/root/.faraday/zsh/output/09cfbbb7-ab8a-44ca-9a64-9128029d8f41.output"
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.059 ms
[faraday](workspace) 250f83a02a3a#

Interface QT GUI:

Para trabajar con la QT GUI deberíamos inicializar de otra manera el docker:

root@isrlab:~/dev# docker run infobyte/faraday /root/run_service.sh

En otra consola corremos:
Obtener la dirección ip del container:
root@isrlab:~/dev# docker inspect $(docker ps -lq) | grep \"IPAddress
        "IPAddress": "172.17.0.62",

root@isrlab:~/dev# ssh -X root@172.17.0.62
root@172.17.0.62's password:
root@250f83a02a3a:~# cd faraday/
root@250f83a02a3a:~/faraday# ./faraday.py

* Para ejecutar comandos tienen que tener en cuenta que las herramientas deben instalarlas dentro del docker

Importing reports:

Adicionalmente a la ejecución de comandos una forma de incorporar información a la plataforma de Faraday es copiando output reports de las herramientas.
Para esto tenemos que copiar por ejemplo output_nmap.xml a $HOME/.faraday/report/[workspace_name]
Una vez interpretado e incorporado a la base de conocimiento el report es copiado a $HOME/.faraday/report/[workspace_name]/process

Esto lo podemos hacer copiando los reports al containers via sftp o podemos utilizar una funcionalidad de file sharing entre equipo host y containers

Veamos un ejemplo:
root@isrlab:~/dev# mkdir -p /tmp/workspace/process #Creamos estructura de directorios valida

Inicializamos un container compartiendo el directorio del equipo host /tmp/workspace en /root/.faraday/report/workspace/
/root/.faraday/report/workspace/
root@isrlab:~/dev# docker run -t -i -v /tmp/workspace/:/root/.faraday/report/workspace/ infobyte/faraday /root/run.sh
Ahora podemos utilizar las herramientas en el equipo host y esto va ser interpretado dentro del container por Faraday en el workspace llamado "workspace"
root@isrlab:~/dev# nmap localhost -xO /tmp/workspace/output_nmap.xml

Podemos copiar cualquier report soportado por Faraday (+ 40 plugins soportados)
root@isrlab:~/dev# cp /root/reports/nessusscan.nessus /tmp/workspace/

Esperamos que sea de gran utilidad!
Saludos!




Post a Comment
Thanks for your comment