Captura tráfico de red con Raspberry Pi

Llevo tiempo queriendo analizar el tráfico de red de varios dispositivos móviles, en concreto dos móviles chinos y una tablet. Siempre me he cuestionado qué datos enviarán, a dónde ¿Y si el móvil está infectado y está exfiltrando información? Hay varias razones por las que desconfiar de este tipo de dispositivos, aunque entraremos más en detalle acerca de este tema en futuros posts. Como primer paso vamos a centrarnos en cómo podemos capturar el tráfico de red de nuestros dispositivos.

Como bien sabemos, los dispositivos móviles pueden conectarse a una red de datos a través de la conexión 3G/4G o bien a través de una red WiFi. Por lo que en caso de estar exfiltrando información tendríamos que analizar ambas vías, pero en nuestro caso sólo se va a hacer a través de WiFi (de momento).

Para analizar el tráfico de red he optado por una solución sencilla y al alcance de cualquiera, la opción es Raspberry Pi 3 Modelo B.

Para tal finalidad, configuraremos la Raspberry Pi 3 para que capture el tráfico a través de la interfaz de wlan y que a través de la interfaz de Ethernet se conecte al router para salir a Internet.

Explicaré el proceso ya que es algo que he hecho recientemente y lo tengo fresco y puede que a alguien le sirva de ayuda.

Instalación de Raspbian Jessie

  1. El primer paso es instalar el S.O de Raspbian Jessie en la SD. Para ello basta con descargarnos la iso de la página oficial y hacer un dd hacia la tarjeta SD.
    sudo dd bs=1m if=2016-05-27-raspbian-jessie.img of=/dev/disk2
    
  2. Una vez finaliza el proceso, insertar la tarjeta SD en la Raspberry Pi e iniciarla (debemos conectarla con el cable de red al router)
  3. En primer lugar, conectamos la Raspberry a una pantalla con HDMI para poder configurarla correctamente. Luego accederemos directamente desde terminal a través de SSH.
  4. Como primer paso recomiendo cambiar la contraseña por defecto e incluso el usuario, pero es algo que queda fuera del objetivo de este post.
  5. Para poder acceder a la Raspberry mediante terminal vamos a configurar SSH Server.
  6. Accedemos al terminal y escribimos:
    sudo raspi-config
    
  7. Se abrirá una ventana donde, tendréis que entrar en:
    • “Advanced Options”
    • SSH “Enable/Disable remote command line Access to your Pi using SSH”
    • Imagen 1: Configuración Raspberry Pi

      Imagen 1: Configuración Raspberry Pi

    • Finalmente os preguntar’a “Would you like the SSH server to be enabled?” Seleccionar Yes.
  8. A través de esta ventana también podremos configurar otras opciones como la zona horaria, idioma, teclado, etc.
  9. Tras esta configuración será necesario reiniciar la Raspberry:
    sudo reboot
    
  10. Nos conectamos a la Raspberry mediante SSH y configuraremos las interfaces de red.
  11. Instalación de DHCP y hostapd:
    sudo apt-get install isc-dhcp-server hostapd
    

Configuración de las interfaces de Wlan y Ethernet

  1. Desconectar la interfaz de WiFi
    sudo ifdown wlan0
  2. Editar el fichero interfaces
    sudo vim /etc/network/interfaces
  3. Configurar el fichero
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    allow hotplug wlan0
    iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    
  4. En el terminal:
    sudo ifconfig wlan 10.10.10.1

Configuración DHCP

  1. Editar el fichero dhcp.conf
    sudo vim /etc/dhcp/dhcp.conf
    
  2. Dentro del fichero dhcp.config, comentamos las siguientes líneas:
    #option domain-name "example.org";
    #option domain-name-servers ns1.example.org, ns2.example.org;
    
  3. Descomentar la siguiente línea:
    authoritative;
    
  4. Al final del fichero dhcp.conf añadiremos la siguiente configuración:
    subnet 10.10.10.0 netmask 255.255.255.0 {
    range 10.10.10.2 10.10.10.50;
    option broadcast-address 10.10.10.255;
    option routers 10.10.10.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    }
    
  5. Editar el archivo isc-dhcp-server
    sudo vim /etc/default/isc-dhcp-server
    
  6. La línea de INTERFACES, escribiremos:
    INTERFACES=”wlan0”
    

Configuración punto de acceso

  1. Editar el fichero hostapd.conf
    sudo vim /etc/hostapd/hostapd.conf
    
  2. Escribir en el fichero la siguiente configuración:
    interface=wlan0
    ssid=NOMBRE SSID
    hw_mode=g
    channel=6
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=PASSWORD
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
  3. Podéis cambiar NOMBRE SSID, PASSWORD y channel por lo que queráis
  4. Descomentar la siguiente línea:
    DAEMON_CONF=”/etc/hostapd/hostapd.conf”
    

Configuración de NAT

  1. Configurar sysctl
    sudo vim /etc/sysctl.conf
    
  2. Descomentar la línea
    net.ipv4.ip_forward=1
    
  3. Aplicar cambios
    sudo sysctl -p /etc/sysctl.conf
    
  4. Habilitamos NAT
    sudo iptables -t nat -A POSTROUTING -j MASQUERADE
    
  5. Configuración para que inice al arrancar
    sudo update-rc.d hostapd enable
    sudo update-rc.d isc-dhcp-server enable
    
  6. Configuración para que inicie automáticamente
    sudo sh –c “iptables-save > /etc/iptables.ipv4.nat
    
  7. Editamos finalmente el fichero interfaces para que coja la configuración de iptables:
    sudo vim /etc/network/interfaces
    up iptables-restore < /etc/iptables.ipv4.nat
    

Capturar tráfico de red

Una vez se ha configurado la Raspberry Pi para actuar como punto de acceso y poder salir a Internet, vamos a aprovecharnos de esta funcionalidad para capturar el tráfico de la red. Para ello vamos a utilizar tcpdump.

Instalamos tcpdump ya que es muy probable que no venga instalado.

sudo apt-get install tcpdump
sudo apt-get update

Y finalmente, ejecutamos tcpdump capturando el tráfico por la interfaz wlan0 y volcamos dicha captura en un pcap que analizaremos posteriormente.

sudo tcpdump –i wlan0 –s 65535 –w captura.pcap

Hasta aquí la configuración de Raspberry Pi para capturar el tráfico de red. En el próximo post veremos el análisis de dicho pcap.

Comments

  1. http://Krypthon says

    Espero tu proxima entrega