Mini-lab : Forensics & Pentest

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.
Lab Setup

Workflow d’analyse

  1. 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.
  2. Confinement
    • confiner la machine à analyser et la connecter au réseau Wi-Fi du lab.
  3. 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.
  4. 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…
  5. 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.

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é.

Connexions actives
Connexions réseau

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.

Connexion SSH depuis 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.
Serveur Web

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 :

Acquisition logique

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 :

Analyse des Prefetchs

Récupération des données de navigation dans les bases SQLite :

Analyse de l’historique Firefox

Récupération des extensions Firefox dans des fichiers JSON via la commande cat extensions.json | json_pp -t json | more :

Analyse des extensions Firefox

Parsing de la ruche NTUSER.DAT et affichage de quelques points de persistance via reglookup :

Analyse des points de persistance

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.

Tagués avec : , , , , , , ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.