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
malcom — Malcom - Analizzatore di Comunicazioni di Malware | Kitploit
Strumenti/GitHubGitHub/tomchop/malcom
Network ForensicsAnalisi MalwareThreat Intelligence
GitHubtomchop/malcom

malcom

Malcom - Analizzatore di Comunicazioni di Malware

Vedi Repository
1.2k21618 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

Malcom - Analizzatore di Comunicazioni Malware

Malcom è uno strumento progettato per analizzare le comunicazioni di rete di un sistema utilizzando rappresentazioni grafiche del traffico di rete e confrontarle con fonti di malware note. Questo è utile quando si analizza come determinate specie di malware cercano di comunicare con il mondo esterno.

  • Cos'è Malcom?
  • Guida rapida
  • Installazione
  • Opzioni di configurazione
  • Istanza Docker
  • Nota rapida sull'intercettazione TLS
  • Ambiente
  • Feed
  • Specifiche tecniche
  • Roadmap
  • Disclaimer
  • Licenza

Cos'è Malcom?

Malcom può aiutarti a:

  • rilevare server di comando e controllo (C&C)
  • comprendere reti peer-to-peer
  • osservare infrastrutture DNS fast-flux
  • determinare rapidamente se un artefatto di rete è 'noto-cattivo'

L'obiettivo di Malcom è rendere l'analisi del malware e la raccolta di intelligence più veloci fornendo una versione leggibile del traffico di rete proveniente da un dato host o rete. Converti le informazioni sul traffico di rete in intelligence utilizzabile più rapidamente.

Consulta il wiki per una guida rapida con alcuni screenshot e un tutorial su come aggiungere i tuoi feed.

