Conférence HACKTIVITY 2012. The Big Bang Theory: The Evolution of Pentesting in Enhanced Security. 2e partie

Conférence HACKTIVITY 2012. The Big Bang Theory: The Evolution of Pentesting in Enhanced Security. Partie 1

Nous allons maintenant essayer une autre façon d'implémenter SQL. Voyons si la base de données continue de lancer des messages d'erreur. Cette méthode est appelée «en attente d'un délai», et le délai lui-même est écrit sous cette forme: attente pour le délai 00:00:01 '. Je le copie de notre fichier et le colle dans la barre d'adresse du navigateur.



Tout cela s'appelle «injection SQL aveugle temporaire». Tout ce que nous faisons ici est de dire: «attendez un délai de 10 secondes». Si vous remarquez, en haut à gauche, nous avons l'inscription «connexion ...», c'est-à-dire que fait notre page? Elle attend une connexion et après 10 secondes, la page correcte apparaît sur votre moniteur. Avec cette technique, nous nous tournons vers la base de données afin qu'elle nous permette de lui poser quelques questions supplémentaires, par exemple, si l'utilisateur est Joe, alors vous devez attendre 10 secondes. Est-ce clair? Si l'utilisateur est dbo, attendez 10 secondes aussi. Il s'agit de la méthode d'injection SQL aveugle.

Je pense que les développeurs lors de la création de correctifs n'éliminent pas cette vulnérabilité. Il s'agit d'une injection SQL, mais notre programme IDS ne la voit pas non plus, ainsi que les méthodes précédentes d'injection SQL.
Essayons quelque chose de plus intéressant. Copiez cette ligne avec l'adresse IP et collez-la dans le navigateur. Ça a marché! La bande TCP de notre programme est devenue rouge; le programme a noté 2 menaces de sécurité.



Eh bien, regardez plus loin ce qui s'est passé. Nous avons une menace pour le shell XP, et une autre menace est une tentative d'injection de SQL. Au total, deux tentatives d'attaque de l'application Web ont été notées.



Ok, maintenant aidez-moi avec la logique. Nous avons un package de données d'intervention dans lequel IDS dit qu'il a répondu à diverses interventions dans le shell de commande XP.



Si nous descendons, nous verrons un tableau de codes HEX, Ă  droite duquel se trouve un drapeau avec le message xp_cmdshell + & 27ping, et Ă©videmment c'est mauvais.



Voyons ici ce qui s'est passé. Qu'a fait le serveur SQL?



Le serveur SQL a déclaré: "vous pouvez avoir un mot de passe de ma base de données, vous pouvez obtenir tous les enregistrements de ma base de données, mais, mec, je ne veux pas que vous exécutiez mes commandes du tout, ce n'est pas du tout cool!"

Ce que nous devons faire est de nous assurer que même si IDS signale une menace pour le shell XP, cette menace est ignorée. Si vous utilisez SQL Server 2005 ou SQL Server 2008, lors de la détection d'une tentative d'injection SQL, le shell de commande du système d'exploitation sera bloqué, ce qui ne vous permettra pas de poursuivre votre activité. C'est très ennuyeux. Alors on fait quoi? Vous devez essayer de demander au serveur très affectueusement. Je dois dire ceci: "s'il te plaît, papa, eh bien, puis-je avoir ces cookies?" C'est ce que je fais, sérieusement, je demande très poliment au serveur! Je vous demande d'afficher des options supplémentaires, de demander une reconfiguration et de changer les paramètres du shell XP pour rendre le shell disponible, car j'en ai besoin!



Nous voyons que IDS a détecté cela - vous voyez, 3 menaces ont déjà été notées ici.



Vous regardez juste ici - nous avons fait exploser les journaux de sécurité! Il ressemble à un arbre de Noël, tellement de choses sont accrochées ici! Jusqu'à 27 menaces pour la sécurité! Hourra les gars, on a attrapé ce hacker, on l'a eu!



