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

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

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

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

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

Категории

Все категории
Loading categories
project-memoria-detector — Инструмент активного снятия отпечатков, который идентифицирует 16 встроенных стеков TCP/IP на сетевых устройствах с использованием методов зондирования ICMP, TCP, HTTP, SSH и FTP для оценки уязвимостей. | Kitploit
Инструменты/GitHubGitHub/forescout/project-memoria-detector
Безопасность встроенных системБезопасность IoTАнализ уязвимостейСетевая безопасностьАнализ Прошивок
GitHubforescout/project-memoria-detector

project-memoria-detector

Инструмент активного снятия отпечатков, который идентифицирует 16 встроенных стеков TCP/IP на сетевых устройствах с использованием методов зондирования ICMP, TCP, HTTP, SSH и FTP для оценки уязвимостей.

Популярное

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

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

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

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

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

project-memoria-detector

Инструмент project-memoria-detector предназначен для определения, работает ли на целевом сетевом устройстве конкретный встроенный стек TCP/IP.

В настоящее время инструмент поддерживает отпечатки (fingerprints) для 16 встроенных стеков TCP/IP (и их вариаций):

  • uIP, Contiki or Contiki-NG
  • picoTCP or picoTCP-NG
  • Nut/Net
  • FNET
  • Nucleus NET
  • CycloneTCP
  • NDKTCPIP
  • uC/TCP-IP
  • MPLAB Harmony Net
  • NicheStack
  • FreeBSD
  • Microsoft ThreadX
  • CMX TCP/IP
  • emNet
  • Keil TCP/IP
  • lwIP

Некоторые из перечисленных стеков были признаны уязвимыми в ходе исследования Project Memoria.

Как это работает?

Скрипт идентифицирует использование 16 стеков TCP/IP на целевом устройстве с помощью следующих методов активного снятия отпечатков:

  • ICMP-зондирование: скрипт отправляет некорректный ICMP-запрос и анализирует характеристики ответа, включая изменения значения TTL (Time-to-live) и содержимое полезной нагрузки, которое различается для каждого стека.
  • Сигнатуры TCP-опций: скрипт отправляет TCP SYN-пакет и отслеживает ответ TCP SYN ACK, чтобы определить формат поля TCP-опций. Каждый стек отвечает разными значениями опций, такими как MSS (Maximum Segment Size) и масштаб окна.
  • Обработка флага Urgent в TCP: скрипт отправляет TCP-пакет с установленным флагом Urgent и отслеживает ответ. Каждый стек отвечает разным набором TCP-флагов и разным значением размера окна TCP.
  • HTTP-баннеры и сообщения об ошибках: скрипт выполняет HTTP-запросы к веб-серверу на тестируемом устройстве и проверяет наличие определённых HTTP-заголовков и сообщений об ошибках, специфичных для приложений.
  • SSH-баннеры и сообщения об ошибках: скрипт выполняет запросы к SSH-серверу на тестируемом устройстве и проверяет наличие определённых SSH-баннеров.
  • FTP-баннеры и сообщения об ошибках: скрипт выполняет запросы к FTP-серверу на тестируемом устройстве и проверяет наличие определённых FTP-баннеров.

Хотя скрипт был протестирован в лабораторных условиях, мы не можем гарантировать его безопасность для всех возможных устройств. Некорректные ICMP-пакеты, например, могут привести к сбою устройства, работающего с другим стеком. ПОЭТОМУ МЫ НЕ РЕКОМЕНДУЕМ ИСПОЛЬЗОВАТЬ ЕГО НЕПОСРЕДСТВЕННО В РАБОЧИХ СРЕДАХ С КРИТИЧЕСКИ ВАЖНЫМИ УСТРОЙСТВАМИ (НАПРИМЕР, В БОЛЬНИЦАХ С ПОДКЛЮЧЁННЫМИ К ПАЦИЕНТАМ УСТРОЙСТВАМИ ИЛИ В КРИТИЧЕСКИХ ПРОМЫШЛЕННЫХ СИСТЕМАХ УПРАВЛЕНИЯ). Идеальный подход — тестирование устройств в лабораторных условиях или в окно технического обслуживания.

Зависимости

