HACKING / SECURITE HAND-BOOK
(OU
COMMENT DEVENIR UN HACKER ETHIQUE)

Bienvenue à tous.
Alors, en premier je vais me présenter rapidement, ensuite je vais vous dire le pourquoi de cet ouvrage et…. Et bien si vous êtes intéressé par le hacking dans toute sa splendeur (ne vous inquiétez pas chuis un malade chuis juste un passionné) vous lirez (j’espère avec joie) cet ouvrage.

⦁ qui suis-je ?
« Lorsque nous nous interrogeons: "Qui suis-je ?", nous considérons  comme allant de soi que l’on   est; la seule question est de connaître qui l’on est. Nous avons présupposé que nous sommes, cela n'est pas contesté, c'est considéré comme allant de soi que nous sommse. Maintenant la seule question est: Qui sommes-nous ?. Seule l'identité doit être connue, le visage doit être reconnu, mais il est là, méconnu mais là. »
PHRASE D’UN BOUDDHISTE THIBETAIN.

Alors, je suis un parisien de 17 ans (en 2004). J’ai découvert l’informatique en 4ème et ça été comme une drogue (bon… vous voyez de quoi je veux parler). En classe de 3ème, j’ai découvert la programmation et le hacking (grâce à un ami)…
Deux ans ont passé et je suis encore la pour vous présenter l’un de mes plus grands projets : cet ouvrage.



⦁ cet ouvrage…
Alors, pourquoi avoir écrit cet ouvrage ? Premièrement, par défi.
Deuxièmement, j’adhère à la philosophie qui prône la diffusion de certains savoirs.
Troisièmement, il y a quelques mois, j’ai lu un article qui parlait d’un jeune hacker indien de 16 ans qui avait écrit un livre sur le hacking, je l’ai longuement cherché sur les rayons des librairies que j’ai l’habitude de fréquenter et ne l’ayant pas trouvé je me suis décidé à écrire ce bouquin.
Et pour finir, j’ai lu un article, il y a quelques mois de cela, disant qu’un pirate devait se reconvertir et se mettre du côté de la sécurité : je me suis donc décidé à le faire (j’espere que je serait bien plus productif pour la communauté informatique qu’avant)

Mon but premier était qu’il soit publié par une maison d’édition, mais voyant la lenteur incomparable des éditeurs, je me suis décidé à le mettre sur internet gratuitement.
En tt cas, j'espère qu'il apportera de l'aide aussi bien aux hackers (g bien dit hacker et pas lamers), qu'aux développeurs en passant par les administrateurs…



SOMMAIRE
 

⦁ Introduction 1ère partie : les bases
⦁ Les hackers III TCP/IP
2ème partie : hacking / sécurité informatique IV Quelques recherches sur la cible
⦁ Recherches manuelles
⦁ Automatisation des recherches

⦁ Infiltration, piratage, sécurisation des systèmes
⦁ Windows 9x / 2000 / NT / XP
⦁ UNIX / LINUX

⦁ D’autres techniques de piratage
⦁ attaques DoS et DdoS
⦁ Buffer Overflow
⦁ Détournement de sessions
⦁ Format String
⦁ Failles spécifiques au web
⦁ Messageries et cookies
⦁ Retrouver ses mots de passes perdus
⦁ Sniffing
⦁ Spoofing
⦁ Virologie informatique

⦁ Piratage de composants réseaux
⦁ IDS et contournement
⦁ Murs pare-feu
⦁ Piratage aérien
⦁ War Dialing

⦁ Piratage logiciel IX Cryptographie
3ème partie : programmation X Language C
⦁ Python
⦁ Quelques fonctions de la PCAP XIII Winsock (1ère partie)

XIV Winsock (2ème partie)
4ème partie : développement d’utilitaires de sécurité XV Un crack/patch
⦁ Scanner de ports
⦁ Clients/serveurs TCP et UDP XVIII Sniffers
⦁ Virus batch 5ème partie : annexes
⦁ Principes importants de sécurité XXI Commandes DOS
XXII Ports utilisés par certains troyens XXIII  Cracking d’un application  XXIV Challenge de cracking

Introduction
La sécurité informatique, un domaine important à notre époque est encore trop souvent laissé de côté par des entreprises ou des particuliers jusqu'au jour où ils s'aperçoivent que leurs systèmes ont été visités par un pirate informatique, que leurs données confidentielles (logins, mots de passe, informations bancaires, feuilles de paie…) ont été dérobées ou copiées, qu'ils étaient espionnés…

J’ai écrit ce livre dans le but de fournir un guide des armes nécessaires pour la sécurisation des réseaux et des systèmes en montrant et expliquant les armes, outils et techniques des pirates. Il n’a pas la prétention d’être une référence en la matière car un tel ouvrage ne ferait pas moins de 3000 pages et devrait être mis à jours chaque semaine.

Certaines personnes seront bien sur contre la publication d’un tel ouvrage car elle développe et décrit les techniques qu’utilisent les pirates et peut inciter les lecteurs à pirater des systèmes. Ils n’ont pas tord. Mais qu’ils sachent que ce livre a pour but premier d’aider les internautes et les administrateurs à sécuriser leurs réseaux et les systèmes.


