NOTE Post Réécriture : Cet article, et bien d’autres, fait parti de la série “Script kiddie”. Il a été écrit il y a plusieurs années. Son contenu n’est pas à jour et il contient potentiellement des erreurs. Plus d’information sur la page de présentation de la série.
Nmap et le FootPrinting
Nmap est un logiciel permettant d’effectuer plusieurs opérations de reconnaissances sur les réseaux.
Pour l’installer sur une machine se basant sur Debian (Ubuntu, Kali) :
apt install nmap
Utilisation de Nmap
Avant de viser une machine en particulier, ils nous faut déjà faire la liste de celle présente sur le réseau. Pour ce faire :
nmap -sP [ipDuRéseau]/[masque]
Astuce : enregistrez vos découvertes à l’intérieur d’un fichier texte ou d’un logiciel comme CherryTree, vous pourrez les retrouver plus facilement pour les réutiliser.
Cette commande est bien pratique mais s’avère rapidement peu utile quand nous sommes en face d’un très grand réseau avec plusieurs centaines de machines. Vous ne vous servirez pas souvent de la commande suivante, cependant elle peut s’avérer pratique dans ce cas précis pour trouver des ports ouverts spécifiques :
nmap -sT -p [ports séparés d’une virgule] [ip]/[masque]
Pour aller plus loin dans la reconnaissance, nous allons lister tous les porst ouverts d’une machine :
nmap -sT [ip]
Il se peut parfois qu’il nous faille plus d’informations sur une machine, par exemple : son os, son domaine, etc…
nmap -A [ip]
Pour obtenir plus d’actions possibles avec nmap, consultez la documentation en ligne.
Ou alors lisez le putain de manuel :
man nmap
A quoi servent tous ces ports ouverts ?
Les ports sont utilisés en réseau pour qu’une application puisse dialoguer sur votre connexion. Par exemple, le port 80 est utilisé par HTTP, le protocole de transmission non-chiffré des documents HTML. Quand votre machine possède ce port ouvert, cela signifie qu’elle est à l’écoute et répondra à toutes requêtes, avec l’application qui lui sert de serveur (apache2, nginx, etc.), quand elles se présentent sur le port 80.
Beaucoup de ports sont standardisés, c’est à dire qu’ils sont très souvent les mêmes sur toutes les machines et je vous encourage à retourner voir la partie sur les services pour les reconnaître. Internet est également votre meilleur allié face à une application inconnue au bataillon.
Ce sont les plus courants et ceux qui vous intéresseront le plus bien souvent.
Aller plus loin : NSE
NSE : Nmap scripting engine
Comme son nom anglais l’exprime si bien, il s’agit d’un système de script qui va permettre l’automatisation de certaines tâches par nmap.
Ces scripts sont écrits en Lua, langage de programmation assez simple à comprendre et assez proche du python.
Pas besoin de forcément l’apprendre car des scripts complets existent en ligne.
De plus, ils en existent également à l’intérieur de votre ordinateur dans le répertoire /usr/share/nmap/scripts.
Vous pouvez obtenir la liste avec :
ls /usr/share/nmap/scripts
Dans un premier temps, placez-vous dans le répertoire des scripts :
cd /usr/share/nmap/scripts
Sans plus tarder, la commande permettant d’utiliser :
nmap --script [nom du script] [ip]
Petits exemples :
Je souhaite utiliser le script par défaut (qui porte le nom default) sur la machine 192.168.1.107 :
nmap --script=default 192.168.1.107
Je souhaite utiliser le script vulners.nse sur l’IP 192.168.1.107 :
nmap --script=vulners.nse 192.168.1.107
A quoi ça sert ?
Nmap vous a permis de faire votre reconnaissance du réseau. Vous savez dès à présent quels ports sont ouverts sur quelles machines. Avec certains scripts, vous allez pouvoir être en mesure de détecter certaines failles pour certains ports. Les failles que vous pourrez analiser avec nmap seront toujours présentes dans les applications et ne concernent pas la partie réseau.
Je rajouterai pour les phobiques de la console qu’une version graphique existe aussi : zenmap