Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
project-memoria-detector — Strumento di fingerprinting attivo che identifica 16 stack TCP/IP embedded su dispositivi di rete utilizzando tecniche di probing ICMP, TCP, HTTP, SSH e FTP per la valutazione delle vulnerabilità. | Kitploit
Strumenti/GitHubGitHub/forescout/project-memoria-detector
Sicurezza Sistemi EmbeddedSicurezza IoTAnalisi delle VulnerabilitàSicurezza di ReteAnalisi del Firmware
GitHubforescout/project-memoria-detector

project-memoria-detector

Strumento di fingerprinting attivo che identifica 16 stack TCP/IP embedded su dispositivi di rete utilizzando tecniche di probing ICMP, TCP, HTTP, SSH e FTP per la valutazione delle vulnerabilità.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
323465 anni faRevisionato da Kitploit

project-memoria-detector

Lo strumento project-memoria-detector ha lo scopo di determinare se un dispositivo di rete target esegue uno stack TCP/IP embedded specifico.

Attualmente, lo strumento supporta le impronte digitali per 16 stack TCP/IP embedded (e le loro varianti):

  • uIP, Contiki o Contiki-NG
  • picoTCP o 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

Diversi degli stack sopra menzionati sono risultati vulnerabili durante la ricerca del Project Memoria.

Come funziona?

Lo script identifica l'uso dei 16 stack TCP/IP su un dispositivo target tramite i seguenti metodi di fingerprinting attivi:

  • Sondaggio ICMP: lo script invia una richiesta echo ICMP malformata e verifica le caratteristiche della risposta, incluse le variazioni del valore Time-to-live (TTL) e il contenuto specifico del payload, che varia per ogni stack.
  • Firme delle opzioni TCP: lo script invia un pacchetto TCP SYN e monitora la risposta TCP SYN ACK per il formato del campo delle opzioni TCP. Ogni stack risponde con valori diversi per le opzioni, come Maximum Segment Size (MSS) e window scale.
  • Gestione del flag TCP Urgent: lo script invia un pacchetto TCP con il flag Urgent impostato e monitora la risposta. Ogni stack risponde con un diverso insieme di flag TCP e un diverso valore di dimensione della finestra TCP.
  • Banner HTTP e messaggi di errore: lo script effettua richieste HTTP a un webserver ospitato su un dispositivo in test e verifica la presenza di intestazioni HTTP specifiche e messaggi di errore specifici dell'applicazione.
  • Banner SSH e messaggi di errore: lo script effettua richieste a un server SSH ospitato su un dispositivo in test e verifica la presenza di banner SSH specifici.
  • Banner FTP e messaggi di errore: lo script effettua richieste a un server FTP ospitato su un dispositivo in test e verifica la presenza di banner FTP specifici.

Sebbene lo script sia stato testato in ambiente di laboratorio, non possiamo garantirne l'uso sicuro su ogni possibile dispositivo. I pacchetti ICMP malformati, ad esempio, potrebbero far crashare un dispositivo che esegue uno stack diverso. PERTANTO, NON RACCOMANDIAMO L'USO DIRETTO IN AMBIENTI LIVE CON DISPOSITIVI MISSION-CRITICAL (COME OSPEDALI CON DISPOSITIVI COLLEGATI AI PAZIENTI O SISTEMI DI CONTROLLO INDUSTRIALE SAFETY-CRITICAL). Un approccio ideale è testare i dispositivi in un ambiente di laboratorio o durante una finestra di manutenzione.

Dipendenze

Si noti che lo strumento è stato testato solo in un ambiente di test Linux (qualsiasi distribuzione Linux moderna dovrebbe funzionare). Si presume che l'ambiente di test utilizzi iptables (https://linux.die.net/man/8/iptables) come firewall di base.

