web-dev-qa-db-fra.com

Comment apprendre les tests de pénétration à la maison?

Je suis intéressé à apprendre le piratage éthique ou les tests de pénétration pour me diriger vers une carrière dans cette direction.

J'ai une solide connaissance de linux et unix, de la théorie et de la pratique informatique de base et des connaissances de base en programmation (tableaux, méthodes, boucles).

J'ai regardé le gruyère et le webgoat, mais je trouve ceux-ci trop avancés pour moi. Ils demandent à résoudre un problème sans expliquer suffisamment le problème, pourquoi il peut être utilisé pour attaquer et donner des exemples.

Y a-t-il des cours ou des programmes interactifs, gratuits, que je peux faire depuis chez moi pour apprendre moi-même ces informations?

Un bonus serait de donner des leçons de programmation utiles dans ce domaine, par exemple en enseignant JavaScript à démontrer les attaques et les manipulations de cookies.

48
Cyrus

Les options gratuites sont peu nombreuses, mais il existe des tonnes de vidéos et de didacticiels sur des vecteurs d'attaque ou des produits/outils spécifiques. Ils ne feront pas de vous un testeur de pénétration, mais ce sont des ressources d'apprentissage gratuites.

Quelques options décentes pour vous démarrer:

Pour la pratique, il existe un certain nombre de ressources:

  • Métasploitable VM (et autres VM délibérément vulnérables)
  • DVWA
  • Mutillidae
  • WebGoat
  • Vulnhub
  • hack.me

Faites des recherches sur ce site pour trouver d'autres personnes qui proposent des avis sur des ressources d'apprentissage gratuites. Mais, la seule façon d'apprendre est de se salir les mains.

Continuez à y travailler et continuez à poser des questions!

51
schroeder

En plus des liens vers des outils, des applications de pratique vulnérables, etc., la norme d'exécution des tests de pénétration vise à être la norme définitive sur la manière d'approche des tests: - http://www.pentest-standard.org/index.php/Main_Page

8
Rory Alsop

Vous pouvez les mettre sur une machine virtuelle en utilisant VM Player et jouer.

