Le moteur de script NMAP (NSE) contient un ensemble de scripts classés par catégorie, et les utilisateurs peuvent écrire leurs propres scripts avec des fonctionnalités personnalisées.
Ce tutoriel explique les bases de NSE, y compris des exemples pratiques montrant comment utiliser le moteur de script NMAP pour pirater les sites WordPress et les informations d'identification SSH ou exécuter plusieurs vérifications de sécurité supplémentaires.
Catégories et types de scripts NSE (NMAP Scripting Engine)
Les scripts inclus dans le NSE sont classés selon différents critères en fonction du moment de l'exécution, de l'objectif du script et des méthodes.
La première classification basée principalement sur le moment de l'exécution comprend 4 types de scripts:
La deuxième classification est basée sur les objectifs et la sécurité du script. Les catégories commandent les scripts selon ces critères. Les catégories sont:
Auth: Les scripts dans cette catégorie sont utiles pour gérer l'authentification. Dans cette catégorie, vous pouvez trouver des scripts pour contourner les processus d'authentification, tels que HTTP-Method-Tamper pour contourner les ressources protégées par mot de passe en effectuant une altération du verbe HTTP. Si un tableau de chemins à vérifier n'est pas défini, il explorera le serveur Web et effectuera le chèque par rapport à toute ressource protégée par mot de passe trouvée.
La catégorie Auth n'inclut pas les scripts de force brute stockés dans la catégorie brute. Pourtant, sous Auth, vous pouvez trouver des fonctions similaires à celles du script http-default-Accounts pour tester l'accès avec des informations d'identification par défaut sur diverses applications Web et appareils.
Diffuser: Ces scripts permettent de découvrir les hôtes en diffusant le réseau local.
Brute: Cette catégorie contient des scripts pour exécuter des attaques de force brute comme le script HTTP-WordPress-Brute pour attaquer les sites WordPress ou RSYNC-Brute pour effectuer des attaques contre le protocole RSync.
Défaut: Cette catégorie comprend les scripts répondant aux exigences en fonction de la vitesse, de l'utilité, de la verbosité, de la fiabilité, de l'intrusivité et de la confidentialité. Les scripts dans cette catégorie doivent se terminer rapidement et doivent signaler des informations précieuses sur la cible. La sortie doit être lisible et limitée à des informations précises. Les scripts intrusifs susceptibles de planter le système ou le service cible sont moins adaptés à cette catégorie.
Découverte: Les scripts dans cette catégorie essaient d'en savoir plus sur la cible en interrogeant les sources publiques, les appareils compatibles SNMP, les répertoires, etc. Le script http-affilié-ID saisit des identifiants de réseau d'affiliation tels que Google Adsense ou Analytics, Amazon, etc., à partir d'une page Web et peut être utilisée pour identifier les pages avec le même propriétaire.
DOS: Ces scripts sont utiles pour tester les cibles pour les vulnérabilités avant les attaques DOS; Ces scripts sont enclins à écraser un système ou un service vulnérable.
Exploiter: Les scripts de cette catégorie sont utilisés pour exploiter les vulnérabilités sur les cibles.
Externe: Cette catégorie contient les scripts impliquant des ressources externes pendant le processus de numérisation, telles que les demandes d'informations sur la base de données sur la cible. Les scripts partageant des informations sur le processus de numérisation avec des bases de données tiers sont placées dans cette catégorie. La géoplugine IP-Geolocation, par exemple, essaie de déterminer l'emplacement cible physique à l'aide de http: // www.géoplugine.com /.
Fuzzer: Cette catégorie contient des scripts pour envoyer massivement des champs randomisés pour découvrir des vulnérabilités pour exploiter un débordement de tampon, un DOS (déni de service), des scripts croisés ou une injection SQL.
Intrusif: Les scripts de cette catégorie sont susceptibles d'écraser la cible en utilisant une quantité importante de ressources ou pour être détectée comme une activité malveillante.
Malware: Les scripts de logiciels malveillants sont conçus pour détecter la présence possible de logiciels malveillants ou de déambulations sur la cible.
Sûr: Contrairement aux scripts intrusifs, les scripts sûrs sont peu susceptibles de écraser l'objectif, qui n'a pas besoin d'une quantité importante de ressources et ne devrait pas être détecté comme malveillant par la cible peut être placée ici. Les scripts dans cette catégorie traitent principalement des tâches de découverte.
Version: Les scripts de version étendent la fonction NMAP de version; Un exemple est le script Docker-Version utilisé pour détecter une version Docker de service.
Vuln: Les scripts Vuln sont utiles pour tester les vulnérabilités sur les cibles.
Les scripts NSE sont situés à / usr / share / nmap / scripts, Et tout nouveau script que vous souhaitez ajouter (E.g., Vulscan) doit y être placé.
Comment utiliser le moteur de script NMAP (NSE)
NSE est inclus dans NMAP, pour commencer à installer NMAP au cas où vous ne l'avez pas encore, en fonctionnant (sur les distributions Linux basées sur Debian et Debian):
sudo apt install nmapNote: Sur les distributions Linux basées sur RedHat, vous pouvez courir:
yum install nmapAprès l'installation, ou si vous avez déjà installé NMAP, exécutez la commande suivante pour mettre à jour la base de données de moteur de script NMAP:
NMAP - Script-UpdatedBNMAP permet à une syntaxe différente d'exécuter des analyses; L'exemple suivant montre une analyse NMAP avec détection de version, appelant le script http-wordpress-brute et passant comme argument l'emplacement des dictionnaires. Ceci est une syntaxe possible lorsque vous savez quel script vous souhaitez exécuter.
Dans le premier exemple, je montrerai comment NMAP NSE peut pirater un site Web WordPress avec une force brute en utilisant le script http-wordpress-brute.NSE. Dans cet exemple, le site Web piraté est Nottias Mercedes que je possède.
NMAP -SV - Script Http-WordPress-Brute - Script-Args 'UserDB = utilisateurs.txt, passdb = pass.TXT 'NOTICIASMERCEDES.comOù:
NMAP -SV: appelle NMAP et permet la détection de version.
-script http-wordpress-brute: Appelle le script HTTP-WordPress-Brute sur des sites WordPress à force brute.
-Userdb = utilisateurs de Script-Args =.txt, passdb = pass.SMS': Spécifie les dictionnaires utilisateur et mot de passe, dans ce cas, j'ai créé les utilisateurs de fichiers.txt et passer.TXT contenant des données factices et les informations d'identification correctes, les fichiers étaient situés dans le même répertoire dans lequel NMAP a été exécuté, vous pouvez également spécifier le chemin d'accès: -Userdb = / path / to / dicionaty de Script-Args.txt, passdb = / path / to / dicionaty / pass.SMS'
Comme vous pouvez le voir dans la sortie, le mot de passe a été piraté avec succès:
Pour l'exemple suivant, supposons que vous n'êtes pas sûr du script que vous souhaitez exécuter contre votre cible, mais vous souhaitez limiter votre analyse aux chèques de sécurité. Dans ce cas, vous pouvez demander à NMAP d'exécuter tous les scripts appartenant aux catégories sûres ou par défaut, ou les deux.
L'exemple suivant montre comment exécuter tous les scripts appartenant à la fois aux catégories par défaut et sûres avec une syntaxe conviviale:
NMAP - Script "par défaut et sûr" NOTICIASMERCEDES.comLe dernier exemple montre comment casser les informations d'identification SSH à l'aide de NSE:
NMAP - Script SSH-Brute.NSE localhostComme avec http-wordpress-brute, avec ce script, vous pouvez également spécifier des dictionnaires en contournant l'argument:
--script-args userdb = utilisateurs.txt, passdb = pass.SMSOù les utilisateurs.txt et passer.TXT doit être remplacé par vos dictionnaires (et le chemin si nécessaire),
Les articles suivants comprennent des exemples de NSE supplémentaires:
J'espère que vous avez trouvé cet article sur NSE utile; Continuez à suivre Linuxhint pour plus de conseils et de tutoriels Linux.