GNU/Linux >> Tutoriels Linux >  >> Linux

Vitrine communautaire :Raspberry Pi Zero W P4wnP1 A.L.O.A.

La communauté Kali a travaillé dur (comme toujours !), et nous voulons présenter ce que nous pensons être un projet très cool de Kali Linux sur un Raspberry Pi Zero W, le "P4wnP1 A.L.O.A. (A L petit O offensif A application)".

Il prend l'image Kali Linux standard et ajoute un logiciel personnalisé et un micrologiciel supplémentaire conçu pour le Raspberry Pi Zero W pour le transformer en un couteau suisse d'attaques et d'exfiltration .

Ce billet de blog sera un bref aperçu de la façon de commencer à utiliser l'interface Web, de configurer un déclencheur ainsi que d'installer des packages supplémentaires trouvés dans Kali Linux. nous avons inclus du matériel de lecture supplémentaire de la communauté qui couvre des scénarios d'attaque supplémentaires ainsi que d'autres charges utiles que les gens ont écrites si vous voulez aller plus loin !

Si vous avez un Raspberry Pi Zero W, nous vous recommandons fortement d'essayer cette image. Nous considérons cela comme un excellent outil dans la boîte à outils de tout testeur !

Liste de courses

  • Raspberry Pi Zero W (pas Zéro 2 W)
  • Carte d'extension Raspberry Pi Zero W USB-A (facultatif mais recommandé)
  • Câble microUSB vers USB-A (requis si vous n'utilisez pas la carte d'extension ci-dessus)
  • Carte MicroSD (32 Go ou plus)
  • Kali Linux Raspberry Pi Zero W P4wnP1 A.L.O.A. photo

Configuration pour se mettre au travail

Tout d'abord, téléchargez le Kali P4wnP1 A.L.O.A. image.Au moment de la rédaction, la version actuelle est 2022.3 :

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

Nous vérifierons également le téléchargement en retournant sur la page de téléchargement et en cliquant sur le sum lien sur le Raspberry Pi Zero W (P4wnP1 A.L.O.A) pour obtenir la somme de contrôle 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

Maintenant que nous avons vérifié que nous avons téléchargé le fichier et qu'il correspond, nous l'écrivons sur la carte microSD, qui sur notre système est /dev/sdb - sur votre système, cela peut être différent , ne vous contentez PAS de copier-coller ce que nous avons mis ici, parce que vous VOULEZ écrasez tout ce que vous avez sur le /dev/sdb de votre système si vous le faites.

Le xzcat La commande ouvrira le fichier image compressé et le dirigera vers le dd commande, qui effectuera l'écriture proprement dite sur la carte microSD. L'utilisation de xzcat est une astuce rapide, car elle évite d'avoir à décompresser l'image en premier :

