Comment les hackers trouvent-ils les vulnérabilités des logiciels et des OS ?


C'est une excellente (et très vaste) question ! Ce que vous recherchez réellement, c'est une vulnérabilité. Une vulnérabilité est une faille dans un système que quelqu'un, comme un pirate, pourrait utiliser pour que le système se comporte d'une manière qui n'était pas prévue. Nous aimons appeler cela une "fonctionnalité" et non un bug :).

Un exploit, c'est un morceau de code ou un processus qui tire parti de la vulnérabilité pour contourner certaines restrictions.


Une excellente ressource pour trouver des exploits tout faits est la base de données des exploits. Elle contient actuellement plus de 35 483 exploits. En d'autres termes :

main-qimg-cb1b4a1bd8d24c032c16787aae11f886.webp


La première vulnérabilité que je me souviens avoir exploitée, était une injection de commande dans une application web qui offrait une fonctionnalité d'outils de réseau de base.

Supposons que ceci soit le formulaire web de cette application vulnérable :

main-qimg-7d225b63d82952f82061da8993c5eac4.webp

Si vous mettez une adresse IP, telle que "8.8.8.8", l'application prendrait cette entrée et créerait une commande pour la ligne de commande.

Elle ressemblait probablement à ceci : ping -c 3 8.8.8.8

Accepter une entrée utilisateur et générer des commandes système est généralement considéré comme dangereux... et AMUSANT !

Supposons qu'un attaquant entre ce qui suit dans la case de l'adresse IP :

8.8.8.8 ; cat /etc/passwd

La commande qui serait générée serait :

ping -c 3 8.8.8.8 ; cat /etc/passwd

Si vous ne le savez pas encore, le ';&apos ; est un caractère de fin de commande. Il marque la fin d'une commande et vous permet d'en commencer une nouvelle. En d'autres termes, une fois la commande ping terminée, le système exécutera "cat /etc/passwd".

Par conséquent, non seulement l'application web fera un ping 8.8.8.8 trois fois, mais elle affichera également le contenu du fichier /etc/passwd -- un fichier important qui contient la liste des noms d'utilisateur sur ce système.

Comment trouver ce type de vulnérabilité ? Vous avez plusieurs options différentes :

  • Recherchez des applications qui offrent des fonctionnalités généralement exécutées en ligne de commande.
  • Apprenez à connaître le code vulnérable et recherchez-le sur Github et d'autres dépôts de code source en ligne. Indice : pour PHP, il s'agit de system et passthru

Les applications web sont un excellent point de départ. Non seulement les applications web sont plus faciles à comprendre (par rapport aux débordements de tampon, aux vulnérabilités off-by-one, aux débordements de pile et aux vulnérabilités de chaîne de format), mais elles sont également plus faciles à exploiter.

Pour clarifier. Un exploit est l'utilisation d'un logiciel, de données ou de commandes pour " exploiter " une faiblesse dans un système ou un programme informatique afin de mener à bien une forme d'intention malveillante, comme une attaque par déni de service, des chevaux de Troie, des vers ou des virus. La faiblesse du système peut être un bug, un pépin ou simplement une vulnérabilité de conception. Une exploitation à distance permet d'exploiter la faille de sécurité sans avoir préalablement accès au système. Une exploitation locale nécessite un accès préalable au système vulnérable et implique généralement une augmentation des privilèges du compte utilisateur qui exécute l'exploitation. Ceux qui utilisent les exploits ont souvent recours à l'ingénierie sociale pour obtenir les informations essentielles nécessaires pour accéder au système. De nombreux crackers (ou hackers) sont fiers de leur connaissance des exploits logiciels et les publient sur un site Web pour les partager ou s'en vanter auprès d'autres crackers. Les navigateurs Web et les lecteurs multimédias sont souvent la cible des pirates, car ils ont accès aux informations du système et peuvent télécharger des fichiers sur Internet. Les correctifs (ou "fixes") sont destinés à remédier à ces vulnérabilités dès qu'elles sont révélées et sont souvent distribués dans les mises à jour de logiciels. Il est donc essentiel de maintenir vos logiciels à jour afin de vous assurer que toutes les vulnérabilités connues sont corrigées. Un exploit de type "zero-day" est un exploit que le créateur du logiciel n'a pas encore découvert. Pour éviter de perdre des données à cause d'une attaque tirant parti d'un exploit, il est bon de conserver des sauvegardes régulières de vos données enregistrées sur votre ordinateur

Le processus

-Les astuces

Une astuce est une " procédure ou une pratique artisanale méchante... conçue pour tromper, induire en erreur ou frauder1" Les pirates utilisent des astuces pour trouver des raccourcis afin d'obtenir un accès non autorisé aux systèmes. Ils peuvent utiliser leur accès à des fins illégales ou destructrices, ou simplement tester leurs propres compétences pour voir s'ils peuvent effectuer une tâche.

