Image 1
Tech & Gaming

Comment devenir un hacker ?

Découvrez les bases informatiques essentielles pour débuter en hacking : systèmes d'exploitation, hexadécimal et architecture PC expliqués simplement.

As-tu aimé cet article ?

Image 4
Image d'illustration

Pourquoi cet article sur le hacking ?

J'ai écrit cet article pour répondre à une demande récurrente. Le titre « Comment devenir un hacker » peut sembler réducteur, voire insultant pour les véritables hackers et pour vous, lecteurs profanes, qui n'avez pas toujours le temps de comprendre comment fonctionne réellement l'informatique, ou qui doutez de vos capacités.

Dans les prochains articles, mon cousin Camille participera en apportant son expertise sur la partie réseau.

Bien que vous ne deveniez peut-être jamais hacker, je m'engage à atteindre ces objectifs :
- Vous acquerrez des connaissances solides en informatique et comprendrez les termes techniques qui semblent ésotériques
- Vous serez capable de comprendre comment un hacker débute sa « carrière »
- Vous découvrirez la passion qui anime cette communauté de précurseurs qui font de l'informatique par vocation, pas seulement par intérêt financier

Mon objectif est de construire progressivement les fondations informatiques essentielles, étape par étape, pour que vous puissiez ensuite aborder des sources plus complexes que j'ai sélectionnées. Ces sources sont écrites par de véritables hackers qui méritent le respect.

Dans ce premier article, je vous fournirai les bases de la culture informatique, en particulier sur les ordinateurs PC. Cet article démarre « tout en bas » — sa compréhension vous sera plus évidente à la lecture des articles suivants !

Je marquerai parfois trois astérisques (***) après un terme — ce terme sera expliqué en détail dans un article ultérieur.

Le deuxième article sera consacré à l'utilisation d'un outil simple de lecture hexadécimale avec des exercices pratiques. Nous revisiterons les concepts du premier article en combinant théorie et pratique — le seul véritable moyen de comprendre !

Le troisième article abordera l'assembleur et le langage machine, avec des fondations solides.

Image 7
Image d'illustration

Qu'est-ce qu'un hacker ?

Je ne me considère pas comme un hacker. Mais qu'est-ce qu'un hacker ?

Étymologiquement, un hacker est une personne qui « hack » — c'est-à-dire qui « casse » ou « cisaille ». Cette définition s'est progressivement élargie à tout type de bidouilleur informatique. Aujourd'hui, elle désigne plusieurs profils de bidouilleurs informatiques. La communauté des véritables hackers, excédée par l'appropriation du terme par des imposteurs ou des personnes mal intentionnées, a créé des termes plus spécifiques : « lamer » (un faux hacker), « script kiddie » (un mauvais codeur), « cracker » (casseur de programmes), etc.

Si vous avez vu Indiana Jones, vous avez une idée de l'esprit psychologique du hacker : un explorateur capable d'enseigner à l'université pour transmettre sa passion, mais qui préfère le terrain et les découvertes.

Beaucoup de ces nouveaux termes ont une connotation péjorative, alors que le hacker, traditionnellement dans la communauté underground, jouit d'une excellente réputation. Certains se retrouvent lors de séminaires (appelés « parties ») où ils échangent des informations entre membres aguerris de cette communauté.

Il est évident que le mérite d'un lamer qui modifie le code VBS d'un virus ne doit pas être comparé à celui d'une personne qui prend le risque d'expliquer les failles d'un système ou d'une carte bleue — failles pour lesquelles elle reçoit malheureusement une peine de prison de la part d'une communauté étatique qui n'y comprend rien !

Pour moi, le hacker est un artiste — un artiste de l'informatique, rarement connu car invisible — qui fait de la compréhension des systèmes d'exploitation ou de réseaux sa passion, parfois rémunératrice. Ce n'est pas un anarchiste, même si son idéal de liberté lui fait souhaiter que « les personnes en sachent plus » ou que « tout le monde soit libre ».

Les hackers de très haut niveau sont extrêmement rares — peut-être 200 dans le monde. Autour d'eux gravitent probablement 1 000 à 2 000 personnes partageant cet esprit et qui donnent des conférences pour échanger l'intelligence ainsi développée.

Ils ne détruisent pas les données, n'écrivent pas de virus « pour se faire remarquer » ou « pour polluer les systèmes », et effectuent peu d'activités illégales mettant en danger autrui ou ayant des buts vénaux. Ils peuvent accéder à votre ordinateur sans que vous le sachiez jamais — par simple curiosité ou par défi. Certains n'ont pas un profil « explorateur » mais plutôt « chevalier » — ce sont eux qui travaillent à protéger les systèmes ou à écrire des antivirus.