Nous ne sommes pas inquiets qu'il vole nos données, mais s'il peut exécuter des commandes système dans notre «boîte» - c'est grave! Vous pouvez dessiner une route Telnet, FTP, vous pouvez mettre la main sur mes données, c'est cool, mais je ne m'inquiète pas, je ne veux pas que vous repreniez la coque de ma «boîte».

Je veux dire des choses qui m'ont vraiment «attiré». Je travaille pour des organisations, je travaille pour elles depuis de nombreuses années, et je vous en parle car ma copine croit que je suis au chômage. Elle pense que je ne fais que ce que je fais sur scène et que je discute, cela ne peut pas être considéré comme du travail. Mais je dis: "Non, ma joie, je suis consultant!" C’est la différence - j’exprime mon opinion, et ils me paient pour ça.

Je dirai ceci - nous, comme les hackers, aimons casser la coquille, et pour nous il n'y a pas plus de plaisir au monde que "avaler l'évier". Lorsque les analystes IDS écrivent leurs règles, vous voyez qu'ils les écrivent de manière à se protéger contre la rupture du shell. Mais si vous parlez au CIO du problème de l'extraction des données, il vous proposera de réfléchir à deux options. Supposons que j'ai une application qui fait 100 "pièces" par heure. Quoi de plus important pour moi - d'assurer la sécurité de toutes les données de cette application ou la sécurité du shell "box"? C'est une question sérieuse! De quoi devriez-vous vous inquiéter davantage?



Le fait que vous ayez un shell «box» endommagé ne signifie pas nécessairement que quelqu'un a eu accès au fonctionnement interne des applications. Oui, c'est plus que probable, et si cela ne s'est pas encore produit, cela peut arriver bientôt. Mais notez que de nombreux produits de sécurité reposent sur le principe qu'un attaquant se déplace sur votre réseau. Par conséquent, ils font attention à l'exécution des commandes, à l'introduction des commandes, et vous devez noter que c'est une chose sérieuse. Ils prêtent attention aux vulnérabilités triviales, aux scripts intersites très simples, aux injections SQL très simples. Ils ne se soucient pas des menaces complexes ou des messages chiffrés; ils ne se soucient pas de ce genre de choses. On peut dire que tous les produits de sécurité recherchent du bruit, ils recherchent un «yap», ils veulent arrêter ce qui vous mord la cheville. C'est ce que j'ai compris lorsqu'il s'agissait de produits de sécurité. Vous n'avez pas besoin d'acheter des produits de sécurité, vous n'avez pas besoin de conduire un camion en marche arrière. Vous avez besoin de personnes compétentes et qualifiées qui comprennent la technologie. Oui, mon Dieu, ce sont les gens! Nous ne voulons pas investir des millions de dollars dans ces problèmes, mais beaucoup d'entre vous ont travaillé dans ce domaine, et vous savez que dès que votre patron regarde l'annonce, il court au magasin avec un cri: "nous devons obtenir cette chose!" Mais en réalité, nous n'en avons pas besoin, nous devons juste réparer le gâchis qui est derrière nous. C'était la condition préalable à cette présentation.

Un environnement de sécurité renforcée est quelque chose que j'ai passé beaucoup de temps à comprendre les règles de fonctionnement des mécanismes de sécurité. Une fois que vous comprenez les mécanismes de protection, contourner la protection est facile. Par exemple, j'ai une application Web qui est protégée par son propre pare-feu. Je copie l'adresse du panneau des paramètres, je la colle dans la barre d'adresse du navigateur et j'entre dans les paramètres et j'essaie d'appliquer des scripts intersites.



En conséquence, je reçois un message de pare-feu sur la menace - ils m'ont bloqué.



Je pense que c'est mauvais, êtes-vous d'accord? Vous avez rencontré un produit de sécurité. Mais que se passe-t-il si j'essaye quelque chose comme ceci: j'entre le paramètre Joe '+ OR + 1 =' 1 dans la ligne



Comme vous pouvez le voir, cela a fonctionné. Corrigez-moi si je me trompe, mais nous avons vu comment l'injection SQL a vaincu le pare-feu de l'application. Imaginons maintenant que nous voulions créer une entreprise pour mettre en œuvre des mesures de sécurité, essayons donc le chapeau d'un fabricant de logiciels. Maintenant, nous incarnons le mal parce que c'est un chapeau noir. Je suis consultant, je peux donc le faire avec des éditeurs de logiciels.

