Forum Linux.débutant Devenir un hacker

Posté par  . Licence CC By‑SA.
3
18
déc.
2020

Bonjour à tous, je suis passionné par l’informatique et j’aimerais bien travailler dans la cyber sécurité, devenir en quelque sort un hacker ethics. J’aimerais savoir comment cracker des mots de passes, pirater un réseau… etc du bon côté évidemment 😁. Bien sûr je ne vous demande pas un tuto , mais j’aimerais savoir ce que je doit apprendre , par où commencer… etc
J’ai quelques connaissances en python
Et j’ai Kali Linux en dual boot sur mon pc.

Qd je dis hacker je pense pas a un gars en hoodie chez lui, mais bien un passionné de l’informatique de haut niveau ( le plus haut pour moi )

  • # root-me.org

    Posté par  (site web personnel) . Évalué à 5.

    Si tu t’intéresses à la sécurité informatique, un point d'entrée intéressant c'est :
    https://www.root-me.org/

    • [^] # Re: root-me.org

      Posté par  (site web personnel) . Évalué à 5.

      J'avais proposé quelques alternatives la dernière fois que j'ai vu root-me mentionné ici : https://linuxfr.org/news/petits-heurts-contre-une-porte-fermee-entre-amis#comment-1324758

      Voire aussi
      https://linuxfr.org/forums/linux-general/posts/site-de-s%C3%A9curit%C3%A9-pour-sentraine
      https://linuxfr.org/users/moy/journaux/unix-training-des-outils-pour-enseigner-unix-ludiquement

      En bouquins on m'a recommandé :
      The Art of Software Security Assessment (Down, McDonald, Schuh)
      The Web Application Hacker's Handbook (Stuttard, Pinto)

      Mais en vrai le seul bouquin de sécurité que j'ai bien digéré c'est Silence on the Wire (Zalewski)
      https://lcamtuf.coredump.cx/silence.shtml

      Et du coup il y a The Tangled Web du même auteur mais perso j'arrive vraiment pas à m'intéresser au web: https://lcamtuf.coredump.cx/tangled/

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

      • [^] # Re: root-me.org

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        M'en vais jeter un œil à ces liens. Mais je pense que la question est un peu trop vague…

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: root-me.org

      Posté par  . Évalué à 1.

      Je crois que c’est un site pour tester ses connaissances , pas pour en obtenir non ?

      • [^] # Re: root-me.org

        Posté par  (site web personnel) . Évalué à 3.

        Pour pratiquer disons. Il n'y a environ qu'à l'école que l'apprentissage et le « test » sont distincts :)

        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

        • [^] # Re: root-me.org

          Posté par  . Évalué à 1.

          Ah d’accord, mais par quoi je dois commencer ? Est-ce que dois apprendre un language en particulier ? Que dois-je apprendre pour devenir un hacker ?

          • [^] # Re: root-me.org

            Posté par  . Évalué à 3.

            Je suis simplement étudiant en informatique et nous avons appris surtout le Shell (avec Bash) et aussi le C.
            Après nous ont crack rien mais ça permet de devenir bon en informatique et de faire ses premiers pas dans la prog. Notamment on a vu ce que pouvez être un Déni de Service, les Schtroumpfs ou des sniffage de trames…
            Avec WireSharck normalement tu peux bien "sniffer" des trames qui passent x) mais comme je l'ai dit je suis loin d'être bon en 'Cybersecurite'

            Amiralgaby#1847

          • [^] # Re: root-me.org

            Posté par  (site web personnel) . Évalué à 5.

            Je pense que l'approche idéale peut varier selon tes intérêts, la manière dont tu apprends le mieux et le but. Si tu veux faire du pentesting pratique et potentiellement (mal) rémunéré dans les 6-12 mois, le WAHH que j'ai cité ci-avant est sans doute une approche raisonnable que tu peux pratiquer avec root-me.org etc.

            Si tu préfères une approche plus large et pas spécialisée web, en gros je dirais qu'il te faut acquérir un « security mindset » [0], que tu peux affuter en étudiant des classes de failles bien documentées (cf WAHH pour le web par exemple) et de là tu peux étudier tout système (informatique ou non) et trouver comment l'exploiter pour lui faire faire ce qu'il n'a pas été conçu pour.

            Les technique spécifiques à apprendre varient selon le domaine. Si tu peux élaborer tes connaissances actuelles, ton but et combien de temps tu veux y passer on peut sans doute te recommander des trucs plus spécifiques.

            [0] https://www.schneier.com/blog/archives/2008/03/the_security_mi_1.html

            pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

            • [^] # Re: root-me.org

              Posté par  . Évalué à 0. Dernière modification le 19 décembre 2020 à 03:11.

              Le temps qu’il faut y passer ? Même 5 ans ça ne me dérange pas x). Après quand tu dis te spécialiser, ça veut dire qu’un hacker ne peut pas à la fois savoir infiltrer un réseau, cracker des mots de passes, écrire des exploits… moi je croyais que le hacker savait un peu tout faire non ?

              Après au niveaux de mes connaissances, ont vas pas se mentir mon trucs le plus avancé est un un jeu de plateforme avec pygame sur python, donc… ( et quelque connaissances sur l’UEFI parce que ça m’a bien compliqué la tâche pour mon dual boot :) )

              • [^] # Re: root-me.org

                Posté par  (Mastodon) . Évalué à 4. Dernière modification le 19 décembre 2020 à 10:31.

                Alors le hacking c'est pas mon domaine (moi mon domaine c'est l'autre côté : créer des bugs dont les hackers vont profiter), mais je m'y intéresse un peu par curiosité, et aussi un peu parce que mon métier est tout de même de laisser le moins de portes ouvertes :) .

                Je n'imagine pas que le plus important est un langage en particulier, le plus important pour moi c'est réellement de comprendre comment marche un ordi. Mais vraiment. Si tu sais TOUT ce qu'il se passe entre moi qui tape la lettre E sur mon clavier et toi qui lis ce texte, tu auras une chance un jour de le modifier en F par exemple (et ainsi prouver que mon ordi, ma connexion Internet ou linuxfr.org ne sont pas sécure).

                Voici une liste (loin d'être exhaustive) de concepts avec lesquels tu dois être à l'aise :

                Bas niveau :

                • registre
                • adresse
                • instruction
                • pointeur
                • pile
                • débordement

                Système d'exploitation :

                • tu sais ce que c'est un OS ? À quoi ça sert ? Pourquoi on en a un ?
                • gestion des droits (filesystem, accès mémoire, accès périphériques…)

                Applicatif :

                • shell, ligne de commande
                • langage de script (c'est quoi ?)
                • langage compilé (c'est quoi ?)

                Réseau :

                • adresse IP
                • port
                • socket

                A cette liste de points techniques (que j'ai, et pourtant je ne suis pas un hacker du tout, j'en suis bien incapable) il faut ajouter le mindset comme dit dans un autre commentaire, une culture (basée en général sur des exploits précédents), l'art du hacking social etc.

                Un bouquin d'introduction que j'ai trouvé sympa c'est "Les bases du hacking" de Patrick Engebretson.

                Bon, si tu veux démarrer techniquement sur quelque chose, tu peux déjà commencer par faire du C sous ton Kali. Comme c'est un langage d'assez bas niveau (pourquoi ? comment ça marche ? comment marche le Python ?) tu mettras bcp plus les mains dans le cambouis. Bien évidemment dans le but de progresser, tu ne dois jamais toucher un outil graphique pour ça, tout dans la console : les ordis sur lesquels tu devras tenter de t'introduire ne t'offrent pas d'interface graphique, tu dois être complètement à l'aise avec la console.

                C'est un grand parcours qui t'attend, mais si t'aimes ça, c'est réellement passionnant.

                En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

                • [^] # Re: root-me.org

                  Posté par  . Évalué à 2.

                  Ah ok en gros une fois que je sais comment ça marche ça viendra tout seul. Si je sais qu’une vis peut être enlevé avec un tournevis, je n’ai pas besoin de tuto pour ouvrir une calculatrice.

                  Je pense que je vais faire ça, je dois :

                  • Me familiariser avec la console

                  • Apprendre des languages jusqu’à pouvoir en apprendre de nouveaux en quelque jours

                  • Comprendre l’architecture et le fonctionnement du réseau, système …

                  Si je maîtrise le terrain, alors je serais en mesure de faire un peut ce que je veux

                  • [^] # Re: root-me.org

                    Posté par  (site web personnel) . Évalué à 4.

                    Ça vient pas forcément tout seul, il faut aussi cultiver le « security mindset » comme indiqué plus haut. Tu peux faire ça en essayant de trouver des « failles » dans la vie de tous les jours par exemple. Mais pour appliquer cet esprit à l'informatique ou tout autre domaine, ça aide énormément d'avoir une bonne connaissance de ce domaine.

                    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                    • [^] # Re: root-me.org

                      Posté par  (Mastodon) . Évalué à 2. Dernière modification le 19 décembre 2020 à 14:19.

                      Ça vient pas forcément tout seul

                      +1

                      Non, ça ne viendra pas tout seul (encore une fois, je connais tout ça mais ça ne fait pas de moi un hacker, très loin de ça).

                      Pour caricaturer, le mec qui ne sait pas tout ça, c'est un hacker avec une cagoule qui lance des scripts qu'il ne comprend pas. Exactement ce que tu ne veux pas être.

                      Pour caricaturer aussi, je suis programmeur (y compris dans des systèmes embarqués critiques). Comment veux-tu hacker mon système si tu en sais moins que moi ? Je suis un poil provocateur (c'est pas aussi simple), mais c'est l'idée.

                      Bref, le hacking est un domaine d'élite, il a bcp de composantes : composante technique (c'est mon domaine), mais aussi sociale (lis des livres de hacking, la plupart du boulot est fait sans toucher un ordi ou presque) et culturelle (regarde des vidéos de hacker sur Youtube, j'ai pris une claque - vraiment - en voyant la vidéo des hackers de la Nintendo Switch qui ont expliqué leur démarche).

                      EDIT : tu as 17 ans, je me trompe ? comment je sais ça par exemple ?

                      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

                      • [^] # Re: root-me.org

                        Posté par  (site web personnel) . Évalué à 2.

                        Pour caricaturer, le mec qui ne sait pas tout ça, c'est un hacker avec une cagoule qui lance des scripts qu'il ne comprend pas. Exactement ce que tu ne veux pas être.

                        Pourquoi pas ? A priori je vois pas de problème à utiliser des outils que d'autres ont conçu sans savoir exactement comment ils fonctionnent. Évidemment c'est assez limité mais il n'y a rien de mal à être un script kiddy tant que tu vandalises pas tout ce qui passe.

                        Comment veux-tu hacker mon système si tu en sais moins que moi ?

                        Je pensais ça aussi il y a quelques années mais en vrai, si un système n'a pas été conçu de manière sécurisée, un attaquant expérimenté mais qui ne connait a priori pas le domaine/système va assez facilement trouver comment l'exploiter sans avoir un centième des connaissances/expérience de la personne qui bosse sur ce système depuis 20 ans. Par exemple j'ai trouvé des failles dans Python sans être un spécialiste de Python :) (techniquement j'aurais même pas eu besoin de savoir écrire de Python du tout)

                        Après, plus le domaine est « security-conscious » et plus il faut avoir de l'expertise dans le domaine pour trouver des failles.

                        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                        • [^] # Re: root-me.org

                          Posté par  (Mastodon) . Évalué à 2.

                          Pourquoi pas ?

                          Je caricaturais le script kiddie :) Quand je lis"Qd je dis hacker je pense pas a un gars en hoodie chez lui, mais bien un passionné de l’informatique de haut niveau", je me doute bien qu'il veut avant tout comprendre.

                          Mais on s'est compris je pense.

                          si un système n'a pas été conçu de manière sécurisée, un attaquant expérimenté mais qui ne connait a priori pas le domaine/système va assez facilement trouver comment l'exploiter

                          Bien évidemment, c'est toute la partie "culture" et "mindset" du métier.

                          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

                      • [^] # Re: root-me.org

                        Posté par  . Évalué à 1.

                        Oui j’ai 17 ans et je me demande bien Comment tu as fait ( peut être avec mon compte Google )

                        • [^] # Re: root-me.org

                          Posté par  (Mastodon) . Évalué à 2.

                          Oui c'était facile (et je te rassure, j'ai simplement abusé du fait que je suis modérateur ici, les lecteurs n'ont pas accès à cette information).

                          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

                          • [^] # Re: root-me.org

                            Posté par  . Évalué à 2.

                            Comme quoi je devrais arrêter d’utiliser Google pour me connecter. Je vais plutôt utiliser mon adresse protonmail :)

                  • [^] # Re: root-me.org

                    Posté par  . Évalué à 4.

                    Pour moi tu devrais commencer par (en parallèle) :

                    • apprendre le C
                    • apprendre l'assembleur (x86 ou ARM peu importe - il faut que tu saches qce que sont les registres, la pile, mode privilégié, mode utilisateur, etc ). Dommage qu'on ne trouve plus de cartes de développement basées dessus mais un CPU a base de 68000 Motorola était un bon point d'entrée pour apprendre l'assembleir (très facile à comprendre).

                    Ensuite, lire un bouquin tel que les systèmes d'exploitation de Tanenbaum. Dans ce bouquin il y a pas mal de conceptrs bas niveau expliqués, avec des exemples en C. Essaie de faire les exercices. Cerise sur le gateau, essaie de créer ton propre noyau (basique, juste pour apprendre), ou de comprendre et/ou participer au développement d'un noyau pédagogique (ya plein de projets de ce type commencés sur Internet);

                    Tout en apprenant le C essaie de comprendre pourquoi on te demande de ne pas utiliser strcpy mais plutôt strncpy, de contrôler toutes les entrées saisies par l'utilisateur, etc …

                    Pour le réseau, il y a le gros bouquin de Pujolle. Je ne l'ai jamais lu (pas vraiment eu besoin), mais il semble que ce soit une référence. Celui de Tanenbaum sur les réseaux est bien aussi, mais d'après les retouyrs que j'ai eu, moins bien que le Pujolle.

                    • [^] # Re: root-me.org

                      Posté par  (site web personnel) . Évalué à 3.

                      Ton approche semble très orientée « défense ». Le monsieur a l'air plus intéressé par l'attaque :)

                      Écrire un noyau, en sois, ne me semble pas super pertinent. Même pour la défense. Étudier les choix techniques d'OpenBSD par exemple me semble plus productif. Mais pour un attaquant ça ne reste utile qu'assez indirectement.

                      Par ailleurs je te suggère d'apprendre pourquoi il est préférable d'utiliser strlcpy plutôt que strncpy.

                      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                      • [^] # Re: root-me.org

                        Posté par  . Évalué à 2.

                        Ton approche semble très orientée « défense ». Le monsieur a l'air plus intéressé par l'attaque :)

                        Ni défense, ni attaque, juste connaître les bases. Avant d'attaquer il faut comprendre certaines choses, notamment comment fonctionne un système d'exploitation, un noyau, les couches basses, etc. Parler à quelqu'un des attaques meltdown et spectre s'il ne sait pas ce qu'est un système d'exploitation, ni la virtualisation (que je n'ai pas cité dans mon post) ça n'a pas de sens. Attaquer ce qu'on ne connait pas, c'est stupide (c'est comme attaquer une forteresse sans connaître comment elle est faite, sans connaître ses points forts et ses faiblesses).

                        Écrire un noyau, en sois, ne me semble pas super pertinent. Même pour la défense.

                        Ca permet de comprendre comment ça marche. Il y a des noyaux simples un peu partout sur le net … Le but n'est pas d'avoir un truc super top, mais juste comprendre les principes de base. Une fois ces principes compris, on peut aller voir comment c'est implémenté dans des systèmes plus sérieux, style OpenBSD ou Linux …

                        Par ailleurs je te suggère d'apprendre pourquoi il est préférable d'utiliser strlcpy plutôt que strncpy

                        Merci pour l'info, je vais aler voir (trop longtemps que je ne fais plus de C ..;).

                        • [^] # Re: root-me.org

                          Posté par  (site web personnel) . Évalué à 3. Dernière modification le 19 décembre 2020 à 16:29.

                          Bien sûr qu'il est beaucoup plus efficace d'attaquer une forteresse si on sait comment elle est faite. Mais pas besoin d'être architecte non plus. Une fois qu'on a de bonnes bases, le temps passé à construire une forteresse « pour apprendre » sera sans doute mieux investi à construire une catapulte :)

                          Perso j'ai jamais écrit de noyau, je code assez peu et je peux m'y retrouver suffisamment bien dans les sources de Linux (le noyau) et je sais examiner des vmcore au point que j'ai été payé pour ça. Écrire un noyau m'aiderait peut-être à approfondir ma compréhension de leur fonctionnement dans une certaine mesure mais à moins de vraiment se spécialiser dans ce domaine spécifique, ça me semble overkill.

                          Après si t'aimes bien écrire du code / des noyaux, c'est pas forcément une mauvaise approche non plus. Mais en général, ça me semble pas le plus efficace.

                          pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

              • [^] # Re: root-me.org

                Posté par  (site web personnel) . Évalué à 4.

                Ça dépend de quelle définition de « hacker » tu prends. Si tu veux spécifiquement apprendre à cracker des mots de passe et « infiltrer un réseau », tu peux étudier les réseaux, systèmes d'exploitations et la cryptographie. Pour la pratique, sur base de Python, Scapy est pas mal.

                L'écriture d'exploits requiert une expertise un peu différente et je m'y connais moins. Ça dépend un peu de ce que tu as en tête mais tu peux sans doute commencer par pratiquer du C, étudier comment le CPU l'exécute, les failles classiques et comment les exploiter. Si tu veux quelque chose de spécifique pour commencer tu peux lire Smashing The Stack For Fun And Profit (Aleph One, 1996). Une fois que tu as compris ce papier (ce qui va sans doute nécessiter d'apprendre plein d'autres trucs bas niveau) tu peux essayer de le mettre en pratique et essayer de comprendre pourquoi ça ne marche plus et comment adapter la technique pour une plateforme moderne.

                Si tu as cinq ans, tu peux faire des études d'informatique (Computer Science, pas la version « technicien / pisseur de code » mais je sais pas comment les études supérieures sont structurées là où tu vis) qui te donneront des bonnes bases fondamentales et t'orienter vers l'aspect sécurité (l'équivalent de CSE 484 comme mentionné dans l'article de Schneier ci-avant par exemple).

                La liste de gUI est pas mal comme « checklist » de trucs basiques à couvrir pour un débutant mais c'est un assez orienté Unix / bas niveau et ça n'explique pas vraiment comment acquérir ces connaissances.

                pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                • [^] # Re: root-me.org

                  Posté par  (site web personnel) . Évalué à 2. Dernière modification le 19 décembre 2020 à 11:05.

                  Sinon il y a plein de formations de pentesters / offensive security mais j'ai aucune idée de celles qui valent le coup ou pas. D'où ma suggestion d'apprendre les fondamentaux via une filière académique reconnue. L'aspect sécurité pouvant être vu comme une spécialisation par dessus.

                  Évidemment ça marche que si t'as le temps, n'es pas rebuté par un environnement académique d'apprentissage et que tu n'as pas de problème à rester à un niveau relativement théorique pendant un moment (au moins dans le cadre des études). Il y a d'autres moyens mais c'est celui avec lequel je suis le plus familier.

                  pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                • [^] # Re: root-me.org

                  Posté par  . Évalué à 1.

                  Merci beaucoup pour tes conseils. Scapy m’a l’air pas mal pour m’initier aux réseaux et vu que python est le language que je maîtrise le mieux, ça tombe bien. Et je vais aussi apprendre les languages de bas niveaux et assembleur

                  • [^] # reverse engineering

                    Posté par  (site web personnel) . Évalué à 2.

                    regarde aussi des sites comme

                    https://www.begin.re/

                    https://beginners.re/

                    un logiciel libre comme

                    https://www.radare.org/n/

                    ou le payant IDA Pro
                    https://www.hex-rays.com/products/ida/

                    Un exemple de reverse engineering, une entreprise utilisait un logiciel payant avec un dongle (une clé USB en gros).
                    Si ce dongle était HS ou enlevé, le logiciel s'arrêtait immédiatement.
                    Cette société a payé une personne pour modifier le programme afin qu'il continue même sans dongle, pas pour truander (elle payait la licence), mais par sécurité, si le dongle est HS, ou si une personne en salle machine croit voler une clé USB.

                    ウィズコロナ

                    • [^] # Re: reverse engineering

                      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 19 décembre 2020 à 14:56.

                      On peut aussi citer https://dojo-yeswehack.com/ (avec une partie orientée formation/révisions, et des challenges publiés chaque semaine).
                      Et de manière plus générale, les Capture The Flag qui ont lieu en ligne ou non, assez régulièrement. (sous réserve qu'ils soient assez progressifs en termes de difficulté pour permettre aux débutants de s'amuser un peu)

          • [^] # Re: root-me.org

            Posté par  . Évalué à 2.

            il y a un challenge assez facile que j'ai sous la main mais un peu la flemme de le faire :

            le repeteur Xiaomi Mijia WiFi répéteur Pro 300M Mi
            environ 10€, se configure avec une appli mais l'accés sur le repeteur pour la configuration est un accès telnet \o/

            1)capturer le mots de passe avec kismet
            2) faire le détaille des commande pour le configurer avec telnet et non l'appli
            3) tu reviens poster tous cela ici et tu devient célèbre ! mais pas riche
            4) tu decrouvre des commandes secrete pour faire du QOS dessus et la tu sais que tu es bon

  • # faut voir ce que tu appelles Hacker

    Posté par  . Évalué à 2.

    Hacker, ca peut etre participer à un projet opensource, chasser les bugs voire les corriger
    => hacker pratique

    Hacker, ca peut etre sécuriser le reseau d'un copain, puis verifier que tu ne peux pas rentrer d'ailleurs que c'est prévu
    => hacker sécurité

    en gros un hacker va tenter de "sortir" du cadre prévu par le logiciel ou le protocole, pour tenter d'obtenir des infos non sollicitées ou un accès non prévu

    donc finalement il faut etre curieux, installer des logiciels en BETA (pour qu'il y ait des bugs) puis trouver ces bugs, et savoir pourquoi c'est un bug => apprendre à programmer

    si tu sais programmer, tu sauras pourquoi un programme peut planter, donc analyser pourquoi le programme d'un autre plante, ou analyser le comportement d'un programme en regardant ce qu'il fait au niveau système (mode debug, syscall, strace)

    si tu t'y connais en reseau, de la couche hardware à la couche application (HTTP, REST, API), tu pourras simuler un comportement applicatif different de celui voulu, dumper un flux reseau et comprendre ce qui se passe, pour le rejouer en changeant des valeurs (à la main, ou via de la programmation vue plus haut)

  • # Une revue: MISC

    Posté par  (site web personnel) . Évalué à 7.

    En français, plutôt spécialisée côté sécurité, avec des analyses de failles, de virus etc.

    https://connect.ed-diamond.com/MISC

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

    • [^] # Re: Une revue: MISC

      Posté par  . Évalué à 2.

      Je plussois pour MISC.
      C'est souvent assez ardu pour les non initiés (j'avoue ne pas tout comprendre!).
      Je te recommande par contre un très bon hors série pour les débutants sur le réseau tcp/ip + pleins d'astuces et de liens.
      MISC HS21

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.