Question:
Si un serveur n'ouvre que les ports 22 et 80, avons-nous seulement ces deux façons de le pirater?
244boy
2020-04-18 20:31:16 UTC
view on stackexchange narkive permalink

Si un serveur Linux n'ouvre que le port SSH 22 et le port HTTP 80, devons-nous passer par l'un de ces deux ports pour pirater le serveur depuis Internet?

Si vous n'avez que ces deux ports ouverts, vous ne pouvez communiquer qu'avec ces deux-là, oui.
Cela dépend de la façon dont vous définissez «ouvert» - peut-être comme «réponses avec SYN / ACK ou RST à un SYN»?Dans ce cas, il pourrait réagir à d'autres ports (ou au trafic non TCP) de manière vulnérable, mais peut-être pas par des réponses en soi.
Parlez-vous des ports ouverts sur le serveur lui-même?Ou parlez-vous de quels ports le routeur transmet?Ou quoi exactement?
En ce qui concerne les attaques à distance, alors bien sûr.Que vous soyez en sécurité ou non dépend en grande partie des programmes qui écoutent sur ces ports et s'ils sont correctement sécurisés.
Vous voulez probablement aussi 443.
Cinq réponses:
#1
+74
reed
2020-04-18 21:46:30 UTC
view on stackexchange narkive permalink

Pas vraiment. Je dirais que cela dépend de votre modèle de menace. Il peut y avoir d'autres menaces qui n'ont pas besoin d'utiliser ces ports pour compromettre votre serveur. Le premier exemple auquel je peux penser en ce moment est une attaque de la chaîne d'approvisionnement. Lorsque vous mettez à jour un logiciel sur votre serveur, si le logiciel mis à jour a été compromis par une attaque de la chaîne d'approvisionnement, votre serveur sera infecté. Ou si vous installez example-program par erreur au lieu de example_program (notez le trait d'union au lieu du trait de soulignement), et que example-program était malveillant et avait été donné ce nom exprès pour vous embrouiller, alors votre serveur sera compromis. Je pense que quelque chose comme ça s'est produit récemment ... oh, hier ( Bitcoin a volé des applications dans le référentiel Ruby). D'autres exemples? Peut-être quelques MITM dans les connexions sortantes de votre serveur. Alors n'oublions pas le phishing, ou tout ce qui concerne l'ingénieur social.

Donc pour être précis, si vous me demandez "en général, puis-je être piraté par une menace distante via des ports ouverts?", Ma réponse serait non. Cependant, si certaines menaces sont probables ou non, cela dépend de votre modèle de menace, qui à son tour dépend de ce que fait votre serveur, de la façon dont vous le gérez, de qui vous êtes, etc.

