J'ai un serveur SSH avec une règle qui n'autorise pas les connexions de mot de passe en dehors du réseau local.
Donc, les personnes déjà sur le réseau local, physiquement ou via VPN, sont autorisées à se connecter avec des mots de passe, mais les connexions ips externes doivent utiliser une clé (la sécurité plus faible pour les IPS internes est correcte, car si le réseau est violé, ce serveur n'a pas d'importance plus).
Serait-ce possible pour un attaquant qui n'a pas accès au réseau local pour "fausse" son adresse IP et prétendre que c'est dans l'un des Ranges IP privées (ou un attaquant peut-il avoir une adresse publique publique réelle qui tombe dans l'une de ces gammes)?
En bref non. Parce que SSH fonctionne sur TCP (bien qu'il existe une version UDP, celle-ci est inhabituelle) A TCP Handshake est nécessaire pour commencer la propre authentification du protocole SSH et ses suivants communication. Une adresse privée ne traversera pas votre routeur de périmètre vers et depuis l'internet publique afin de tout purement d'une adresse interne, car il est entrant (n'ayant aucun anti-spoofing sur le routeur ou le pare-feu qui est une mesure de sécurité commune) entraînera la SSH Terminant Server Tentative de réponse à tandis Adresse interne et il ne reviendra jamais à l'Internet public et au propre ordinateur de l'attaquant. Aucune connexion ne peut être établie.
Avant que l'attaquant puisse envoyer des données sur le serveur SSH, il doit remplir une poignée de main TCP. Cela signifie que l'attaquant doit deviner un numéro de séquence de 32 bits. (Si Syn Cookies est utilisé, les chances de l'attaquant peuvent améliorer .)
En supposant que votre serveur génère de bons numéros de séquence, cela réduira de manière significative une capacité d'attaque à attaquer votre serveur SSH à l'aide d'une adresse IP du client spoofed.
Mais peut-être que vous ne faites pas confiance à votre serveur pour générer de bons numéros de séquence ou peut-être que vous pensez que 32 bits de sécurité ne sont pas assez bons. Donc, vous voudrez peut-être toujours savoir, que se passerait-il une fois que l'attaquant devinait un numéro de séquence correct.
Tout d'abord, nous remarquons que l'attaquant sera en mesure de déterminer si un numéro de séquence deviné était correct ou non. Une hypothèse correcte entraînera l'ouverture d'une connexion, elle comptera donc la limite spécifiée à l'aide de MaxStartups
. L'attaquant peut tenter d'ouvrir une autre connexion à l'aide d'une adresse non bloquée afin de déterminer si cette limite a été atteinte. Il peut conserver votre serveur juste en dessous de cette limite à tout moment, de sorte qu'une connexion réussie avec une adresse bloquée prendrait toujours la dernière connexion disponible.
Sans l'astuce pour noter un numéro de séquence devinonné avec succès, l'attaquant aurait dû envoyer des suppositions de mot de passe à l'aveugle sans savoir si la connexion à laquelle ils étaient envoyés n'existent même pas. Cela pourrait potentiellement avoir ralenti l'attaquant d'un facteur de 2³².
Mais même si un attaquant peut obtenir des commentaires pour indiquer si un numéro de séquence a été deviné correctement, il existe d'autres barrages routiers empêchant la supposition de mot de passe sur une connexion éclairée TCP.
Lors de l'échange de clé, le client et le serveur choisiront une valeur aléatoire à envoyer sur la connexion. Ces valeurs aléatoires influencent la clé de session. Cela signifie qu'un attaquant travaillant dans l'aveugle (car il ne voit pas les réponses, envoyer du serveur à l'adresse IP usurée) ne connaîtra pas la clé de session.
Le manque de connaissances sur la clé de session signifie que l'attaquant devra deviner un code d'authentification de message. Ceci est essentiellement équivalent à l'exécution d'une attaque MITM sur une connexion légitime. De plus, l'attaquant doit envoyer le mot de passe crypté pour être déchiffré par le serveur. Étant donné que l'attaquant ne connaît pas la clé de cryptage utilisé, il ne saura pas quels mots de passe il a essayés.
La fenêtre TIME de l'attaquant pour compléter l'attaque ne dure que jusqu'à ce que l'adresse IP usurée ait répondu avec un paquet TCP RST. Étant donné que le temps aller-retour entre attaquant et serveur sera probablement plus grand que le temps aller-retour entre les adresses de serveur et les adresses locales, cela pourrait empêcher l'attaquant d'utiliser n'importe quel type de retour d'information, y compris la vérification du numéro de séquence correctement deviné.
Vous pouvez donner à l'attaquant une fenêtre plus longue pour compléter l'attaque en installant un pare-feu qui empêche la synchronisation Syn ACK d'atteindre l'adresse IP usurée ou en empêchant la RST d'atteindre le serveur. Cela ne fait cependant pas l'attaque beaucoup plus réalisable.
La réponse est oui, c'est possible. Cependant, il existe des limitations significatives. Grâce à l'utilisation de spoofing IP, il pourrait être possible d'établir une connexion qui pourrait être utilisée pour délivrer une charge utile à la cible, mais il ne sera pas possible d'établir un vrai bidirectionnel TCP== Connexion. En termes simples, l'attaquant peut récupérer la machine cible, mais ils ne recevront pas les réponses car elles ne leur seront pas acheminées (c'est pourquoi l'entrepoiffage IP est plus couramment utilisé avec UDP plutôt que TCP Connexions de type). Cependant, l'attaquant peut simuler la réception des paquets et renvoyer de faux paquets d'accusé de réception et à partir de là, aller au point où ils peuvent potentiellement livrer une charge utile. Cette charge utile pourrait théoriquement être utilisée pour configurer un Troie Sur la cible qui appelle ensuite au système C & C des attaquants, en établissant une connexion dans votre système interne.
Bien que cela soit possible, il s'agit d'un piratage difficile et peut ne pas être possible sur tous les systèmes car il y a eu des modifications à la manière dont diverses plateformes géraient TCP connexions qui rend plus difficile la simulation de l'ACK. Paquets. Compte tenu de toutes les informations récentes sur la sécurité médiocre dans les routeurs, l'attaque beaucoup plus probable serait de compromettre votre routeur et votre transfert de port de configuration ou d'utiliser UPNP pour tromper votre système pour lancer une connexion externe, etc.