Lo strumento richiede una versione recente di Python 3.x (vedere https://www.python.org/, è preferibile la versione >= 3.7.7), oltre a Scapy (vedere https://scapy.net/, è preferibile la versione >= 2.4.3).

Per installare Scapy insieme a Python e per la risoluzione dei problemi generali, si prega di seguire la documentazione qui: https://scapy.readthedocs.io/en/latest/installation.html

Se Python è già installato sulla tua macchina, per installare le dipendenze richieste puoi usare pip e il file requirements.txt fornito:

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

Utilizzo di base

Poiché Scapy richiede privilegi di root per essere eseguito, lo strumento deve essere lanciato con sudo, ad esempio:

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

Per vedere le opzioni disponibili per l'esecuzione dello script, eseguilo con l'opzione -h:

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

In generale, lo script richiede almeno un singolo indirizzo IP del dispositivo target (questo parametro può essere specificato esplicitamente con -ip_dst)

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

Lo script supporta la scansione di intervalli di indirizzi IP. Puoi specificare una sottorete da scansionare usando la notazione CIDR, oppure fornire un file .txt con un insieme di indirizzi IP da scansionare.

La notazione CIDR può essere usata come segue (per questo esempio, verranno scansionati gli indirizzi IP da 192.168.3.1 a 192.168.3.254:

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

Puoi anche usare un file .txt per specificare gli indirizzi IP di interesse: ogni indirizzo IP in questo file deve iniziare su una nuova riga. Ad esempio, possiamo creare un file chiamato input.txt con il seguente contenuto:

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

Possiamo quindi eseguire lo script come segue:

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

Lo script utilizza valori predefiniti per le porte per rilevare diversi protocolli come SSH (22), FTP (21) e HTTP (80). Per sovrascrivere questi valori predefiniti, puoi impostare i flag come:

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

Interpretazione dei risultati

Lo script mostrerà le corrispondenze con le singole impronte digitali e il grado di certezza tra parentesi tonde:

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)

Il grado di certezza di una particolare impronta digitale può essere High, Medium o Low. No match significa che non c'è stata corrispondenza con nessuna impronta digitale conosciuta, e No reply significa che una porta/servizio specifico non è disponibile.

Licenza

Copyright (C) 2020 Forescout Technologies, Inc.

Licenza del Programma

"Il Programma" si riferisce a qualsiasi opera protetta da copyright concessa in licenza secondo questa Licenza. Ogni licenziatario è indicato come "tu".

Tutti i diritti concessi ai sensi di questa Licenza sono concessi per la durata del copyright sul Programma e sono irrevocabili, a condizione che siano soddisfatte le condizioni stabilite. Questa Licenza afferma esplicitamente la tua libertà illimitata di eseguire il Programma non modificato per uso personale, governativo, commerciale o senza scopo di lucro. Ti è vietato utilizzare il Programma in opere derivate per scopi commerciali. Ti è vietato modificare il Programma per essere utilizzato in un prodotto o servizio commerciale, da solo o in combinazione con altro codice, scaricabile o accessibile come servizio. Per "Opere derivate" si intende qualsiasi opera, sia in forma sorgente che oggetto, basata (o derivata) dal Programma e per la quale le revisioni editoriali, annotazioni, elaborazioni o altre modifiche rappresentano, nel loro insieme, un'opera d'autore originale.

Puoi distribuire copie verbatim del codice sorgente del Programma così come lo ricevi, con qualsiasi mezzo, a condizione che su ogni copia pubblichi in modo visibile e appropriato un avviso di copyright appropriato; mantieni intatti tutti gli avvisi che indicano che questa Licenza si applica al codice; mantieni intatti tutti gli avvisi di assenza di qualsiasi garanzia; fornisci a tutti i destinatari una copia di questa Licenza insieme al Programma; e non trarre beneficio finanziario dalla vendita o altra cessione del Programma da solo o in combinazione con altro codice, scaricato o accessibile come servizio.

IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.

Questa Licenza non concede il permesso di utilizzare i nomi commerciali, marchi, marchi di servizio o nomi di prodotto del Licenziante, se non per l'uso ragionevole e consueto nella descrizione dell'origine del Programma e nella riproduzione del contenuto dell'avviso di copyright.

Scarica lo strumento