Vulscan est un module qui améliore nmap en un scanner de vulnérabilités. L'option nmap -sV permet la détection de version par service qui est utilisée pour déterminer les failles potentielles en fonction du produit identifié. Les données sont recherchées dans une version hors ligne de VulDB.
Veuillez installer les fichiers dans le dossier suivant de votre installation Nmap :
Nmapscriptsvulscan*
Clonez le dépôt GitHub comme ceci :
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
Vous devez exécuter la commande minimale suivante pour lancer une simple analyse de vulnérabilité :
nmap -sV --script=vulscan/vulscan.nse www.example.com
Les bases de données préinstallées suivantes sont actuellement disponibles :
Vous pouvez exécuter vulscan avec l'argument suivant pour utiliser une seule base de données :
--script-args vulscandb=your_own_database
Il est également possible de créer et référencer vos propres bases de données. Cela nécessite de créer un fichier de base de données, qui a la structure suivante :
<id>;<title>
Exécutez simplement vulscan comme vous le feriez en vous référant à l'une des bases de données pré-livrées. N'hésitez pas à partager votre propre base de données et votre connexion de vulnérabilité avec moi, pour l'ajouter au référentiel officiel.
Les bases de données de vulnérabilités sont mises à jour et assemblées régulièrement. Pour prendre en charge les dernières vulnérabilités divulguées, maintenez vos bases de données de vulnérabilités locales à jour.
Pour mettre à jour automatiquement les bases de données, définissez simplement les autorisations d'exécution sur le fichier update.sh
et exécutez-le :
chmod 744 update.sh
./update.sh
Si vous souhaitez mettre à jour manuellement vos bases de données, accédez au site Web suivant et téléchargez ces fichiers :
Copiez les fichiers dans votre dossier vulscan :
/vulscan/
Si la détection de version a pu identifier la version du logiciel et que la base de données de vulnérabilités fournit de tels détails, ces données sont également mises en correspondance.
La désactivation de cette fonctionnalité peut introduire des faux positifs, mais peut également éliminer les faux négatifs et augmenter légèrement les performances. Si vous souhaitez désactiver la correspondance de versions supplémentaire, utilisez l'argument suivant :
--script-args vulscanversiondetection=0
La détection de version de vulscan est aussi bonne que la détection de version de Nmap et les entrées de la base de données de vulnérabilités. Certaines bases de données ne fournissent pas d'informations de version concluantes, ce qui peut conduire à de nombreux faux positifs (comme on peut le constater pour les serveurs Apache).
Le script essaie d'identifier uniquement les meilleures correspondances. Si aucune correspondance positive n'a pu être trouvée, la meilleure correspondance possible (avec un risque de faux positif) est affichée.
Si vous souhaitez afficher toutes les correspondances, ce qui peut introduire de nombreux faux positifs mais s'avérer utile pour une enquête plus approfondie, utilisez l'argument suivant :
--script-args vulscanshowall=1
Le mode interactif vous aide à remplacer les résultats de détection de version pour chaque port. Utilisez l'argument suivant pour activer le mode interactif :
--script-args vulscaninteractive=1
Tous les résultats correspondants sont imprimés un par ligne. La disposition par défaut pour cela est :
[{id}] {title}n
Il est possible d'utiliser une autre structure de rapport prédéfinie avec l'argument suivant :
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
Vous pouvez appliquer votre propre structure de rapport en utilisant l'argument suivant (quelques exemples) :
--script-args vulscanoutput='{link}n{title}nn'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})n'
--script-args vulscanoutput='{id} | {product} | {version}n'
Les éléments suivants sont pris en charge pour un modèle de rapport dynamique :
Chaque base de données par défaut est accompagnée d'une URL et d'un lien, qui sont utilisés lors de l'analyse et peuvent être consultés en tant que {lien} dans le modèle de rapport personnalisé. Pour utiliser des liens de base de données personnalisés, utilisez l'argument suivant :
--script-args "vulscandblink=http://example.org/{id}"
Gardez à l’esprit que ce type d’analyse de vulnérabilité dérivée repose en grande partie sur la fiabilité de la détection de version de nmap, sur la quantité de vulnérabilités documentées et sur la précision de la correspondance de modèles. L’existence de failles potentielles n’est pas vérifiée par des techniques d’analyse ou d’exploitation supplémentaires.