DISCLAIMER: Toutes les informations
contenues dans ce fanzine n'y sont qu'à titre purement informatif!
Il vous est déconseillé de les appliquer, sous risques d'amendes
et de poursuites judiciaires. Moi ou mon serveur (actuellement Multimania),
ne seraient être tenus responsables de ce que vous ferez de ces informations!
On peut faire ça avec l'adresse IP d'un site? Je réponds
oui! La commande est la même mais à la place du www.nomdusite.com
vous mettez son adresse IP, démonstration en images sur le site
de zymark:
Là, l'accès a été réussi, mais c'est un accès autorisé: il est prévus à cet effet! Je vous expliquerais après comment faire.
- L'adresse de l'U.S Navy par telnet: pirater
la marine américaine par telnet! AAARRRRFFF! Ca vous tente? Vous
avez telnet? Alors voici son adresse: navobs1.usnogps.navy.mil
Faites gaffe! Un de mes potes a essayé avec la NASA! Ca a pas
tardé! Vous êtes tracés! Mon pauvre copain a reçu
un mail de menace comme quoi il ne devait plus se reconnecter à
la NASA par telnet!
- Tracer un site ou un particulier: Tracer
un site ou un particulier, est une chose assez utile parfois, il faut l'avouer!
Je vous expliquerais après dans, piratage d'un site comment l'utiliser
à son maximum de possibilités! 'abord pour tracer il faut
aller sous DOS, puis écrire (les ">" ne sont pas à écrire!):
> tracert 123.123.123.123
ENTREE
123.123.123.123 n'est qu'un exemple: vous pouvez savoir comment avoir
l'IP d'un particulier dans l'issue
1 de HACKER2020, et vous aurez le traçage de sa bécane,
par ou passe le signal!
Et pour les sites? Prenons l'exemple de Mygale:
faites (toujours sous Dos et les ">" ne devant pas être écrit):
> tracert www.mygale.org
ENTREE
Et voilà le résultat en image:
La première ligne (avant la liste) donne, le nom du serveur et
son IP entre crochets (utile pour avoir l'IP du serveur).
La 1ere ligne de la liste, donne l'adresse IP d'ou part le signal,
les autres lignes les rooteurs ou serveurs intermédiaires, et la
dernière ligne la cible atteinte, donc fin du traçage!
Pour obtenir d'autres utilisations du tracert faites (toujours sous
Dos et les ">" ne devant pas être écrit):
> tracert
ENTREE
Et vous aurez une série d'infos à faire sur le tracert.
- Pinger sous DOS: Pinger
sert à savoir, si oui ou non, la cible à pinger existe et
si la connexion est de bonne qualité et pas trop lente. Pour pinger
faites (toujours sous Dos et les ">" ne devant pas être écrit):
> ping 123.123.123.123
ENTREE
Pour connaitre d'autres fonctions du ping faites (toujours sous Dos
et les ">" ne devant pas être écrit):
> ping
ENTREE
Et une série d'infos sur le ping vous sera données.
En générant un flood de ping vous pouvez faire ralentir
la vitesse de connection de la cible, voir même la déconnecter!
- Un outil très utile: WS_PINGPR: Essayez
de le trouver sur le net et de le télécharger (sa taille
en zip est de: 69ko). Malgré sa petite taille, ce pinger, tracer,
et autres.... peut vous être très très utile! Je m'explique:
Supposons que vous cherchiez à avoir les N° de tel des mec de
Multimania, avec leurs e-mails, les infos sur Multimania etc... a première
vue, celà parait impossible si on ne vous les donne pas! Faux. Ce
petit engin vous le garantit! Une petite image pour mieux comprendre et
je vous explique:
Donc ici, vous avez les infos sur Multimania: nom des contacts, adresse
IP du site, date de la création, etc... Vous remarquez que vous
avez des noms, leurs tels et leurs adresses e-mails.
Vous pouvez aussi tracer, pinger etc... Si vous essayez sur un particulier
vous obtiendrez uniquement son adresse IP et son adresse TCP. Cet outil
est très utile dans le domaine du hacking.
- Internet , Structure : Internet est avant tout un ensemble de reseaux interconnectes par divers moyens : cartes reseaux, fibres optiques, sattelites ... Tel que l'utilisateur le voit, il ne saura jamais comment sont connectees ces differentes machines: en effet, afin d'etablir une compatibilite,un protocole de haut niveau a ete etablis: le TCP/IP (Transfert Control Protocol/ Internet Protocol).Il recouvre de nombreux protocoles non visibles par l'utilisateur:chaque machine possede une adresse IP,soit fixe, soit variable selon la connexion; ainsi un serveur Web aura toujours une IP fixe puisqu'il doit etre consultable en permanence et que celui qui consulte ne doit pas avoir a retrouver l'adresse a chaque fois.Les http (les adresses de la forme www.truc.com, www.machine.org...) correspondent en fait a des adresses IP;elles n'ont ete creees que dans un but de simplification:il est plus simple de retenir www.zymark.com que 198.199.168.4 pour le site de la societe Zymark. Ainsi lorsque vous tapez une http dans un logiciel internet quelconque,lors de la consultation d'un site,celle-ci sera convertie enune IP par un serveur; ce sont les tables de routage qui referencent les correspondances http/IP. Les IP variables sont en fait utilisees par les connectes ponctuels a Internet comme vous ou moi.Ainsi a chaque connexion a Internet,votre provider vous delivre une IP au "hasard". Une IP est en fait un champ de 32 bits: les 8 premiers determinent la classe du reseau et l'identifient,les 24 suivants identifient des sous-reseaux et des machines.
Ces 32 bits sont, pour l'utilisateur courrant,repartis en 4 champs de
8 bits separes par des points donc une adresse IP pourrait varier de 0.0.0.0
a 255.255.255.255. Toutes ces IP ne servent pas, et certaines ont des significations
particulieres. Ainsi l'adresse 127.0.01 est en fait l'adresse de la machine
elle-meme. Exemple:Si votre IP est 152.148..68.32,vous pourrez identifier
votre machine par 152.148.68.32 mais aussi par 127.0.0.1 pour vous connecter
sur vous-meme. Cependant, si quelqu'un d'autre se connecte sur le 127.0.0.1,
il se connectera sur sa propre machine.S'il se connecte sur le 152.148.68.32,
il se connectera sur votre machine
TCP/IP est un protocole de haut niveau dans la mesure ou il recouvre
plusieurs autres protocoles .
Votre connexion passera en fait par plusieurs machines qui regulent et dirigent les informations entre les reseaux meme si vous ne voyez pas ces machines. Si en passant entre tous ces reseaux, vos informations aura probablement ete transferees sous differents protocoles et sur differents types de reseaux physiques, mais pour vus, tout est reste transparent comme si un fil etait tendu entre la machine distante et la votre. Bref aperçu sur les classes de reseaux: Les classes de reseaux ont en fait ete definies lors de l'augmentation prodigieuse du nombre de machine connectees a Internet de maniere quasi permanente.voici les différentes classes:Classe :
Domaine d'IP | Spécificités : | |
A | 0.0.0.0 / 127.255.255.255 | 1 bit d'identification de classe
7 bits d'identification du reseau 24 bits d'identification de la machine |
B | 128.0.0.0 / 191.255.255.255 | 2 bits d'identification de classe
14 bits d'identification du reseau 16 bits d'identification de la machine |
C | 192.0.0.0 / 207.255.255.255 | 3 bits d'identification de la classe
21 bits d'identification du reseau 8 bits d'identification de la machine |
D/E | 208.0.0.0 / 255.255.255.255 | Reservees a des applications particulieres
et ulterieures en vu de l'accroissement du reseau Internet. |
- Exploiter un sytème: L'exploitation
du systeme est ce qui devient réellement interessant: en penetrant
un systeme, vous ne serez probablement pas root du premier coup ... Essayez
quand meme de choper le fichier /etc/passwd (par les ftp d'un site avec
le navigateur. C.f.: issue1) si vous ne l'avez pas ... Puis regardez de
quel systeme d'exploitation il s'agit. En effet, de nombreux systemes possèdent
des bugs qui sont exploitables.C'est a dire qu'une série de commandes
mal configurées sur le systeme peuvent vous donner l'accès
root apres leur execution: cela va des scripts aux programmes. Cette serie
de commandes s'appelle un exploit;vous en trouverez plein sur le Net avec
ftpsearch . Essayez d'abord ces commandes . Il est nécessaire a
ce niveau de connaitre la programmation en C et sous les shells. Le shell
est l'interpreteur de commandes: cela correspond au Dos; vous savez probablement
que l'ont peut programmer des fichier batch avec un langage restreint sous
Dos.. C'est pareil sous Unix ... Je ne m'étendrais pas plus sur
les exploits cette fois-ci ... essayez deja un peu tout ce qui a été
expliqué ici ...
#include <stdio.h>Alors les parties ?void main(void)
{
puts("Desole pour un exemple pourri comme celui-la.");
}
Ainsi, une fonction est definie de la maniere suivante:valeur_renvoyee
fonction(parametres). puts est en fait define de cette maniere:
int puts(string);
Important en C sauf cas particulier, une instruction ou une fonction
est toujours suivie d'un point-virgule.int correspond a un entier: c'est
un type de variable: en effet;lors de la programmation ,la manipulation
de parametres s'effectue par le biais de variables. Il existe plusieurs
types de variables selon le type de parametres a utiliser :selon que cela
sera une chaine de caracteres, un nombre entier de petite taille
ou un reel de grande taille, nous n'utiliserons pas le meme type de variable.
Une variable correspond en fait a un emplacement memoire d'une certaine
taille selon la valuer que nous vouons lui attribuer . Il est necessaire
en C de declarer vos variables de chaque fonction au debut de celles-ci
.Vos variables vont dependre des donnees que vous vooulez stocker a l'interieur.Ainsi,
si vous voulez stocker des entiers de petite taille (compris
entre -128 et 127 ),vous choisirez le type char;si votre entier est plus
grand (compris entre -32768 et 32767), vous choisirez le type int ... De
plus ,une variable peut-etre signee ou pas;cela varie en fait de
l'utilisation que vous comptez en faire.Par defaut, les variables sont
signees mais si vous choisissez qu'elle ne le soit pas,cela changera
l'encadrement de votre variable. Par exmple, si vous decidez de declarer
une variable non signee de type char, celle-ci sera alors comprise
entre 0 et 255 . Une fois vos variables declarees, il faut encore que vous
puissiez les exploiter: soit les modifier, soit les afficher.
Pour attribuer une valeur a une variable, la sequence est la suivante
:
variable=valeur;
De meme, pour attribuer a une variable la valeur d'une autre variable,on
utilise la syntaxe suivante:
variable1=variable2;
Vous pouvez ensuite effectuer les differentes operations de base sur
vos variables: les multiplier,les additionner ...
variable1=varible2*3; va mettre dans la variable1 le contenu de la
variable2 multiplie par 3.
Enfin, pour afficher une variable( eventuellement integree a une chaine
de caracteres...), on utilise la fonction printf():
int printf(chaine,parametre);
Supposons que je veuille afficher la chaine Hello,j'utiliserais la
sequence suivante:
printf("Hello");
Pour y integrer des variables, on utilise le signe %suivie de type
de variable a afficher puis apres la chaine, on met une virgule et la variable
en question ce qui donne si la variable est de type int:
printf("Valeur de la variable = %i .",variable);
Les types de variables sont:char (%c),int (%i),float(%f),double (%d),long
(%l) quant aux chaines de caracteres, il faut declarer un tableau de variables.
La declaration s'effectue alors ainsi: char chaine[12]; qui va vous
emettre un tableau de 12 caracteres... Vous pouvez acceder ensuite a chaque
caractere independemment par chaine[i] ou i est le caractere auquel vous
desirez acceder Attention,l'indice du premier caractere est 0,celui du
second 1 etc... jusqu'a 11 pour l'indice du douzieme caractere.Supposons
que notre variable vaille 2035, nous obtenons l'affichage suivant: Valeur
de la variable = 2035 . Par ailleurs, il peut etre interessant de mettre
en forme l'affichage de nos chaines de caracteres;ceci se fait au moyen
de caracteres particuliers precedes de \ inseres directement dans la chaine
de caracteres:Par exemple, le n sert a effectuer un saut de ligne et un
retour chariot,le a emet un bip sur le haut-parleur,le t marque une tabulation
horizontale ...
Regardez donc les exemples fournis avec ce zine:exemple2.c,exemple3.c
.Vous aurez remarquez les lignes commencant par /* et finissant par */,
ce sont des lignes de commentaires:le compilateur n'en tient pas compte
lorsqu'il compile votre programme;cela permet de mieux se retrouver dans
un gros listing.
Dans le dernier exemple, nous executons plusieurs fois la meme fonctions
ce qui nous contraint a taper de nombreuses fois la meme ligne et augmente
de plus la taille de notre programme inutilement. Nous allons donc voir
les structures conditionnelles. Si vous avez lu la partie sur les algorythmes,ca
ira vite a expliquer:le principe est d'effectuer une operation, d'incrementer
une variable et de tester la valeur de cette variable . La structure la
plus connue est if(condition) then instructions end. Voici un exemple rapide:
supposons que l'on recherhe le premier caractere espace dans une chaine
de 8 caracteres:
cela donnerait :
if(chaine[0]= =' ') trouve();C'est une facon de proceder cependant, la taille du fichier reste importante, et c'est assez astreignant a taper.Voyons une forme plus optimisee: i est ici une variable de type unsigned char.
if(chaine[1]= =' ') trouve();
...
if(chaine[6]= =' ') trouve();
if(chaine[7]= =' ') trouve();
pastrouve();
i=0Nous avons ici une instruction de saut : goto processus; elle signifie que lorsqu'elle est executee, le programme continue a la suite de la ligne processus: . Je vais un peu mieux expliquer la structure if(condition). Si vous n'avez qu'une instruction a effectuer dans le cas ou la condition est verifiee, alors la syntaxe est:
processus:
if(char[i]==' ')
trouve();
else pastrouve();
i=i+i;
if(i<=7)
goto processus;
if(condition) instruction;Cependant vous pouvez avoir plus d'une instruction a exectuer si cette condition est verifiee auquel cas, vous devrez utiliser la syntaxe :
if(condition){instruction_1;instruction_2;...instruction_n;}Mais un autre cas de figure peut se presenter:lorsque selon la condition, vous souhaitez executer differentes instructions.Cela donne:
if(condition) instruction_1;Dans ce cas de figure,le programme va tester la condition,si elle est vrai, il va executer l'instruction 1 ,puis les instructions suivantes;si la condition est fausse,il va executer l'instruction 2 puis les instructions suivantes. Dans ce cas, vous pouvez aussi utiliser des accolades pour des suites d'instructions.Ces formes de d'instructions conditionnelles sont les plus basiques qui soient;j'introduirais plus tard d'autres formes plus efficaces au niveau du code...
else instruction;
instructions_suivantes;
float valeur;Le symbole & precedant valeur dans la fonction scanf est important dans la mesure ou &valeur ne concerne pas le contenu de valeur mais l'adresse memoire de la variable valeur.En fait scanf attribue a l'emplacement memoire de valeur une donnee de type float...Il n'y a qu'un cas ou il ne faut pas mettre le &, c'est quand on demande a l'utilisateur de saisir une chaine de caractere:
scanf("%f",&valeur);
printf("Le resultat est %f",(3.14159*valeur));
char chaine[10];Nous avons vu comment entrer des donnes,les modifier.Je vais tacher d'expliquer un autre mode d'adressage:l'adressage memoire direct par les pointeurs.Nous avons vu que scanf lors de l'entree de donnees les attribuer a un emplacement memoire par le biais du symbole &.Un pointeur correspond en fait a l'adresse memoire d'une variable.On declare un pointeur en meme temps que les donnes mais en rajoutant le signe * devant son nom: int *pointeur; pointeur va alors contenir non pas un entier mais l'adresse d'un entier. Exemple:
scanf("%s",chaine);
int entier; | Declaration d'une variable de type int |
int *pointeur; | Déclaration d'un pointeur sur une donnée de type int |
entier = 12; | Adressage direct : Entier contient 12 |
pointeur = &entier ; | Attribution à pointeur de l'adresse mémoire de la variable entier |
*pointeur = 45 ; | Attribution à l'emplacement mémoire référencé par pointeur de la valeur 45 . Comme pointeur contient l'adresse de la variable entier, celle- ci contient donc la valeur 45 . |
*pointeur = 45 ; | Ces deux expressions sont donc équivalentes . |
entier = 45 ; |
Pour entrer la valeur de entier par scanf, on pourra soit utiliser :
scanf("%i",&entier);
soit
scanf("%i",pointeur);
Il est necessaire de bien maitriser le principe des pointeurs car ils
servent dans la gestion des chaines de caracteres. La plupart des fonctions
de gestion des chaines de caracteres sont placees dans le fichier stream.h.Une
des plus importantes est probablement strcmp() qui compare 2 chaines de
caracteres et renvoit un valeur selon les differences On l'utilise de cette
maniere:
comp=strcmp(*chaine1,*chaine2);
comp sera nul si les 2 chaines sont egales,positif si la chaine1 est
superieur chaine2,negatif si la chaine1 est inferieure a la chaine2.La
comparaison s'ffectue caractere par caractere.Pour comparer "albert" et
"alfred", la fonction strcmp compare d'abord la premiere lettre de chaque
mot puis la seconde ... Ici,la chaine "albert" est inferieure a la chaine
"alfred" car "b" est inferieur a "f".Pour 2 chaines de longueurs differentes,par
exemple "mais" et "maison", la chaine "mais" est alors inferieure.Enfin,pour
une majuscule et une minuscule, c'est toujours la majuscule qui est superieure
a la minuscule .Quant aux chiffres,ils sont inferieures au majuscules mais
superieurs aux minuscules. Nous avons vu que un programme se composait
principalement d'appel a des fonctions deja definies: main() pour la fonction
principale ou alors strcmp(), printf(),scanf() ...On ne trouve pas forcement
de fonction deja definie pour operation que nous souhaitons effectuer:il
faut alors la realiser a partir de ses propres ensembles d'instructions.
Cette fonction peut alors renvoyer une valeur, admettre des parametres.
Une fonction se definit alors de cette maniere:
<type de valeur renvoyee> fonction(<parametres>)Ainsi si votre fonction doit retourner comme valeur un entier et ne recevoir aucun parametre, vous la definirez comme suit:
{
ensemble des instructions...
}
int fonction(void)Voici une bonne introduction au C... Je vous laisse potasser ca pour le moment.
{
int i;
instructions
return(i);
}
Le site que nous prendrons comme exemple sera hacker.com.
La première chose à faire, avant de ce mettre à cette
tâche ardue, est de vérifier que l'on a le "matériel
nécessaire", ce qui revient à dire:
-Telnet
- DOS et les tracert, ping, etc...
- Un crackpass (puissant)
- WS_PINGPR (de préférence)
- Une connaissance sous Linux ou Unix (ou même aucune)
- L'url du site à pirater (ça parait bénin, mais...
)
Pour commencer il faut obtenir le maximum d'infos sur
le site et les répertorier sur un carnet ou sur une feuille: elles
sont nombreuses.
Avoir l'url du site, son adresse IP et TCP: pour avoir ces infos aller
sous dos, taper (les ">" ne devant pas être écrit):
> tracert www.hacker.com
ENTREE
- Vous n'avez pas l'adresse TCP du site, vu qu'il n'en a pas. L'adresse
IP est: 209.195.130.87.
- Les infos sur les utilisateurs (grâce à WS_PINGPR):
Administrative Contact, Technical Contact, Zone Contact:Beckett, Jodi
(JB11383) jodi@NAUTICOM.NET
412-449-4600 (FAX) 412-449-4659
Billing Contact:Beckett, Jodi (JB11383) jodi@NAUTICOM.NET
412-449-4600 (FAX) 412-449-4659
- Ensuite essayez (ce n'est pas le cas pour ce site), essayez sur le
navigateur: ftp://www.nomdusite.com ou ftp://ftp.nomdusite.com. ensuite
vous cherchez la rubrique password, si l'accès aux ftp par ce chemin
n'est pas protégé (rare). cette rubrique password vous donnera
les logins (pas les pass) pour les utilisateurs, sinon par défaut
sortez votre crackpass... mais dans quelles conditions doit dont mettre
un nom d'utilisateur et un password, et où? On verra ça un
peu après.
- Puis accéder aux autres adresses IP qui sont les plus proches
du site. En faisant un tracert, l'adresse juste au dessus du site, vous
donne l'adresse du routeur du site (en général, sinon scannez
le réseau). Vous prenez son adresse IP ou l'adresse locale (Local
Host), vous prenez Telnet et vous rentrez l'adresse IP, port SNMP. Vous
voilà connecté au router par telnet. On vous demandera le
nom d'utilisateur et son password.
Voilà! ca c'est pour le démarrage! Ensuite... Vous allez
sous DOS et vous faîtes (les ">" ne devant pas être écrit):
> ftp
> open
> www.hacker.com
On vous demandera un nom d'user. Vous pouvez rentrer en anonymous
si le serveur le permet, et télécharger les pages, mais ce
ne sera pas du hack, je vous dis comment faire:
vous rentrez comme nom d'user: anonymous, ensuite vous tapez n'importe
quel password et vous tapez: ls
Donc vous regardez les infos obtenus avec WS_PINGPR et vous avez plusieurs
noms qui vous sont donnés: Beckett et Jodi.
Vous essayez les 2 noms d'utilisateurs et vous remarquez que "Jodi"
répond! Très bien! vous venez de faire la moitié:
vous avez trouvez un nom d'user, il vous faut maintenant le password...
Inutile de vous casser la tête! Si la personne est prudente vous
n'avez aucune chance de le trouver. Sortez votre meilleur Crackpass et
essayez. Par défaut rabattez-vous sur le(s) routeurs par telnet.
Bonne chance!
Voilà! Cet E-mag est bel et bien fini! Je pense en sortir
encore d'autres, mais il faudra attendre un peu! Pour tout commentaires
vous pouvez écrire à : clad_strife@hotmail.com