Se hai bisogno di aiuto o vuoi contribuire, sentiti libero di iscriverti alla mailing list o provare a contattare qualcuno su IRC (#malcom su freenode.net, è piuttosto silenzioso ma c'è sempre qualcuno in giro). Puoi anche contattarmi su Twitter @tomchop_

Ecco un esempio di grafico per l'host tomchop.me nodes-tomchop.png

Vista del dataset (filtrata per mostrare solo IP) dataset-view.png

Guida rapida

  • Installa
  • Assicurati che mongodb e redis-server siano in esecuzione
  • Eleva i tuoi privilegi a root (sì, lo so, vedi disclaimer)
  • Avvia il webserver usando la configurazione predefinita con ./malcom.py -c malcom.conf (o visualizza le opzioni con ./malcom.py --help) ** Per un file di configurazione di esempio, puoi copiare malcom.conf.example in malcom.conf ** La porta predefinita è 8080 ** In alternativa, esegui i feed da celery. Vedi la sezione feed per i dettagli su come fare.

Installazione

Malcom è scritto in Python. A condizione che tu abbia le librerie necessarie, dovresti essere in grado di eseguirlo su qualsiasi piattaforma. Raccomando vivamente l'uso di ambienti virtuali Python (virtualenv) per non sporcare le librerie di sistema.

Quanto segue è stato testato su Ubuntu server 14.04 LTS:

  • Installa git, python e le librerie libevent, mongodb, redis e altre dipendenze

    root@kitploit:~
      $ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
    
  • Clona il repository Git:

    root@kitploit:~
      $ git clone https://github.com/tomchop/malcom.git malcom
    
  • Crea il tuo virtualenv e attivalo:

    root@kitploit:~
      $ cd malcom
      $ virtualenv env-malcom
      $ source env-malcom/bin/activate
    
  • Ottieni e installa scapy:

    root@kitploit:~
      $ cd .. 
      $ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
      $ tar xvzf scapy-latest.tar.gz
      $ cd scapy-2.1.0
      $ python setup.py install
    
  • Sempre dal tuo virtualenv, installa i pacchetti Python necessari dal file :

Opzioni di configurazione

Database

Per impostazione predefinita, Malcom proverà a connettersi a un'istanza mongodb locale e creerà il proprio database, chiamato malcom. Se per te va bene, puoi saltare i passaggi seguenti. Altrimenti, devi modificare la sezione database del tuo file malcom.conf.

Impostare un altro nome per il tuo database Malcom

Per impostazione predefinita, Malcom utilizzerà un database chiamato malcom. Puoi cambiare questo comportamento modificando il file malcom.conf e impostando la direttiva name nella sezione database a tuo piacimento.

root@kitploit:~
    [database]
    ...
    name = my_malcom_database
    ...
Database remoti

Per impostazione predefinita, Malcom proverà a connettersi a localhost, ma il tuo database potrebbe trovarsi su un altro server. Per cambiare, imposta la direttiva hosts. Puoi usare nomi host o indirizzi IPv4/v6 (ricorda di racchiudere gli indirizzi IPv6 tra [ e ], ad esempio [::1]).

Se desideri utilizzare un database autonomo sull'host my.mongo.server, imposta:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo.server
    ...

Puoi anche specificare la porta su cui mongod è in ascolto indicandola dopo il nome/indirizzo del server, separata da :

root@kitploit:~
    [database]
    ...
    hosts = localhost:27008
    ...

E se stai utilizzando un ReplicaSet che raggruppa my.mongo1.server e my.mongo2.server, imposta:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo1.server,my.mongo2.server
    ...
Usare l'autenticazione

Potresti aver configurato le tue istanze mongod per richiedere connessioni autenticate. In tal caso, devi impostare il nome utente che il driver dovrà usare per connettersi alla tua istanza mongod. Per farlo, aggiungi una direttiva username alla sezione database nel file malcom.conf. Potresti anche dover impostare la password con la direttiva password. Se l'utente non ha una password, ignora (cioè commenta) la direttiva password.

root@kitploit:~
    [database]
    ...
    username = my_user
    password = change_me
    ...

Se l'utente non è collegato al database malcom ma a un altro (ad esempio il database admin per un utente amministratore), dovrai impostare la direttiva authentication_database con il nome di quel database.

root@kitploit:~
    [database]
    ...
    authentication_database = some_other_database
    ...
Caso di un replica set

Quando si utilizza un replica set, potresti dover assicurarti di essere connesso a quello giusto. Per farlo, aggiungi la direttiva replset per forzare il driver mongo a verificare il nome del replicaset

root@kitploit:~
    [database]
    ...
    replset = my_mongo_replica
    ...

Per impostazione predefinita, Malcom proverà a connettersi al nodo primario del replica set. Potresti aver bisogno/volete cambiarlo. Per cambiare questo comportamento, imposta la direttiva read_preference. Vedi la documentazione di Mongo per maggiori informazioni.

root@kitploit:~
    [database]
    ...
    read_preference = NEAREST
    ...

Le preferenze di lettura supportate sono:

  • PRIMARY
  • PRIMARY_PREFERRED
  • SECONDARY
  • SECONDARY_PREFERRED
  • NEAREST

Istanza Docker

Il modo più veloce per iniziare è scaricare l'immagine Docker dal repository docker pubblico. Per scaricare build Docker più vecchie e stabili, usa tomchop/malcom invece di tomchop/malcom-automatic.

root@kitploit:~
    $ sudo docker pull tomchop/malcom-automatic
    $ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic

Connettendoti a http://<docker_host>:8080/ dovresti essere pronto per iniziare.

Nota rapida sull'intercettazione TLS

Malcom ora supporta l'intercettazione TLS. Affinché funzioni, devi generare alcune chiavi in Malcom/networking/tlsproxy/keys. Vedi il file KEYS.md lì per maggiori informazioni su come fare.

Assicurati di avere anche IPtables (dovresti già averlo) e i permessi per fare port forwarding con esso (di solito devi essere root per farlo).

Puoi farlo usando il pratico script forward_port.sh. Ad esempio, per intercettare tutte le comunicazioni TLS verso la porta 443, usa forward_port.sh 443 9999. Dovrai quindi dire a malcom di eseguire un proxy di intercettazione sulla porta 9999.

Ci si aspetta che questo processo venga automatizzato in future versioni.

Ambiente

Malcom è stato progettato e testato su una VM Ubuntu Server 14.04 LTS.

Se sei abituato a fare analisi di malware, probabilmente hai già dozzine di macchine virtuali in esecuzione su un sistema operativo host. Installa Malcom su una nuova VM e instrada le connessioni delle altre VM attraverso Malcom. Usa enable_routing.sh per attivare il routing/NAT sulla VM su cui Malcom è in esecuzione. Dovrai aggiungere una scheda di rete extra al sistema operativo guest.

Fintanto che riceve dati di rete di livello 3, Malcom può essere distribuito ovunque. Anche se non è consigliato utilizzarlo su reti ad alta disponibilità (non è stato progettato per essere veloce, vedi disclaimer), puoi farlo funzionare all'estremità della porta mirror del tuo switch o sul tuo gateway.

Feed

Per avviare un'istanza di Malcom che recuperi SOLO informazioni dai feed, esegui Malcom con l'opzione --feeds o modifica il file di configurazione.

Il tuo database dovrebbe essere popolato automaticamente. Se riesci a scavare nel codice, aggiungere feed è piuttosto semplice (supponendo che tu stia generando oggetti Evil). Puoi trovare un feed di esempio in /feeds/zeustracker. Un tutorial più dettagliato è disponibile qui.

Puoi anche usare celery per eseguire i feed. Assicurati che celery sia installato eseguendo $ pip install celery dal tuo virtualenv. Puoi quindi usare celery worker -E --config=celeryconfig --loglevel=DEBUG --concurrency=12 per avviare il processo di alimentazione con 12 worker simultanei.

Specifiche tecniche

Malcom è stato scritto per lo più da zero, in Python. Utilizza i seguenti framework per funzionare:

  • flask - un framework web Python leggero
  • mongodb - un database NoSQL. Si interfaccia a Python con pymongo
  • redis - un avanzato archivio chiave-valore in memoria
  • d3js - una libreria JavaScript che produce fantastici grafici a forza diretta (https://github.com/mbostock/d3/wiki/Gallery)
  • bootstrap - un framework CSS che alla fine ucciderà il web design, ma rende estremamente facile "webizzare" rapidamente applicazioni che funzionerebbero solo tramite riga di comando.

Roadmap

Collaborazione - La principale direzione in cui voglio portare questo strumento è diventare collaborativo. Ho alcune idee per questo e penso che diventerà 100 volte più utile una volta implementata la condivisione dei dati.

Estendibilità - L'altra cosa che voglio includere nello strumento è la capacità di estenderlo più facilmente. Non ho le stesse esigenze di tutti gli altri e questo strumento è stato concepito pensando alle mie esigenze. Ora puoi personalizzare Malcom aggiungendo nuovi feed.

Una volta che collaborazione ed estensione saranno operative, penso che sarà utile per più di un incident responder là fuori. :-)

Disclaimer

Questo strumento è stato codificato nel mio tempo libero. Come un enorme numero di strumenti che scarichiamo e usiamo quotidianamente, non consiglierei di usarlo in un ambiente di produzione dove la stabilità e l'affidabilità dei dati sono un MUST.

  • Potrebbe essere rotto, avere falle di sicurezza (eseguirlo come root in ambienti non controllati probabilmente non è una buona idea), o non funzionare affatto.
  • È scritto in Python, quindi non aspettarti che sia ultra-veloce o che gestisca enormi quantità di dati facilmente.
  • Non sono un programmatore, quindi non aspettarti di vedere bellissimo codice pythonico ovunque guardi. O molti commenti.

È nelle prime fasi di sviluppo, il che significa "funziona per me". Sei libero di condividerlo, migliorarlo, chiedere pull request.

Licenza

Malcom - Analizzatore di comunicazioni malware Copyright (C) 2013 Thomas Chopitea

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Si prega di notare che Redis, MongoDB, d3js, Maxmind e Bootstrap (e altre librerie di terze parti incluse in Malcom) possono avere le proprie licenze compatibili con GPL.

Scarica lo strumento
requirements.txt
root@kitploit:~
  $ cd ../malcom
  $ pip install -r requirements.txt
  • Affinché la geolocalizzazione IP funzioni, devi scaricare il database Maxmind ed estrarre il file nella directory malcom/Malcom/auxiliary/geoIP. Puoi ottenere il database gratuito (e quindi più o meno accurato) di Maxmind dal seguente link: http://dev.maxmind.com/geoip/geoip2/geolite2/:

    root@kitploit:~
      $ cd Malcom/auxiliary/geoIP
      $ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
      $ gunzip -d GeoLite2-City.mmdb.gz
      $ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
    
  • Avvia il webserver dalla directory malcom usando ./malcom.py. Controlla ./malcom.py --help per l'interfaccia di ascolto e le porte.

    • Per iniziare, puoi copiare il file malcom.conf.example in malcom.conf ed eseguire ./malcom.py -c malcom.conf