Remarque sur les articles erronés

Je ne vous ferai pas l'affront de vous dire « apprenez l'anglais » ou « lire les RFC ne sert à rien » ou « faire des mots croisés pour comprendre le cryptage ».

Certains articles sont insuffisants pour plusieurs raisons :
- Ils contiennent des connaissances erronées (par exemple, HTML n'est pas un langage de programmation, mais de description !)
- Si vous ne connaissez pas l'informatique, vous ne comprendrez pas davantage le hacking
- La qualité de la rédaction laisse à désirer

Un article sur France Jeunes, « Introduction au Reverse Engineering », était plus proche du hacking, mais trop complexe pour les débutants. Je vous fournirai les fondations sur plusieurs articles, et vous pourrez alors relire cet article avec une bien meilleure compréhension !

Image 2
Image d'illustration

Ma légitimité sur le sujet

Nous étions environ entre 1978 et 1981. J'étais à la FNAC, dans le rayon informatique. J'ai vu une personne en costume sympa (sans cravate, costume agréable, pas grisâtre) — il y avait 3 personnes qui l'écoutaient devant l'écran vert d'un Apple II. Je lui dédie cet article. Il enseignait comment désassembler les programmes. À cette époque, cet écran vert affichant de l'hexadécimal (j'y reviendrai) était... magique ! Je n'ai pas osé l'approcher, tellement j'étais intimidé et fasciné à la fois !

C'est plus tard que j'ai décidé d'en faire mon métier. J'avais programmé ça et là sur différentes machines en Basic (un langage de programmation facile à apprendre), surtout pour comprendre les principes plutôt que pour développer une vraie application.

Un peu plus tard, quelqu'un qui faisait un BEP électronique m'a dit de « m'acheter un PC » et de « m'intéresser à l'assembleur ». J'ai donc acheté un PC d'occasion (un Amstrad 1512 avec un disque dur de 20 Mo) auprès d'un ingénieur aéronautique qui m'aidait dans mes premières catastrophes (rires).

En BTS, je n'étais pas toujours un élève sérieux. C'est en deuxième année que j'ai eu l'envie d'apprendre l'assembleur tout seul (au lieu de réviser...) — car je me rendais compte que le Cobol ne me convenait pas (en 1989-1990, avec ma culture biaisée de la micro-informatique, je trouvais ça rébarbatif !).

Image 8
Image d'illustration

De PCTools à Norton Editor : premiers outils de hacking

J'avais déjà commencé à patcher (***) des jeux avec PCTOOLS (un utilitaire disparu à ce jour) ou à éditer la FAT ou le MBR avec Norton Editor, et je m'intéressais un peu aux virus (j'avais eu plusieurs infections — à cette époque, il existait peu d'outils, sauf des scanneurs comme McAfee Scan). Le système d'exploitation sur PC était surtout MS/DOS (Microsoft) ou PC/DOS (IBM — développé aussi par Microsoft).

J'ai donc appris l'assembleur tout seul — ou plutôt, avec un livre. Au départ, ayant déjà programmé un peu en Basic et en Pascal, je trouvais ça tout à fait déroutant. Je programmais parfois sans comprendre ce que je faisais. Puis, comme nous échangions parfois des programmes, j'ai eu entre les mains Sourcer (un désassembleur sous DOS). Après avoir compilé quelques programmes modestes avec MASM () et décompilé () les mêmes, puis en les désassemblant avec Sourcer, les connexions de compréhension se sont enfin établies !

Je me suis ensuite attaqué au virus Cascade (alias 1701 ou 1704 — longueur en octet du virus) qui m'intriguait car il était crypté. Je me suis acheté une carte Thunderbyte pour être sûr de ce que je faisais et j'ai découvert le virus 896 (transmis à McAfee à l'époque).

Pour résumer, ma légitimité sur cet article repose sur :
- L'apprentissage autodidacte de l'assembleur
- L'apprentissage des virus informatiques en autodidacte, puis ensuite avec des sources de fanzines écrits par de véritables hackers
- Mes premiers cours de réseaux « micro-informatique » dispensés à des ingénieurs réseaux aguerris en SNA ou X-25 (j'ai été administrateur Netware 3.12 en Token Ring)

Image 6
Image d'illustration

Repères historiques de l'informatique

Comme vous l'avez lu dans un article précédent, la micro-informatique est née en 1973. L'informatique elle-même est née bien avant, durant la Seconde Guerre mondiale — les besoins de calcul pour guider les missiles et les travaux de chercheurs en cybernétique et logique, comme Alan Turing, ont permis la création du premier ordinateur : le Zuse Z3 en 1941, le Mark I en 1944, et le très célèbre ENIAC en 1946.

À cette époque, il n'existait pas de langages dits de haut niveau (j'expliquerai ceci dans un prochain article). Les informaticiens programmaient en langage machine.

Vinrent ensuite les premiers langages (dits de deuxième niveau) : les assembleurs.

Le développement des premiers langages de haut niveau (dits de troisième niveau) s'est effectué entre les années 1950 et 1980 : Fortran (1956), Cobol (1959), Basic (1963), C (C++ en 1983 par Bjarne Stroustrup) et Pascal (1970).

En parallèle de ces développements de langages de programmation, les systèmes d'exploitation ont évolué, donnant naissance à plusieurs types de systèmes, dont les UNIX (dérivé du premier UNICS en 1969).

Les premiers hackers proviennent probablement de ces années 1970. Ce que je sais, c'est qu'une partie de l'esprit hacking s'est développée autour de plusieurs technologies et événements :
- L'utilisation de ressources réseau initialement coûteuses sur le plan téléphonique
- La protection de nombreux logiciels vendus par les éditeurs
- Les virus et les attaques par chevaux de Troie, ainsi que le développement des BBS (un moyen de partager des données) entre groupes de pirates
- Les systèmes d'exploitation parfois mal documentés par les éditeurs

Tous ces facteurs, et d'autres, ont contribué au développement d'une compréhension plus active. Certains informaticiens ou utilisateurs informatiques aguerris (power users) ont voulu creuser dans les profondeurs de ces systèmes.

Image 7
Image d'illustration

Du binaire à l'hexadécimal : le code du hacker

On lit souvent que le code binaire est le code informatique : c'est partiellement erroné. Le code binaire est plus proche de l'électronique que de l'informatique !

Bien que beaucoup d'informaticiens aient suivi des cours sur le binaire, ce qui est le plus caractéristique de l'informatique, c'est l'hexadécimal !

L'hexadécimal est un code dérivé du binaire qui permet de coder sur 16 positions : de 0 à F, soit 0, 1, 2... 9, A, B, C, D, E, F. Le code hexadécimal est souvent associé en 2 blocs, par exemple FF ou 0B ou 52.

L'hexadécimal est le code le plus important pour le hacker — apprendre à le lire est essentiel. Je vous expliquerai comment le lire, mais pas tout de suite — j'y reviendrai dans le deuxième article. Il faut bien que je vous frustre un peu (la patience est la mère des vertus) ou que je vous mette l'eau à la bouche ;-)

De fait, beaucoup d'informaticiens qui travaillent dans le développement utilisent des langages de « haut niveau », comme le C++ ou le PHP, et peu développent en binaire ou lisent l'hexadécimal (sauf si vous êtes programmeur de jeux vidéo, de composants électroniques ou ingénieur système sur MVS !).

Image 9
Image d'illustration

Qu'est-ce qu'un système d'exploitation ?

Un système d'exploitation est un « logiciel spécial » qui vous permet d'utiliser votre ordinateur facilement. J'utiliserai souvent le terme OS, équivalent anglais d'Operating System, au lieu de « Système d'exploitation » (trop long).

Il existe de nombreux OS sur le marché. Voici les plus connus et répandus :

Sur les très grands systèmes informatiques (occupant de très grandes salles) : z/OS (anciennement MVS) ou VM sur IBM, DOS/VSE sur IBM, ou GCOS/7 sur Bull.

Les systèmes « moyens » (de la taille d'un très gros congélateur assez haut) utilisent VMS (anciennement sur Digital Equipment Corporation — Bill Gates a fait ses premières expériences sur un DEC PDP/7 — à vérifier, maintenant géré par Hewlett Packard) ou OS/400 (sur IBM).

Plusieurs systèmes UNIX fonctionnent sur différents types de machines (par exemple, les supercalculateurs Cray) ou sur des PC (Linux, BSD).

Sur PC, initialement, les OS étaient en mode texte (MS/DOS et PC/DOS, puis DR/DOS) avec la possibilité de faire fonctionner une interface graphique au-dessus (comme Windows ou GEM sur MS/DOS). Ensuite est né, à partir de WINDOWS/NT (après la sortie de Windows 3.0), les systèmes d'exploitation en mode graphique. OS/2 en faisait partie.

Il existe donc « 2 familles » de WINDOWS :
- Une qui se lance sur MS/DOS : Windows 1.0 à 3.X, Windows/95, Windows/98, Windows/Me
- Une qui est système d'exploitation graphique et plus sophistiqué : Windows/NT, Windows/2000, Windows/Serveur, Windows/XP, Windows/Vista, Windows/Seven (***)

Il existe aussi des systèmes d'exploitation sur les téléphones portables : BlackberryOS, SymbianOS, Windows Mobile, iOS, etc.

Le système d'exploitation sur Mac est Mac OS, système propriétaire qui repose maintenant sur un noyau Unix depuis la version 10 (appelé aussi Mac OS X).

MS/DOS : les débuts du PC

Revenons au vieux MS/DOS, l'un des premiers OS sur PC. En MS/DOS, comme nous étions en mode texte (pas de souris, pas d'interface graphique), le prompt (un signe du type C:\>) permettait de lancer un programme ou d'effectuer des commandes. Par exemple (à chaque commande, appuyez sur Entrée pour la lancer) :

C:\> Format a:

(formate la disquette située dans le lecteur A)

C:\> Dbase

(lance le programme Dbase)

C:\> ver

(donne la version de MS/DOS ou PC/DOS)

C:\> FDISK /STATUS

(donne une vision des partitions installées, MS/DOS ou autres)

Architecture d'un PC « type »

Un PC est un micro-ordinateur basé sur « l'architecture x86 » (***). Il regroupe autour d'une Unité centrale (le gros boîtier) des périphériques d'entrées (matériel permettant de « donner des données à l'ordinateur » : clavier, souris, scanneur) et des périphériques de sorties (permettant « de sortir les données informatiques » : écran, imprimante).

Dans l'Unité centrale, nous avons plusieurs composants :

La carte mère : Elle accueille différents composants électroniques comme le microprocesseur, une carte graphique, un composant gérant votre clavier, plusieurs processeurs pour votre sortie USB, de la mémoire RAM, etc.

Pour des raisons d'optimisation électronique (performance et fiabilité), cette carte mère s'est complexifiée et est devenue un véritable réseau à part entière.

Si le microprocesseur peut être considéré comme le cerveau de l'ordinateur, il communique avec des organes comme votre cerveau. Le microprocesseur ne travaille pas uniquement sur vos données — par exemple, lorsque j'utilise mon traitement de texte, plusieurs activités informatiques se déroulent en arrière-plan : le système peut calculer autre chose, mettre les pages de mémoire inutilisées depuis un certain temps sur le disque dur (c'est le « swapping »), etc.

Du point de vue électronique (et non informatique), il y a des échanges de données, des « écoutes » sur des ports, etc.

Le fichier : l'entité logique de base

IO.SYS, AUTOEXEC.BAT, COMMAND.COM, SOL.EXE — tous ceux-ci sont des fichiers.

Le fichier est la plus petite entité « logique » de l'ordinateur, un peu comme la cellule l'est pour un corps humain.

Les anciens fichiers sous MS/DOS comprenaient un nom de 1 à 8 caractères + une extension de 0 à 3 caractères (cette particularité visait à faciliter le portage de nombreux programmes fonctionnant sous CP/M, un OS de Digital Research très bien implanté avant l'arrivée du trio Microsoft-IBM-COMPAQ).

Sous WINDOWS, les extensions de fichiers ne s'affichent plus par défaut, néanmoins, vous les rencontrez parfois lors d'incidents — par exemple, quand vous recevez un fichier avec l'extension ODT, DOTX ou DAT que vos logiciels installés n'arrivent pas à lire (***)

Un fichier peut être de 2 types : un fichier de données ou un fichier « programme ». Il peut exister des variations de cette classification, mais je n'entrerai pas dans les détails.

C'est grâce à l'extension du fichier que nous savons si c'est « un programme » ou « un fichier de données ».

Un programme (ce que j'énonce est pertinent sur MS/DOS et les WINDOWS) peut avoir une extension SYS, COM, EXE (***), etc.

Les extensions SYS étaient utilisées par Microsoft à la fois comme fichiers programmes « de l'OS » et comme fichiers de configuration de l'OS.

Image 3
Image d'illustration

Exercice pratique pour débuter

Sous WINDOWS, trouvez la commande « Exécuter ».

Tapez cmd (cmd exécute un programme qui va vous mettre en mode commande en ligne). Vous allez avoir une fenêtre de ce type :

C:\Documents and Settings\Propriétaire.LUCIDE5678>

Remarquez que ce prompt indique que nous sommes dans le sous-répertoire (dossier, c'est le terme Windows) « Document and Settings », le \ indique un sous-répertoire « Propriétaire.Lucide5678 ».

Le petit trait qui clignote indique que vous pouvez entrer une commande.

Si vous entrez une commande inconnue, vous recevrez ce message (ex : j'ai tapé zorn) :

'zorn' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

Maintenant, tapez SET. Il va afficher un tas d'informations. Cherchez une ligne qui commence par PATHEXT.

Par exemple, sur ce poste, ma ligne est :

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Cette ligne donne toutes les « extensions » qui sont des programmes exécutables sur cette version de WINDOWS.

Pour sortir de cette fenêtre, tapez EXIT.

Exercices simples

  • Quelle est la version de l'OS sur mon système ?
  • Quelle est la version de votre OS ? (Astuce : Il existe une commande dans la partie « Démarrer, Exécuter » qui permet d'afficher la boîte de dialogue indiquant la version — je vous laisse chercher)
  • Quand vous tapez SOL (Démarrer, Exécuter), qu'est-ce qui se passe ?

Ce mode commande vous sera utile à plusieurs occasions et vous permettra d'explorer certains arcanes du système. Il vous permettra aussi de mieux comprendre d'autres OS comme UNIX, qui disposent aussi de commandes plus sophistiquées ou d'outils qui ont été portés d'UNIX vers WINDOWS.

Image 5
Image d'illustration

Du réseau à TCP/IP : la base d'Internet

Comme vous le savez probablement, pour beaucoup d'entre vous, vous êtes connectés en réseau via Internet.

Internet a été développé pour des besoins militaires (et oui, encore !) mais a rapidement envahi les universités américaines en premier lieu, puis d'autres continents.

Internet s'appuie sur une façon d'organiser l'échange des données entre ordinateurs : c'est ce qu'on appelle un protocole. Naturellement, quand vous rencontrez une personne dans nos contrées (le protocole peut différer selon la culture), vous lui dites « bonjour » ou un informel « salut, ça va ? ». Il en est de même pour tous les protocoles informatiques réseaux — c'est une façon pour eux de communiquer et d'échanger des données.

Il existe plusieurs protocoles réseaux en informatique (bien moins nombreux que les OS) : les plus répandus sont SNA (IBM) et DSA (Bull). Sur les systèmes micro-informatiques, il a existé NETBEUI et IPX/SPX (Netware).

Sur les OS Unix et sur la plupart des WINDOWS actuels, le protocole est TCP/IP :

TCP/IP est l'acronyme de Transport Control Protocol et Internet Protocol.

Voilà notre Internet !

C'est grâce à ce protocole installé sur votre ordinateur que vous pouvez me lire — ou échanger des mails, partager des fichiers avec des logiciels comme eMule, ou visiter des sites grâce au Web (qui n'est pas Internet, mais une application — certes la majeure maintenant — d'Internet. Le Web a été inventé au CERN par Tim Berners-Lee en 1989).

Le succès du protocole TCP/IP, sa simplicité de mise en place (et sa diffusion sur de nombreux OS), la possibilité d'installer de nombreuses applications, puis l'explosion pour le grand public via le « Web » ont conduit les sociétés informatiques spécialisées à développer des moteurs de recherche permettant de trouver des sites d'informations sur les domaines qui vous intéressent, et à construire des outils de communication entre personnes d'ethnies différentes (bon, il faut partager le même langage tout de même) via des forums ou des chats.

Tout ceci est TCP/IP !

Dans un cours ultérieur, je vous parlerai de TCP/IP plus en profondeur (c'est-à-dire de manière technique).

Conclusion

J'espère que cet article vous a plu et qu'il a été vivant. Le prochain article paraîtra dans environ 1 mois. Les réponses aux questions s'y trouveront.

Dans ce premier article, je vous ai fourni :
- Un peu de culture informatique générale :
- Les systèmes d'exploitation
- Le fichier, entité autonome
- Le PC de façon simple
- L'hexadécimal
- Quelques briques sur les réseaux et TCP/IP

Pour compléter ces briques, même si ce n'est pas formellement utile au « hacking », je vous conseille quelques sites à survoler ou lire de façon approfondie.

En anglais :
- Liste des systèmes d'exploitation

En français :
- L'invention du Web
- La carte mère

As-tu aimé cet article ?
cyrille999
cyrille999 @cyrille999
12 articles 0 abonnés

Commentaires (0)

Connexion pour laisser un commentaire.

Chargement des commentaires...