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
inhale — Uno strumento di analisi e classificazione di malware. | Kitploit
Strumenti/GitHubGitHub/netspooky/inhale
Analisi StaticaAnalisi HashInformatica ForenseRaccolta InformazioniAnalisi MalwareAnalisi di Binari
GitHubnetspooky/inhale

inhale

Uno strumento di analisi e classificazione di malware.

Vedi Repository
191335 anni faRevisionato da Kitploit

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

Inhale - Inalatore di Malware

Inhale è uno strumento di analisi e classificazione di malware in grado di automatizzare e scalare molte operazioni di analisi statica.

Questa è la versione beta, a scopo di test, feedback e sviluppo comunitario.

Contesto

Inhale è nato come una serie di piccoli script che usavo per raccogliere e analizzare grandi quantità di malware da fonti diverse. Esistono molti framework e strumenti per fare lavori simili, ma nessuno si adattava davvero al mio flusso di lavoro per trovare rapidamente, classificare e memorizzare informazioni su un gran numero di file. Alcuni richiedono anche costose chiavi API e altri servizi a pagamento.

Ho finito per trasformare questi script in qualcosa che le persone possono rapidamente configurare e utilizzare, sia che si esegua da un server di ricerca, un laptop o un computer a basso costo come un Raspberry Pi.

Installazione

Questo strumento è progettato per funzionare su Linux utilizzando Python3, ElasticSearch, radare2, yara e binwalk. jq è anche necessario per stampare in modo leggibile l'output del database. Ecco alcune istruzioni di base per l'installazione.

Ci sono molte cose nel file config.yml che non sono ancora state impostate, lasciale stare a meno che non sia diversamente indicato in questa documentazione.

Python3

Installa i requisiti

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

Installazione di ElasticSearch (Debian)

Un database non è necessario per usare Inhale, ma se desideri impostarne uno, segui queste istruzioni e imposta l'opzione "enable_database" in config.yml su True.

Documentazione

root@kitploit:~
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo service elasticsearch start

Puoi anche installare manualmente seguendo questa documentazione

Inoltre puoi impostare un ELK stack completo per scopi di visualizzazione e analisi dei dati. Non è necessario per l'uso di questo strumento.

Installazione di radare2

È importante installare radare2 dal repo, e non dal tuo gestore di pacchetti. Le versioni dei gestori di pacchetti non hanno tutte le funzionalità necessarie per inhale.

root@kitploit:~
git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

Installazione di Yara

Documentazione

root@kitploit:~
sudo apt-get install automake libtool make gcc
wget https://github.com/VirusTotal/yara/archive/v3.10.0.tar.gz
tar xvzf v3.10.0.tar.gz
cd yara-3.10.0/
./bootstrap.sh
./configure
make
sudo make install

Se ricevi errori riguardanti oggetti condivisi, prova questo per risolvere.

root@kitploit:~
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

Installazione di binwalk

Probabilmente è meglio installare binwalk semplicemente dal repo.

root@kitploit:~
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install

Maggiori informazioni sull'installazione di funzionalità aggiuntive per binwalk si trovano qui.

Installazione di telfhash/tshl

Questa è una libreria che calcola l'hash di sezioni di file ELF per l'analisi delle famiglie di malware. telfhash dipende da tlsh, quindi le istruzioni per installarli entrambi sono le seguenti:

Configura tlsh

root@kitploit:~
git clone https://github.com/trendmicro/tlsh
cd tlsh
./make.sh
cd py_ext/
python3 ./setup.py build
sudo python3 ./setup.py install

Configura telfhash

root@kitploit:~
git clone https://github.com/trendmicro/telfhash
cd telfhash
sudo python3 setup.py install

Configurazione del server web

Se vuoi usare un server web per ospitare l'output di inhale da condividere, imposta le variabili in config.yml con i percorsi appropriati e assicurati che le directory esistano!

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # The actual web directory
  fqdn: "http://threat.land" # Your website
  in_path: "/var/www/html/inhaled/" # The path to inhale output
  ex_path: "/var/www/html/exhaled/" # The path for db query cache output

Per usare l'output html, esegui inhale così:

root@kitploit:~
python3 inhale.py [all your args here] --html

Utilizzo

Specifica il file da analizzare in base al tipo:

root@kitploit:~
-f INFILE      Analyze a single file
-d DIRECTORY   Analyze a directory of files
-u URLFILE     Analyze a remote file (url)
-r RDIRECTORY  Analyze a remote directory (url)
-l URLLIST     Analyze a list of URLs in a text file

Altre opzioni:

root@kitploit:~
-t TAGS        Add additional tags to the output.
-b             Turn off binwalk signatures
-y YARARULES   Specify custom Yara Rules
-o OUTDIR      Store scraped files in specific output dir (default: ./files/<date>/)
-i             Just print info, don't add files to database
--html         Save output as html to the webdir.

Esempi

