Mini-lab : Forensics & Pentest
Réalisation d’un mini lab pour une analyse forensics ou un test d’intrusion en mode dégradé. Ce n’est pas un lab de production mais bien un backup qui ne nécessite ni machine d’analyse, ni courant 220V. Le lab pourra donc être déployé rapidement, acquis avec peu de moyens, et embarquera le minimum nécessaire pour une analyse légère.
Apparté
Bien sûr il existe de meilleures alternatives, commes les distribs live orientées forensics ou pentest. On peut citer les Kali, Cain, Deft et compagnie. Mais il est question ici de mode dégradé : laptop chiffré, USB bloqué, BIOS avec mot de passe, analyse sur serveur, impossibilité de redémarrer etc… De plus, ce travail est le fruit d’une réflexion sur ce qu’il est possible de réaliser avec du matériel possiblement retrouvé dans le sac à dos d’un geek.
Matériel
- smartphone Android non rooté + application Termux et / ou JuiceSSH ;
- mini routeur Wifi, recommandé : TP-Link MR-3020 ;
- carte Raspberry Pi, version RPi Zero pour plus de portabilité ;
- batterie embarquée, recommandé : Anker 10000 mAh ;
- clavier pliable Bluetooth sur batterie.
Workflow d’analyse
- Préparation
- brancher le Raspberry et le routeur sur la batterie Anker ;
- allumer le smartphone et le connecter au Wi-Fi et au clavier Bluetooth.
- Confinement
- confiner la machine à analyser et la connecter au réseau Wi-Fi du lab.
- Acquisition
- récupérer l’outil d’acquisition adéquate sur le serveur depuis la machine à analyser ;
- lancer l’acquisition et le transfert des données.
- Analyse, éradication
- se connecter en SSH au serveur depuis le smartphone et parser les artefacts reçus ;
- analyse les données, étudier les connexions réseau depuis le routeur etc…
- Remédiation, Lesson Learnt etc…
Le réseau : configurer le routeur
Le point central du lab est géré par le routeur, c’est celui qui permettra aux différents acteurs de communiquer. Le Raspberry Pi Zero recevra les données par SFTP acquises sur un laptop victime d’un incident. Le smartphone permettra à l’analyste de se connecter en SSH au Raspberry Pi Zero pour parser et analyser les données via des outils OpenSource. Le routeur permettra aussi une analyse rapide du réseau et des différentes connexions pour détecter des anomalies, des contacts C2 ou une possible exfiltration peu discrète.
Choix du firmware
Il existe quelques firmwares pour routeur, le plus connu étant OpenWRT. C’est aussi un des plus suivis et un des plus stables pour des petites machines telles que les MR-3020. La documentation est complète et la communauté active. Aucun autre firmware ne répond à toutes ces exigences, ce qui valide ce choix.
- version OpenWRT : 17.01.7 ;
- build : openwrt-17.01.7-ar71xx-generic-tl-mr3020-v1-squashfs-factory ;
- si hard brick : flasher OpenWRT via le port série.
Configuration réseau
Deux réseaux seront disponibles, via l’interface Ethernet et via le Wi-Fi. Les deux interfaces ne sont pas bridgés (comme c’est le cas par défaut).
- interface Ethernet : 192.168.1.1/24 :
- mode DHCP client, pour récupérer Internet via une box
- autoriser le forwarding réseau dans le firewall
- interface Wi-Fi : 192.168.2.1/24 :
- SSID : PirateLab
- WPA2 / PSK : PirateLab
- NAT / Masquerade activé
- porte par défaut : interface Ethernet (pour Internet si besoin)
- réservation DHCP pour l’adresse MAC du Raspberry Pi : 192.168.2.250
Documentation officielle : OpenWRT – Routed Access Point
Analyse via l’interface OpenWRT
L’interface web embarque un module d’analyse du traffic, des connexions, de la charge réseau etc… Peu d’options possibles mais cela peut être suffisant pour détecter une connexion anormale et peu discrète. Autrement, il est possible d’installer des applications. Une des améliorations potentielles serait d’utiliser un tcpdump pour analyser via t-shark le pcap enregistré.
Le terminal d’analyse : smartphone Android
Peu de configuration, le smartphone nous permet simplement d’avoir une connexion SSH au “serveur” d’analyse. L’application JuiceSSH est pratique pour gérer les connexions SSH, mais Termux semble plus adapté car il permet la gestion de paquets via la commande pkg. Il faudra donc lancer la commande suivante avant de pouvoir utiliser SSH.
$ pkg install openssh
Une des améliorations possibles serait de pouvoir échanger des fichiers et de lancer des opérations type bruteforce sur le smartphone. Utiliser la puissance de calcul du SOC via un Hydra sur Termux doit être tout à fait possible, voir même utiliser Kali pour Android.
Serveur d’analyse et d’attaque : Raspberry Pi Zero
La partie la plus lourde : celle qui permettra de parser les artefacts, de les analyser, de lancer des attaques etc…
Le cahier des charges
- outils forensics standards type volatility, plaso, exiftool, sleuthkit etc… ;
- outils pentests standars type nmap, hydra, metasploit etc… ;
- un serveur web pour y récupérer ressources et outils d’acquisition ;
- un serveur Command & Control : celui de Hak5.
Configuration initiale
Une image Raspbian 10 allégée sera une base suffisante. Voici les étapes à suivre après avoir crée la uSD et avant d’allumer pour la première fois l’OS.
Editer le fichier /etc/network/interfaces
comme suit :
auto lo
iface lo inet loopback
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Editer le fichier /etc/wpa_supplicant/wpa_supplicant.conf
comme suit :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR
network={
ssid="PirateLab"
psk="PirateLab"
}
Ajouter un fichier vide nommé ssh
dans /boot
pour lancer le serveur SSH au démarrage.
Installation des outils
Pour installer les outils, les groupes de paquets forensics-all et forensics-extra embarquent déjà tout ce dont nous avons besoin, le tout uniquement en ligne de commande. Il existe les versions -gui si besoin de brancher un écran et de garder le Dekstop. Ces commandes ajoutent aussi les couteaux-suisse côté pentest. Une petite manipulation supplémentaire est nécessaire sur Raspbian 10 pour garder la cohérence de liste des paquets.
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y forensics-all forensics-extra
$ sudo apt remove ca-certificates-java
$ sudo apt autoremove
$ sudo apt upgrade -y
Configuration du serveur Web
Service Apache standard, l’installation est simpliste :
$ sudo apt install -y apache2
$ sudo rm /var/www/html/index.html
On ajoutera au répertoire /var/www/html
des fichiers comme :
- les exécutables CyLR pour tous les OS ;
- un exécutable DumpIt ;
- les exécutables FileZilla, Putty et / ou mRemoteNG ;
- les Cheat Sheet Volatility & Plaso ;
- les poster du SANS comme ceux de la FOR500 et de la FOR508.
Pour lancer une acquisition des données avec CyLR depuis la machine à analyser :
C:\Users\user\CyLR.exe -s 192.168.2.250 -u pi -p PASSWORD
Les artefacts nécessaires seront automatiquement exportés vers notre serveur :
L’analyse
Il ne reste plus qu’à utiliser les outils installés pour l’analyse. Quelques exemples :
Lecture des traces d’exécution dans les Prefetchs
via la commande strings -e l
:
Récupération des données de navigation
dans les bases SQLite
:
Récupération des extensions Firefox dans des fichiers JSON
via la commande cat extensions.json | json_pp -t json | more
:
Parsing de la ruche NTUSER.DAT
et affichage de quelques points de persistance
via reglookup
:
Conclusion
Le lab fonctionne bien, le Rapsberry reste stable sur la journée et la batterie tient étonnament bien la charge. Je n’ai pas fais de test d’autonomie mais sur une Anker 10000 mAh il est facile de travailler une journée complète sans problème. Côté analyse, je rencontre parfois des déconnexions du téléphone ce qui coupe la connexion SSH. Cela m’arrive que s’il n’y a pas de lien vers Internet (le téléphone doit rebasculer vers d’autres Wi-Fi même si je l’ai configuré pour ne pas le faire). L’analyse est évidemment sommaire, beaucoup d’outils existent mais on reste sur du bricolage, du hacking dégradé… Lire sur un écran 5,5 pouces un JSON, des clés de registres à rallonge ou de listes d’exécutables, path etc. reste très fastidieux. En revanche, si c’est ça ou rien, il me semble que cela reste une option envisageable car très peu coûteuse en coût / poids / dimmensions et donne de premiers résultats rapidement. La partie Pentest a été peu testé, mais j’imagine déjà y connecter la Pineapple ou le Shark Jack pour y échanger directement via le C2 de Hak5 et via un meterpreter plus classique.
Laisser un commentaire