
Scanner distribué de vulnérabilités réseau
Prowler est un scanner de vulnérabilités réseau implémenté sur un cluster Raspberry Pi, développé pour la première fois lors du hackathon de la communauté infosec de Singapour - HackSmith v1.0.


requirements.txt/playbooks)Paquets Python clés :
dispy (site web) est la star du spectacle. Il nous permet de créer une file d'attente de tâches qui sera traitée par les nœuds de travail.python-libnmap est le wrapper Python autour de nmap, un scanner réseau open source. Il nous permet de rechercher les ports ouverts sur les périphériques.paramiko est un wrapper Python autour de SSH. Nous l'utilisons pour sonder SSH sur les périphériques afin de tester les identifiants courants.eel est utilisé pour le tableau de bord web (dépôt séparé, ici)rabbitmq (site web) est utilisé pour transmettre les résultats du cluster au serveur eel qui sert la page du tableau de bord.Pour que les playbooks fonctionnent, ansible doit être installé (sudo pip3 install ansible). Configurez les adresses IP des nœuds dans /etc/ansible/hosts.
ATTENTION : Votre expérience peut varier car ceux-ci n'ont été testés que sur ma configuration
shutdown.yml et reboot.yml explicitesclone_repos.yml clone les dépôts prowler et dispy (obligatoire!) sur les nœuds de travailsetup_node.yml installe tous les paquets requis sur les nœuds de travail. Ne clone pas les dépôts!git clone https://github.com/tlkh/prowler.gitsudo pip3 install -r requirements.txt sur le Pi contrôleuransible-playbook playbooks/setup_node.yml pour installer les paquets requis sur les nœuds de travail.ansible-playbook playbooks/clone_repos.ymlclusterhat on sur le Pi contrôleur pour garantir que tous les Pi Zeros sont allumés.python3 cluster.py sur le Pi contrôleur pour démarrer ProwlerPour modifier la plage d'adresses IP scannées, modifiez les lignes suivantes dans cluster.py :
test_range = []
for i in range(0, 1):
for j in range(100, 200):
test_range.append("172.22." + str(i) + "." + str(j))
pssh et pssh -h pssh-hosts -l username -A -i "command"compute.py) : cluster = dispy.JobCluster(compute, nodes='pi0_ip', ip_addr='pi3_ip')ansible all -m ping ou ping p1.local -c 1 && ping p2.local -c 1 && ping p3.local -c 1 && ping p4.local -c 1/opt/vc/bin/vcgencmd measure_temp && pssh -h workers -l pi -A -i "/opt/vc/bin/vcgencmd measure_temp" | grep temp
ABSOLUMENT AUCUNE GARANTIE ! N'hésitez pas à soumettre des problèmes cependant.