Conférence DEFCON 18. Vous avez dépensé tout cet argent, mais ils continuent de vous avoir. Partie 1

Comme d'habitude, comme l'année dernière, je ne peux pas croire que les gens viennent vraiment à mes présentations pour écouter ce que je dis. L'année dernière c'était dimanche, à 10 heures, j'étais dans un état de gueule de bois et je pensais que personne ne viendrait me regarder.



Aujourd'hui encore dimanche, à 4 heures de l'après-midi, aujourd'hui je voulais rentrer chez moi, mais malgré cela, je vous remercie et apprécie vraiment votre attention, comme l'année dernière, et j'aime vraiment ces gens et DefCon.

Le sujet de la présentation est que vous avez dépensé tout cet argent, mais ils continuent de vous avoir. J'ai effectué de nombreux tests de pénétration, j'étais dans de nombreux pays où j'étais impliqué dans le pentesting, et partout où je me suis débattu avec divers outils de protection tels que les pare-feu, AWS et les systèmes de détection d'intrusion IDS et MAC. Nous leur donnons toujours une raclée, et c'est très mauvais. Souvent, quand je fais des tests, mon rapport se transforme en un message sur les incidents, et je veux dire: "Salut mec, mais tu es le propriétaire de tout ça, comment peux-tu utiliser de telles conneries"? Un sujet entier y était consacré, mais permettez-moi d'abord de vous dire qui je suis.

Je suis un pentester d'applications réseau et j'enseigne les gens à ce sujet, et je suis un gars «noir» lors des conférences de sécurité, oui, c'est moi! Alors, je craque, je deviens féroce et je bois. Les ordres changent, mais je reste le même. Donc, si vous n'aimez pas les gars comme moi, vous pouvez vous lever et partir.

Alors, je reviens un peu en arrière, environ 10 ans, je le fais toujours parce que je suis particulièrement nostalgique de cette époque. À cette époque, le pentesting était une tâche facile, nous sommes venus chez le client et lui avons dit: «bonjour, mec, nous sommes des gens sûrs», et le client a levé les mains en pensant: «diable, les gens sont en sécurité ici!

Après cela, nous avons piraté le réseau client avec des outils open source comme ISS ou Nessus. Combien d'entre vous se souviennent que Nessus était alors libre?



Donc, nous sommes venus au client avec toutes ces choses et avons facilement piraté son site en utilisant des exploits tels que RootShell avec PacketStorm - levez la main, qui s'en souvient! Nous avons scanné les ports pour trouver la cible, utilisé toutes sortes de compilations, point-slash, toutes ces bibliothèques et ouvert le panneau de contrôle.





Ensuite, nous avons pris des captures d'écran de la vulnérabilité, sur lesquelles vous pouviez voir vos mots de passe et autres informations confidentielles, et nous avons dit: "Eh bien, c'est ça, mec, votre réseau a été pris en charge!"



Ensuite, nous avons rédigé un rapport, écrit quel réseau de pistes ils avaient et reçu de l'argent pour cela. "Votre réseau est une putain de merde, alors payez-moi!"



Mais aujourd'hui, les gars, tout autour est un CISSP solide, une certification indépendante de la sécurité de l'information, et le gars qui vous embauche pense qu'il en sait plus que vous. Je veux lui dire: "alors qu'est-ce que tu m'as engagé?", Et il répond: "tu sais, on l'a fait, et ça, on a IDS et MAC, on a ça, on a ça ...". Et tu tournes là dans toute cette merde.
Permettez-moi de vous raconter une petite histoire. Tous ceux qui me connaissent savent que j'ai toujours une sorte d'histoire.

Il y a quelques années, j'avais un client qui avait commandé un pentesting. Il a dit: «OK, Joe, je veux que vous vérifiiez ces sous-réseaux et la liste de contrôle d'accès ACL pour les VLAN.» Certains d'entre vous ont probablement déjà fait des ACL pour les VLAN, donc vous êtes plus intelligents que moi parce que je ne l'ai jamais fait.