Nous voulons créer et déployer un nouveau système de détection d'intrusion, nous allons donc démarrer une entreprise de détection d'intrusion. En tant que produit open source, Snort contient des centaines de milliers de signatures de menaces d'intrusion. Nous devons agir de manière éthique, afin de ne pas voler ces signatures à d'autres applications et de les insérer dans notre système. Nous nous asseyons et les réécrivons tous - hé, Bob, Tim, Joe, allons-y ici, vérifions rapidement toutes ces 100 000 signatures!

Nous devons également créer un scanner de vulnérabilité. Vous savez que Nessus, un programme de recherche automatique de vulnérabilités, possède 80 000 signatures et scripts qui vérifient les vulnérabilités. Nous allons à nouveau agir de manière éthique et les réécrire personnellement dans notre programme.
Les gens me demandent: "Joe, faites-vous tous ces tests avec des logiciels open source tels que Mod Security, Snort et similaires, répondez à quel point ils sont similaires aux produits d'autres fabricants?" Je leur réponds: "Ils ne leur ressemblent pas du tout!" Parce que les fabricants ne volent pas les produits des produits de sécurité open source, ils s'assoient et écrivent toutes ces règles de leurs propres mains.

Si vous pouvez faire fonctionner vos propres signatures et lignes d'attaque sans utiliser de produits open source, c'est une grande chance pour vous. Si vous n'êtes pas en mesure de vous opposer à des produits commerciaux, en allant dans la bonne direction, vous devriez trouver un concept qui vous aidera à devenir célèbre dans votre domaine.

Tout le monde sait ce que je bois. Permettez-moi de vous montrer pourquoi je bois. Si vous avez déjà audité le code source dans votre vie, vous le boirez certainement, croyez-moi, après cela, vous commencerez à boire.



Donc, notre langage préféré est le C ++. Regardons ce programme - Web Knight, c'est une application de pare-feu pour les serveurs Web. Il a des exceptions par défaut. C'est intéressant - si je déploie ce pare-feu, il ne me protégera pas d'Outlook Web Access.



Super! En effet, de nombreux éditeurs de logiciels tirent les règles des mêmes applications et les insèrent dans leur produit sans faire tout un tas de recherches. Par conséquent, lorsque je déploie l'application de pare-feu réseau, je pense que tout ce qui concerne le webmail est mal fait! Parce que pratiquement n'importe quel webmail viole la sécurité par défaut. Vous disposez d'un code Web qui exécute les commandes système et les requêtes à partir de LDAP ou de tout autre référentiel de base de données utilisateur directement sur Internet.

Dites-moi, sur quelle planète cela peut-il être considéré comme sûr? Pensez-y: vous ouvrez Outlook Web Access, appuyez sur b ctrl + K, recherchez des utilisateurs et tout cela, vous gérez Active Directory directement à partir d'Internet, vous exécutez des commandes système sous Linux si vous utilisez "mail protéique", ou Horde ou quoi autre chose. Vous tirez tous ces évals et d'autres types de fonctionnalités dangereuses. Par conséquent, de nombreux pare-feu les excluent de la liste des risques de sécurité, essayez de demander au fabricant de votre logiciel à ce sujet.

Retour à l'application Web Knight. Il a volé de nombreuses règles de sécurité à un analyseur d'URL qui analyse toutes ces plages d'adresses IP. Alors, toutes ces plages d'adresses sont-elles exclues de mon produit?



L'un de vous souhaite-t-il définir ces adresses sur votre réseau? Voulez-vous que votre réseau fonctionne à ces adresses? Oui, c'est génial. Eh bien, faites défiler ce programme et regardez d'autres choses que ce pare-feu ne veut pas faire.

Ils s'appellent 1999 et veulent que leur serveur web soit dans le passé! Est-ce que certains d'entre vous se souviennent de ces ordures: / scripts, / iishelp, msads? Peut-être que quelques personnes nostalgiques se souviendront à quel point c'était amusant de casser de telles choses. "Rappelez-vous, mec, depuis combien de temps nous avons" tué "des serveurs, c'était cool!"