[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

Les vitesses ci-dessus sont sur notre système, elles différeront en fonction de votre système et de la vitesse de la carte microSD que vous utilisez.

Maintenant que cela est fait, nous pouvons débrancher la carte microSD de la machine et la brancher sur notre Raspberry Pi Zero W. Si vous utilisez un adaptateur USB-A similaire à celui auquel nous avons lié dans la section "liste de courses", vous pouvez le brancher sur votre ordinateur pour l'allumer, sinon alimentez le Raspberry Pi Zero W via le port micro comme d'habitude.

Étant donné que le premier démarrage de Kali Linux fera des choses comme redimensionner le système de fichiers et configurer les informations d'identification par défaut (utilisateur :kali , mot de passe :kali ) le délai varie en fonction de la vitesse de la carte microSD.

Utilisation de l'ALOA P4wnP1

Une fois qu'il est démarré, vous saurez que tout est prêt à fonctionner, lorsque vous voyez le réseau sans fil par défaut :💥🖥💥 Ⓟ➃ⓌⓃ🅟❶ .Pratique si vous n'avez pas de moniteur HDMI branché !

Sélectionnez le SSID ci-dessus, puis nous nous connectons avec le mot de passe :MaMe82-P4wnP1 .

Maintenant que nous sommes connectés, nous devrions voir que notre appareil sans fil est connecté et a une adresse IP dans le 172.24.0.xxx/24 plage :

[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

Nous pouvons voir que l'adresse IP de notre wlan0 l'adaptateur est 172.24.0.12 , donc nous sommes connectés !Puisque nous sommes connectés avec succès, affichons l'interface Web dans notre navigateur.

L'IP par défaut l'adresse de l'image A.L.O.A P4wnP1 est 172.24.0.1 et le service écoute sur le port 8000 nous allons donc à http://172.24.0.1:8000/ dans notre navigateur.

Lors de la connexion, nous pouvons voir la liste en haut :Paramètres USB , Paramètres Wi-Fi , Bluetooth , Paramètres réseau , Déclencher des actions , HIDScript , Journal des événements et Paramètres génériques .

Une chose rapide à noter alors que nous parcourons l'interface ci-dessous. Dans le menu de navigation, chaque section comporte différents boutons, en fonction de l'écran actuellement affiché. Légende de la signification de ces boutons :

Nom Ce qu'il fait
Déployer Activer
Déployer stocké Charger quelque chose qui est enregistré et l'activer
Réinitialiser Revenir aux paramètres par défaut
Magasin Enregistrer
Chargement stocké Charger quelque chose qui a été enregistré
Exécuter Exécuter le script HID actuel
Charger et remplacer Charger un script HID enregistré et remplacer le contenu actuel par celui-ci
Charger et préfixer Charger un script HID enregistré et l'ajouter au début du script actuel

Paramètres USB

Ici, nous pouvons modifier l'ID du fournisseur (VID) &ID de produit (PID) de l'appareil , donc si vous voulez faire semblant d'être un périphérique de stockage spécifique, vous pouvez ! Vous pouvez également modifier le nom du fabricant &Nom du produit , ainsi que le numéro de série si vous voulez vraiment cloner un certain appareil.Parfait si vous essayez d'être furtif et que vous avez fait vos devoirs en examinant l'environnement.

Vous pouvez également modifier divers autres paramètres pour modifier le comportement du périphérique USB (en permettant le clavier, la souris, la prise en charge du réseau, le stockage de masse et même le port série) !

Une bonne ressource à signaler ici est The USB ID Repository, qui est une grande base de données de valeurs connues utilisées pour les périphériques USB.

Paramètres Wi-Fi

Les paramètres Wi-Fi vous permettent de changer le nom du réseau Wi-Fi SSID , mot de passe (aka Pre Shared Key, PSK) ainsi que le canal qui est utilisé.En modifiant ces valeurs, vous pouvez commencer à vous fondre dans l'arrière-plan en étant moins distinctif (et plus sûr en n'utilisant pas les informations d'identification par défaut) !

Pour appliquer les paramètres, vous cliquerez sur le bouton "Déployer". N'oubliez pas que lorsque vous modifiez les paramètres et cliquez sur "Déployer", vous serez déconnecté et devrez vous reconnecter avec vos nouveaux paramètres.

Le mode Wi-Fi par défaut est Point d'accès (AP) , ce qui permet à d'autres appareils de se connecter au réseau sans fil de P4wnP1.

Alternativement, vous pouvez également définir le P4wnP1 comme un client (mode client) sur le réseau, au lieu d'un point d'accès. En utilisant les configurations prédéfinies, P4wnP1 se connectera alors au réseau et se comportera comme un autre appareil sur le réseau.

La dernière option, Client avec Basculement vers AP , vous offre le "meilleur des deux mondes" car P4wnP1 tentera de se connecter en tant que client, et si cela échoue, il passera alors en point d'accès. Parfait !

Par exemple, nous allons le configurer dans ce mode de basculement. Donc, si le kali Wi-Fi network est à portée et a la bonne clé, il doit s'y connecter en tant que client, sinon, si nous ne sommes pas à portée, ou s'il ne peut pas le voir, il démarrera le point d'accès network .

Si les ondes sont surveillées, vous pouvez simplement désactiver également le réseau Wi-Fi.

Bluetooth

Passons à autre chose, nous avons les paramètres Bluetooth.

Dans cette section, nous pouvons activer ou désactiver le Bluetooth.Si détectable , nous pouvons définir le nom Bluetooth , (la valeur par défaut étant P4wnP1 ).Nous pouvons également définir le PIN Bluetooth utilisé pour se connecter (le code PIN par défaut est 1337 ) - Le code PIN n'est utilisé que si "Secure Simple Pairing (SSP)" est désactivé.

Pour les paramètres du réseau Bluetooth, le P A personnel zone N profil réseau (PAN) est utilisé. Gardez à l'esprit que vous disposez généralement d'une portée de 10 mètres (33 pieds) avec les connexions Bluetooth.

Quelques définitions rapides pour les personnes qui ne connaissent peut-être pas les profils de réseau personnel Bluetooth :

Profil Définition
PANU Connexion pair à pair (un à un)
PAN-GN Réseau Ad-hoc de groupe (GN) jusqu'à 8 appareils
PAN-NAP Le point d'agrégation réseau (NAP) peut relier la connexion Bluetooth à la connexion sans fil

Donc, si vous configurez le P4wnP1 pour qu'il soit en mode PAN-NAP (par défaut), vous pouvez connecter jusqu'à 10 appareils au P4wnP1 via Bluetooth et partager sa connexion réseau de cette façon.

Si vous deviez le configurer avec PAN-GN, jusqu'à 7 appareils supplémentaires pourraient se connecter au P4wnP1 et communiquer entre eux mais il n'y a pas d'accès à Internet.

Et si vous deviez utiliser PANU, vous ne pouvez transférer des données qu'entre l'appareil connecté au P4wnP1 et le P4wnP1 lui-même.

Paramètres réseau

L'onglet suivant est Paramètres réseau, où nous pouvons modifier les options pour les différentes façons de se connecter au P4wnP1 .

Vous pouvez vous connecter via Bluetooth (bteth) , USB (usbeth) , ou comme nous le sommes actuellement, via Wi-Fi (wlan0) .

Pour apporter des modifications, vous sélectionnez l'interface et effectuez la modification pour cette interface, y compris en utilisant DHCP ou définir une IP statique valeurs. Vous pouvez également modifier certaines options DHCP ici. Sous le capot, dnsmasq est utilisé.

Par exemple, vous souhaiterez peut-être que le Wi-Fi soit défini sur le mode client, en utilisant le serveur DHCP du réseau et que Bluetooth soit activé comme interface de secours, qui exécute un serveur DHCP.

Déclencher des actions

Nous avons maintenant des déclencheurs.

Les déclencheurs sont le principal moyen de faire les choses avec le P4wnP1, lorsque certaines conditions sont remplies. Vous pouvez considérer une action de déclenchement comme une charge utile . Quoi que vous définissiez ici, si les conditions sont remplies, les actions que vous définissez se produisent .

Les déclencheurs sont très puissants et le ciel est la limite lors de leur création. Pour vous mouiller les pieds, voici quelques actions de déclenchement :

  • Service démarré - Faire quelque chose lorsqu'un service a démarré sur le P4wnP1
  • Gadget USB connecté à l'hôte :Faites quelque chose lorsque le P4wnP1 est connecté à un hôte
  • Gadget USB déconnecté de l'hôte :Faites quelque chose lorsque le P4wnP1 est déconnecté d'un hôte
  • Le point d'accès Wi-Fi est actif :Faites quelque chose lorsque le point d'accès du P4wnP1 est actif
  • A rejoint le Wi-Fi existant :Faites quelque chose lorsque le P4wnP1 rejoint un réseau Wi-Fi en tant que client
  • Bail DHCP émis :Faites quelque chose lorsqu'un bail DHCP est émis sur un appareil connecté au P4wnP1
  • Entrée sur GPIO - Faites quelque chose en fonction de l'entrée des broches GPIO du Raspberry Pi
  • Connexion utilisateur SSH :Faire quelque chose lorsqu'un utilisateur se connecte au P4wnP1 via SSH

Si vous voulez creuser un peu plus (et garder votre flux de travail plus simple avec des valeurs de nommage significatives) , vous pouvez utiliser les chaînes de groupe . Comme son nom l'indique, vous pouvez regrouper des actions. Cela permet alors des règles plus faciles à lire, ainsi qu'une logique plus complexe. Ces options sont :

  • Une valeur sur un canal de groupe :Faire quelque chose lorsqu'une valeur spécifique sur un canal de groupe correspond
  • Plusieurs valeurs sur un canal de groupe :Faire quelque chose une fois que plusieurs valeurs sur un canal de groupe correspondent

Un exemple de scénario de ceci pourrait avoir pour résultat final "d'exécuter un script bash sur le P4wnP1", mais les conditions pour que cela se produise sont lorsque "le point d'accès Wi-Fi est actif" ainsi que "le gadget USB connecté à l'hôte" sont tous les deux rencontré. Vous créez donc quelques déclencheurs :

  • Sur "Le point d'accès Wi-Fi est actif" -> envoyer la valeur "1" au groupe "connecté"
  • Sur "Gadget USB connecté à l'hôte" -> envoyer la valeur "2" au groupe "connecté"

Nous pouvons aller dans une logique encore plus complexe avec les règles en faisant le troisième déclencheur. Nous pouvons contrôler la commande en utilisant la "séquence ordonnée exacte". Est-il donc important que l'appareil soit branché avant que le point d'accès Wi-Fi ne soit activé ? En utilisant :

  • type "All (logical AND)" la commande n'a pas d'importance pour faire l'action
  • exact ordered sequence la ordre compte afin de déclencher l'action

Avec ce que nous avons à l'esprit, nous n'avons pas besoin d'une certaine séquence d'événements, nous utilisons donc multiple values on group channel"; values (1,2); type "All (logical AND)" -> Start bash script .

Autre chose à garder à l'esprit lorsque vous proposez des idées, vous pouvez activer le mode "one shot", qui ne se déclenchera qu'une seule fois, plutôt qu'à chaque fois que l'événement se produit. Pratique si le P4wnP1 est déguisé en un autre appareil, il peut alors se comporter "normalement" après avoir exécuté la charge utile la première fois.

HIDScript

Passant à l'onglet HIDScript, si vous avez déjà utilisé DuckyScript, les HIDscripts sont similaires, mais basés sur JavaScript plutôt que sur bash.

Les "HIDScripts" s'exécutent sur le périphérique Raspberry Pi et interagissent avec le "faux" matériel énuméré qui est connecté en externe, mais les "scripts bash" s'exécutent sur le système d'exploitation Raspberry Pi "interne".

Pour vous aider à démarrer, P4wnP1 pré-remplit avec un simple HIDScript (appelé hidtest1.js ) qui lancera le bloc-notes sur un ordinateur Windows, tapera une phrase, puis déplacera la souris, puis la répétera sans délai. Vous trouverez plus d'informations à ce sujet dans notre exemple de déclencheur.

Dans les autres ressources à la fin de cet article, vous pouvez trouver des charges utiles supplémentaires que les gens ont écrites, si vous voulez ou avez besoin d'inspiration, telles que :

  • Extraire les informations d'identification Chrome et Internet Explorer ainsi que toutes les informations de réseaux Wi-Fi stockées, et les copier sur le P4wnP1
  • Ouvrir une page Web
  • Exécutez une commande en tant qu'administrateur sur le système cible auquel le P4wnP1 est connecté
  • En utilisant uniquement les commandes PowerShell, créez un reverse shell avec des droits d'administrateur

Pour aider à créer et déboguer des scripts HID, vous pouvez cliquer sur le RUN bouton à tout moment pour exécuter, plutôt que d'avoir à faire les événements d'une action de déclenchement.

Journal des événements

L'onglet Journal des événements est l'endroit où les événements sont enregistrés, si vous avez configuré des déclencheurs à enregistrer.

Le journal des événements est seulement pour P4wnP1 A.L.O.A. événements, et n'inclut pas les journaux sur le système lui-même.

Ceci est utile pour déboguer les charges utiles et les déclencheurs que vous écrivez, suivre le processus des actions et récupérer le contenu des charges utiles,

Paramètres génériques

Et enfin, nous avons nos paramètres génériques, où nous pouvons faire des choses comme utiliser l'Éditeur de modèle principal pour contrôler les valeurs par défaut à chaque démarrage ainsi que le redémarrage ou Arrêter l'appareil P4wnP1, et également effectuer une sauvegarde ou restaurer la base de données P4wnP1 (afin que vos paramètres et votre travail acharné soient préservés).

Créer notre propre déclencheur

Maintenant que nous avons couvert l'utilisation de l'interface Web du P4wnP1 A.L.O.A., mettons les informations que nous avons acquises en pratique. Par exemple, configurons le P4wnP1 de sorte que lorsque nous :

Branchez le P4wnP1 sur une machine Windows en mode gadget USB , il exécutera le HIDScript hidtest1.js par défaut pour exécuter une commande et déplacer la souris.

Tout d'abord, allons dans l'interface Web et cliquez sur les actions de déclenchement :

Ensuite, nous cliquerons sur Ajouter un , qui ouvre la fenêtre modale suivante et pour modifier les paramètres, elle doit être activée , nous allons donc le faire rapidement :

Dans ce cas, nous choisirons :USB gadget connected to host :

Maintenant, nous sélectionnons l'action à entreprendre, qui est "Démarrer un HIDScript":

Maintenant, nous choisissons quel HIDScript charger. Pour cet exemple, nous allons charger le HIDscript par défaut qui est écrit, appelé hidtest1.js , qui lancera le bloc-notes, tapez "Hello from P4wnP1 run" puis déplacez la souris vers la droite, puis vers la gauche, puis il recommencera, mais beaucoup plus rapidement, pour montrer la vitesse à laquelle le P4wnP1 peut les exécuter.

Tous les HIDScripts que vous écrivez, ou obtenez de la communauté, apparaîtront dans cette liste une fois qu'ils seront ajoutés à votre P4wnP1. La liste ci-dessous ne contient que celles fournies par défaut avec le P4wnP1.

Enfin, pour enregistrer notre déclencheur, nous cliquons sur le Update bouton :

Bonne piratage !

Installer un package lorsqu'il est connecté via SSH

Lorsque vous avez accès à Internet sur le P4wnP1, vous disposez de tout l'arsenal des référentiels de Kali. Ainsi, tout package que vous pouvez installer dans Kali sur un Raspberry Pi Zero W sera disponible pour une utilisation dans les scripts bash que vous pouvez écrire. Vous pouvez accéder à ces scripts via des déclencheurs.

Quelle que soit la manière dont vous êtes connecté à P4wnP1, vous pouvez vous connecter en SSH en utilisant soit le kali et root utilisateurs. Les informations d'identification par défaut sont :

  • kali / kali
  • root / toor

Nous allons maintenant installer le package dnscat2-client sur P4wnP1, puis nous connecter à un serveur dnscat2 que nous avons déjà configuré ailleurs.

Pour rappel, nous voulons toujours exécuter sudo apt update avant d'installer les packages, pour nous assurer que nous obtenons la dernière version :

[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.
[...]

Maintenant, nous pouvons simplement exécuter la commande suggérée lors de la configuration de dnscat2-server sur notre autre machine :

[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!

Bonne piratage (encore) !

Crédits

L'auteur original de P4wnP1 A.L.O.A. est Marcus Mengs alias MaMe82.

Rogan Dawes a repris la maintenance lorsque Marcus a dû se retirer.

Rappel

Nous aimons voir ce que la communauté construit sur Kali Linux, si vous travaillez sur un projet, faites-le nous savoir !

Vous pouvez nous contacter sur Twitter ou sur notre Discord.

Autres ressources

Ressources du projet :

  • P4wnP1 A.L.O.A. Page d'accueil
  • Twitter P4wnP1

Ressources Kali :

  • Kali Linux P4wnP1 A.L.O.A. Documents

Ressources communautaires :

  • Un étui pour P4wnP1 avec un emplacement pour un écran OLED
  • Un menu à utiliser avec un écran OLED sur le P4wnP1 A.L.O.A
  • Charges utiles supplémentaires pour P4wnP1 A.L.O.A.
  • Piratage avec le Raspberry Pi Zero W
  • Kali Linux P4wnP1 A.L.O.A. Guide - Configuration / Utilisation / Exemples
  • P4wnP1 A.L.O.A.— Un dispositif d'attaque HID avancé
  • Pi Zero en tant que périphérique HID \ USB (P4wnP1 A.L.A.O)
  • Vidéo sur l'utilisation d'un écran OLED avec le P4wnP1 A.L.O.A
  • Générateur de charge utile Windows HID

Linux
  1. Qu'est-ce qui rend la communauté Linux spéciale ?

  2. Instaurer la confiance dans la communauté Linux

  3. Comment faire pivoter l'écran sur un Raspberry Pi 3

  4. Thèmes de la communauté Kali

  5. Vitrine communautaire :Raspberry Pi Zero W P4wnP1 A.L.O.A.

Raspberry Pi OS &Plasma - Troublement McTroublesome

Raspberry Pi 4 - un mini bureau viable ?

Comment installer le système d'exploitation Raspbian sur Raspberry Pi

Comment faire démarrer Raspberry Pi dans l'interface graphique par défaut

Comment se connecter en SSH à un Raspberry Pi [Astuce du débutant]

Comment émuler le Raspberry Pi 2 sur QEMU ?