Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ics-forensics-tools — Фреймворк криминалистики с открытым исходным кодом для анализа метаданных и проектных файлов промышленных ПЛК. Сканирует подозрительные артефакты в средах АСУ ТП для поддержки реагирования на инциденты и ручного расследования. | Kitploit
Инструменты/GitHubGitHub/microsoft/ics-forensics-tools
Анализ уязвимостейБезопасность SCADA/ICSФорензикаЦифровая криминалистикаРеагирование на Инциденты
GitHubmicrosoft/ics-forensics-tools

ics-forensics-tools

Фреймворк криминалистики с открытым исходным кодом для анализа метаданных и проектных файлов промышленных ПЛК. Сканирует подозрительные артефакты в средах АСУ ТП для поддержки реагирования на инциденты и ручного расследования.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
371431 год назадПроверено Kitploit

ICSpector: Microsoft ICS Forensics Framework

Microsoft ICS Forensics Tools framework — это фреймворк криминалистики с открытым исходным кодом, позволяющий анализировать метаданные промышленных ПЛК и файлы проектов.
Фреймворк предоставляет следователям удобный способ сканирования ПЛК и выявления подозрительных артефактов в средах АСУ, что может использоваться для ручной проверки, автоматизированных задач мониторинга или операций реагирования на инциденты для обнаружения скомпрометированных устройств.
Будучи инструментом с открытым исходным кодом, ICS Forensics Tools позволяет следователям просматривать результаты и настраивать их под свои конкретные требования.

Начало работы

Эти инструкции помогут вам получить копию проекта и запустить его на локальной машине для целей разработки и тестирования.

root@kitploit:~
git clone https://github.com/microsoft/ics-forensics-tools.git

Предварительные требования

  • Установите Python >= 3.9: https://www.python.org/downloads
  • Установите Microsoft Visual C++ 14.0. Получите его с помощью «Build Tools for Visual Studio»: https://visualstudio.microsoft.com/downloads/

Установка

  • Установите зависимости Python

    root@kitploit:~
    pip install -r requirements.txt
    

Использование

Общие аргументы приложения:

Специфические аргументы плагина:

Примеры выполнения в командной строке

root@kitploit:~
 python driver.py -s -v PluginName --ip ips.csv
 python driver.py -s -v PluginName --ip ips.csv --analyzer AnalyzerName
 python driver.py -s -v -c config.json --multiprocess

Пример импорта как библиотеки

root@kitploit:~
from forensic.client.forensic_client import ForensicClient
from forensic.interfaces.plugin import PluginConfig
forensic = ForensicClient()
plugin = PluginConfig.from_json({
    "name": "PluginName",
    "port": 123,
    "transport": "tcp",
    "addresses": [{"ip": "192.168.1.0/24"}, {"ip": "10.10.10.10"}],
    "parameters": {
    },
    "analyzers": []
})
forensic.scan([plugin])

Архитектура

Добавление плагинов

При локальной разработке убедитесь, что папка src помечена как «Корень источников».

  • Создайте новую директорию в папке plugins с именем вашего плагина
  • Создайте новый Python файл с именем вашего плагина
  • Используйте следующий шаблон для написания плагина и замените 'General' на имя вашего плагина
root@kitploit:~
from pathlib import Path
from forensic.interfaces.plugin import PluginInterface, PluginConfig, PluginCLI
from forensic.common.constants.constants import Transport


class GeneralCLI(PluginCLI):
    def __init__(self, folder_name):
        super().__init__(folder_name)
        self.name = "General"
        self.description = "General Plugin Description"
        self.port = 123
        self.transport = Transport.TCP

    def flags(self, parser):
        self.base_flags(parser, self.port, self.transport)
        parser.add_argument('--general', help='General additional argument', metavar="")


class General(PluginInterface):
    def __init__(self, config: PluginConfig, output_dir: Path, verbose: bool):
        super().__init__(config, output_dir, verbose)

    def connect(self, address):
        self.logger.info(f"{self.config.name} connect")

    def export(self, extracted):
        self.logger.info(f"{self.config.name} export")


  • Убедитесь, что импортировали новый плагин в файле __init__.py в папке plugins
  • В унаследованном классе PluginInterface есть параметр 'config'. Вы можете использовать его для доступа к любым данным, доступным в объекте PluginConfig (имя плагина, адреса, порт, транспорт, параметры).
    Есть две обязательные функции (connect, export).
    • Функция connect получает один IP-адрес и извлекает всю релевантную информацию с устройства, а затем возвращает её.
    • Функция export получает информацию, извлечённую со всех устройств, и там вы можете экспортировать её в файл.
  • В унаследованном классе PluginCLI необходимо в функции init указать информацию по умолчанию, связанную с этим плагином.
    Есть одна обязательная функция (flags), в которой вы должны вызвать base_flags, и вы можете добавить любые дополнительные флаги.

