1. Идея
2. Установка
3. Настройка и запуск
4. Расмотрим скрипты поближе
5. Итоги
Network Ripper (NR) – прошивка для устройства Raspberry Pi, для автоматизации пентеста физической локальной сети по принципу INPT.
Особенно выражаю большую благодарность: admin, bratva, IIIIXX,
yashechka , yellow, Xin, cyberslae, D4nte, wut4n9, Kotiki, waahoo, FRG
Ваша поддержка очень важна для меня! Спасибо! (Если бы не вы, этого проекта и не было бы.)
Ваши донаты, помогают мне покупать новые железки, и делать с ними крутые вещи!
Тогда я задумался над написанием небольшого скриптика на питоне, который будет автоматически сканировать все подсети, и потом найденные в них айпишки. После этого, я подумал – а если автоматизировать ВЕСЬ процесс тестирования сети? Сканирование, брут, использование эксплоитов, сниффинг траффика, проведение MITM атаки.
Так и появилась эта идея, запустить скрипты автоматизации на маленьком удобном мини пк – Raspberry Pi.
Прошивка ставится поверх ОС Kali Linux. То есть на малину мы ставим Kali, а на Kali инсталлер NR.
Скрипты написаны на языке программирования python. Прошивка является Open-source проектом, это значит что прошивку можно кастоматизировать под себя.
В прошивке используются последние версии инструментов. Также большая часть инструментов, расположена в официальном репозитории Kali Linux.
Устройство удобно при использовании в кейсах физического пентеста, подрубил малину к повербанку, подрубил через ethernet к свитчу/роутеру, и ждешь репорта на своем ssh сервере.
Ну что друзья, начнем?
После выбора платы, установим на нее ОС Kali Linux.
1. Скачиваем ARM образ Kali Linux для нашей железки: https://www.kali.org/get-kali/#kali-arm
2. Скачиваем Raspberry Pi imager: https://www.raspberrypi.com/software/
3. Теперь нам нужна micro SD карта, на которую мы установим ОС, а также переходник для карты, чтобы подключить ее к тачке.
После подключения SD карты к пк, запускаем Raspberry Pi imager.
4. Выбираем скачанный .img образ Kali Linux
5. Выбираем micro SD карту
6. Нажимаем “Записать”
7. После завершения записи образа на micro SD карту, вставляем ее в малину.
8. Дальше подключаем к малине монитор, клавиатуру, мышку и подаем на нее питание.
Немного подождав, мы увидим начальный экран Kali, это значит что половина пути пройдена!
1. Обновляем системные пакеты:
2. Устанавливаем python:
Перейдем к установке Installer-a!
3. Скачиваем установщик:
4. Переходим в директорию установщика:
5. Устанавливаем зависимости:
<Перед запуском убедитесь что ваша система полностью чиста, без созданных новых юзеров и установленных левых инструментов/зависимостей>
Запускаем установщик:
Мы понимаем что важные данные на системе будут стерты, и подтверждаем установку еще раз.
После установки соглашаемся на перезагрузку:
Теперь у нас все готово для работы! Для того чтобы начать использовать прошивку, залогиньтесь в системе или через ssh с кредами Ripper:root
В домашнем каталоге юзера Ripper вы найдете рабочую директорию Network_Ripper
Для настройки, будем редактировать файл в директории Network_Ripper с названием local_config.ini
Что можно настраивать/изменять:
И изменяем значения, они могут быть такого типа:
Теперь, берем малину и подключаем по ethernet к роутеру/свичу. Устройство ожидает подключения по ethernet интерфейсу и после получения своего IP адреса в сети, начинает атаку.
Также после запуска файла, он автоматически будет запускать атаку и алгоритм действий через системный автозапуск.
После запуска файла, все действия/сканирования/атаки, будут проведены автоматически. Теперь после подачи питания на малину, и подключения к сети через ethernet, алгоритм действий будет автоматически отработан.
У нас есть два способа как его получить:
Для отсылки репорта на удаленный SSH сервер, выполните эти действия:
Настройка удаленного SSH доступа:
(По дефолту, сразу после запуска установщика NR, в системе включена функция доступа по SSH)
Для включения/выключения доступа по SSH, проредактируйте строчку в конфиг файле:
Креды для входа по SSH: Ripper:root
Настройка интерактивного Reverse shell:
(Reverse shell по дефолту выключен, он умеет работать в интерактивном режиме)
(Для подключения, на своей тачке делаем
или можно взять любой порт)
Для настройки, нам нужно сперва включить функцию Reverse shell доступа:
Теперь нам нужно настроить таймауты подключения, и IP/Port для коннекта:
Как я говорил ранее, все скрипты с открытым исходным кодом.
С гитхаба у нас скачивается два файла: сам
и
Файл requirements.txt является списком модулей для запуска скрипта
Для их установки, перейдите в директорию с файлом и выполните команду
Что делает скрипт install.py:
Структура системного каталога Network_Ripper:
cron.py: это файл, связанный с задачами, выполняемыми по расписанию (cron).
cron.sh: Скрипт используется для настройки и выполнения задач по расписанию через cron.
local_config.ini: Этот файл содержит настройки и параметры конфигурации для прошивки Network Ripper. Пользователь может редактировать этот файл для настройки различных параметров.
report: Каталог предназначен для хранения отчетов и данных, связанных с работой программы. Внутри этого каталога есть подкаталоги для хранения разных видов отчетов.
scripts: Этот каталог имеет скрипты, используемые прошивкой Network Ripper для выполнения сканирований/атак/перехватов.
send_report.py: это скрипт, используемый для отправки отчетов и данных на удаленный SSH сервер.
start.py: Главный файл для иерархического запуска скриптов
start.sh: Скрипт используется для запуска прошивки Network Ripper или для выполнения определенных команд в оболочке.
Модуль собирает информацию об активных IP адресах, открытых портах, версиях служб и версии OS. Сохраняет найденную информацию в двух форматах – TXT и JSON файлах в директорию report/Network_Information
Как работает скрипт scan.py:
msf_autopwn.py:
Скрипт использует инструмент Metasploit для автоматического сканирования уязвимостей на устройствах в сети.
Скрипт использует 4 встроенных сканера на самые популярные уязвимости, такие как: ms17_010_eternalblue, ms08_067_netapi, cve_2021_1675_printnightmare, cve_2020_0796_smbghost, cve_2019_0708_bluekeep_rce.
Для добавления своих эксплоитов, добавьте такую информацию в массив vulnerability_data:
Пример списка используемых эксплоитов:
Что делает скрипт:
rsf_autopwn.py:
Скрипт использует инструмент RouterSploit для автоматического сканирования на уязвимости сетевого оборудования, камер.
Скрипт использует Nmap для сканирования устройств на такие порты как:
а потом RouterSploit проходится по девайсах сканированием.
Что делает скрипт:
traffic_capture.py является скриптом для перехвата и анализа сетевого траффика. Он использует для этого инструмент tshark.
Как работает скрипт:
credslayer_capture.py является скриптом для проведения MITM атаки и захвата важных учетных данных, скрипт использует инструмент CredsLayer.
Как работает скрипт:
Для включения функции отправки репорта на удаленный ssh сервер отредактируйте содержимое файла local_config.ini так: send_report_to_ssh_server = true и report_ssh_server_creds = <IP:Login:Pass>
Как работает скрипт:
Делитесь своими доработки к проекту, кидайте под темой.
Донаты автору:
Автор: Gufi
Сделано специально для xss.pro!
- Благодарность
- Как мне это пришло в голову?
- Актуальность NR
- Функции прошивки
2. Установка
- Подготовка Raspberry Pi
- Установка installer-a
3. Настройка и запуск
- Настройка системы через config.ini
- Запуск скриптов
- Получение репорта
- Удаленное подключение к Network Ripper
4. Расмотрим скрипты поближе
- Как работает установщик
- Разбор скриптов “Information Gathering”
- Разбор скриптов “Attack”
- Разбор скриптов “Sniff”
- Разбор главного скрипта “Start”
- Разбор скрипта для отсылки репорта
5. Итоги
Network Ripper (NR) – прошивка для устройства Raspberry Pi, для автоматизации пентеста физической локальной сети по принципу INPT.
Идея
Благодарность
Хочу выявить большую благодарность всем своим фанатам, подписчикам, донатерам, коллегам.Благодарность
Особенно выражаю большую благодарность: admin, bratva, IIIIXX,
yashechka , yellow, Xin, cyberslae, D4nte, wut4n9, Kotiki, waahoo, FRG
Ваша поддержка очень важна для меня! Спасибо! (Если бы не вы, этого проекта и не было бы.)
Ваши донаты, помогают мне покупать новые железки, и делать с ними крутые вещи!
Как мне это пришло в голову?
При долгом заказе по пентесту физической локалки в офисе, я задумался… а нахер мне такая работа? Сидеть в долбаном офисе по 7-8 часов и пробегаться метасплоиом по открытых портах на айпишках? А это же еще надо просканировать) а если сеть имеет в себе еще несколько подсетей? Тогда тестирование затягивается еще до нескольких дней.Тогда я задумался над написанием небольшого скриптика на питоне, который будет автоматически сканировать все подсети, и потом найденные в них айпишки. После этого, я подумал – а если автоматизировать ВЕСЬ процесс тестирования сети? Сканирование, брут, использование эксплоитов, сниффинг траффика, проведение MITM атаки.
Так и появилась эта идея, запустить скрипты автоматизации на маленьком удобном мини пк – Raspberry Pi.
Актуальность NR
Проект является актуальным для тестирования на безопасность локальной сети, и устройств внутри нее.Прошивка ставится поверх ОС Kali Linux. То есть на малину мы ставим Kali, а на Kali инсталлер NR.
Скрипты написаны на языке программирования python. Прошивка является Open-source проектом, это значит что прошивку можно кастоматизировать под себя.
В прошивке используются последние версии инструментов. Также большая часть инструментов, расположена в официальном репозитории Kali Linux.
Устройство удобно при использовании в кейсах физического пентеста, подрубил малину к повербанку, подрубил через ethernet к свитчу/роутеру, и ждешь репорта на своем ssh сервере.
Функции прошивки
Основные функции:- Создание рабочего пользователя Ripper с домашним каталогом
- Ожидание подключения Raspberry Pi к сети (После подключения Raspberry Pi к сети, она начинает работу)
- Полная настройка атак и алгоритма действий
- Возможен выбор сетевого адаптера для работы
- Доступ через SSH
- Интерактивный Reverse Shell
- Полная настройка Reverse Shell-a (IP:Port для коннекта, таймаут)
- Сканирование сети (активные IP адреса в сети, OS, открытые порты, информация об MAC, версии служб)
- Перехват сетевых протоколов mndp lldp cdp ospf vrrp llmnr (В пакетах содержится информация об сети и сетевом оборудовании)
- Сохранение репорта с информацией в тхт и json файл
- Автоматическое использование популярных эксплоитов на устройствах в сети (Эксплоиты подбираются исходя от содержимого Json файла)
- Автоматическая Autopwn атака на устройства в сети, используя инструмент Network Ripper
- Сохранение репорта с информацией об уязвимостях
- Перехват сетевого траффика с помощью инструмента Tshark
- Проведение MITM атаки и сохранение перехваченной информации в тхт файл
- Сохранение всех репортов в папку Report
- Отсылка архива Report на удаленный SSH сервер
- Очистка логов на Raspberry Pi после отсылки репорта
- Удаление прошивки Network Ripper после отсылки репорта
Ну что друзья, начнем?
Установка
Подготовка Raspberry Pi
Для прошивки Network Ripper нам подойдет Raspberry Pi таких версий:Подготовка Raspberry Pi
- Raspberry Pi 3 Model B
- Raspberry Pi 3 Model B+
- Raspberry Pi 4 Model B
- Raspberry Pi 5
После выбора платы, установим на нее ОС Kali Linux.
1. Скачиваем ARM образ Kali Linux для нашей железки: https://www.kali.org/get-kali/#kali-arm
2. Скачиваем Raspberry Pi imager: https://www.raspberrypi.com/software/
3. Теперь нам нужна micro SD карта, на которую мы установим ОС, а также переходник для карты, чтобы подключить ее к тачке.
После подключения SD карты к пк, запускаем Raspberry Pi imager.
4. Выбираем скачанный .img образ Kali Linux
5. Выбираем micro SD карту
6. Нажимаем “Записать”
7. После завершения записи образа на micro SD карту, вставляем ее в малину.
8. Дальше подключаем к малине монитор, клавиатуру, мышку и подаем на нее питание.
Немного подождав, мы увидим начальный экран Kali, это значит что половина пути пройдена!
Установка installer-a
Перед установкой инсталлера, обновим пакеты системы и установим нужные зависимости для запуска инсталлера.1. Обновляем системные пакеты:
Код:
sudo apt-get upgrade && apt-get update
Код:
sudo apt install python3
Перейдем к установке Installer-a!
3. Скачиваем установщик:
Код:
git clone https://github.com/Netw0rkR1pper/NR_Installer.git
Код:
cd installer
Код:
pip install -r requirements.txt
<Перед запуском убедитесь что ваша система полностью чиста, без созданных новых юзеров и установленных левых инструментов/зависимостей>
Запускаем установщик:
Код:
sudo python install.py
Мы понимаем что важные данные на системе будут стерты, и подтверждаем установку еще раз.
После установки соглашаемся на перезагрузку:
Теперь у нас все готово для работы! Для того чтобы начать использовать прошивку, залогиньтесь в системе или через ssh с кредами Ripper:root
В домашнем каталоге юзера Ripper вы найдете рабочую директорию Network_Ripper
Настройка и запуск
Настройка системы через config.ini
Прошивка Network Ripper имеет возможность заранее настроить алгоритм действий и атак.Настройка системы через config.ini
Для настройки, будем редактировать файл в директории Network_Ripper с названием local_config.ini
Что можно настраивать/изменять:
- used_interface: Используемый сетевой интерфейс (по умолчанию eth0).
- network_scan: Включение/отключение скрипта для сканирования сети (true/false).
- protocols_parsing: Включение/отключение разбора протоколов, таких как MNDP, LLDP, CDP, OSPF, VRRP, LLMNR (true/false).
- routersploit_autopwn: Включение/отключение автоматической атаки Routersploit (true/false).
- metasploit_autopwn: Включение/отключение автоматической атаки Metasploit (true/false).
- tshark_traffic_sniffing: Включение/отключение перехвата трафика с использованием tshark (true/false).
- tshark_traffic_capture_time: Время захвата трафика с использованием tshark в секундах (по умолчанию 60).
- credslayer_traffic_sniffing: Включение/отключение перехвата трафика CredsLayer (true/false).
- credslayer_traffic_capture_time: Время захвата трафика CredsLayer в секундах (по умолчанию 60).
- send_report_to_ssh_server: Включение/отключение отправки отчета на SSH-сервер (true/false).
- report_ssh_server_creds: Учетные данные SSH-сервера для отправки отчета в формате "IP:Login:Pass" (по умолчанию "192.168.187.131:kali:kali").
- clear_logs_after_sending_report: Очистка журналов после отправки отчета (true/false).
- uninstall_network_ripper_after_sending_report: Удаление программы Network Ripper после отправки отчета (true/false).
- bind_ssh_shell: Включение/отключение привязки SSH-оболочки к Network Ripper (true/false).
- back_connect_shell: Включение/отключение обратного подключения из Network Ripper (true/false).
- back_connect_shell_ip: IP-адрес для обратного подключения (по умолчанию "192.168.187.131").
- back_connect_shell_port: Порт для обратного подключения (по умолчанию 1337).
- back_connect_shell_timeout: Таймаут для обратного подключения (по умолчанию 2 секунды).
- report_path: Пути для сохранения отчетов и журналов:
- base_path: Базовый путь для отчетов (по умолчанию "./report").
- log_path: Путь для журналов (по умолчанию "./report/log").
- attacks_path: Путь для записи информации о атаках (по умолчанию "./report/Attacks").
- network_information_path: Путь для записи информации о сети (по умолчанию "./report/Network_Information").
- sniff_path: Путь для записи перехваченного трафика (по умолчанию "./report/Sniff").
И изменяем значения, они могут быть такого типа:
- true/false
- <IP> (например: 192.168.88.56)
- <IP:Login:Pass> (например: 192.168.88.56:root:root)
- <port> (например: 1337)
- <interface> (например: eth0)
Запуск скриптов
Для запуска атаки, запускаем файл start.py командой
Код:
sudo python start.py
Теперь, берем малину и подключаем по ethernet к роутеру/свичу. Устройство ожидает подключения по ethernet интерфейсу и после получения своего IP адреса в сети, начинает атаку.
Также после запуска файла, он автоматически будет запускать атаку и алгоритм действий через системный автозапуск.
После запуска файла, все действия/сканирования/атаки, будут проведены автоматически. Теперь после подачи питания на малину, и подключения к сети через ethernet, алгоритм действий будет автоматически отработан.
Получение репорта
После отработки скриптов, репорт сохраняется в папку Report.У нас есть два способа как его получить:
- По дефолту все данные сохраняются в папку report, там в иерархическом порядке находятся файлы с полученной информацией от скриптов.
- Можно заранее настроить в local_config.ini отсылку папки report на удаленный ssh сервер. Для этого, включите эту функцию в конфиг-файле и впишите креды к удаленному ssh серверу в формате IP:Login:Pass
Для отсылки репорта на удаленный SSH сервер, выполните эти действия:
- Поднимите SSH сервер на устройстве, на которое должен прилететь репорт
- Перед запуском скрипта, при настройке системы, в конфиг файле поставьте такие значения:
- (замените на IP:Login:Pass своего устройства с SSH сервером)
- Сохраните конфиг файл, и запускайте стартовый скрипт. После отработки скриптов, на ваш SSH сервер должен прилететь архив Report.zip
Удаленное подключение к Network Ripper
Прошивка имеет два вида подключения:- SSH bind shell – доступ к системе Network Ripper через оболочку SSH
- Netcat interactive shell –интерактивная оболочка Reverse shell для системы Network Ripper
Настройка удаленного SSH доступа:
(По дефолту, сразу после запуска установщика NR, в системе включена функция доступа по SSH)
Для включения/выключения доступа по SSH, проредактируйте строчку в конфиг файле:
Код:
bind_ssh_shell = true/false
Настройка интерактивного Reverse shell:
(Reverse shell по дефолту выключен, он умеет работать в интерактивном режиме)
(Для подключения, на своей тачке делаем
Код:
nc -lvp 1337
Для настройки, нам нужно сперва включить функцию Reverse shell доступа:
Код:
back_connect_shell = true
Теперь нам нужно настроить таймауты подключения, и IP/Port для коннекта:
Код:
back_connect_shell_ip = <IP нашей тачки>
Код:
back_connect_shell_port = <Открытый порт для реверс шелла, в нашем случае 1337>
Код:
back_connect_shell_timeout = 5 (Время указываем в минутах, значит каждых 5 минут, NR будет коннектится к нашей тачке)
Рассмотрим скрипты поближе
Детально рассмотрим работу и код скриптов системы Network Ripper.Как я говорил ранее, все скрипты с открытым исходным кодом.
Как работает установщик
Скрипт для установки (install.py) вы сможете скачать по ссылке: https://github.com/Netw0rkR1pper/NR_InstallerС гитхаба у нас скачивается два файла: сам
Код:
install.py
Код:
requirements.txt
Файл requirements.txt является списком модулей для запуска скрипта
Код:
install.py
Для их установки, перейдите в директорию с файлом и выполните команду
Код:
pip install -r requirements.txt
Что делает скрипт install.py:
- Сначала он загружает необходимый репозиторий с GitHub, сохраняя его в локальной папке.
- Затем распаковывает этот репозиторий в указанную папку назначения.
- Создает несколько дополнительных каталогов внутри распакованного репозитория и устанавливает разрешения на файлы.
- Удаляет скачанный ZIP-файл.
- Настраивает систему для автоматического входа в систему от имени пользователя 'kali'.
- Добавляет правила в файл /etc/sudoers, позволяя пользователю выполнять определенные команды с правами администратора (sudo).
- Создает и настраивает systemd-службы для автозапуска определенных скриптов.
- Устанавливает необходимые зависимости Python, обозначенные в файле requirements.txt.
- Создает нового пользователя 'Ripper' с паролем 'root' и правами sudo.
- Настраивает доступ по SSH для пользователя 'Ripper'.
- Обновляет систему и устанавливает различные системные инструменты и пакеты.
- Завершает установку 'Network Ripper' с указанием успешного завершения и предложением перезагрузить систему.
- Готовую к работе систему Network Ripper с настройками по умолчанию.
- Юзера Ripper с root правами и домашним каталогом
- Системный каталог Network_Ripper со скриптами и файлами конфигурации
- Доступ к системе через SSH (креды для подключения Ripper:root)
Структура системного каталога Network_Ripper:
cron.py: это файл, связанный с задачами, выполняемыми по расписанию (cron).
cron.sh: Скрипт используется для настройки и выполнения задач по расписанию через cron.
local_config.ini: Этот файл содержит настройки и параметры конфигурации для прошивки Network Ripper. Пользователь может редактировать этот файл для настройки различных параметров.
report: Каталог предназначен для хранения отчетов и данных, связанных с работой программы. Внутри этого каталога есть подкаталоги для хранения разных видов отчетов.
Attacks: здесь хранятся отчеты и данные об атаках и уязвимостях.
log: В этой папке хранятся логи и журналы событий программы.
Network_Information: В этом каталоге, содержится информация о сети, собранная скриптом scan.py.
Sniff: Здесь сохраняется информация, связанная с перехватом сетевого трафика.
scripts: Этот каталог имеет скрипты, используемые прошивкой Network Ripper для выполнения сканирований/атак/перехватов.
Attack: Здесь находятся скрипты, связанные с проведением атак и использованием эксплоитов.
msf_autopwn.py: Скрипт связанный с автоматизированным использованием эксплоитов через Metasploit.
rsf_autopwn.py: Скрипт связанный с автоматическим использованием эксплоитов через RouterSploit.
Information_Gathering: В этом каталоге находятся скрипты для сбора информации о сети и устройствах.
scan.py: Скрипт используется для сканирования сети и сбора информации о подключенных устройствах.
Shell: этот каталог содержит скрипты, связанные с управлением оболочкой (shell).
backconnect.py: Скрипт связанный с установкой обратного соединения (backconnect).
stub: В этом каталоге могут находиться файлы, связанные с установкой подпрограмм или оболочек.
Sniff: этот каталог содержит скрипты для перехвата сетевого трафика.
credslayer_capture.py: Скрипт используется для захвата учетных данных.
__pycache__: Этот каталог содержит скомпилированные файлы Python (.pyc).
traffic_capture.py: Скрипт используется для захвата и анализа сетевого трафика.
send_report.py: это скрипт, используемый для отправки отчетов и данных на удаленный SSH сервер.
start.py: Главный файл для иерархического запуска скриптов
start.sh: Скрипт используется для запуска прошивки Network Ripper или для выполнения определенных команд в оболочке.
Разбор скриптов “Information Gathering”
В директории scripts/Information_Gathering находится скрипт scan.py, он использует python модуль “nmap” для сканирования всей сети.Модуль собирает информацию об активных IP адресах, открытых портах, версиях служб и версии OS. Сохраняет найденную информацию в двух форматах – TXT и JSON файлах в директорию report/Network_Information
Как работает скрипт scan.py:
- В основной части скрипта загружается конфигурация из файла "local_config.ini". Затем скрипт определяет сетевой интерфейс для использования из конфигурации.
- Скрипт ожидает, пока сетевой интерфейс не получит IP-адрес, вызывая функцию check_ip_address(interface).
- Функция check_ip_address(interface) мониторит изменения IP-адреса на указанном сетевом интерфейсе. Если IP-адрес не обнаруживается, она пытается использовать DHCP-клиент для получения IP-адреса.
- Далее, в функции get_local_ip(), выполняется команда для получения локального IP-адреса для указанного сетевого интерфейса (по умолчанию "eth0"). IP-адрес извлекается из вывода команды.
- Затем он получает локальный IP-адрес и сканирует сеть, вызывая функцию scan_network(local_ip).
- Функция scan_network(ip) сканирует сеть для указанного IP-адреса (параметр ip). Результаты сканирования сохраняются в файл JSON и текстовый отчет. Отчет в текстовом формате включает информацию о обнаруженных хостах, их MAC-адресах, операционных системах и открытых портах.
- Сначала определяется текущее уникальное имя файла, используя текущую дату и время.
- Затем скрипт получает отформатированное текущее время в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС".
- Результаты сканирования сохраняются в файлы JSON и текстовый файл, и выводится сообщение о завершении сканирования.
Разбор скриптов “Attack”
В директории “Attack” мы увидим два файла: msf_autowpn.py и rsf_autopwn.py Они предназначены для автоматического сканирования уязвимостей на устройствах в атакуемой сети.msf_autopwn.py:
Скрипт использует инструмент Metasploit для автоматического сканирования уязвимостей на устройствах в сети.
Скрипт использует 4 встроенных сканера на самые популярные уязвимости, такие как: ms17_010_eternalblue, ms08_067_netapi, cve_2021_1675_printnightmare, cve_2020_0796_smbghost, cve_2019_0708_bluekeep_rce.
Для добавления своих эксплоитов, добавьте такую информацию в массив vulnerability_data:
Код:
'name':
'exploit_module':
'payload_module':
'log_file ':
Пример списка используемых эксплоитов:
Что делает скрипт:
- Импортирует необходимые библиотеки и модули, такие как ipaddress, subprocess, configparser, datetime, argparse, os, и nmap.
- Определяет список уязвимостей vulnerability_data, каждая из которых включает в себя имя уязвимости, модуль эксплойта, модуль payload и имя файла для сохранения логов.
- Определяет имя файла, в котором будет сохранена информация об уязвимых хостах, и список портов.
- Определяет функцию get_formatted_time(), которая возвращает текущее отформатированное время.
- Определяет функцию get_local_ip(), которая возвращает локальный IP-адрес на указанном сетевом интерфейсе.
- Определяет функцию generate_subnet(), которая генерирует подсеть IPv4 на основе IP-адреса и длины префикса.
- Определяет функцию get_network_devices(), которая сканирует устройства в указанной сети на заданных портах с использованием nmap и возвращает список обнаруженных устройств.
- Определяет функцию run_msfcommand_and_save_to_log(), которая запускает команду Metasploit для проверки уязвимости на указанных хостах и сохраняет логи в соответствующем файле.
- Определяет функцию start_vulnerabilities_test(), которая запускает тестирование уязвимостей для указанных IP-адресов.
- Парсит аргументы командной строки, такие как список IP-адресов для тестирования.
- Читает конфигурацию из файла "local_config.ini" и определяет папку для сохранения отчетов.
- Определяет целевые IP-адреса для тестирования либо на основе аргументов командной строки, либо сканирует устройства в сети на указанных портах.
- Запускает тестирование уязвимостей для целевых IP-адресов.
- Выводит сообщения о начале и завершении тестирования уязвимостей.
rsf_autopwn.py:
Скрипт использует инструмент RouterSploit для автоматического сканирования на уязвимости сетевого оборудования, камер.
Скрипт использует Nmap для сканирования устройств на такие порты как:
Код:
21, 22, 23, 80, 81, 88, 443, 554, 555, 2280, 6667, 7070, 7447, 8080, 8081, 8090, 8443, 8554, 8888, 10554
Что делает скрипт:
- Импортирует необходимые библиотеки и модули, такие как subprocess, nmap, datetime, ipaddress, os, и configparser.
- Определяет список портов устройств device_ports, которые будут сканироваться.
- Определяет функцию get_formatted_time(), которая возвращает текущее отформатированное время.
- Определяет функцию run_routersploit(), которая запускает сканер автоматической эксплуатации в Routersploit на целевом IP-адресе и сохраняет результаты в указанный лог-файл.
- Определяет функцию get_network_devices(), которая сканирует устройства в указанной сети на заданных портах с использованием nmap и возвращает список обнаруженных устройств.
- Определяет функцию get_local_ip(), которая возвращает локальный IP-адрес на указанном сетевом интерфейсе.
- Определяет функцию generate_subnet(), которая генерирует подсеть IPv4 на основе IP-адреса и длины префикса.
- Читает конфигурацию из файла "local_config.ini" и определяет папку для сохранения отчетов и имя лог-файла.
- Получает локальный IP-адрес и генерирует подсеть для сканирования.
- Сканирует сеть для поиска устройств, доступных на указанных портах.
- Запускает Routersploit для каждого найденного устройства и сохраняет результаты сканирования в лог-файл.
- Удаляет лог-файл "routersploit.log" (если он существует).
- Выводит сообщения о начале и завершении тестирования Routersploit.
Разбор скриптов “Sniff”
В директории scripts/Sniff находятся два скрипта: credslayer_capture.py и traffic_capture.pytraffic_capture.py является скриптом для перехвата и анализа сетевого траффика. Он использует для этого инструмент tshark.
Как работает скрипт:
- Сначала определяется текущее отформатированное время (год, месяц, день, час, минута и секунда) с использованием библиотеки datetime.
- Затем выполняется функция run_tshark_capture(). Она запускает утилиту Tshark для захвата сетевого трафика с определенного сетевого интерфейса в течение заданного количества секунд. Захваченный трафик сохраняется в файл с расширением ".pcapng".
- После этого скрипт выполняет функцию run_tshark_packet_parsing(), которая анализирует захваченные пакеты Tshark, фильтруя только те, которые соответствуют протоколам (mndp, lldp, cdp, ospf, vrrp, llmnr). Результат анализа сохраняется в текстовом файле.
- В основной части скрипта загружается конфигурация из файла "local_config.ini".
- Из конфигурации извлекаются настройки для использования, такие как сетевой интерфейс, продолжительность захвата трафика, и путь для сохранения отчетов.
- Генерируется уникальное имя файла на основе текущей даты и времени.
- Запускается захват сетевого трафика с помощью функции run_tshark_capture(). Результаты сохраняются в файл с именем, сгенерированным в шаге 6.
- Если в конфигурации установлен параметр protocols_parsing в значении True, то выполняется анализ захваченных пакетов с помощью функции run_tshark_packet_parsing(). Результаты анализа сохраняются в текстовом файле.
credslayer_capture.py является скриптом для проведения MITM атаки и захвата важных учетных данных, скрипт использует инструмент CredsLayer.
Как работает скрипт:
- Сначала определяется текущее отформатированное время (год, месяц, день, час, минута и секунда) с использованием библиотеки datetime.
- Затем выполняется функция run_credslayer_capture(). Эта функция запускает утилиту CredsLayer для захвата сетевого трафика с определенного сетевого интерфейса в течение заданного количества секунд. Утилита запускается в виде отдельного процесса и завершается по истечении указанной продолжительности захвата.
- В основной части скрипта загружается конфигурация из файла "local_config.ini".
- Из конфигурации извлекаются настройки, такие как использованный сетевой интерфейс и путь для сохранения отчетов.
- Генерируется уникальное имя файла на основе текущей даты и времени. Это имя будет использоваться для именования файлов, в которых сохраняются результаты захвата трафика.
- Формируется команда для запуска утилиты CredsLayer с необходимыми параметрами, включая сетевой интерфейс, пути для сохранения файлов трафика и отчетов.
- Задается продолжительность захвата трафика в секундах.
- Запускается захват трафика с помощью функции run_credslayer_capture(). Результаты захвата сохраняются в файлы, а на экран выводятся сообщения о начале и завершении захвата.
Разбор главного скрипта “Start”
start.py является основным файлом в системе NR, он отвечает за запуск всех скриптов.- Импортирует необходимые библиотеки и модули, такие как os, time, subprocess, configparser и datetime.
- Определяет функцию get_formatted_time(), которая возвращает текущее отформатированное время.
- Определяет функцию get_local_ip(), которая получает локальный IP-адрес для указанного сетевого интерфейса.
- Определяет функцию check_ip_address(), которая проверяет наличие IP-адреса на указанном интерфейсе и, если его нет, пытается получить его с использованием dhclient.
- Определяет функцию start_ssh_service(), которая пытается запустить службу SSH.
- В основной части скрипта:
- Читает конфигурацию из файла "local_config.ini".
- Получает сетевой интерфейс для использования из конфигурации.
- Проверяет наличие IP-адреса на указанном интерфейсе с использованием функции check_ip_address().
- Получает локальный IP-адрес с использованием функции get_local_ip().
- Запускает службу SSH, если опция "bind_ssh_shell" в конфигурации установлена в True.
- Запускает различные сценарии в зависимости от опций в конфигурации, такие как сканирование сети, захват трафика с использованием Tshark, захват трафика с использованием CredsLayer, использование Metasploit для автоматического поиска уязвимостей (Autopwn), и использование Routersploit для автоматической эксплуатации уязвимостей.
- Если опция "send_report_to_ssh_server" в конфигурации установлена в True, запускает скрипт send_report.py для отправки отчетов на удаленный SSH-сервер.
Разбор скрипта для отсылки репорта
Скрипт send_report.py лежит в корне каталога Network_Ripper. Он отвечает за отправку репорта на удаленный ssh сервер.Для включения функции отправки репорта на удаленный ssh сервер отредактируйте содержимое файла local_config.ini так: send_report_to_ssh_server = true и report_ssh_server_creds = <IP:Login:Pass>
Как работает скрипт:
- Определяет текущее отформатированное время в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС" и уникальное имя файла с использованием библиотеки datetime.
- Определяет функцию delete_user(), которая удаляет пользователя и связанные с ним логи.
- Определяет функцию delete_reports(), которая удаляет файлы и папки в указанном пути.
- Определяет функцию remove_systemd_service(), которая останавливает и удаляет службу systemd.
- Определяет функцию main(), которая выполняет следующие действия:
- Читает конфигурацию из файла "local_config.ini".
- Архивирует папку с отчетами в ZIP-архив.
- Устанавливает соединение по SSH с удаленным сервером на основе данных из конфигурации.
- Передает архив на удаленный сервер.
- Удаляет архив на локальной машине после передачи.
- Очищает логи и отчеты в зависимости от настроек в конфигурации.
- Удаляет службы systemd и пользователя Ripper, если указаны в конфигурации.
Итоги
Над проектом работали Gufi wut4n9 Делитесь своими доработки к проекту, кидайте под темой.
Донаты автору:
BTC: bc1qmku9gh5qxy2j8dh9c657rvum80a4cagx803j54
ETH: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151
USDT TRC20: TMeeM2prwn7pShvYNcwLCNKmNAM48BmqGc
USDT ERC20: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151
BUSD BEP20: 0x449A9Fc080e48315968Cd47DBdD619B3519B9151
Автор: Gufi
Сделано специально для xss.pro!
Последнее редактирование модератором: