lunes, 17 de junio de 2013

Pentesting con Raspberry Pi: Primeros Pasos y Configuración del Sistema



La primera vez que arranque nuestra Raspberry Pi, nos mostrará la ventana de configuración básica del sistema. Los puntos que necesitaremos configurar van a ser los siguientes:
    • expand_rootfs: nos permite expandir la partición raíz para que ocupe la tarjeta SD por completo
    • memory_split: reducimos la memoria de la GPU a lo mínimo, 16mb, porque no tendremos carga gráfica intensa
    • change_pass: cambiamos la contraseña para el usuario 'pi' que viene por defecto creado
    • ssh: habilita el servicio de SSH para poder acceder de forma remota

Además, configuraremos otros temas como el teclado, la tarjeta de red, entorno gráfico o acceso al escritorio remoto.

También cambiaremos los valores de locale y timezone a los que nos correspondan. Después de configurar todos estos valores, podemos salir pulsando sobre Finish. Si en algún momento deseamos acceder de nuevo al panel de configuración, solo deberemos introducir:
               $ sudo raspi-config

Para que los cambios en la partición raíz y la memoria de la GPU sean efectivos, necesitaremos reiniciar nuestro dispositivo:
               $ sudo reboot

Una vez hayamos reiniciado, accederemos al sistema con el usuario 'pi' y la contraseña que hayamos introducido anteriormente. Ahora es momento de actualizar los paquetes instalados en nuestro sistema:
               $ sudo apt-get update
               $ sudo apt-get upgrade

Por defecto, el sistema viene con DHCP activado sobre el interfaz ethernet. Para cambiar la configuración y asignarle un direccionamiento IP estático, utilizaremos cualquier editor de texto (como vi) para cambiar los valores por defecto:
               $ vi /etc/networks/interfaces

Copia el texto de configuración a continuación con tus valores de red:
               iface eth0 inet static
               address 192.168.0.202
               netmask 255.255.255.0
               gateway 192.168.0.1
               nameserver 192.168.0.1

Ahora para que aplicar estos cambios, es necesario tirar y levantar el dispositivo de nuevo:
               $ sudo ifdown eth0
               $ sudo ifup eth0

Tu Raspberry debería estar ya conectada tu red local y deberías llegar a ella desde un dispositivo remoto vía SSH:
               $ ssh [email protected]


CONFIGURACIÓN DE HARDWARE (BIOS)

Dado que la Raspberry Pi no tiene una BIOS convencional, los diferentes parámetros de configuración del sistema que normalmente se mantienen y establecen en las BIOS están almacenados en un archivo de texto llamado "config.txt", que es leído por el GPU antes de que se inicializa el núcleo ARM.

Este archivo es un archivo opcional en la partición de arranque. Sería normalmente accesible como / boot / config.txt de Linux, pero a partir de Windows (o OS X) sería visto como un archivo en la parte de acceso de la tarjeta. Tenemos la información completa de como configurar este fichero en la web oficial.

Editaremos el fichero de configuración:
               $ vi /boot/config.txt

De lo más importante a escribir en el fichero será:
               sdtv_mode=2  # Salida analógica en formato PAL (el europeo)
               hdmi_group=2 # Tipo de salida HDMI (1 por defecto): 1=CEA y 2=DMT
               hdmi_mode=16 # Resolución de salida (depende del anterior)

Para saber qué formatos admite nuestra pantalla (es decir, los valores que podemos poner en hdmi_mode) ejecutaremos los siguientes comandos en la consola:
               $ /opt/vc/bin/tvservice -m CEA
               $ /opt/vc/bin/tvservice -m DMT

Y para saber cuál es el modo que tenemos actualmente activado:
               $ /opt/vc/bin/tvservice -s


ENTORNO GRÁFICO

Para usar un entorno gráfico (es decir, usar el ratón) ejecutaremos este sencillo comando:
               $ startx

Si queremos que se inicie automáticamente podremos hacer lo siguiente, editaremos el siguiente fichero y añadimos al final del archivo añadir una línea nueva que ponga startx:
               $ sudo vi /etc/profile

Si además queremos que no pida el usuario/contraseña al iniciarse podemos seguir los pasos de esta web y veremos a continuación:
               $ sudo vi /etc/inittab


Buscar el siguiente texto y añadir un # delante de ella:
               1:2345:respawn:/sbin/getty 115200 tty1

Para finalizar, escribiremos lo siguiente debajo de la línea que acabamos de comentar:
               1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1


CONFIGURACIÓN DE PROXY

Para configurar el Proxy, imprescindible en la red de la Universidad de Oviedo, haremos lo siguiente:
               $ sudo vi /etc/bash.bashrc

Y añadimos al final:
               export http_proxy=http://nuestro.proxy.usado:8888/
               export ftp_proxy=http://nuestro.proxy.usado:8888/


SERVIDOR RDP/VNC PARA CONEXIÓN DE ESCRITORIO REMOTO


Ahora que ya tenemos configurado el acceso SSH y la tarjeta de red, vamos a instalar el servidor XRDP para poder conectarnos de forma remota al escritorio. Para instalarlo sólo tenemos que selecionar el paquete xrdp:
               $ sudo apt-get install xrdp


Si por el contrario queremos un cliente VNC, instalaremos el paquete tightvncserver:
               $ sudo apt-get install tightvncserver
               $ vncserver

A diferencia de xrdp, el servidor de VNC no se ejecutará por defecto cada vez que iniciemos la máquina, por lo que tendremos que iniciarlo manualmente. Crearemos un script que lance el servicio al arrancar la máquina:
               $ sudo vi /etc/init.d/tightvncserver
                              #!/bin/sh
                              # /etc/init.d/tightvncserver
                              VNCUSER=’pi’
                              case “$1″ in
                              start)
                                             su $VNCUSER -c ‘/usr/bin/tightvncserver :1′
                                             echo “Starting TightVNC Server for $VNCUSER ”
                              ;;
                              stop)
                                             pkill Xtightvnc
                                             echo “TightVNC Server stopped”
                              ;;
                              *)
                              echo “Usage: /etc/init.d/tightvncserver {start|stop}”
                              exit 1
                              ;;
                              esac
                              exit 0
               $ sudo chmod 755 /etc/init.d/tightvncserver
               $ sudo update-rc.d tightvncserver defaults

Para iniciar o parar el servicio utilizaremos:
               $ sudo /etc/init.d/tightvncserver start
               $ sudo /etc/init.d/tightvncserver stop


En la próxima entrega nos centraremos en instalar las herramientas de seguridad más comunes como nmap, Metasploit, BeEF etc.

Mientras tanto, si te perdiste alguna parte de la entrega:
               Pentesting con Raspberry Pi: Hardware e Instalación