Добавление анализаторов

  • Создайте новую директорию в папке analyzers с именем плагина, к которому относится ваш анализатор.
  • Создайте новый Python файл с именем вашего анализатора
  • Используйте следующий шаблон для написания плагина и замените 'General' на имя вашего анализатора
root@kitploit:~
from pathlib import Path
from forensic.interfaces.analyzer import AnalyzerInterface, AnalyzerConfig


class General(AnalyzerInterface):
    def __init__(self, config: AnalyzerConfig, output_dir: Path, verbose: bool):
        super().__init__(config, output_dir, verbose)
        self.plugin_name = 'General'
        self.create_output_dir(self.plugin_name)

    def analyze(self):
      pass

  • Убедитесь, что импортировали новый анализатор в файле __init__.py в папке analyzers

Ресурсы и технические данные & решение:

Microsoft Defender for IoT — это сетевое решение безопасности без использования агентов, которое позволяет организациям непрерывно отслеживать и обнаруживать активы, выявлять угрозы и управлять уязвимостями в устройствах IoT/OT и промышленных системах управления (ICS) как локально, так и в средах, подключённых к Azure.

Section 52 в блоге MSRC
Лекция по ICS об инструменте
Section 52 - Investigating Malicious Ladder Logic | Microsoft Defender for IoT Webinar - YouTube

Участие

Этот проект приветствует вклад и предложения. Большинство вкладов требуют вашего согласия с Лицензионным соглашением с участником (CLA), которое подтверждает ваше право и фактическое предоставление нам прав на использование вашего вклада. Подробности см. на https://cla.opensource.microsoft.com.

Когда вы отправляете запрос на включение изменений (pull request), бот CLA автоматически определит, нужно ли вам предоставить CLA и соответствующим образом оформит PR (например, проверка статуса, комментарий). Просто следуйте инструкциям, предоставленным ботом. Это нужно сделать только один раз для всех репозиториев, использующих нашу CLA.

Этот проект принял Кодекс поведения Microsoft Open Source. Для получения дополнительной информации ознакомьтесь с Часто задаваемыми вопросами о Кодексе поведения или обратитесь по адресу [email protected] с любыми дополнительными вопросами или комментариями.

Товарные знаки

Этот проект может содержать товарные знаки или логотипы для проектов, продуктов или услуг. Авторизованное использование товарных знаков Microsoft или логотипов подлежит и должно соответствовать Руководству по использованию товарных знаков и брендов Microsoft. Использование товарных знаков или логотипов Microsoft в модифицированных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство со стороны Microsoft. Любое использование товарных знаков или логотипов третьих сторон регулируется политиками этих третьих сторон.

Юридическое заявление об отказе от ответственности

Copyright (c) 2018 Microsoft Corporation. Все права защищены.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, УБЫТКАМ ИЛИ ДРУГИМ ОБЯЗАТЕЛЬСТВАМ, БУДЬ ТО В РАМКАХ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИМ ИЗ, В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ, ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С НИМ.

Скачать инструмент
АргументыОписаниеОбязательный / Необязательный
-h, --helpпоказать это справочное сообщение и выйтиНеобязательный
-s, --save-configСохранить файл конфигурации для удобного использованияНеобязательный
-c, --configПуть к файлу конфигурации, по умолчанию config.jsonНеобязательный
-o, --output-dirКаталог для вывода файлов, по умолчанию outputНеобязательный
-v, --verboseВывод логов в файл и консольНеобязательный
-p, --multiprocessЗапуск в многопроцессорном режиме по количеству плагинов/анализаторовНеобязательный
АргументыОписаниеОбязательный / Необязательный
-h, --helpпоказать это справочное сообщение и выйтиНеобязательный
--ipПуть к файлу адресов, CIDR или CSV-файл с IP-адресами (требуется колонка ip).
добавьте больше колонок для доп. информации об IP (имя пользователя, пароль и т.д.)
Обязательный
--portНомер портаНеобязательный
--transporttcp/udpНеобязательный
--analyzerИмя анализатора для запускаНеобязательный