
Распределенный сканер уязвимостей сети
Prowler — это сканер уязвимостей сети, реализованный на кластере Raspberry Pi, впервые разработанный во время хакатона сообщества InfoSec Сингапура — HackSmith v1.0.


requirements.txt/playbooks)Ключевые пакеты Python:
dispy (веб-сайт) — главная звезда. Он позволяет создать очередь задач, которая будет обрабатываться рабочими узлами.python-libnmap — это обёртка Python для nmap, сканера сети с открытым исходным кодом. Она позволяет сканировать открытые порты на устройствах.paramiko — это обёртка Python для SSH. Мы используем её для проверки SSH на устройствах на предмет распространённых учётных данных.eel используется для веб-информационной панели (отдельный репозиторий, здесь)rabbitmq (веб-сайт) используется для передачи результатов из кластера на сервер eel, который обслуживает страницу информационной панели.Для работы плейбуков необходимо установить ansible (sudo pip3 install ansible). Настройте IP-адреса узлов в /etc/ansible/hosts.
ПРЕДУПРЕЖДЕНИЕ: Результаты могут отличаться, так как они тестировались только на моей конфигурации
shutdown.yml и reboot.yml — понятны из названияclone_repos.yml — клонирует репозитории prowler и dispy (обязательно!) на рабочих узлахsetup_node.yml — устанавливает все необходимые пакеты на рабочих узлах. Не клонирует репозитории!git clone https://github.com/tlkh/prowler.gitsudo pip3 install -r requirements.txt на контроллере Piansible-playbook playbooks/setup_node.yml, чтобы установить необходимые пакеты на рабочих узлах.ansible-playbook playbooks/clone_repos.ymlclusterhat on на контроллере Pi, чтобы убедиться, что все Pi Zero включены.python3 cluster.py на контроллере Pi, чтобы запустить ProwlerЧтобы изменить диапазон сканируемых IP-адресов, отредактируйте следующие строки в 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 и выполните pssh -h pssh-hosts -l username -A -i "команда"compute.py): cluster = dispy.JobCluster(compute, nodes='pi0_ip', ip_addr='pi3_ip')ansible all -m ping или 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
АБСОЛЮТНО БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ! Однако не стесняйтесь отправлять сообщения об ошибках.