Damn Linux vulnérable ( http://sourceforge.jp/projects/sfnet_virtualhacking/downloads/os/dvl/DVL_1.5_Infectious_Disease.iso/ )

Dégivrage/Hackerdemia ( http://forums.heorot.net/ )

Pour apprendre, je regarderais différentes méthodologies de test de pénétration comme le manuel de méthodologie de test de sécurité Open-Source (http://isecom.securenetltd.com/osstmm.en.2.1.pdf). Celles-ci donnent généralement une liste de choses à vérifier. Vous pouvez ensuite prendre ces listes de contrôle et rechercher divers didacticiels sur le Web sur la façon de vaincre les différentes technologies.

L'un des meilleurs livres que j'ai lu récemment était Writing Security Tools and Exploits ( http://www.Amazon.com/Writing-Security-Tools-Exploits-Foster/dp/159749997/ref=sr_1_1?ie = UTF8 & qid = 1328592753 & sr = 8-1 ). Il couvre l'assemblage de base, la création de shellcode, des conseils sur la recherche et l'écriture de dépassements de tampon, le formatage de chaînes, les attaques par tas et plus encore. Le livre est un peu daté et ne couvre pas des choses comme ASLR et NX, mais donne une base solide avec de nombreux exemples avec de grandes explications.

6
Dylan

La sécurité de l'information est un domaine très vaste, il se compose de divers sous-domaines: sécurité des infrastructures, sécurité des applications, sécurité des réseaux, etc. D'après votre question, je crois que le domaine qui vous intéresse est la sécurité des applications Web - WebGoat et Gruyeres sont deux applications vulnérables dédiées à l'enseignement des vulnérabilités les plus courantes dans la sécurité des applications Web. C'est le seul sujet sur lequel ils mentionnent et expliquent.

À mon avis, la meilleure façon de commencer dans la sécurité des applications Web est de lire la liste et les explications OWASP top 1 , puis de continuer à tester les vulnérabilités des applications Web (bien sûr uniquement contre vos propres machines d'assurance qualité) ou avec le consentement écrit des administrateurs). Comme mentionné, la série Hacme de Fundstone (maintenant McAfee) est très bonne, est disponible dans de nombreuses langues (vous pouvez donc trouver une langue que vous connaissez) et comprend des tutoriels détaillés sur la façon de manipuler et de casser les applications Hacme.

Pour une liste plus complète des applications et des machines virtuelles vulnérables, vous voudrez peut-être essayer le Vulnerable Applications Market

Un autre excellent moyen d'apprendre, bien qu'il soit un peu ancien, est de passer les MSDN Security Labs qui sont gratuits et enseignent une grande variété de sujets:

  • Développeur Starter Kit: Buffer Overflows
  • Developer Starter Kit: analyse de code
  • Developer Starter Kit: Compiler Defenses
  • Développeur Starter Kit: Fuzz Testing
  • Developer Starter Kit: Security Code Review Developer Starter Kit: vulnérabilités d'injection SQL

Bonne chance!

5
Boaz Tirosh

La plupart des suggestions ici pointent vers d'excellentes ressources et idées. Je recommande d'utiliser VirtualBox pour votre VM. De plus, si vous avez les fonds disponibles, obtenez un abonnement TechNet pour que vous puissiez Je pense que le CERT ou une autre organisation publie également des images Windows VM que vous pouvez télécharger, mais je ne me souviens pas avec certitude qui le fait ou où les trouver. leur.

Bien que je préfère et recommande VirtualBox pour exécuter des machines virtuelles, il convient de noter que les tests fonctionnent mieux lorsque toutes vos machines virtuelles s'exécutent sur la même plate-forme de virtualisation. Donc, si vous cherchez à pirater des systèmes fonctionnant dans VMWare Player, vous devriez également avoir votre système d'attaque dans VMWare Player.

3
Iszi

Pour ajouter un peu à l'excellente (+1) réponse de schroeder.

http://exploit-exercises.com sont intéressants; ses quelques machines virtuelles avec des défis pour escalader en quelque sorte. La nébuleuse enseigne comment passer d'un compte normal à un root dans des environnements défectueux - de nombreuses solutions sont des astuces standard (ne faites pas confiance aux variables d'environnement ou exécutez eval sur les entrées utilisateur ou supposez que l'exécutable sera exécuté comme suggéré).

Protostar/fusion sont plus avancés (par exemple, les dépassements de tampon).

Recommande également de lire WAHH (ce n'est pas gratuit mais c'est bon marché) et Programmation sécurisée sous Linux/Unix .

2
dr jimbob

Je n'ai pas lu toutes les réponses, mais pour en savoir plus sur les tests de pénétration et pour le faire gratuitement, vous pouvez essayer cet ensemble de tutoriels par irongeek.com ici: http://www.irongeek.com/i .php? page = videos/web-application-pen-testing-tutorials-with-mutillidae

Il s'agit d'instructions sur le téléchargement d'une application Web intentionnellement vulnérable appelée mutillidae que vous pouvez utiliser pour vous entraîner à effectuer des tests de plume. L'application, mutillidae, a des indices que vous pouvez activer pour apprendre. Si vous avez une sorte de serveur LAMP, vous pouvez simplement déposer le dossier dans le dossier www de votre serveur et y accéder sur votre adresse de bouclage locale, 127.0.0.1. Vous devez également créer des tables de base de données dans le serveur MySQL, donc cet outil de test de stylo est peut-être plus avancé pour vous à l'heure actuelle. Cependant, remplir des tables n'est pas si difficile. La création de la base de données nécessaire n'est pas non plus. :RÉ

Ce serait formidable de fonctionner sur une machine virtuelle exécutant Kali Linux ou Ubuntu. Surtout, si votre machine a suffisamment RAM et puissance CPU.

Vous pouvez en apprendre toutes sortes de choses, telles que l'injection SQL, le Cross Site Scripting et d'autres types d'attaques sur lesquelles vous pouvez vous éduquer pour vous défendre contre des pratiques de codage sécurisées, etc.

1
user_loser

Téléchargez diverses applications PHP pendant la période initiale. Hébergez-les sur votre serveur local, puis essayez de trouver des vulnérabilités en utilisant 2 méthodes différentes selon vos goûts)

  1. Méthodologie de test OWASP - https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf 2.WATC - http://projects.webappsec.org/f/ WASC-TC-v1_0.pdf

Si vous n'avez pas beaucoup de connaissances sur le pentesting manuel, exécutez acunetix et nessus sur votre application hébergée sur localhost, voyez les résultats générés par eux, puis essayez de les exploiter manuellement en utilisant la suite BURP. Cela vous donnera de l'élan et de la confiance.

Ensuite, optez pour l'une de ces méthodes.

Une fois que vous maîtrisez cette méthodologie, essayez de créer votre propre liste de contrôle et ajoutez de nouveaux cas de test chaque fois que vous en trouvez.

Une fois que vous avez fait tout cela, optez pour le programme de bug bounty.

BUGCROWD est un programme de prime aux bogues très réputé et vous pouvez trouver ici la liste des fournisseurs sur lesquels vous pouvez faire un pentest. https://bugcrowd.com/list-of-bug-bounty-programs

C'est ainsi que tout le processus devrait se dérouler.

1
FrOgY

Vous voulez partir des bases? Aller à 0:57

Presque toute l'exploitation existe parce que nous exploitons l'architecture de Von Neumann. Chaque fois que vous pouvez éventuellement traiter des données comme du code, vous disposez d'un vecteur d'attaque. Peu importe l'architecture, la plate-forme, la pile technologique ... les applications Web modernes traversent plusieurs contextes: HTML/Javascript dans le navigateur. (Vecteur d'attaque!)

L'exploitation signifie que vous obtenez votre cible pour exécuter votre code. C'est le point derrière l'injection SQL, XSS, shellcodes - à propos de tout! Si vous voulez apprendre à être un pentester ... procurez-vous la "boîte à outils Open-Source de Pentester". (Il existe des versions gratuites légalement disponibles.)

Les conférences Defcon sont disponibles gratuitement, et elles font partie des meilleures classes générales que j'ai jamais prises. Mais plus que tout: vous devez vous salir les mains. Vous avez mentionné le webgoat. Avez-vous installé Tamperdata sur Firefox? Avez-vous installé Wireshark? Le piratage consiste à avoir autant d'outils que possible pour collecter des données afin que vous sachiez ce qui se passe. Cette vidéo parle beaucoup de surveillance ... tout ...

https://www.youtube.com/watch?v=Jwot7S6NmLE

0
avgvstvs

Je voudrais ajouter mes deux cents au pot. Je pense que revoir certaines des vidéos de sécurité de Tom Scott sur Computerphile et sa propre chaîne est une excellente façon de commencer. Ils sont techniquement solides et expliquent les concepts de manière très claire. Ensuite, laissez la curiosité vous guider.

Essayez d'installer nmap et voyez ce que vous pouvez découvrir, par exemple les serveurs d'Amazon. Recherchez des informations sur l'injection SQL. Qu'en est-il du démarrage libre SHA-1 ou MD5? Combien cela coûterait? De telles questions peuvent vous guider plus profondément dans le domaine de la sécurité de l'information.

Gardez cela à l'esprit pour: Vous devez savoir ce que vous essayez de protéger ou de pirater; par exemple, vous devez connaître TCP pour pirater les réseaux et également JS pour les sites Web.


La réponse de Jeff offre quelques idées, quoique de manière latérale. Essayez de configurer votre propre serveur Amazon AWS et de le faire avec DDoS à l'aide de plusieurs types d'outils, par exemple.

Vous pouvez également tester vos compétences en tant que hacker (légalement) sur de vrais sites Web et gagner un peu de pâte sur les programmes de primes de bogues de sécurité. Hackerone propose un répertoire de ces programmes.

0
noɥʇʎԀʎzɐɹƆ

Tout d'abord, vous devez considérer le type ou la zone de pentesting que vous souhaitez commencer. Par exemple, vous pouvez commencer à rechercher des vulnérabilités dans les sites Web (OWASP, CTF), vous pouvez commencer à rechercher des ports ouverts et à analyser les services en cours d'exécution (recherche d'informations sur les exploits pour la version actuelle), etc.

Je recommande le premier. D'abord parce que c'est plus facile à comprendre, ensuite parce qu'il est plus courant de trouver une vulnérabilité dans un web mal codé que dans un système, et troisièmement parce qu'il y a beaucoup de matériel sur le sujet et des défis gratuits où vous pouvez tester vos connaissances (CTF)

0
eez0

Bien que je ne sois pas un expert, j'ai passé pas mal de temps avec Hacme Bank de Foundstone (je pensais que ce serait bien d'ajouter celui-ci aussi).

0
Lex