Es un dispositivo que permite enviar payload al computador con solo conectarlo a un puerto usb del mismo en caliente, saltando el mecanismo normal que siempre se tiene que es quemar el programa al microcontrolador antes para su respectiva utilización.
HARDWARE
Bluetooth es una especificación industrial para Redes
Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y
datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en
la banda ISM de los 2.4 GHz. Los principales objetivos que se pretenden
conseguir con esta norma son:
Facilitar las comunicaciones entre equipos móviles.
Eliminar los cables y conectores entre estos.
Ofrecer la posibilidad de crear pequeñas redes inalámbricas
y facilitar la sincronización de datos entre equipos personales.
FIGURA 1. Modulo hc-05 y 06.
¿Como funciona?
Esta herramienta de vulneracion consiste el una Rubber Ducky
controlada a distancia por un modulo HC-05 conectada a un micro controlador
(Arduino) que funciona como interfaz humana (HID) o mas fácil como un teclado,
esta ejecuta comando en la maquina victima, utilizando powershell para Windows
o la shell de Linux ordenando al sistema operativo (victima) realizar un
proceso o en su defecto descargar una carga maliciosa (payload) para poder
ejecutar ordenes de manera remota (maquina comprometida).
ESQUEMA
FIGURA 2. ESQUEMA
Requerimientos
Para poder utilizar esta herramienta solo basta con conectar
algún puerto usb de la maquina la cual se va comprometer pero antes se debe
hacer ingeniera social con la victima para conocer el tipo de sistema que
utiliza y sus conocimientos de tecnología y seguridad de la información.
PAYLOAD PARA UNA RUBER DUCKY
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads TRADUCTOR PARA EL ARDUINO void loop(){ delay(10); while (Serial1.available()) { char c = Serial1.read(); if (c == '\n') { Serial.println(readString); Line(readString); readString = ""; } else { readString += c; } } }
1) Puede ejecutar múltiples scripts con un solo dispositivo.
2) Puede ejecutar varios scripts en secuencia. En lugar de
limitarse a un solo script por complemento..
3) Puede editar el guión sobre en el acto.
DESVENTAJAS:
1) Lentitud esto se debe a que primero se debe hacer la traducion para el programa ejecute las acciones recordemos que el puente de comunicación es el modulo de Bluetooth, el intérprete tiene un pequeño retraso para
permitir la lectura de Bluetooth. Solo tienes
que reprogramarlo para diferentes misiones.
2) No todos los comandos funcionan. No puede hacer nada que
guarde los datos y algunos comandos no se interpretan debido a
las limitaciones de la biblioteca keyboard.h que viene con arduino.
3) Algunas secuencias de comandos son demasiado largas. esto hace que se pierdan los datos a la hora de su ejecución Sin embargo, esto se resolverá con la programación en
la aplicación para dividir los scripts más largos en paquetes discretos más
pequeños, así como aumentar el búfer en el ARDUINO.
El presente proyecto permite activar una rubber ducky de manera remota Evil-ArduiCO 1.0 lo realiza utilizando un sitio web como panel principal y la versión 2.0 lo realiza mediante una apk.
La dos versiones son acompañadas de un modulo wifi y bluetooth para su respectiva comunicación y control de la misma.
DEFINICIÓN
Evil-ArduiCO 1.0 Es un dispositivo que permite vulnerar Sistemas Operativos Windows y Linux con solo conectarlo a la maquina. Este genera una URL la cual va ser el panel para atacar el PC.
WIFI ESP8266 es utilizado junto al arduino como servidor para realizar una petición por HTTP de la maquina atacante o un móvil que se encuentre cera.
Lo primero que se debe de hacer antes de realizar dicho ataque es verificar la URL para el panel principal.
Nota: La SSID (NOMBRE DE LA RED WIFI) y el password el importante en ese tipo de ataque por ello puedes hacer tu propioAPcon tu maquina atacante u otro dispositivo como por ejemplo el teléfono.
¿Como funciona?
Esta herramienta de vulneracion consiste el una Rubber Ducky controlada a distancia por un modulo WiFi (ESP8266) conectada a un micro controlador (Arduino) que funciona como interfaz humana (HID) o mas fácil como un teclado, esta ejecuta comando en la maquina victima, utilizando powershell para Windows o la shell de Linux ordenando al sistema operativo (victima) realizar un proceso o en su defecto descargar una carga maliciosa (payload) para poder ejecutar ordenes de manera remota (maquina comprometida).
ESQUEMA
Figura1. Esquema de Evil-ArduiCO
Mostrar URL
Figura 2. Generando la URL en el modo monitor del arduino para el panel principal.
Panel principal de ataque
Figura 3. Panel principal de ataque a sistema operativo windows y linux.
Requerimientos
Para poder utilizar esta herramienta solo basta con conectar algún puerto usb de la maquina la cual se va comprometer pero antes se debe hacer ingeniera social con la victima para conocer el tipo de sistema que utiliza y sus conocimientos de tecnología y seguridad de la información.
Consecuencias
Al conectar Evil-ArduiCO puede sufrir:
1. Acceso total del computador, carpetas de archivos y red.
2. Ataque al hardware del pc como desbordamiento o corto de memoria RAM y disco duro.
3. Obtención de informacion personal de la computadora.
4. Daño total del PC por ataque de Bomba logica.
5. Daños general del sistema operativo como tal.
Ventajas:
·Realiza un ataque único y veloz con solo acceder a las opciones del panel principal.
·Permite al hacker detectar cuando es conectado el dispositivo por medio de un Servicio HTTP en su navegador.
· Permite generar ataque a distancia.
Desventajas:
·La cobertura depende de tu antena que provee el servicio de WIFI.
·Algunos tipos de payload son detectados por ciertos antivirus.
·OS Kali Linux (Metasploit en escucha o otra herramienta)
VÍDEO TUTORIAL
· Evil-ArduiCO 2.0
Es un dispositivo que permite vulnerar Sistemas Operativos Windows y Linux con solo conectarlo a la maquina. Este es controlado por medio de una aplicación en android (APK). Hc-05 es utilizado como un puente de comunicación entre el arduino y el smartphone quien enviara un dato de manera remota hacia el controlador.
Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:
Facilitar las comunicaciones entre equipos móviles.
Eliminar los cables y conectores entre estos.
Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.
Figura 4. Modulo HC-05.
Figura 5. Como conectarlo al controlador(Arduino).
·¿Como funciona?
Esta herramienta de vulneracion consiste el una Rubber Ducky controlada a distancia por un modulo HC-05 conectada a un micro controlador (Arduino) que funciona como interfaz humana (HID) o mas fácil como un teclado, esta ejecuta comando en la maquina victima, utilizando powershell para Windows o la shell de Linux ordenando al sistema operativo (victima) realizar un proceso o en su defecto descargar una carga maliciosa (payload) para poder ejecutar ordenes de manera remota (maquina comprometida).
ESQUEMA
Figura 6. Esquema
·
Requerimientos
Para poder utilizar esta herramienta solo basta con conectar algún puerto usb de la maquina la cual se va comprometer pero antes se debe hacer ingeniera social con la victima para conocer el tipo de sistema que utiliza y sus conocimientos de tecnología y seguridad de la información.
Se opta por
desarrollar la plataforma llamada “LIBRARY-PI” centrada en visualizar, escuchar
o descargar los diferentes recursos educativos, sea libros, textos de estudio,
videos, audio libros, simuladores interactivos, entre otros. Como punto de
partida a la hora de diseñar la plataforma, que en nuestro caso es un entorno
web con la Raspberry Pi, se empezó por la elección de los componentes tanto de
hardware como software, que satisficieran las necesidades del proyecto.
Posteriormente se llevó a cabo la configuración de la Raspberry Pi así como el
desarrollo de las instalaciones de los diferentes programas a usar.
Componentes Hardware.
Los
siguientes componentes son los elegidos para el montaje del sistema así como
para la construcción del soporte para todos los dispositivos.
Raspberry Pi 3 Modelo B.
El Raspberry
Pi 3 es la tercera generación Raspberry Pi. Se sustituye el Raspberry Pi Modelo
B 2 en febrero de 2016. En comparación con el Raspberry Pi 2 se tiene:
·A
1,2 GHz 64-bit de cuatro núcleos ARMv8 CPU
·802.11n
Wireless LAN
·Bluetooth 4.1
·Bluetooth Low Energy (BLE)
·Al
igual que el Pi 2, también tiene:
·1
GB de RAM.
·4
puertos USB.
·40
pines GPIO.
·Puerto
lleno de HDMI.
·Puerto
Ethernet.
·Conector
de audio de 3,5 mm combinado y vídeo compuesto.
·Interfaz
de la cámara (CSI).
·Interfaz
de pantalla (DSI).
·Ranura
para tarjetas micro SD (ahora push-pull en lugar de push-push).
·Video
Core IV 3D núcleo de gráficos.
Se elige la
Raspberry Pi 3 Modelo B para desarrollar el proyecto porque es el más completo
del mercado y porque trae incluido Wifi, lo que permitirá crear el punto de
acceso, con los otros Raspberry habría que comprar una tarjeta de red.
Componentes Software.
Para la
realización del proyecto se necesita los siguientes softwares.
Raspbian Jessie Lite.
Es una nueva
versión ligera de Raspbian, Sistema Operativo usado por la Raspberry.
Figura 1. Raspberry Pi 3 Modelo B
DNSMASQ
Dnsmasq es
un servidor (DNS, DHCP) muy ligero que tiene un efecto colateral; además de
funcionar como servidor DNS para tu red local (gracias a que lee el archivo
/etc/hosts) y poder resolver los nombres asignados a tus equipos, también hace
de servidor DNS caché, es decir almacena las IPs consultadas para no tener que
repetir la consulta cuando vuelven a pedirse.
El resultado
es que el acceso a las páginas de Internet es más rápido. Como sabemos, antes
de visualizar su contenido, debe resolverse el nombre del equipo al que le
enviamos la petición a través de una compleja red de servidores, que se inicia
en el (o los) que hemos definido en /etc/resolv.conf
Nuestro(s)
servidor(es) suelen ser dos IPs de nuestro suministrador de acceso a Internet.
Con dnsmasq conseguimos reducir el proceso de consulta.
HOSTAPD
Este es el
paquete que permite utilizar el construido en Wi-Fi como un punto de acceso.
LAMP
LAMP es el
acrónimo usado para describir un sistema de infraestructura de internet que usa
las siguientes herramientas:
üLinux, el sistema operativo;
üApache, el servidor web;
üMySQL, el gestor de bases de datos;
üPHP, el lenguaje de programación.
La
combinación de estas tecnologías es usada principalmente para definir la
infraestructura de un servidor web, utilizando un paradigma de programación
para el desarrollo.
GNU/Linux: Linux es un núcleo de sistema operativo libre tipo Unix (en nuestro caso
el sistema operático instalado anteriormente Raspbian Jessie Lite).
Apache
HTTP: El servidor HTTP Apache es un servidor web libre y
de código abierto, el más popular en cuanto a uso, sirviendo de facto como
plataforma de referencia para el diseño y evaluación de otros servidores web.
MySQL: Es un Sistema de Gestión de Bases de Datos (SGBD) relacional, que por lo
tanto utiliza SQL, multihilo y multiusuario del que se estiman más de un millón
de instalaciones.
PHP: (acrónimo recursivo de "PHP: Hypertext Preprocessor") es un
lenguaje de programación diseñado para producir sitios web dinámicos. PHP es
utilizado en aplicaciones del lado del servidor, aunque puede ser usado también
desde una interfaz de línea de comandos o como aplicación de escritorio.
WORDPRESS.
WordPress es
un software de código abierto que puedes utilizar para crear fantásticas webs,
blogs o aplicaciones. En él se encuentran miles de plugins y temas disponibles
para transformar una web en cualquier cosa que se pueda imaginar.
Figura 2. WordPress
Montaje
En este
apartado se va a describir paso a paso como ha sido el montaje del proyecto así
como el de cada componente con la Raspberry Pi.
Se puede ver
una vista anterior y superior del sistema final con todos sus componentes
conectados, la instalación como se observa no es difícil ya que no se usó para
este proyecto otro componente hardware.
Figura 3. Montaje
Entorno Web.
Para que las
personas que fueran a visualizar, escuchar o descargar los diferentes recursos
educativos provistos por la herramienta “LIBRARY-PI” se opta por diseñar una
web (para esto utilizaremos WordPress) que se alojará en la Raspberry Pi.
Anteriormente se ha descargado y pasado el Sistema Operativo a la memoriaSD.
En general
se siguen los siguientes pasos (para detallar más aun lo anteriormente dicho,
seguir los pasos del video entregado junto a este trabajo).
El primer
paso es instalar los paquetes necesarios: sudo apt-get install dnsmasq hostapd
Se entrara
en un pequeño detalle sobre los dos:
ühostapd - Este es el paquete que le permite utilizar el construido en
Wi-Fi como un punto de acceso
üdnsmasq - Se trata de un servidor DHCP y DNS combinada que es muy fácil
de configurar
üSi se quiere algo un poco más 'peso pesado', se puede utilizar el
isc-dhcp-servery bind9paquetes de DHCP y DNS, respectivamente, pero para
nuestros propósitos, dnsmasq funciona muy bien.
CONFIGURAR LAS INTERFACES
La primera
cosa que hay que hacer es configurar la wlan0interfaz con una dirección IP
estática.
Si está
conectado a la Pi a través de WiFi, conectarse a través de Ethernet / serie /
Teclado en primer lugar.
En versiones
Raspian más nuevos, de configuración de interfaz es manejado por dhcpcdpor
defecto. Tenemos que decirle a ignorar wlan0, ya que vamos a configurarlo con
una dirección IP estática en otro lugar. Así que abrir el dhcpcdarchivo de
configuración con sudo nano /etc/dhcpcd.confy añadir la siguiente línea al
final del archivo:
denyinterfaces
wlan0
Nota: Esto
debe estar por encima de cualquier interfacelíneas si se ha añadido!
Ahora
tenemos que configurar nuestra IP estática. Para ello abra el archivo de
configuración de interfaz con sudo nano /etc/network/interfacesy editar la
wlan0sección para que se parezca a esto:
Se reinicia dhcpcdcon sudo service dhcpcd restarty
y se vuelva a cargar la configuración para wlan0con sudo ifdown wlan0; sudo
ifup wlan0.
CONFIGURAR HOSTAPD
A
continuación, tenemos que configurar hostapd. Se crea un nuevo archivo de configuración
con sudo nano /etc/hostapd/hostapd. Con los siguientes contenidos:
# Este es el
nombre de la interfaz WiFi que hemos configurado anteriormente
interface=wlan0
# Utilice el
controlador nl80211 con el controlador brcmfmac
driver=nl80211
# Este es el
nombre de la red
ssid=Pi3-AP
# Utilice la
banda de 2,4 GHz
hw_mode=g
# Utilice el
canal 6
channel=6
# Habilitar 802.11n
ieee80211n=1
# Habilitar WMM
wmm_enabled=1
# Habilitar
canales de 40MHz con un intervalo de protección de 20ns
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Aceptar
todas las direcciones MAC
macaddr_acl=0
# Usar
autenticación WPA
auth_algs=1
# Exigir a
los clientes que conozcan el nombre de la red
ignore_broadcast_ssid=0
# Usar WPA2
wpa=2
# Utilizar
una clave pre-compartida
wpa_key_mgmt=WPA-PSK
# La
contraseña de red
wpa_passphrase=raspberry
# Utilice
AES, en lugar de TKIP
rsn_pairwise=CCMP
Podemos
comprobar si está funcionando en esta etapa mediante la ejecución sudo
/usr/sbin/hostapd /etc/hostapd/hostapd.conf. Si todo se ha ido bien hasta
ahora, usted debe ser capaz de ver a la red de PI3-AP ! Si intenta conectarse a
ella, verá alguna salida del Pi, pero no se recibirá y la dirección IP hasta
que establecimos dnsmasq en el siguiente paso. Utilice Ctrl + C para detenerlo.
No estamos
bastante terminado todavía, porque también tenemos que decir hostapd dónde
buscar el archivo de configuración cuando se inicia en el arranque. Abre el
archivo de configuración por defecto con sudo nano /etc/default/hostapdy
encontrar la línea #DAEMON_CONF=""y sustituirla por
DAEMON_CONF="/etc/hostapd/hostapd.conf".
CONFIGURAR DNSMASQ
El enviado
dnsmasqel archivo de configuración contiene una gran cantidad de información
sobre cómo usarlo, pero la mayoría de ella es en gran medida redundante para
nuestros propósitos. Le aconsejo que se mueve (en lugar de eliminarlo), y la
creación de uno nuevo con:
sudo mv
/etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano
/etc/dnsmasq.conf
Pegue el
siguiente en el nuevo archivo:
interface=wlan0 #
Usar la interface wlan0
listen-address=172.24.1.1
#Especificar explícitamente la dirección para escuchar
bind-interfaces
# Vincular a la interfaz para asegurarse de que no estamos enviando cosas a
otra parte
server=172.24.1.1 #
Reenviar las solicitudes de DNS a frambuesa DNS
domain-needed #
No envíe nombres cortos
bogus-priv #
Nunca envíe direcciones en los espacios de direcciones no enrutados.
dhcp-range=172.24.1.50,172.24.1.150,12h
#Asignar direcciones IP entre 172.24.1.50 y 172.24.1.150 con un tiempo de
arrendamiento de 12 horas
CONFIGURAR EL DESVÍO DE IPV4
Una de las
últimas cosas que tenemos que hacer antes de enviar el tráfico en cualquier
lugar es permitir el reenvío de paquetes.
Para ello,
abrir el sysctl.confarchivo con sudo nano /etc/sysctl.conf, y eliminar el
#desde el principio de la línea que contiene net.ipv4.ip_forward=1. Esto
permitirá que en el siguiente reinicio, sino porque somos impacientes,
activarlo inmediatamente con:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
También
tenemos que compartir la conexión de Internet de nuestra Pi a nuestros
dispositivos conectados a través de WiFi por la configuración de un NAT entre
nuestra wlan0interfaz y nuestra eth0interfaz. Podemos hacer esto mediante los
siguientes comandos:
sudo
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state
RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Sin embargo,
necesitamos estas normas que deben aplicarse cada vez que reinicie el Pi, por
lo que corren sudo sh -c "iptables-save >
/etc/iptables.ipv4.nat"para salvar las reglas al archivo
/etc/iptables.ipv4.nat. Ahora tenemos que ejecutar esto después de cada
reinicio, por lo que abrir el rc.localarchivo con sudo nano /etc/rc.localy por
encima de la línea exit 0, agregue la siguiente línea:
iptables-restore
< /etc/iptables.ipv4.nat
üEJECUTAR LOS SERVICIOS DE HOSTAPD Y DNSMASQ Y DESCARGAR LA INFRAESTRUCTURA
DE SERVIDOR WEB “LAMP”
Ahora sólo
tenemos que empezar a nuestros servicios:
sudo service hostapd start
sudo service dnsmasq start
apt-get install apache2
apt-get install mysql-server
mysql_secure_installation
apt-get install php5 php-pear pgp5-mysql php5-gd
service
apache2 restart
üEJECUCION E INSTALACION DE WORDPRESS
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mysql -u root -p
CREACION DE
LAS BASES DE DATOS PARA EL SERVIDOR
CREATE
DATABASE nombre de la base de datos;
CREATE USER usuario@localhost;
SET PASSWORD FOR aureliohacking@localhost=
PASSWORD("password");
GRANT ALL PRIVILEGES ON wpbasededatos.* TO usuario@localhost IDENTIFIED
BY 'password'
FULSH PRIVILEGES
exit
mkdir /var/www/html/wp
cd /var/www/html/wp
chown -R 0777 /var/www/html/wp/wordpress
ls -ls
Editar
wp_config.php
vi
wp-config.php
Ahora que
estás conectado y tener su sitio configurado, se puede ver el sitio web
visitando su dirección IP en el navegador del Pi u otro equipo de la red. Para
conectarse de nuevo (o en otro equipo), vaya a http://YOUR-IP-ADDRESS/wp-admin, y ya se podrá editar el sitio web como se requiera.
Al
finalizar las instalaciones y configuraciones, se procedió a elaborar el diseño
de la página para luego realizar la montura de los diferentes recursos,
quedando el siguiente resultado.
En base a
todo lo expuesto anteriormente y teniendo como apoyo lo planteado en los
objetivos y metas trazadas desde el inicio de este proyecto podemos concluir
que la implementación de la tecnología es una decisión viable frente a las
demandas que surgen en la sociedad y a su vez es una herramienta que nos otorga
la facultad de impulsar el desarrollo y la innovación dentro de este mundo
orientado hacia la globalización.