
Framework di valutazione delle vulnerabilità e auditing per tutte le implementazioni crittografiche.
#LAMMA (BETA)
###Framework di Valutazione delle Vulnerabilità per tutte le Implementazioni Crypto.
(Un'iniziativa Open Source di - SECURITY MONX )
Documentazione del Framework Lamma (beta)
Nome File : README
Autore : @ajithatti
Organizzazione : Security Monx
Versione : 0.0.1
Scopo : Fornisce un'introduzione al Framework Lamma (beta)
Indice dei Contenuti :
A. Informazioni sulle Licenze
B. Introduzione al Framework Lamma (beta)
C. Dipendenze
D. Utilizzo di LAMMA
E. Funzionalità
F. Note
G. Collaboratori
A. Informazioni sulle Licenze
Il Framework LAMMA (beta) e i suoi documenti non sono coperti da alcuna licenza.
Sei libero di usarlo in qualsiasi modo desideri. Nessuna condizione di sorta.
Per dettagli sul progetto visita il nostro sito web
"http://www.securitymonx.com/Project-LAMMA"
B. Introduzione al Framework LAMMA (beta)
Il Framework LAMMA (beta) mira a essere una suite completa per l'audit della crittografia, PKI e implementazioni correlate.
LAMMA (beta) supporta 4 moduli principali
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - Il modulo scansiona gli host remoti per la configurazione SSL/TLS e segnala eventuali lacune o vulnerabilità scoperte.
Controlli Principali :
a) Versione SSL/TLS, gestione delle sessioni e parametri configurabili del server
c) Verifica dell'uso di cipher suite vulnerabili/deprecate
b) Test del certificato del server
Tipo di verifica (EV/OV/DV)
Analisi temporale delle vulnerabilità SSL/TLS applicabili
Verifica, validazione
Fughe di informazioni
Modulo comune
Forza dell'algoritmo di firma
Nomi alternativi
CRYPTO - Questo modulo controlla le varie primitive crittografiche generate da qualsiasi framework sottostante per Qualità, backdoor e sanità. Alcune di esse
Controlli Principali :
Test di qualità per il numero casuale generato
Controlli di sanità per numeri primi condivisi in chiavi RSA multiple
Test di primalità sicura e forte
Test del modulo condiviso
MalSha, Test di digest malformati
TRUST - Il modulo controlla vari trust e key store per - chiavi private insicure e certificati non fidati.
Controlli Principali:
a) Chiavi Private
Archiviate con/senza crittografia
Permessi di accesso
Tracciamento di più istanze
Estrarre il primo per il test del modulo CRYPTO
b) Chiave Pubblica
Estrarre il modulo per il test del modulo CRYPTO
Tracciamento di più istanze
b) Certificati
Controllo nel trust store e CRL
Elencare certificati bloccati e non fidati
Tracciamento di più istanze
Verifica, analisi temporale in comune con il modulo REMOTE
C. Dipendenze : LAMMA necessita di alcuni pacchetti Python per il suo funzionamento. L'elenco dei pacchetti richiesti è :
1. cmd2 - Esegue la shell personalizzata di Lamma
pip install cmd2
2. subprocess - Invoca Openssl o altri script
pip install subprocess
3. pyOpenSSL - Wrapper su OpenSSL
pip install openssl
D. Utilizzo di LAMMA :
LAMMA.py avvia il framework, con una schermata di benvenuto e porta al prompt LAMMA
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Vulnerability Assessment and Auditing Framework
for all the Crypto Implementations.
(An Open Source Project)
by
SECURITY MONX
LAMMA :
Puoi visualizzare un micro-aiuto per ciascun modulo usando il comando "help module"
LAMMA : help trust
Scansiona un trust/key store dato per - certificati non fidati, chiavi private insicure,
LAMMA : help source
Scansiona il codice sorgente per funzioni note deboli o con backdoor
LAMMA : help crypto
Genera chiavi, hash, numeri casuali sotto vari schemi per un dato numero di volte
LAMMA : help remote
Scansiona l'host remoto e riporta il profilo di configurazione SSL/TLS e le vulnerabilità applicabili
LAMMA :
Per sapere come utilizzare ciascun modulo, basta digitare il nome del modulo e si otterrà un aiuto dettagliato sull'uso.
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
Scopo : Scansionare un host remoto con il plugin dato su connessione SSL/TLS
-H [--help] : stampa questo aiuto sull'uso
-s [--script] : scansiona il target con l'id script dato o 'all','gen', o 'reg'
-l [--list] : elenca tutti i plugin e gli ID plugin
-o [--out] : i report vengono salvati in questo file, altrimenti file predefinito
-i [--in] : nome del file di input con più IP:Porta specificati in ogni riga
-p [--port] : porta su cui effettuare la connessione SSL o TLS
-h [--host] : IP o nome dominio dell'host remoto da connettere
LAMMA :
E. Funzionalità :
Il progetto LAMMA è in corso di sviluppo. Insieme a molte funzionalità, stiamo cercando di attenerci a questi principi di base :
1. Semplice : L'utente non deve avere una conoscenza approfondita della crittografia per usare questo framework. Dovrebbe essere intuitivo e semplice da usare con un apprendimento minimo.
2. Estensibile : Il framework dovrebbe essere estensibile. La comunità di utenti dovrebbe essere in grado di estendere facilmente le funzionalità aggiungendo plugin personalizzati.
3. Indipendente : Il framework stesso usa OpenSSL e wrapper Python su di esso, ma può essere utilizzato per testare la crittografia, PKI e implementazioni correlate, indipendentemente dalla tecnologia utilizzata (come Java, NSS, GnuTLS, SChannel) per realizzarle.
4. Automazione : "Valutazione su larga scala delle implementazioni crittografiche, con facilità" è il nostro focus principale alla base della progettazione di questo framework.
F. Note :
a. LAMMA(beta) è un progetto vivo.
b. Attualmente è costruito per la piattaforma Linux
c. Il codice è fornito con tutti i diritti e i bug a te senza alcuna garanzia o responsabilità da parte dell'autore
d. Accogliamo bug, commenti, critiche, contributi o anche una semplice nota sulla tua esperienza con LAMMA (beta). Scrivici a
a j i t [ a t ] s e c u r i t y m o n x [ d o t ] c o m
G.Collaboratori
1. Ajit Hatti - @ajithatti <twitter handle>
SOURCE - Il modulo è principalmente per applicare le raccomandazioni del "Cryptography Review Board" della tua organizzazione. Questo modulo scansiona il codice sorgente per l'uso di schemi crittografici insicuri e deprecati.
a) Schemi deprecati
Schemi di hashing della famiglia MD
Hash SHA/SHA1
Modalità di cifratura a blocchi ECB/CBC
Funzioni rand() o /dev/rand
<Altri schemi deprecati/insicuri>
b) Schemi deboli (schemi con backdoor)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
< Altri schemi più deboli/con backdoor >
Esempio di utilizzo del modulo "remote": stiamo scansionando "null.co.in" con i plugin in gen e i risultati saranno salvati nel file final.html.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Servizio di Scansione Lamma [Avviato] ...
[+] Parametri impostati per questa scansione :
Test da eseguire => gen Host Target => null.co.in
Porta target => 443
I report saranno salvati nel file => final.html
[+] Avvio della scansione
Avvia gen
[+] Avvio in corso... /home/evader/Desktop/RELEASE/LAMMA/modules/remote-module/gen
Now Executing: server_config.py -h null.co.in -p 443 -o final.html
Now Executing: scan_ssl.py -h null.co.in -p 443 -o final.html
[+] Scansione completata...
LAMMA :
Output del modulo di scansione "remote" per "null.co.in"
--- Avvio dei controlli di configurazione del server per host - null.co.in ---
Risposta del server :
HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Fri, 03 Jun 2016 18:05:58 GMT
Content-Type: text/html
Connection: close
X-Powered-By: PHP/5.5.9-1ubuntu4.16
Validazione della catena di certificati :
Certificato di Digital Signature Trust Co. : è valido
Certificato di Let's Encrypt : è valido
Certificato di null.co.in : è valido
La catena di certificati è verificata e affidabile
--- Controlli di configurazione del server completi...
--- Scansione host avviata ---
Nome host remoto :null.co.in
IPv4 host remoto :104.237.152.34
Porta host remoto :443
Cipher Suite utilizzata : ECDHE-RSA-AES128-GCM-SHA256
Nome soggetto = null.co.in
Nome emittente = Let's Encrypt Authority X1
Data inizio : 20160313112800Z
Data fine : 20160611112800Z
Algoritmo di firma : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] Il tipo di verifica dei certificati : DV
Dimensione chiave pubblica [2048]
--- Fine della scansione SSL ---