
Scan avancé de vulnérabilités avec Nmap NSE
Vulscan est un module qui améliore nmap pour en faire un scanner de vulnérabilités. L'option -sV de nmap active la détection de version par service, utilisée pour déterminer les failles potentielles selon le produit identifié. Les données sont consultées dans une version hors ligne de VulDB.
Veuillez installer les fichiers dans le dossier suivant de votre installation Nmap :
Nmap\scripts\vulscan\*
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 un simple scan de vulnérabilités :
nmap -sV --script=vulscan/vulscan.nse www.example.com
Voici les bases de données pré-installées 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 de référencer vos propres bases de données. Cela nécessite de créer un fichier de base de données ayant la structure suivante :
<id>;<title>
Exécutez simplement vulscan comme vous le feriez en référençant l'une des bases de données pré-fournies. N'hésitez pas à partager votre propre base de données et connexion de vulnérabilités avec moi, pour l'ajouter au dépôt 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 locales à jour.
Pour mettre à jour automatiquement les bases de données, définissez simplement les permissions 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, rendez-vous sur le 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 ces détails, ces données sont également mises en correspondance.
La désactivation de cette fonctionnalité peut introduire des faux positifs mais peut aussi éliminer les faux négatifs et augmenter légèrement les performances. Si vous souhaitez désactiver la correspondance de version 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 entraîner de nombreux faux positifs (comme on peut le voir 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 (qui pourrait être un faux positif) est affichée.
Si vous souhaitez afficher toutes les correspondances, ce qui peut introduire de nombreux faux positifs mais peut être utile pour une investigation 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 ligne par ligne. La disposition par défaut est la suivante :
[{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 imposer votre propre structure de rapport en utilisant l'argument suivant (quelques exemples) :
--script-args vulscanoutput='{link}\n{title}\n\n'
--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 fournie avec une URL et un lien, qui sont utilisés lors du scan et peuvent être consultés sous la forme {link} 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 de scan de vulnérabilités dérivé dépend fortement de la fiabilité de la détection de version de nmap, du nombre de vulnérabilités documentées et de la précision de la correspondance de motifs. L'existence de failles potentielles n'est pas vérifiée par des scans supplémentaires ni par des techniques d'exploitation.