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

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

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

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

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

Категории

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

ics-forensics-tools

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

Репозиторий
37143741 год назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

ICSpector: Microsoft ICS Forensics Framework

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

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

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

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

    pip install -r requirements.txt
    

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

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

АргументыОписаниеОбязательный / Необязательный
-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Имя анализатора для запускаНеобязательный

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

 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

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

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' на имя вашего плагина
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' на имя вашего анализатора
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
Скачать инструмент