Je dis - eh bien, quel genre d'audit dois-je faire? Il répond - Audit VLAN, d'accord, je pense que je vais regarder leur configuration réseau. Et ici, je suis assis avec un administrateur réseau et je vois qu'ils ont 90 VLAN pour 300 utilisateurs! J'étais juste sous le choc et lui ai dit comment c'était possible, mais il a juste répondu - eh bien, c'est arrivé! J'ai pris un petit morceau de papier et j'ai commencé à faire le tour des gens en demandant: «Avez-vous besoin de ce réseau? Mais avez-vous besoin de ce réseau? Peut-être avez-vous besoin de ce réseau? " Alors, j'ai fait le tour de tout le monde, j'ai découvert ce dont tout le monde avait besoin, et c'était une grosse, sacrément grosse entreprise. J'ai vérifié tous ces VLAN, certifié certains réseaux et atteint l'un des segments DMZ, dont 4 dans l'entreprise. Je me suis dit: "Hé mec, toutes ces boîtes doivent être mises à jour, elles doivent vraiment être corrigées." Je suis allé voir le directeur général adjoint et j'ai dit que vous avez tout cet équipement qui a besoin d'une mise à jour logicielle, car vous avez raté certains correctifs SQL, PHP et bien plus encore.

Ils ont eu une réunion parce qu'ils se rencontrent constamment, et l'un des développeurs se lève et dit: "Non, non, nous ne pouvons pas mettre à jour cela, ce sont nos serveurs de développement!" (rires et applaudissements dans la salle). Comment puis-je commenter le fait que le serveur de développement est situé dans la DMZ? Et ils me répondent: "C'est mieux!".

Donc, je continue à travailler pour le client, à commencer mon petit pentesting et à "faire tomber" quelques racks, car c'est facile à faire. Le client demande pourquoi c'était notre système IDS qui ne pouvait pas vous attraper, et je réponds, mais quoi, était IDS là? Il dit oui, nous l'utilisons pour surveiller la sécurité. Je réponds: "eh bien, probablement parce que quelqu'un a travaillé sur cet IDS"!

Les entreprises engagent d'autres sociétés pour externaliser leur IDS, elles les gèrent, font des rapports et font un tas de choses merdiques. J'ai donc dû regarder leur «boîte» et j'ai demandé au gars de me donner accès pour l'examiner rapidement. Merde, il a fallu plus de 2 minutes pour se connecter via SSH, et j'ai vu que cette chienne est lente en enfer, alors j'ai commencé à vérifier les rootkits. Il s'est avéré qu'il y avait déjà 4 rootkits!



Donc, le pentesting est une chose cool! Alors, que dois-je faire lorsque je m'oppose à ces gars des grandes entreprises, quand j'audite toutes ces putains de banques, toutes ces putains de sociétés - je me tourne vers Google pour obtenir de l'aide. Tout d'abord, je recherche des messages d'erreur SQL, je recherche des fichiers pour le contrôle à distance, tout cela me donnera un accès rapide au shell, l'endroit le plus vulnérable. Ne vous engagez jamais dans des bêtises telles que l'analyse de vulnérabilité, prenez immédiatement le système "à la gorge". Je suis donc toujours à la recherche d'injections SQL, de fichiers RF, de scripts crossite, et après les avoir trouvés, je me tourne vers l'intelligence passive et OSINT - l'intelligence open source, pour cela j'utilise Maltego. J'agis comme une femme qui veut attraper son mari pour trahison - je regarde partout! J'essaie de comprendre quels sous-réseaux ils ont, où toutes ces choses sont situées, j'utilise cet outil incroyable appelé Firefox. Croyez-moi, vous serez surpris de ce qu'il peut faire!

L'intelligence passive est le principal outil que vous devriez vraiment essayer. Je suis sûr que la plupart d'entre vous l'utilisent déjà, cette technique devrait certainement être utilisée. Ensuite, je cherche des équilibreurs de charge, maintenant je passe par des équilibreurs de charge environ 30% de mes tests de pénétration, c'est vraiment une chose pratique. Je configure la charge sur la «boîte» et je vérifie s'il s'agit d'un équilibrage de charge DNS ou HTTP. Par exemple, lorsque vous envoyez des paquets et qu'ils se dispersent sur tous ces chemins, cela rend les tests un peu plus difficiles.



Ensuite, je reviens à l'impressionnant navigateur Firefox et modifie le contenu de l'en-tête de la barre de recherche des en-têtes HTTP en temps réel. Cela vous permet d'envoyer des requêtes générales au serveur.



Donc, si vous envoyez le premier paquet et que «5» vous est retourné, vous envoyez un autre paquet dans la même boîte et il renvoie «6», vous avez donc un équilibrage de charge. Même chose avec l'équipe de fouille et Netcraft.

Netcraft est généralement une chose incroyable. Par exemple, vous recherchez quelque chose comme «F5 BigIP» et obtenez des adresses IP avec une charge déjà équilibrée. Pendant le pentesting, c'était très important pour moi. L'équilibreur de charge est détecté par un script shell ou à l'aide de Halberd, c'est un script Python qui fait de même. Ce sont donc de très bonnes choses qui vous aident à déterminer la véritable IP de l'hôte que vous avez l'intention d'attaquer et qui se trouve derrière l'équilibreur de charge.