Обратите внимание, что инструмент тестировался только в среде Linux (должен работать в любом современном дистрибутиве Linux). Предполагается, что в тестовой среде используется iptables (https://linux.die.net/man/8/iptables) в качестве базового брандмауэра.

Инструмент требует установки Python версии 3.x (см. https://www.python.org/, желательно версия >= 3.7.7), а также Scapy (см. https://scapy.net/, желательно версия >= 2.4.3).

Чтобы установить Scapy вместе с Python и для общей диагностики, следуйте документации: https://scapy.readthedocs.io/en/latest/installation.html

Если Python уже установлен на вашем компьютере, для установки необходимых зависимостей можно использовать pip и предоставленный файл requirements.txt:

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

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

Поскольку для запуска Scapy требуются права root, инструмент необходимо запускать с помощью sudo, например:

root@kitploit:~
$ sudo python project-memoria-detector.py [options]

Чтобы просмотреть доступные параметры запуска скрипта, запустите его с опцией -h:

root@kitploit:~
$ python project-memoria-detector.py -h

В общем случае скрипту требуется хотя бы один IP-адрес целевого устройства (этот параметр можно явно указать с помощью -ip_dst):

root@kitploit:~
$ sudo python project-memoria-detector.py 192.168.3.1

Скрипт поддерживает сканирование диапазонов IP-адресов. Вы можете указать подсеть для сканирования в нотации CIDR или предоставить .txt-файл с набором IP-адресов для сканирования.

Нотацию CIDR можно использовать следующим образом (в этом примере будут просканированы IP-адреса с 192.168.3.1 по 192.168.3.254):

root@kitploit:~
$ sudo python project-memoria-detector.py 192.168.3.0/24

Также можно использовать .txt-файл для указания интересующих IP-адресов: каждый IP-адрес в этом файле должен начинаться с новой строки. Например, создадим файл input.txt со следующим содержимым:

root@kitploit:~
$ cat input.txt
192.168.1.8
192.168.1.9
192.168.3.1
192.168.2.14

Затем запустим скрипт следующим образом:

root@kitploit:~
$ sudo python project-memoria-detector.py --in-file input.txt

Скрипт использует значения портов по умолчанию для снятия отпечатков различных протоколов, таких как SSH (22), FTP (21) и HTTP (80). Чтобы переопределить эти значения, вы можете задать их с помощью флагов, например:

root@kitploit:~
$ sudo python project-memoria-detector.py -ip_dst 192.168.212.42 --tcp-port 80 --http-port 80 --ssh-port 22 --ftp-port 21 -i eth1

Интерпретация результатов

Скрипт выводит совпадения с отдельными отпечатками, а также степень уверенности в круглых скобках:

root@kitploit:~
$ sudo python project-memoria-detector.py 192.168.6.42

192.168.6.42 is alive
        ICMP => uIP/Contiki (High)
        TCP => uIP/Contiki (Medium)
        HTTP => uIP/Contiki (High)
        SSH => Unknown (No match)
        FTP => Unknown (No reply)

Степень уверенности для конкретного отпечатка может быть High, Medium или Low. No match означает отсутствие совпадения с известными отпечатками, а No reply — что конкретный порт/служба недоступны.

Лицензия

Copyright (C) 2020 Forescout Technologies, Inc.

Лицензия на программу

«Программа» означает любую охраняемую авторским правом работу, лицензируемую в соответствии с данной Лицензией. Каждый лицензиат упоминается как «вы».

Все права, предоставленные по данной Лицензии, выдаются на срок действия авторского права на Программу и являются безотзывными при соблюдении указанных условий. Данная Лицензия явно подтверждает ваше неограниченное право запускать неизменённую Программу для личного, государственного, коммерческого или некоммерческого использования. Вам запрещается использовать Программу в производных работах в коммерческих целях. Вам запрещается модифицировать Программу для использования в коммерческом продукте или услуге, будь то отдельно или совместно с другим кодом, как загружаемым, так и предоставляемым как услуга. «Производные работы» означают любую работу, будь то в исходной или объектной форме, которая основана на (или происходит от) Программы и для которой редакционные правки, аннотации, доработки или другие модификации в целом представляют собой оригинальное авторское произведение.

Вы можете распространять дословные копии исходного кода Программы в том виде, в котором вы его получили, в любой среде, при условии, что вы заметно и надлежащим образом публикуете на каждой копии соответствующее уведомление об авторских правах; сохраняете нетронутыми все уведомления, сообщающие о том, что данная Лицензия применяется к коду; сохраняете нетронутыми все уведомления об отсутствии каких-либо гарантий; предоставляете каждому получателю копию данной Лицензии вместе с Программой; и не извлекаете финансовой выгоды из продажи или иной передачи Программы, будь то отдельно или совместно с другим кодом, загружаемым или предоставляемым как услуга.

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

Данная Лицензия не даёт разрешения на использование торговых наименований, товарных знаков, знаков обслуживания или названий продуктов Лицензиара, за исключением случаев, необходимых для разумного и обычного использования при описании происхождения Программы и воспроизведении содержания уведомления об авторских правах.

Скачать инструмент