Eseguendo inhale.py verrà eseguita tutta l'analisi su un file/directory/url dato e verrà stampata sul terminale.

Visualizza info su /bin/ls, ma non aggiungere al database

root@kitploit:~
python3 inhale.py -f /bin/ls -i 

Aggiungi la directory 'malwarez' al database

root@kitploit:~
python3 inhale.py -d malwarez/

Scarica questo file e aggiungilo al database

root@kitploit:~
python3 inhale.py -u https://thugcrowd.com/chal/skull

Scarica tutto in questa directory remota, etichetta tutto come "phishing":

root@kitploit:~
python3 inhale.py -r http://someurl.com/opendir/ -t phishing

SUGGERIMENTO: Usa questa ricerca di hashtag di Twitter per trovare directory aperte interessanti che potrebbero contenere malware. Usa a tuo rischio.

Yara

Puoi passare le tue regole yara con -y, questo è un grande lavoro in corso e quasi tutto in "YaraRules" proviene da https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules. Un ringraziamento a @KevTheHermit

Interrogazione del Database

Usa db.sh per interrogare (Presto sarà un bel script)

root@kitploit:~
db.sh *something* | jq .

Modello Dati

Il seguente è il modello dati attuale utilizzato per il database elasticsearch. Non tutti questi campi saranno utilizzati per ogni file. I tag r2_* sono tipicamente riservati a binari di qualche tipo.

Soluzioni ai Problemi

Ci sono alcuni problemi noti con questo progetto (principalmente legati alle versioni dei gestori di pacchetti), e qui terrò traccia di tutto ciò che ha una soluzione.

Limite dei campi dell'indice ElasticSearch

Se ricevi un errore come questo:

root@kitploit:~
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Limit of total fields [1000] in index [inhaled] has been exceeded')

Potresti avere una versione obsoleta di elasticSearch. Puoi aggiornare, oppure aumentare il limite dei campi con questa riga.

root@kitploit:~
curl -XPUT 'localhost:9200/inhaled/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "mapping" : { "total_fields" : { "limit" : "100000" }}}}'

Funzionalità Future

  • Rifare il plugin bot per Discord / Matrix
  • Funzionalità aggiuntive di analisi binaria - estrazione delle tabelle di import/export, hashing di strutture specifiche nell'header, registrazione di tutte le stringhe ecc. Alcune implementate in telfhash!
  • Controllare se il file è il database prima di aggiungere. Questa funzionalità è stata rimossa in precedenza a causa di problemi specifici con versioni obsolete di ES.
  • Opzioni di configurazione per le richieste come: user agent, timeout, proxy ecc.
  • Dockerizzazione dell'intero progetto.

Contributi

Le PR sono benvenute! Se vuoi dare un feedback specifico, puoi anche contattarmi in DM su Twitter @netspooky.

Ringraziamenti

Vorrei ringraziare tutti coloro che mi hanno aiutato a testare questo strumento. Vorrei anche ringraziare Plazmaz per aver fatto una prima pulizia del codice per renderlo un po' più ordinato.

Saluti a: hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd, e tutti i coinvolti con ThreatLand e la TC Safari Zone.

Scarica lo strumento
NameDescrizione
filenameIl percorso completo del binario
file_extL'estensione del file
filesizeLa dimensione del file
filetypeTipo di file basato sul magic number. Non affidabile come le firme di binwalk.
md5L'hash MD5 del file
sha1L'hash SHA1 del file
sha256L'hash SHA256 del file
addedLa data di aggiunta del file
r2_archArchitettura del file binario
r2_baddrIndirizzo base del binario
r2_binszDimensione del codice del programma
r2_bitsBit dell'architettura - 8/16/32/64 ecc.
r2_canarySe i canary dello stack sono abilitati
r2_classClasse del binario
r2_compiledData di compilazione del binario
r2_dbg_fileFile di debug del binario
r2_intrpL'interprete chiamato dal binario se collegato dinamicamente
r2_langLinguaggio del codice sorgente
r2_lsymsSe ci sono simboli di debug
r2_machineTipo di macchina, di solito la CPU per cui è il binario
r2_osSistema operativo su cui la macchina dovrebbe funzionare
r2_picSe c'è codice indipendente dalla posizione (PIC)
r2_relocsSe ci sono rilocazioni
r2_rpathPercorso di ricerca a runtime - se applicabile
r2_strippedSe il binario è stripped
r2_subsysSottosistema del binario
r2_formatFormato del binario
r2_iorwSe sono presenti chiamate ioctl
r2_typeTipo del binario, se è un eseguibile, oggetto condiviso ecc.
yaraContiene una lista di corrispondenze yara
binwalkContiene una lista di firme binwalk e le loro posizioni nel binario
tagsEventuali tag definiti dall'utente passati con il flag -t.
urlURL di origine se il file è stato scaricato da remoto
urlsQualsiasi URL estratto dal binario