La prochaine chose que j'ai rencontrée est de déterminer s'il existe un IPS ou un système de prévention des intrusions. Tout le monde semble avoir IPS, mais la grande majorité de mes clients l'utilisent en mode IDS. Tout comme cela n'a aucun sens d'utiliser des outils de piratage contre un hôte à charge équilibrée, cela n'a aucun sens de les utiliser contre un hôte protégé par IPS. Est-ce que l'un d'entre vous utilise cette chose? Déconnectez-le en enfer car il bloque le trafic! En effet, essayez de le désactiver et voyez ce qui se passe. Combien pensent que ce système bloque le trafic illégal, vous a-t-elle écrit à ce sujet? C'est la même merde que tous les systèmes comme elle. Êtes-vous d'accord avec moi? Je veux juste m'assurer que je ne suis pas le seul à le penser.

Donc, je dois savoir si je dois lutter contre IPS, c'est-à-dire si l'hôte attaqué n'est pas sous sa protection, et pour cela, je fais des choses vraiment simples.



Je suis un gars Linux, mais maintenant je dois utiliser Windows, donc je me sens un peu sale. Tout d'abord, j'utilise cURL - ce sont des outils de ligne de commande, ou des scripts, et une bibliothèque qui transmet les données par URL. Avec cURL, je vais vaincre ../../WINNT/system32/cmd.exe?d. Croyez-moi, cette attaque n'a pas fonctionné depuis que Jésus a marché sur la terre, alors faites-moi savoir si vous parvenez à la réaliser.

La seule raison pour laquelle cela doit être fait est d'essayer de savoir si quelque chose bloque votre adresse IP ou envoie des paquets de réinitialisation à votre connexion. Parce que si cette chose vous envoie des paquets de réinitialisation, vous devez vous référer à cmd.exe? D, car il est probable que votre adresse bloque IPS. En pensant de la même manière, les gars de purehacking.com ont proposé la détection de filtre active ou la détection de filtre actif. C'est un très bon outil qui fonctionne sur Python, qui vous permet de le modifier un peu et de le personnaliser selon vos besoins.

Je rencontre souvent IPS, donc j'utilise 3-4 adresses IP différentes à partir desquelles je tire des paquets et vois si je reçois des paquets de vidage en réponse. Si je reçois, cela signifie que mon adresse IP est bloquée. Je note que la plupart des solutions IDS / IPS ne surveillent pas le trafic codé SSL et tout autre trafic crypté. Donc, la prochaine chose que je fais est de voir si IPS peut gérer SSL. Permettez-moi de vous rappeler à nouveau pourquoi nous utilisons Linux.



Je crée un fichier xlnetd et fais ce que j'appelle le «Test SSL». Vous voyez que j'ouvre le port 8888, puis toutes les données que je transmets à l'hôte local 8888 tombent dans ce petit script shell, vous voyez server = /home/j0e/security/toolz/ssl_proxy.sh.

Sur la diapositive suivante, vous pouvez voir les capacités incroyables de mon script - il suffit de regarder ce script à partir d'une ligne! Ainsi, le trafic va directement à SSL ouvert, puis une connexion est établie avec la cible et la même détection de filtre actif ou cmd.exe est lancée contre l'hôte local afin de déterminer si mon adresse IP est bloquée.



La grande majorité de mes clients qui déploient IPS et utilisent le mode de blocage ne déchiffrent pas le trafic SSL avant qu'il ne passe IPS ou IDS. Par conséquent, si vous souhaitez que vos clients utilisent l'argent de manière rentable, dites-leur d'acheter un accélérateur SSL. Il interrompt le protocole SSL avant IPS et essaie de décrypter le trafic.
Voyons maintenant comment vous pouvez attaquer l'hôte via Tor et comment exécuter des outils d'analyse réseau à travers lui. Je le fais assez souvent, en démarrant privoxy et en mode caché, j'utilise des outils comme Nessus pour attaquer l'hôte via le port 8080. À cet égard, il convient de recommander à ses clients de bloquer les nœuds de sortie Tor.



La plupart des entreprises n'ont aucune raison d'autoriser leurs clients à se connecter à leur réseau via des réseaux privés, mais ne bloquent jamais de telles connexions. Par conséquent, vous devez obliger les entreprises à bloquer ces nœuds, c'est ce que je fais d'abord pour mes clients. Je n'ai pas de diapositive de proxy GLib car la gueule de bois a vraiment affecté ma capacité à réaliser correctement ces diapositives ce matin.

