
Verteilter Netzwerk-Schwachstellenscanner
Prowler ist ein Netzwerk-Schwachstellenscanner, der auf einem Raspberry Pi Cluster implementiert wurde, erstmals entwickelt während des Singapore Infosec Community Hackathon - HackSmith v1.0.


requirements.txt/playbooks)Wichtige Python-Pakete:
dispy (Webseite) ist der Star der Show. Es ermöglicht uns, eine Job-Warteschlange zu erstellen, die von den Worker-Knoten verarbeitet wird.python-libnmap ist der Python-Wrapper um nmap, einen Open-Source-Netzwerkscanner. Es ermöglicht das Scannen nach offenen Ports auf Geräten.paramiko ist ein Python-Wrapper um SSH. Wir verwenden es, um SSH auf Geräten zu testen und nach gängigen Anmeldedaten zu suchen.eel wird für das Web-Dashboard verwendet (separates Repository, hier)rabbitmq (Webseite) wird verwendet, um die Ergebnisse vom Cluster an den eel-Server zu übermitteln, der die Dashboard-Seite bereitstellt.Damit die Playbooks funktionieren, muss ansible installiert sein (sudo pip3 install ansible). Konfigurieren Sie die IP-Adressen der Knoten in /etc/ansible/hosts.
WARNUNG: Ihre Ergebnisse können abweichen, da diese nur auf meinem Setup getestet wurden
shutdown.yml und reboot.yml sind selbsterklärendclone_repos.yml klont die Repositorys von Prowler und dispy (erforderlich!) auf den Worker-Knotensetup_node.yml installiert alle erforderlichen Pakete auf den Worker-Knoten. Klont die Repositorys nicht!git clone https://github.com/tlkh/prowler.gitsudo pip3 install -r requirements.txt auf dem Controller-Piansible-playbook playbooks/setup_node.yml aus, um die erforderlichen Pakete auf den Worker-Knoten zu installieren.ansible-playbook playbooks/clone_repos.ymlclusterhat on auf dem Controller-Pi aus, um sicherzustellen, dass alle Pi Zeros eingeschaltet sind.python3 cluster.py auf dem Controller-Pi aus, um Prowler zu startenUm den Bereich der zu scannenden IP-Adressen zu bearbeiten, bearbeiten Sie die folgenden Zeilen in 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 und 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 oder 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
ABSCHLIEßEND KEINERLEI GEWÄHRLEISTUNG! Sie können dennoch gerne Issues einreichen.