• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Network Ripper - делаем устройство для автоматического пентеста локальной сети из Raspberry Pi

Gufi

(L2) cache
Пользователь
Регистрация
12.07.2022
Сообщения
468
Реакции
819
Гарант сделки
3
1. Идея
  • Благодарность
  • Как мне это пришло в голову?
  • Актуальность 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 к сети, она начинает работу)
  • Полная настройка атак и алгоритма действий
  • Возможен выбор сетевого адаптера для работы
Удаленный доступ к консоли NR:
  • Доступ через SSH
  • Интерактивный Reverse Shell
  • Полная настройка Reverse Shell-a (IP:Port для коннекта, таймаут)
Information Gathering:
  • Сканирование сети (активные IP адреса в сети, OS, открытые порты, информация об MAC, версии служб)
  • Перехват сетевых протоколов mndp lldp cdp ospf vrrp llmnr (В пакетах содержится информация об сети и сетевом оборудовании)
  • Сохранение репорта с информацией в тхт и json файл
Attacks:
  • Автоматическое использование популярных эксплоитов на устройствах в сети (Эксплоиты подбираются исходя от содержимого Json файла)
  • Автоматическая Autopwn атака на устройства в сети, используя инструмент Network Ripper
  • Сохранение репорта с информацией об уязвимостях
Sniff:
  • Перехват сетевого траффика с помощью инструмента Tshark
  • Проведение MITM атаки и сохранение перехваченной информации в тхт файл
Сохранение и отсылка репорта:
  • Сохранение всех репортов в папку Report
  • Отсылка архива Report на удаленный SSH сервер
  • Очистка логов на Raspberry Pi после отсылки репорта
  • Удаление прошивки Network Ripper после отсылки репорта
(Все параметры, включение/выключение функций можно редактировать через файл local_config.ini)


Ну что друзья, начнем?

Установка
Подготовка Raspberry Pi
Для прошивки Network Ripper нам подойдет Raspberry Pi таких версий:
  • Raspberry Pi 3 Model B
  • Raspberry Pi 3 Model B+
  • Raspberry Pi 4 Model B
  • Raspberry Pi 5
Я все тестировал на Raspberry Pi 3 Model B, но вам советую работать на Raspberry Pi 4 Model B.

После выбора платы, установим на нее ОС Kali Linux.

1. Скачиваем ARM образ Kali Linux для нашей железки: https://www.kali.org/get-kali/#kali-arm
1698695023009.png


2. Скачиваем Raspberry Pi imager: https://www.raspberrypi.com/software/
1698695055877.png


3. Теперь нам нужна micro SD карта, на которую мы установим ОС, а также переходник для карты, чтобы подключить ее к тачке.
После подключения SD карты к пк, запускаем Raspberry Pi imager.

4. Выбираем скачанный .img образ Kali Linux

5. Выбираем micro SD карту

6. Нажимаем “Записать”
1698695133055.png


7. После завершения записи образа на micro SD карту, вставляем ее в малину.

8. Дальше подключаем к малине монитор, клавиатуру, мышку и подаем на нее питание.

Немного подождав, мы увидим начальный экран Kali, это значит что половина пути пройдена!

Установка installer-a
Перед установкой инсталлера, обновим пакеты системы и установим нужные зависимости для запуска инсталлера.

1. Обновляем системные пакеты:
Код:
sudo apt-get upgrade && apt-get update
2. Устанавливаем python:
Код:
sudo apt install python3

Перейдем к установке Installer-a!

3. Скачиваем установщик:
Код:
git clone https://github.com/Netw0rkR1pper/NR_Installer.git
4. Переходим в директорию установщика:
Код:
cd installer
5. Устанавливаем зависимости:
Код:
pip install -r requirements.txt

<Перед запуском убедитесь что ваша система полностью чиста, без созданных новых юзеров и установленных левых инструментов/зависимостей>

Запускаем установщик:
Код:
sudo python install.py
1698695244823.png


Мы понимаем что важные данные на системе будут стерты, и подтверждаем установку еще раз.
1698695267038.png


После установки соглашаемся на перезагрузку:
1698695317645.png


Теперь у нас все готово для работы! Для того чтобы начать использовать прошивку, залогиньтесь в системе или через ssh с кредами Ripper:root

В домашнем каталоге юзера Ripper вы найдете рабочую директорию Network_Ripper


Настройка и запуск
Настройка системы через config.ini
Прошивка Network Ripper имеет возможность заранее настроить алгоритм действий и атак.
Для настройки, будем редактировать файл в директории 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").
Для настройки системы, откроем файл local_config.ini с помощью текстового редактора:
1698697328482.png


И изменяем значения, они могут быть такого типа:
  • 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
Пример директории с информацией:
1698697419550.png


Для отсылки репорта на удаленный SSH сервер, выполните эти действия:

  • Поднимите SSH сервер на устройстве, на которое должен прилететь репорт
  • Перед запуском скрипта, при настройке системы, в конфиг файле поставьте такие значения:
1698697451830.png

  • (замените на 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
Креды для входа по SSH: Ripper:root
1698697571288.png


Настройка интерактивного 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
1698698061340.png

Файл 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 ':

Пример списка используемых эксплоитов:
1698698083290.png


Что делает скрипт:
  • Импортирует необходимые библиотеки и модули, такие как 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
а потом RouterSploit проходится по девайсах сканированием.

Что делает скрипт:
  • Импортирует необходимые библиотеки и модули, такие как 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.py
traffic_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, он отвечает за запуск всех скриптов.
  1. Импортирует необходимые библиотеки и модули, такие как os, time, subprocess, configparser и datetime.
  2. Определяет функцию get_formatted_time(), которая возвращает текущее отформатированное время.
  3. Определяет функцию get_local_ip(), которая получает локальный IP-адрес для указанного сетевого интерфейса.
  4. Определяет функцию check_ip_address(), которая проверяет наличие IP-адреса на указанном интерфейсе и, если его нет, пытается получить его с использованием dhclient.
  5. Определяет функцию start_ssh_service(), которая пытается запустить службу SSH.
  6. В основной части скрипта:
    • Читает конфигурацию из файла "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!
 
Последнее редактирование модератором:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх