
Escáner de vulnerabilidades de red distribuido
Prowler es un escáner de vulnerabilidades de red implementado en un clúster de Raspberry Pi, desarrollado por primera vez durante el hackathon de la comunidad de seguridad informática de Singapur - HackSmith v1.0.


requirements.txt/playbooks)Paquetes clave de Python:
dispy (sitio web) es la estrella del espectáculo. Nos permite crear una cola de trabajos que será procesada por los nodos trabajadores.python-libnmap es el envoltorio de Python para nmap, un escáner de red de código abierto. Nos permite escanear puertos abiertos en dispositivos.paramiko es un envoltorio de Python para SSH. Lo usamos para sondear SSH en dispositivos y probar credenciales comunes.eel se usa para el panel web (repositorio separado, aquí)rabbitmq (sitio web) se usa para pasar los resultados del clúster al servidor eel que sirve la página del panel.Para que los playbooks funcionen, ansible debe estar instalado (sudo pip3 install ansible). Configure las direcciones IP de los nodos en /etc/ansible/hosts.
ADVERTENCIA: Los resultados pueden variar ya que solo se probaron en mi configuración
shutdown.yml y reboot.yml se explican por sí mismosclone_repos.yml clona los repositorios de prowler y dispy (¡requerido!) en los nodos trabajadoressetup_node.yml instala todos los paquetes necesarios en los nodos trabajadores. ¡No clona los repositorios!git clone https://github.com/tlkh/prowler.gitsudo pip3 install -r requirements.txt en el Pi controladoransible-playbook playbooks/setup_node.yml para instalar los paquetes necesarios en los nodos trabajadores.ansible-playbook playbooks/clone_repos.ymlclusterhat on en el Pi controlador para asegurarse de que todos los Pi Zeros estén encendidos.python3 cluster.py en el Pi controlador para iniciar ProwlerPara editar el rango de direcciones IP que se escanean, edite las siguientes líneas en 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 y pssh -h pssh-hosts -l username -A -i "comando"compute.py): cluster = dispy.JobCluster(compute, nodes='pi0_ip', ip_addr='pi3_ip')ansible all -m ping o 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
¡ABSOLUTAMENTE SIN GARANTÍA DE NINGÚN TIPO! Sin embargo, no dudes en enviar problemas.