La dernière chose que je fais est d'identifier le WAF, les pare-feu d'application Web ou les pare-feu d'application Web. Comment puis-je déterminer si un hôte utilise WAF?



Étant donné que je fais beaucoup de pentesting PCI, je sais que certaines têtes ingénieuses du bureau de représentation PCI ont réalisé que si vous avez des applications Web vulnérables que vous ne voulez pas corriger et corriger la vulnérabilité, alors vous pouvez utiliser WAF. En fait, découvrir l'utilisation de tels pare-feu est facile. Pour ce faire, il suffit d'envoyer à l'hôte 1 une demande réelle, une demande malveillante et de voir en quoi ses réponses différeront. Une demande HTTP conçue de manière malveillante peut contenir une charge utile qui comprend toutes sortes de bêtises telles qu'une apostrophe, des guillemets, un point d'interrogation, un signe moins, des crochets, des astérisques, etc.



Il n'est donc pas du tout difficile de savoir si vous attaquez un hôte protégé par WAF.
Donc, vous envoyez des caractères non valides, après quoi les outils décrits dans la diapositive suivante vous donnent toutes sortes de ces choses étranges. Donc, si vous demandez cmd.exe et utilisez l'utilitaire de ligne de commande grep pour la méthode "501", c'est-à-dire, au lieu de l'erreur 404 "introuvable", vous recevrez le message d'erreur 501 - "la méthode de demande n'est pas prise en charge par le serveur", alors vous avez probablement rencontré Pare-feu mod_security protégeant le serveur Apache. Les nouvelles versions de ce pare-feu ont changé la donne, mais qui se soucie vraiment de mettre à jour leur WAF?

J'utilise donc assez largement les méthodes présentées dans la diapositive suivante et je passe également mes attaques via le pare-feu AQTRONIX Web Knight.



Vous voyez le code 999 No Hacking dans l'en-tête de la réponse, que je lance lors du test - «No hacking». Donc, vous commencez simplement à ajouter des éléments à la barre d'adresse pour voir ce que cela donnera et si vous obtenez un message d'erreur 404 pour un fichier qui n'est pas sur l'hôte.



Je veux dire, si vous envoyez la demande correcte qui vous donne un message 200, puis envoyez la mauvaise demande pour un fichier qui n'existe pas, et le serveur donne une erreur 404, puis insérez soudainement quelque chose pour les scripts intersites, le serveur enverra vous avez une signification complètement différente de l'erreur. Cela indiquera que dans ce cas, il existe une sorte de mécanisme de protection.

Retour à nos jeux d'encodage. Si vous déterminez que vous êtes opposé à WAF, voyez si cette chose prend en charge HEX, qu'elle gère utf7, utf-8, base16, base64 ou un mélange de ces encodages. La plupart des WAF ne fonctionnent pas bien avec les encodages, surtout si vous commencez à les mélanger les uns avec les autres.

Mes bons amis, Sancho Gachi et Windell, ont créé l'an dernier un outil Python appelé WAFW00F, un utilitaire pour détecter les WAF.



Cette chose prend les empreintes digitales des en-têtes de réponse HTTP et identifie WAF. J'aime vraiment cette chose, maintenant nous avons déjà une liste de 10 ou 12 WAF, et elle est en constante augmentation. La prochaine chose à noter est WAF Fun, un outil qui fonctionne avec la méthode de force brute sur l'ensemble de règles de pare-feu d'application Web, et il est également écrit en Python.

J'admire vraiment ces gars et je souhaite que nous progressions encore plus, mais vous savez que nous buvons un peu, puis travaillons, puis buvons encore et travaillons à nouveau, donc le processus de création de telles choses n'est pas facile. Mais j'espère toujours qu'à la prochaine conférence DefCon, je pourrai démontrer comment WAF Fun fonctionne en utilisant la méthode de la force brute.

Une autre chose intéressante est ce que nous pouvons faire avec Unicode. C'est vrai, c'est écrit en Ruby, et nous savons tous que Ruby craint.

17:00 min

Conférence DEFCON 18. Vous avez dépensé tout cet argent, mais ils continuent de vous avoir. 2e partie



Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbit / s jusqu'en janvier gratuitement en payant pour une période de six mois, vous pouvez commander ici .

Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

Source: https://habr.com/ru/post/fr432456/


All Articles