Une fois ce fameux “point d’accès initial” obtenu (un peu de révision de MITRE ATT&CK ne fait pas de mal 😇), l’attaquant (y compris éthique) enfile son casque lumineux de spéléologue et démarre l’exploration de son environnement.
Il dégaine son outil favori de scan d’adresses IP et de ports TCP/UDP, par exemple Nmap, et lance ce qui est communément désigné comme une reconnaissance “active” de l’environnement dès lors qu’un certain nombre de paquets va être émis vers les cibles qui “répondent” présentes.
Plusieurs types de scan existent :
👉 Le scan rapide cherchant à énumérer les ports usuels et “populaires”
👉 Le scan ciblé, recherchant un port ou un service spécifique sur plusieurs machines
👉 Le scan exhaustif, recherchant une aiguille dans la botte des 65535 ports TCP/UDP potentiellement activables.
Rappel : Les numéros de port TCP et UDP sont codés sur 16 bits délimitant ainsi leurs valeurs entre 0 et 65535.
Nous entendons souvent, à tort ou à raison, qu’un attaquant et très futé, très pressé et très… paresseux ! 🦥
Une marque d’intelligence nous diriez-vous ! 🤭
Comment lui compliquer alors la tâche, comment augmenter le coût de l’attaque, comment contraindre l’attaquant à générer plus de trafic et donc de bruit sur le réseau, pour soit le dissuader, soit le ralentir considérablement, soit le détecter ? 🤔
La réponse : en “déguisant la mariée”… 👰
Prenons l’exemple d’un service de prise de main et d’administration à distance, comme le service SSH. Ce service, de par l’accès à privilège qu’il octroie sur une machine, est très convoité par l’attaquant, que l’attaque soit manuelle ou automatisée, un malware ou un ransomware cherchant souvent à détecter ce type de service et à essayer de s’y engouffrer.
SSH est souvent en écoute sur le port TCP 22 et fait partie de ces ports “populaires” recherchés par les “fast scans” nmap. 👂
Et si le défenseur, administrateur système par exemple, attribuait au service SSH un autre numéro de port – non standard – et qui plus est à 5 chiffres, plus proche des 65535 que de 1, comme le 53478 par exemple ? 🤔
En procédant de la sorte :
👉 SSH passe sous le radar d’un “fast scan” nmap
👉 L’attaquant est contraint de lancer un scan exhaustif, plus chronophage et plus bruyant
La défense en profondeur, un concept souvent pas ou peu utilisé … n’est ce pas ?
Une autre piste serait de s’inspirer du grand méchant loup dans le Petit Chaperon Rouge ! 🐺
Nmap interroge les services réseau sur les adresses IP distantes pour vérifier les numéros de version et déterminer les noms des technologies utilisées.
L’identification des services en écoute sur un port TCP / UDP dépend donc :
👉 Du numéro de port attribué
👉 De la bannière d’annonce : “Coucou, je m’appelle SSH version X.Y”
Et si le défenseur “personnalisait” cette bannière en se présentant comme Mère-Grand ? 🤶
Le scan Nmap renverrait donc des résultats qui camoufleraient le service SSH convoité en induisant l’attaquant en erreur, lui faisant emprunter une mauvaise piste.
Et si nous corsions les choses encore un peu ?
Une fois les technologies, applications et systèmes d’exploitation énumérés, il s’agit maintenant de procéder à l’identification des vulnérabilités par CVE (lien de notre article ici).
Cette identification se fait par version de logiciel ou d’application.
Et si, au lieu de renvoyer le numéro de version exact, nous renvoyons :
👉 Un numéro de version assez ancien, et donc très probablement concerné par une liste interminable de CVE ?
👉 Un numéro de version très “contemporain”, n’étant pas ou très peu concerné par des CVE ?
Dans le premier cas, l’attaquant aura à tester plus d’exploits, avec le risque de générer plus de bruits sur le réseau et de se faire prendre. 😅
Dans le deuxième cas, cela le dissuaderait de poursuivre l’attaque à destination de cette cible en particulier et le pousserait à s’en détourner à la recherche de “ventres plus mous”.
Alors, que pensez-vous de ces techniques pour “déguiser la mariée” ? 😉