| 
 | 
 | 
| Pourquoi je suis un cracker et un hacker ? | 
 | 
| Initiation au TCP/IP | 
 | 
| Initiation au Turbo Pascal | 
 | 
| Initiation au cracking | 
 | 
| Le SE (Social Engeenering) | 
 | 
| Attaque d'un sitez, ma méthode, sans SE | 
 | 
| Failles de sécurité | 
 | 
| Le nucléaire | 
 | 
| Le mot de la faim | 
 | 
Le protocole IP assure la livraison des paquets pour les protocoles de la suite TCP/IP.
Nous allons voir maintenant une petite liste de ports, pour cracker
un sitez, il faut avant tout trouver le bon port, c'est pour cela que vous
aurez besoin d'un scanner de ports :
 
| Service ou application | Port | 
| FTP (File Transfert Protocol) | 21 | 
| Telnet | 23 | 
| SMTP (Simple Mail Transfert Protocol) | 25 | 
| Gopher | 70 | 
| finger | 79 | 
| HTTP (Hypertext Transfert Protocol) | 80 | 
| NNTP (Network News Transfert Protocol) | 119 | 
Telnet est une application très répandue, elle doit normalement être inclue avec votre OS (Unix, Microsoft, VAX,...), elle n'est pas graphique, il s'agit d'un application qui tourne en mode texte, mais qui reste très populaire. Si un jour un lamer vous enoye un mail-bomb, vous pourrez supprimer tous ses messages en 10 secondes, je pense que je consacrerais un peu plus tard un article entier sur telnet.
TCP/IP contitue le fondement d'internet. TCP/IP est un ensemble complexe de protocoles, dont certains sont invisibles pour l'utilisateur.
J'ai un peu repris une partie du livre "Sécurité optimale",
aux éditions S&SM (http://www.ssm.fr),
pour vous donner des informations correctes, claires et précises.
Si vous voulez en savoir plus sur le TCP/IP, vous pouvez lire l'ouvrage
Le Macmillan TCP/IP de Karanjit S. Siyan, S&SM.
PROGRAM simple;
BEGIN
END.Au contraire du C, le pascal ne fait pas la différence entre majuscules et minuscules, si j'ai écrit les mots program, begin ou end en majuscule, c'est uniquement pour un problème de lisibilié.
Exemples d'identificateurs valides :
simple, dur, la_vie_est_dure, elephant, ...
Exemples d'idetificateurs invalides :
1chien, éléphant, la vie en rose, jean&jacques, ...
Après le mot clé program, nous avons mis l'identificateur
"simple", et terminé par un ;
on met des point-virgules partout, sauf devant les mot-clés
(exceptions : program, procedure, function, uses, et quelques autres que
je n'ais pas tout de suite en tête, ...)
le end final, et seulement lui, se termine par un point.
Maintenant, on va écrire une petite phrase tout simple, en respectant
la tradition "Hello, world!" :
 
PROGRAM Hello;
BEGIN
  WriteLn('Hello, world!');
END.Maintenant, je vais l'expliquer en détail : j'ai écrit WriteLn, mais j'aurais très bien put aussi écrire writeln ou WRITELN, ok ? Ensuite, je met le texte entre parenthèses et apostrophes, et si jamais j'avais une apostrophe dans mon texte, je devrais en mettre deux à la suite : WriteLn('aujourd''hui');, et je finis par un ;
PROGRAM LePrenom;
VAR
prenom : string[30];
BEGIN
  WriteLn('Salut, quel est ton prénom ?');
ReadLn(prenom);
  Writeln('Bonjour, ',prenom);
END.Pourquoi j'ai écrit LePrenom devant programme et pas tout simplement Prenom ? c'est vrai qu'en C ça aurait marché car il fait la différence minuscules/majuscules, ça aurait donc été deux identificateurs différents, mais pas ici. Var sert à déclarer les variables, comme le pascal est un langage structuré, on doit déclarer ses variables avant. Ici, string indique une chaine de caractère ne pouvant pas dépasser 30 lettre. Si je n'aurais pas mis [30] après string, la limite aurait été de 255 caractères,
PROGRAM Nombres;
VAR
nombre1, nombre2, somme : integer;
BEGIN
  WriteLn('Bonjour, ceci est l'exmple d'un programme simple de calcul...');
WriteLn;
  WriteLn('Veuillez taper un 1e nombre :');
ReadLn(nombre1);
  WriteLn('Veuillez taper un 2e nombre :');
ReadLn(nombre2);
WriteLn;
somme:=nombre1+nombre2;
  WriteLn('somme de ces nombres : ',somme);
END.Les variables nombre1, nombre2 et somme sont définies en tant qu'integer, nombres entiers. De tête, la limite que l'on puisse rentrer est à peu près -32 000 et 32 000, sinon, le programme execute une erreur. Il permet de calculer des nombres, c'est pour ça qu'on aurait pas mis string ici, il y aurait eu une erreur avant la compilation. Ensuite, vous pouvez mettre un point-virgule directement après WriteLn; ce que saute une ligne automatiquement. Enfin, la ligne la plus intéressante est sans doute somme:=nombre1+nombre2; le := joue le rôle d'affectateur, la somme des deux nombres est affecté à la variable somme.
Code.exe : Programme très simple permettant d'apprendre à
cracker.
A la base, quand on tape 1, le programme écrit "Bon code" et
pour tout le reste, il écrit "Mauvais code".
Amusons nous avec un debugger, dans cet exemple, j'utilise Turbo Debugger
pour DOS.
Je repère, assez rapidement dans le programme une comparaison
:
  cs:005B 9A91028560     call   6085:0291
  cs:0060 803E520001     cmp   
byte ptr [0052],01   <-- ici, comparaison
  cs:0065 751E                
jne    0085  <-----------------
ici, saut si faux
  cs:0067 BF5401           
mov    di,0154
  cs:006A 1E                  
push   ds
Je me rappelle :
Jne : cette instruction sert à aller à un emplacement
quand la valeur est fausse, son code hexadécimal est 75
Je : cette instruction sert à aller à un emplacement
quand la valeur est correcte, son code hexadécimal est 74.
Jmp : cette instruction est à aller à un emplacement
dans tous les cas, son code hexadécimal est EB.
Il faut donc remplacer 75 (Jne) par 74(Je), ce qui donnera :
  cs:005B 9A91028560     call   6085:0291
  cs:0060 803E520001     cmp   
byte ptr [0052],01
  cs:0065 741E                
je    0085
  cs:0067 BF5401           
mov    di,0154
  cs:006A 1E                  
push   ds
avec un éditeur hexadécimal, on cherchera donc :
80 3E 52 00 01 75 1E BF 54 01  et on remplace par
-- -- -- -- -- 74 -- -- -- --
Maintenant, quand on tape 2, le programme ‚crira Bon code et quand on
tape 1, le programme écrit : Mauvais code.
Approfondissons un peu, le programme doit écrire "Bon code",
que l'on tape 1 ou n'importe quel autre nombre.
Je vais vous montrer une erreur à éviter mais qui nous en apprend :
"Si on remplace jne 0085 par jmp 0085, comme ça, il saute tout de suite sur 0085"
  cs:005B 9A91028560     call   6085:0291
  cs:0060 803E520001     cmp   
byte ptr [0052],01
  cs:0065 EB1E               
jmp    0085   <------------
ici
  cs:0067 BF5401           
mov    di,0154
  cs:006A 1E                  
push   ds
avec un éditeur hexadécimal, on cherchera donc :
80 3E 52 00 01 74 1E BF 54 01  et on remplace par
-- -- -- -- -- EB -- -- -- --
mais maintenant, tout est mauvais, quoi que l'on tape, eh ben, on réfléchit
:
"Si le code est faux (Jne), il va à l'emplacement 0085, ça
veux dire que si il est juste, il ne lit pas cette instruction et continue
à lire la suite du programme"
On dira alors au programme de sauter à l'instruction juste après
: 0067
  cs:005B 9A91028560     call   6085:0291
  cs:0060 803E520001     cmp   
byte ptr [0052],01
  cs:0065 EB00                
jmp    0067
  cs:0067 BF5401            
mov    di,0154
  cs:006A 1E                   
push   ds
avec un éditeur hexadécimal, on cherchera donc :
80 3E 52 00 01 EB 1E BF 54 01  et on remplace par
-- -- -- -- -- -- 00 -- -- --
Eh voilà le travail, maintenant, le programme écrit "Bon
code", quoi
qu'il arrive. Amusez vous bien.
The yAcC.
Merci The yAcC pour ton exemple, t'es sympa, il permet de bien apprendre le crack, on fabrique le programme et on le cracke, ce qui permet de tout voir étape par étape.
<MOI> Bonjour, je vous appelle car j'ai perdu la feuille que vous m'aviez envoyé, et je ne peut plus me connecter...
<BOUBOULE.COM> Oui, veuillez me donner votre login.
<MOI> Dupont, D.U.P.O.N.T.
<BOUBOULE.COM> Attendez, je vous passe le service concerné
... musique ... 5 minutes d'attentes et...
<MOI> Oui, je vous appelle car j'ai perdu mon mot de passe
<BOUBOULE.COM> Veuillez me donner votre login.
<MOI> Dupont, D.U.P.O.N.T.
<BOUBOULE.COM> Vous êtes monsieur ?
<MOI> Jean Dupont
<BOUBOULE.COM> Vous avez fait quel type d'enregistrement ?
<MOI> Prélèvement automatique (c'est le plus courant)
<BOUBOULE.COM> Veuillez me donner les 5 derniers chiffres de votre carte de crédit.
<MOI> (merde), euh... je n'ais pas ma carte sur moi, attendez ... non, elle doit être en bas.
<BOUBOULE.COM> Désolé, je ne peux pas répondre à votre demande.
<MOI> Oui, je comprends, au revoir.
J'avais un peu les boules, 1h 30 plus tard, je me décide de rappeller, (je résume l'attente de 5 minutes)
<BOUBOULE.COM> alors monsieur Dupont, vous avez retrouvé votre carte de crédit ?
<MOI> (merde encore) oui.
<BOUBOULE.COM> Veuillez me donner les 5 derniers numéros.
<MOI> 5.6.7.8.4. (j'improvise)
<BOUBOULE.COM> Ce n'est pas ça, mais bon, si ce n'était pas vous, vous n'auriez pas rappellé, je vais vous donner votre mot de passe :
<MOI> oui, allez-y.
<BOUBOULE.COM> G.A.G.N.É.
Eh voilà le travail, cette technique a bien marché.
1°) infoman:jJS2NcqXf4h6E:500:100:Utilisateur:/home/infoman:/bin/bash
2°) infoman:x:500:100:Utilisateur:/home/infoman:/bin/bashDans le premier cas, il va falloir utiliser un cracker de mots de passe comme CrackerJack, PaceCrack, QCrack, John the ripper, ... là, c'est facile
Cracker un mot de passe est moins compliqué que l'on peut imaginer
:
1. La première étape est de prendre une copie du fichier
passwd
2. La seconde étape est de trouver le mot de passe, à
l'aide d'un cracker et d'un générateur de dictionnaire. Les
programmes les plus utilisés ici sont : Cracker Jack, John the Ripper,
Brute Force Cracker ou Jack the Ripper
Un générateur de dictionnaire trouve toutes les lettres
possibles avec l'alphabet choisi.
3.Vous lancer le cracker et attendez la réponse qu'il vous donnera
Il existe aussi une technique très connue, pour avoir le fichier
passwd, il s'agit de la technique PHF :
cette technique ne marche quasiment plus actuellement, car elle est
très répandue, mais vous pouvez toujours l'essayer, on ne
sait jamais, et puis, qui ne tente rien n'a rien :
remplacez domainecible.com par le site que vous comptez hacker :
http://domainecible.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
Aussi, parmis tous les utilisateurs, il y a des privilèges, plus le nombre est petit, plus l'utilisateur à des privilèges, par exemple, pour infoman, on aperçoit le chiffre 500, c'est le numéro de privilège d'infoman, donc, ça ne vaudra pas le coup d'essayer de prendre son compte, il est trop nul, vous devrez essayer à tout prit de vous emparer du root ou superuser, lui, son numéro de compte est 0 et il a le droit de tout faire, même d'accéder aux données des autres utilisateurs.
Maintenant, si vous essayer de hacker une plus grande page, d'accéder
à des ressources via FTP, ça devient vite plus compliqué
car le site est protégé, mais il n'y a aucune sécurité
100 % fiable, toutes les sécurités peuvent être percées,
mais si vous essayez d'attaquer le gouvernement, vous allez essayer d'aller
dans le répertoire /etc/passwd, et là, soit on vous demande
un mot de passe (que l'on cracke avec un utilitaire de type Claymore),
soit il y a écrit "/etc/passwd acces denied", mais on verra comment
y accéder tout de même, si je ne dit pas tout maintenant,
c'est parce que je suis en train de finir de dévellopper une technique
que je crois avoir trouvé, mais c'est assez dur, car leur sécurité
est assez bien foutue, résultat des mon enquête pour le numéro
2,3 ou 4, mais je ne suis pas sur d'y arriver, en tout cas, n'oubliez pas
que leur technologie date d'il y a 20 ans et qu'il l'ont presque pas changée
depuis, c'est quand même assez dur d'y arriver, et en plus, il va
falloir naviguer de façon anonyme, et il y a de très grands
risques de vous faire chopper, c'est donc à vos risques et périls
!!!, par contre, aux States, c'est différent, car il y a le fbi,
la nasa et leur sécurité est époustouflante, essayez
d'aller sur : ftp.fbi.gov, vous verrez
... aux States, le gouvernement a 250 000 attaques par an, et à
peu près 1/2 réussie à s'infiltrer dans le réseau
!!!, faut vraiment être un dieu pour niquer le fbi, ce que je ne
suis pas.
Et si vraiment vous arrivez à niquer le gouvernement, vous êtes
bien balèzes et vous n'avez pas besoin de lire d'e-zines comme celui-ci.
Je vous rappelle que je bosse dans la sécurité, donc, je
vous donnerais quelques trucs intéressants au fil du temps, pour
que je puisse continuer à bosser contre des hackers comme vous,
et comme vous utiliserez mes techniques, je serais vous contre-attaquer,
et donc mon patron sera content de moi :-) = augmentation.
                     
°~-_-~°
                   
T   o  o   T
                          
^
                     
(   O   )
                      
------
                 
I'll be back !
                           -.                       .-
                       _..-'(                       )`-.._
                    ./'. '||\\.       (\_/)       .//||` .`\.
                 ./'.|'.'||||\\|..    )o o(    ..|//||||`.`|.`\.
              ./'..|'.|| |||||\`````` '`"'` ''''''/||||| ||.`|..`\.
            ./'.||'.|||| ||||||||||||.     .|||||||||||| ||||.`||.`\.
           /'|||'.|||||| ||||||||||||{     }|||||||||||| ||||||.`|||`\
          '.|||'.||||||| ||||||||||||{     }|||||||||||| |||||||.`|||.`
         '.||| ||||||||| |/'   ``\||``     ''||/''   `\| ||||||||| |||.`
         |/' \./'     `\./         \!|\   /|!/         \./'     `\./ `\|
         V    V         V          }' `\ /' `{          V         V    V
         `    `         `               V               '         '    '