Maintenant, si vous regardez ces exceptions, vous verrez que vous pouvez faire toutes ces choses - msads, imprimantes, iisadmpwd - toutes ces choses dont personne n'a besoin aujourd'hui. Qu'en est-il des commandes que vous n'êtes pas autorisé à exécuter?



C'est arp, at, cacls, chkdsk, cipher, cmd, com. Lorsque vous les listez, vous êtes couvert de souvenirs de jours passés, "mec, souviens-toi comment nous avons capturé ce serveur, souviens-toi de ces jours"?

Mais ce qui est vraiment intéressant, est-ce que quelqu'un voit WMIC ici ou peut-être PowerShell? Imaginez que vous ayez une nouvelle application qui fonctionne en exécutant des scripts sur le système local, et ce sont des scripts modernes, parce que vous voulez exécuter Windows Server 2008, et je vais faire un excellent travail en la protégeant avec des règles conçues pour Windows 2000. Donc que la prochaine fois que le fournisseur viendra vers vous avec votre application Web, demandez-lui: «hey man, et vous avez fourni des choses comme bits admin, ou exécuter des commandes powershell, avez-vous vérifié toutes les autres choses, parce que nous allons mettre à niveau et utiliser le nouveau ve ISU DotNET »? Mais toutes ces choses doivent être présentes dans le produit de sécurité par défaut!



La prochaine chose dont je veux parler avec vous, ce sont les erreurs logiques. Allons à l'adresse 192.168.2.6. Il s'agit de la même application que la précédente.



Vous remarquerez peut-être quelque chose d'intéressant si vous faites défiler la page et cliquez sur le lien Contactez-nous.



Si vous regardez le code source de l'onglet Contactez-nous, c'est l'une des méthodes de pentesting, alors ce que je fais constamment, c'est remarquer cette ligne.



Pensez-y! J'entends que beaucoup à la vue de cela ont dit: "Wow!" Une fois, j'ai effectué des tests de pénétration pour, disons, une banque milliardaire, et j'ai remarqué quelque chose de similaire là-bas. Donc, nous n'avons besoin ni d'injections SQL ni de scripts intersites - nous avons l'essentiel, cette barre d'adresse.



Donc, sans exagérer - la banque nous a dit qu'ils avaient les deux - un spécialiste du réseau et un inspecteur web, et ils n'ont fait aucun commentaire. Autrement dit, ils considéraient comme normal que, via un navigateur, vous puissiez ouvrir et lire un fichier texte.

Autrement dit, vous pouvez simplement lire le fichier directement à partir du système de fichiers. Le chef de leur service de sécurité m'a dit: "Oui, l'un des scanners a trouvé cette vulnérabilité, mais l'a jugée mineure." À quoi j'ai répondu, eh bien, donnez-moi une minute. J'ai tapé dans la barre d'adresse filename = .. / .. / .. / .. / boot.ini et j'ai pu lire le fichier de démarrage du système de fichiers!



Ils m'ont dit ceci: "non, non, non, ce ne sont pas des fichiers critiques!" J'ai répondu - mais c'est Server 2008? Ils ont dit oui, c'est lui. Je dis - mais ce serveur a un fichier de configuration situé dans le répertoire racine du serveur, non? «D'accord», répondent-ils. «Excellent», dis-je, «et si l'attaquant fait cela», et je tape filename = web.config dans la barre d'adresse. Ils disent - alors quoi, vous ne voyez rien sur le moniteur?



Je dis - et si je fais un clic droit sur le moniteur et sélectionne l'option "Afficher le code de page"? Et que vais-je trouver ici? Rien de critique? Je verrai le mot de passe administrateur du serveur!



Et vous dites qu'il n'y a pas de problème?

Mais ma partie préférée est la suivante. Vous ne m'autorisez pas à exécuter des commandes dans la «boîte», mais je peux voler le mot de passe et la base de données de l'administrateur du serveur Web, afficher la base de données entière, extraire tous les documents sur la base de données et les défaillances du système à partir de là, et repartir avec tout cela. C'est le cas quand un méchant dit: "Hé mec, aujourd'hui est un grand jour!"