Sachant que la plupart des pirates sont motivés par la curiosité et ont le temps d'essayer des attaques sans fin, la probabilité est élevée qu'ils finissent par trouver une méthode sophistiquée pour accéder à presque n'importe quel environnement. Cependant, ce ne sont pas ces types d'attaques que nous abordons dans cet article, car la plupart des intrusions réussies sont réalisées par le biais de vulnérabilités de sécurité bien connues et bien documentées qui n'ont pas été corrigées, désactivées ou traitées d'une autre manière. Ces vulnérabilités sont exploitées tous les jours et ne devraient pas l'être.

-Détecter les vulnérabilités d'accès

Ce qui se passe généralement, c'est qu'un hacker avancé ou d'élite écrit un outil d'analyse qui recherche des vulnérabilités bien connues, et le hacker d'élite le met à disposition sur Internet. Des pirates moins expérimentés, communément appelés "script kiddies", exécutent alors l'outil d'analyse 24 heures sur 24 et 7 jours sur 7, analysant un grand nombre de systèmes et trouvant de nombreux systèmes vulnérables. Ils exécutent généralement l'outil contre les espaces-noms associés aux entreprises dans lesquelles ils aimeraient pénétrer.

Les script kiddies utilisent une liste d'adresses IP vulnérables pour lancer des attaques, sur la base des vulnérabilités annoncées par une machine, afin d'accéder aux systèmes. En fonction de la vulnérabilité, un attaquant peut être en mesure de créer un compte privilégié ou non privilégié. Quel que soit le cas, l'attaquant utilise cette entrée initiale (également appelée " toe-hold ") dans le système pour obtenir des privilèges supplémentaires et exploiter les systèmes avec lesquels le système pénétré entretient des relations de confiance, partage des informations, se trouve sur le même réseau que lui, etc.

Une fois qu'un toe-hold est établi sur un système, l'attaquant peut exécuter des outils d'analyse contre tous les systèmes connectés au système pénétré. Selon le système compromis, ces scans peuvent s'exécuter à l'intérieur du réseau d'une organisation'

- Trouver les vulnérabilités du système d'exploitation

Comme mentionné précédemment, les pirates recherchent d'abord des vulnérabilités pour obtenir un accès. Ensuite, ils recherchent les vulnérabilités des systèmes d'exploitation (SE) et les outils d'analyse qui rendent compte de ces vulnérabilités.

La recherche de vulnérabilités spécifiques à un SE est aussi simple que de taper une adresse URL et de cliquer sur le lien approprié. Il existe de nombreuses organisations qui fournissent des informations de " divulgation complète ". La divulgation complète est la pratique consistant à fournir toutes les informations au domaine public afin qu'elles ne soient pas'connues uniquement de la communauté des hackers.

Attaque des vulnérabilités de Solaris OE

Permettons's d'utiliser Solaris 2.6 OE comme exemple. Une vulnérabilité bien connue, pour laquelle des correctifs sont disponibles, est le

sadmind

exploit. Les pirates utilisent fréquemment cette vulnérabilité pour obtenir un accès root sur les systèmes Solaris 2.6 OE.

En utilisant uniquement un moteur de recherche et le numéro CVE, trouvé en effectuant une recherche sur le site Mitre cité précédemment, il est possible de trouver le code source et des instructions détaillées sur la manière de l'utiliser. L'ensemble du processus ne prend que quelques minutes. Le pirate trouve le code source sur le site de SecurityFocus et trouve les instructions détaillées sur le site du SANS.

Mon avis est que cela dépend si l'on parle de chapeaux blancs ou de chapeaux noirs.

Dans la plupart des cas, les chapeaux blancs peuvent prendre leur temps et ou utiliser très peu d'efforts. Par exemple, vous pouvez vous asseoir et scanner les ports ou forcer brutalement une connexion. Cela est généralement très lent mais a tendance à fonctionner après un certain temps.

Comme pour les black hats ; vous travaillez sous pression. Dès que vous faites votre premier mouvement, l'horloge commence à tourner. Je fais du pen-testing et je demande que l'équipe/département de sécurité ne sache pas ce qui va se passer. Cela me permet de travailler sous pression et de voir s'ils peuvent comprendre ce qui se passe. Les "black hats" trouveront de petits exploits, par exemple le spamming d'un formulaire de connexion ou une page qui interroge MySQL sans mise en cache. L'interrogation de MySQL a tendance à n'entraîner qu'une augmentation de l'utilisation du processeur, mais cela peut tout de même nuire à une entreprise. D'autres méthodes qui ne devraient pas fonctionner mais qui fonctionnent quand même consistent à essayer de trouver des vidages de mots de passe. La plupart des gens utilisent toujours le même mot de passe pour tout, et si vous trouvez un seul dump avec leurs informations de connexion, vous pouvez avoir obtenu les détails de connexion de son entreprise Point of Sale.

A la fin de la journée, tout se résume au temps. Comme je l'ai déjà dit, une fois qu'un black hat commence à y aller, il a généralement besoin de garder quelques pas d'avance.

Aussi Kali Linux ; toujours Kali Linux.