Organisation du livre

Partie I : Les bases
⦁ Qui sont vraiment ces hackers ?

⦁ TCP/IP

Partie II : Hacking/Sécurité informatique

⦁ Faire des recherches sur la futur cible,

⦁ Infiltrer, pirater et sécuriser les systèmes d’exploitations,

⦁ Techniques avancées de piratage,

⦁ Piratage de composants réseaux,

⦁ Piratage logiciel,

⦁ Cryptographie.

Partie III : Programmation réseau

⦁ Le language C et le language Python,
⦁ Fonctions de la PCAP,
⦁ Winsock.

Partie IV : Développement d’outils de sécurité

⦁ Un crack/patch,

⦁ Scanner de ports basique,

⦁ Clients/serveurs TCP et UDP basiques,

⦁ Sniffers,

⦁ Virus batch.

Partie V : Annexes

⦁ Principes de sécurité,

⦁ Commandes DOS,

⦁ Ports utilisés par certains troyens,

⦁ Cracking d’un application,

⦁ Challenge de cracking.

Partie I : Les bases

Les hackers

Les hackers ne sont pas seulement ces délinquants du web, comme le montrent les médias, qui passent leurs journées à pirater des systèmes et des logiciels dans le but de faire couler des sociétés ou de ruiner l'économie. Certes certains pirates aiment détruire et piller des données confidentielles dans un but de défi, pour de l'argent ou pour le plaisir. Mais il ne faut pas faire d'amalgame : tous les hackers ne sont pas comme cela.
Mais alors qui sont ces hackers ? et comment s’organisent-ils ? La « famille » des hackers est bien structurée :
⦁ en premier, il y a les newbies (débutants) : ce sont généralement des adolescents fascinés par les exploits de certains hackers et qui se sont mis à apprendre tout ce qu'ils pouvaient dans le domaine de l'informatique.
⦁ ensuite, il y a les intermédiaires, anciens newbies qui ont acquis une somme de connaissances en sécurité informatique, programmation et sur les réseaux.
⦁ puis il y a les Whites Hat Hackers, des élites en hacking qui programment à longueur de journée et ne font que rechercher des failles dans les systèmes, logiciels…

Ces 3 précédents membres de la famille des hackers travaillent pour une amélioration de la structure.

Maintenant, voyons d'autres membres de la famille des hackers qui travaillent dans le
« côté obscur » du hacking. Ils préfèrent profiter des failles et les exploitent pour le plaisir ou pour de l'argent :
⦁ il y a, en premier, les lamers, des êtres d’une nullité inimaginable, ne faisant qu’utiliser des programmes tout fait (surtout des logiciels servant à faire du nuke, du mail bombing…) et qui n'arrêtent pas de se vanter d'être les meilleurs pirates du monde, d'avoir pénétré des systèmes comme ceux de la NASA, des gouvernements… On les retrouve surtout sur IRC et ICQ.
⦁ ensuite, il y a les Blacks Hat Hackers, des élites qui préfèrent détruire tout système qui leur tombent sous la main.

Voici maintenant d'autres membres que l'on ne peut classer avec les autres :
⦁ les phreakers : ce sont des personnes s’infiltrant dans les systèmes téléphoniques. Forts de leurs connaissances dans les réseaux téléphoniques commutés et en électronique, ils peuvent construire des systèmes électroniques (appelés « Box ») ayant des fonctions bien définies comme avoir la possibilité de téléphoner à l'autre bout de la terre sans débourser d'argent , de téléphoner sur le compte d'une entreprise…
⦁ les crackers : ce sont des personnes piratant les logiciels payants de façon à pouvoir les utiliser indéfiniment sans dépenser d'argent. Ce sont des éléments importants à mes yeux, car certains aiment aussi trouver des failles dans les logiciels.

⦁ les hacktivistes : ce sont des hackers utilisant leurs connaissances pour défendre ce en quoi il pensent et se battre pour un but (les droits de l'homme, la non commercialisation de l'Internet…).



Quels sont les compétences de base des hackers ?

Comme nous venons de le voir, il existe une grande variété de hackers, ayant chacun leurs domaines de prédilection; mais avant de se spécialiser, il faut généralement :
⦁ savoir programmer sinon on ne peut être ni un hacker ni un informaticien.
Il faut au moins connaître deux languages dans cette liste : C++, Java, Perl, Python, Rebol, Assembleur, Lisp, Scheme, Delphi et Visual Basic en plus du C et de l’HTML (qui est plus un language de mise en page).
⦁ connaître les technologies des réseaux (principes de base, services…), la pile de protocoles TCP / IP et tout ce qui s'y rapporte.
⦁ savoir utiliser Internet : faire des recherches intelligentes et précises.
⦁ connaître les principes de base et savoir utiliser les systèmes d'exploitation les plus courants : Windows, Unix, Linux.
⦁ avoir des bases en électronique et en hardware pour savoir identifier un matériel quelconque.



La loi

Maintenant voyons ce que dit la loi au sujet du piratage informatique.