Mais, pour être clair, même si le serveur était compromis avec une telle attaque, la communication entrante / sortante entre le serveur et l'attaquant se ferait via le port 22 ou le port 80, non?
@onurcanbektas Non, les ports ouverts signifient généralement des ports d'écoute, donc seules les connexions entrantes les utilisent.Les connexions sortantes utilisent généralement un port aléatoire (avec certaines restrictions).À moins que par «ports ouverts», vous n'entendez que tout le reste est bloqué par un pare-feu.Mais dans ce cas, le serveur ne serait probablement pas en mesure d'établir des connexions sortantes, comme celle nécessaire pour télécharger la mise à jour mentionnée dans cette réponse.
@Tomeamis Donc, à moins qu'elle ne soit bloquée par un pare-feu, une application peut utiliser n'importe quel port aléatoire pour les connexions sortantes?
@onurcanbektas Yup.Vous pouvez vérifier par vous-même (vous pouvez exécuter `netstat -a` pour voir les connexions actives, et la plupart auront un numéro de port élevé avec l'adresse locale).Le port 80 attribué à HTTP est pour la destination.Ainsi, lorsque vous souhaitez vous connecter au serveur example.com via HTTP, vous vous connectez à example.com au port 80, mais la connexion peut provenir de n'importe quel port.Et étant donné que des numéros de port faibles sont généralement attribués, des ports élevés sont généralement utilisés pour les connexions sortantes.
@Tomeamis oh je vois;Merci d'avoir répondu.
@onurcanbektas juste pour l'exhaustivité, pas * n'importe quel * port aléatoire.Vous ne pouvez pas utiliser les ports déjà utilisés (par exemple le port 80 dans ce cas), et généralement les systèmes d'exploitation vous limitent aux ports au-dessus de 1024 ou au-dessus d'un nombre plus élevé (le nombre exact dépend du système d'exploitation, et vous pouvez probablement changer cela avec un certain effort).
#2
+36
Moo
2020-04-19 07:05:16 UTC
view on stackexchange narkive permalink

No

Il y a plusieurs choses qui peuvent être attaquées sur un ordinateur cible, et une application de desserte (httpd ou sshd par exemple) n'est qu'une de ces choses.

N'oubliez pas qu'il existe une pile réseau entière entre le port réseau physique de la carte réseau et l'application gérant le trafic réel (c'est-à-dire sshd) - dans cette pile, il y a des éléments tels que les fonctionnalités du noyau telles que les pare-feu, les pilotes réseau, etc. attaqué séparément de l'application de gestion.

Voir le nombre de vulnérabilités d'exécution à distance du noyau Linux mises en évidence ici qui ne nécessitent aucune application de gestion à exploiter, et autorisent à la place un attaquant d'exécuter du code simplement en créant un mauvais paquet réseau.

Bien sûr, il est plus facile d'attaquer l'application plutôt que le noyau, car le noyau a tendance à être beaucoup plus inspecté.

#3
+13
fraxinus
2020-04-19 17:50:04 UTC
view on stackexchange narkive permalink

Une tentative de lister quelques façons de pirater un serveur sans utiliser http ou ssh:

  1. Utilisation d'une vulnérabilité dans Management Engine
  2. Utilisation d'un bogue dans une carte réseau firmware ou pilote
  3. Utiliser quelque chose de pas très sécurisé dans la plate-forme de virtualisation, avoir un accès légitime à (ou pirater) une machine virtuelle voisine
  4. Exploiter un bogue dans le pilote IP ou TCP dans le système d'exploitation
  5. Utilisation d'une interaction réseau où votre serveur agit en tant que client (requêtes DNS, mises à jour automatiques, accès à la base de données), usurpation ou piratage du serveur légitime de ces services.
  6. Exemple pour 4.: Il y a longtemps, il y avait une attaque ping of death exploitant un bogue dans le pilote de couche IP, aucun port ouvert nécessaire du tout.

haha ouais de retour quand je waz un scr1pt k1d j'ai une fois abattu un client win95 au japon .. désolé
#4
+5
gnasher729
2020-04-18 23:56:36 UTC
view on stackexchange narkive permalink

La fermeture des ports est l'une des premières lignes de défense.

Lorsqu'un port est ouvert, il y aura un logiciel en cours d'exécution qui gère les données entrant sur ce port. Ce logiciel peut avoir des bogues qui permettent à une attaque de réussir. Si vous ouvrez 100 ports, il existe 100 logiciels potentiellement non sécurisés. Avec seulement deux ports ouverts, seuls deux logiciels sont potentiellement vulnérables. Évidemment, s'assurer que 100 pièces ne sont pas vulnérables est beaucoup plus difficile que deux pièces.

Mais un attaquant peut essayer d'entrer par une autre route. Votre serveur devrait recevoir des blocs de données contenant un numéro de port, et votre logiciel devrait diriger le bloc vers le bon port ou le jeter, éventuellement le consigner. Si le logiciel envoyant des blocs entrants aux ports a des bogues, un attaquant pourrait exploiter ces bogues, et un tel exploit pourrait être indépendant des ports ouverts.

Ceci est inexact.Les ports qui ne sont pas fermés ne sont pas ouverts: https://security.stackexchange.com/questions/96568/open-ports-with-no-services-bound-to-them
«Si vous ouvrez 100 ports, il y a 100 logiciels potentiellement non sécurisés.» <- Pourquoi supposez-vous un mappage 1-sur-1 entre les ports et les «logiciels»?Un seul programme peut facilement écouter sur une centaine de ports différents.Bien sûr, ce serait une chose étrange à faire, mais il existe de nombreux programmes qui écoutent au moins sur plus d'un port.(Et l'inverse est vrai aussi, il est possible de partager un seul port d'écoute entre plusieurs processus.)
@PeterW.Qu'est-ce que tu essayes de dire?Personne n'a même fait aucune réclamation concernant les ports filtrés ou non filtrés.Un port ouvert n'est pas simplement un port non filtré, c'est un port auquel vous pouvez vous connecter avec succès ().
#5
-3
PaHa
2020-04-18 20:55:03 UTC
view on stackexchange narkive permalink

Si le serveur n'a que des services ssh et http ouverts, alors vous devrez exploiter d'éventuelles vulnérabilités liées à l'un ou aux deux services, pour pirater le serveur.

Un autre moyen serait l'accès physique au clavier du serveur, mais je pense que vous vouliez simplement attaquer via le réseau. (n'oubliez pas de scanner tous les ports 1-65535)

N'oubliez pas qu'il existe une pile réseau entière entre le port réseau physique et l'application réceptrice, y compris les fonctionnalités du noyau et les pilotes qui peuvent tous être attaqués également.Cela peut être fait même sur des ports fermés - ce n'est pas parce que rien n'écoute sur ces ports que le système ne les gère pas, par exemple dans le système de règles du pare-feu, etc. Beaucoup d'opportunités pour un vecteur d'attaque.
-1.OP, vous êtes encouragé à attendre au moins un jour ou deux avant d'accepter une réponse, pour donner à la communauté et à vous-même une chance de juger de la qualité d'une sélection de réponses avant d'en choisir une (le cas échéant!).
La seule réponse à ce jour à mentionner l'attaque physique.
@mckenzm Vrai, mais la question dit _à partir d'Internet_, ce qui semble exclure les attaques physiques.
Je paierai cela, cela exclut même les appareils compromis sur le réseau local.(Pairs).


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...