Ne laissez pas les produits de sécurité devenir votre maladie! Ne laissez pas les produits de sécurité vous rendre malade! Trouvez des «nerds», donnez-leur tous ces tzatskis Star Trek mémorables, intéressez-les, encouragez-les à rester avec vous, parce que ces puants ennuyeux qui ne prennent pas de douches quotidiennes sont ceux qui font fonctionner vos réseaux comme devrait! Ce sont ces personnes qui aideront vos produits de sécurité à fonctionner correctement.

Dites-moi, lequel d'entre vous est capable de rester longtemps dans la même pièce avec la personne qui dit constamment: "Oh, j'ai besoin d'imprimer ce script de toute urgence!", Et qui est occupé avec ça tout le temps? Mais vous avez besoin de personnes qui font fonctionner vos produits de sécurité.

Je répète encore une fois - les produits de sécurité sont stupides, parce que les lumières se trompent constamment, commettent constamment des choses bâclées, elles n'offrent tout simplement pas de sécurité. Je n'ai jamais vu un bon produit de sécurité qui ne nécessiterait pas une personne avec un tournevis, capable de serrer si nécessaire, pour que tout fonctionne plus ou moins normalement. Ceci est juste une énorme liste de règles disant que c'est mauvais, et c'est tout!

Par conséquent, les gars, je veux que vous prêtiez attention à l'éducation, à des choses telles que la sécurité, la formation polytechnique, car il existe de nombreux cours en ligne gratuits sur les questions de sécurité. Apprenez Python, apprenez les assemblys Assembly, apprenez les tests d'applications Web.



Voici ce qui vous aide vraiment à protéger votre réseau. Les gens intelligents protègent les réseaux, les produits réseau ne protègent pas! Retournez au travail et dites à votre patron que vous avez besoin de plus de budget pour des personnes plus intelligentes, je sais qu'il y a une crise, mais dites-lui toujours - nous avons besoin de plus d'argent pour que les gens les forment. Si nous achetons un produit, mais n'achetons pas de cours sur sa manipulation, car il coûte cher, alors pourquoi l'achetons-nous du tout si nous n'enseignons pas aux gens comment l'utiliser?

J'ai travaillé pour de nombreux fabricants de produits de sécurité, j'ai passé presque toute ma vie à travailler sur la mise en œuvre de ces produits, et j'en ai déjà marre de tous ces contrôles d'accès au réseau et d'autres choses, parce que j'ai installé et lancé tous ces produits de merde. Quelque part, je suis venu à un client, ils voulaient implémenter la norme 802.1x pour le protocole EAP, donc ils avaient des adresses MAC et des adresses secondaires pour chaque port. Je suis venu, j'ai vu que c'était mauvais, je me suis retourné et j'ai commencé à appuyer sur les boutons de l'imprimante. Vous savez, l'imprimante peut imprimer une page de test de l'équipement réseau avec toutes les adresses MAC et adresses IP. Mais il s'est avéré que l'imprimante ne prend pas en charge la norme 802.1x, elle doit donc être exclue.

Ensuite, j'ai déconnecté l'imprimante du réseau et changé l'adresse MAC de mon ordinateur portable en adresse MAC de l'imprimante et connecté mon ordinateur portable, contournant ainsi cette solution MAC coûteuse, pensez-y! Alors, que peut faire cette solution MAC pour moi si une personne peut simplement faire passer n'importe quel équipement comme imprimante ou comme téléphone VoIP?

Donc pour moi aujourd'hui, le pentesting est que je passe du temps à essayer de comprendre et de comprendre le produit de sécurité que mon client a acheté. , , HIPS, NIPS, LAUGTHS, MACS , . , . , , , , .

, , MS 1103. , «» HIPS, Host Intrusion Prevention Signature, . HIPS. , , , , , .
, , .


:)


, . ? ? , , VPS $4.99 , entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).

Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — $99! . c Dell R730xd 5-2650 v4 9000 ?

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


All Articles