Loi n° 88-19 du 5 janvier 1988 relative à la fraude informatique Journal officiel du 6 janvier 1988

L'assemblée nationale et le Sénat ont adopté.
Le président de la République promulgue la loi dont la teneur suit :

Article unique




TCP / IP

TCP/ IP est une pile de protocoles qui sert à faire communiquer entre elles des machines hétérogènes.

le modèle OSI :
En 1984, l’OSI (Open System Interconnect) un ensemble de spécifications sur la structuration des protocoles et des systèmes a été créé.

Le modèle OSI est constitué de 7 couches (ou niveaux) qui assurent chacunes une fonction et intègrent un certain nombre de protocoles.

 
Voici une description de chaque couche :

la couche physique :

Elle a pour but de transporter des données (signaux produits par les systèmes et devant être envoyés à d'autres systèmes) au travers des divers moyens de transport présents dans les réseaux (câbles, fibres…).

la couche liaison de données :

Elle a pour but d'aider à la bonne transmission des données entre systèmes en créant des paquets réseau. Cette couche est constituée de deux sous-couches LLC (Logical Link Control) et MAC (Medium Access Control) à ne pas confondre avec une adresse MAC (celles des cartes réseaux) bien qu’elle gère l’adressage de ces dernières ou avec le contrôleur d'intégrité de SSL (Message Authentification Code).

la couche réseau :

Elle a pour but de gérer tous les problèmes concernant les réseaux (adressage, invalidité, indisponibilité…) .

la couche transport :

Elle a pour but d'assurer que les systèmes communiquent bien entre eux, mais aussi que les paquets sont bien transmis.

la couche session :

Elle a pour but de contrôler les liaisons entre les systèmes pour qu'ils puissent communiquer correctement. Elle ne fait que contrôler et n’établit aucune liaison car c'est la fonction de la couche transport d'établir la session, à la demande de la couche session.

la couche présentation :
Elle a pour but de convertir les données fournies par l'utilisateur dans un type de données ( ou langage) compréhensible par tous les systèmes. Un peu comme l’XML qui peut servir à un script en PHP qui pourrait envoyer des données à un script en REBOL.


la couche application :

Elle a pour but de permettre à l'utilisateur d'utiliser les services (grâce aux protocoles) offerts par son système.


Quelques protocoles :
TCP / IP enveloppe beaucoup de protocoles dont TCP, IP, UDP, ARP, RARP, ICMP, IGMP, SNMP, RIP, OSPF, BGP, EGP, DRP, IGRP, EIGRP, NCP, PPP, SMTP, FTP, POP/IMAP, DHCP, HTTP, OSPFIGP…

Il existe d'autres piles de protocoles : NetBIOS / NetBEUI
et
IPX/IPS

Petites explications :

  Version IHL Type de service Longueur du paquet
    Identificateur Flags Offset du Fragment  
    TTL Protocole Cheksum d’en-tête  
    Adresse IP source  
    Adresse IP cible  
    Options / remplissage ( padding )  
    Zones de données…  

TCP
( OSI 4 ) C’est un protocole en mode connecté (cela veut dire qu’il établit une connexion entre les systèmes qui communiquent).
Il choisit aussi le type de paquets à envoyer sur le réseau en fonction de l’environnement et de l’action à effectuer (connexion, déconnexion, requêtes diverses…).
Quand TCP finit tous ses préparatifs, il envoie ces données (on dit aussi segments de données) au protocole IP. Ce dernier enverra le paquet par le réseau.

Pour assurer sa fonction, TCP utilise différentes techniques, comme :
- le contrôle des paquets (pour d’éventuelles erreurs)
- la création d’une connexion virtuelle, entre les systèmes en communication de type full-duplex (connexion en double-sens)
- …

Voici un paquet TCP :
UDP ( OSI 4 ) C’est un protocole en mode déconnecté semblable à TCP mais étant moins sécurisé et plus simple d’utilisation, car il ne créé pas de connexion entre les systèmes qui communiquent et ne fait qu’envoyer des datagrammes sur le réseau sans contrôle des paquets.

Voici un paquet UDP :
port source port destination
numéro de séquence
accusé de réception
décalage données réservé urg ack psh rst syn fin fenêtre
somme de contrôle (checksum) pointeur de données urgentes
options remplissage (padding)
données

Type Code Cheksum
    ID Numéro de séquence  
    Données  


Quelques notions de base :
Clients/Serveurs :


De nos jours, les réseaux fonctionnent grâce à la topologie client/serveur.

Le système client ouvre une session sur le système serveur puis faire de requêtes spécifiques au(x) service(s) que délivre ce dernier.
Le système serveur est développé pour accepter la connexion d’un des client et fournir un/des service(s) spécifique(s).
Pour information, un service n’est fournit que par un serveur et peut-être de types différents : service http, ftp…

Sockets :

Pour faire communiquer des systèmes à travers le réseau, des chercheurs ont créé ce que l’on appelle des sockets.

Maintenant quoi que l’on fasse sur un réseau, on utilise sans le savoir (ou plutôt sans s’en préoccuper) des sockets.
Pour information, les sockets sont principalement constitués d’une adresse IP et d’un port de communication.