SCE 3.0 Hacking Edition

securityconf

Yopla all,

Tout d’abord, j’espère que tout le monde se porte bien avec ce super beau temps… De mon côté beaucoup de taff ce qui fait que je n’ai pas trop le temps de maintenir le blog mais qui sait, certains articles pourraient voir le jour d’ici… la fin de l’année :p

On m’a contacté récemment concernant une petite soirée sur la sécurité informatique qui aura lieu dans les locaux de l’ESIA (Ivry). Je trouve que ce genre d’initiative est vraiment intéressante donc voici un petit descriptif de la soirée ainsi que toutes les informations utiles.

SCE 3.0 Hacking Edition propose une grande soirée sur le thème de la sécurité informatique. Elle se déroulera dans la nuit du 14 au 15 juin, dans les locaux de l’ESIEA situés à Ivry-Sur-Seine.
4 conférences seront données entre 20h et 00h, toutes liées à la sécurité informatique dont voici le détail :

  • Arnauld Mascret : les risques de sécurité des entreprises liés à l’usage des réseaux sociaux ;
  • Loic Pillant : le Steria Hacking Challenge, la première compétition de Hacking éthique inter-écoles et les métiers de la Sécurité des SI ;
  • Robert Erra : attaques par complexité et bombe de décompression ;
  • Paul Berettoni.

Entre les conférences, vous pourrez discuter avec les partenaires de SCE ainsi que les conférenciers, autour d’un buffet.

Par la suite, un CTF aura lieu de 00h30 à 8h00. Vous serez confrontés à des épreuves de cryptologie, de stéganographie, de social engineering, etc.

Des récompenses seront donnés pour les 3 meilleures équipes : iPad Mini, disques durs externes, casques audio, etc.

Attention, les places sont limitées !
Conférences : 90 places.
Challenge : 30 places (6 équipes de 5 étudiants maximum).

Informations et inscriptions: https://sce-hackingedition.net/

Pour ma part, je ne pense pas que j’aurai le temps d’y aller mais n’hésitez pas à nous faire un petit retour 😉

Posté dans News IT par Nico. 4 Commentaires

Conférence GreHack 2012

Un petit coup de pub pour une conférence de sécurité à venir 🙂 N’hésitez pas à vous déplacer, ça risque d’être bien sympa ^_^

Texte de Fabien D.

GreHack 2012 est né autour d’une bière et d’un 51 (pas d’un ricard! :)) « Et si on organisait une conf + un CTF? »
Du fait qu’a l’Ensimag nous avions déjà réuni plusieurs hackers de Grenoble, autour du club SecurIMAG cela semblait possible…

L’un des points sur lequel nous avons beaucoup insisté était d’initier les étudiants à l’écriture des papiers de recherche.
De ce point de vue là, c’est un succès partiel, puisque seul 1 papier d’étudiant a été accepté (Paul Amar – Home Internet Routers for Fun and Profit).

Un autre point qui nous semblait important est l’aide des étudiants fauchés mais méritants. Ainsi, de manière un peu différente d’HES nous avons lancé un appel à candidature d’étudiants brillants en sécurité : http://grehack.org/en/index.php/GreHack-2012-attendees-grants_for_students/

S’ils ont fait des outils, trouvé des CVE, ou réalisé des publications, au moins une bourse comprenant une aide financière au transport au logement et une entrée gratuite à la conférence + au CTF ainsi qu’un repas avec les speakers sera offerte pour le(la) meilleur(e). La sélection sera effectuée par le comité de programme composé de chercheurs, professionnels et diplômés de l’Ensimag.

Également nous avons fait 2 tarifs: pour ceux qui souhaitent participer à la conférence + au CTF et pour ceux qui ne souhaitent participer qu’au CTF.

Quant aux sponsors, pour l’anecdote, le premier que nous avons eu nous a dit « bon les gars, je vous file un peu de thune, mais c’est uniquement pour les pizza du CTF !  » …

Pour les présentations, les slides seront en anglais, et si le speaker parle français, le discours le sera aussi, sinon également en anglais.

Concernant le CTF, des cadeaux stylés:

  • un bouquin dédicacé par Charlie Miller et les autres auteurs de iOS Hacking ;
  • bouquin sur le Fuzzing dédicacé par Ari Takanen himself, qui sera présent lors de la conférence.

La suite sur http://grehack.org et le détail du programme ci-dessous:

====================================================================

>>   GREHACK 2012 – Ethical Hacking Conference
>>   1st Edition! Come Hack in the Mountains!

>> http://grehack.org  ; twitter: @grehack

>> Grenoble, France, October 19th-20th, 2012

====================================================================

> Call for Participation,
> Call For Student Grants Application,
> Call For Music Bands/Artists/DJ

====================================================================
INVITED SPEAKERS

* Eric Freyssinet (Gendarmerie, LIP6) – Botnets: from observation to investigation ;
* Kostya Kortchinsky (now Microsoft ; former Immunity fellow) – 10 years later, which vulnerabilities still matter? ;
* Philippe Elbaz-­Vincent (UJF) – attacks on randomness of hardware Prime Random Number Generator (PRNG) ;
* Regis Leveugle (TIMA, Grenoble INP) – Attacks on secure hardware:basics and examples ;
* Dave Penkler, Boris Balacheff (HP Security Labs) – Cloud, security and the mobile enterprise: An end-to-end manageability challenge.

http://grehack.org/en/index.php/GreHack-2012-Speakers_Talks/

====================================================================
ACCEPTED PAPERS

* Rikke Kuipers and Ari Takanen (Codenomicon) – Fuzzing embedded devices
* Mathieu Renard (Sogeti-ESEC) – Practical iOS Apps hacking
* David Worth and Justin Collins (HighGroove) – Leveraging Convention over Configuration for Static Analysis in Dynamic Languages
* Olli-Pekka Niemi and Antti Levomäki (Stonesoft) –  Bypassing Intrusion Prevention Systems
* Phil (self) Cryptage audiovisuel ou #FAIL systématique ?
* Bswapeax (HP Security) – Managed Code with Licensing does not mean all the  time: Software Protection
* Paul Amar (Ensimag student) – Routeurs for Fun & Profit
* Rahul Sasi (iSight) – DMTF Fuzzing

====================================================================
RUMPS

4/5 minutes rumps will happen at the end of the afternoon
http://grehack.org/en/index.php/GreHack-2012-rump_sessions/

====================================================================
REGISTRATION – ENTRY TICKETS

Limited number of seats available. Register for the conference and the CTF at:
http://grehack.org/en/shop/article/entrance_tickets/grehack_2012/

====================================================================
CALL FOR STUDENT GRANTS

A limited number of student grants will be assigned to outstanding students.
This includes limited help for transportation, 1 hostel night, …
Apply till WEDNESDAY SEPTEMBER 26th 2012 11pm59 GMT+1 at
http://grehack.org/en/index.php/GreHack-2012-attendees-grants_for_students/

====================================================================
CALL FOR DJ/ARTISTS/BANDS FOR THE CTF

http://grehack.org/en/index.php/GreHack-2012-Capture_The_Flag_rules-english/#Ambient

====================================================================
CAPTURE THE FLAG

* Challenges by members of SecurIMAG (the Ensimag hacking team)
— topics: Fuzzing, Web, Crypto, Stegano, Reversing, In Memory Exploitation, Forensics..
* Awards:
— dedicated « iOS Hacker’s Handbook », dedicated by Charlie Miller and all authors.
— dedicated « Fuzzing for Software Security Testing and Quality Assurance » dedicated by Ari Takanen.
— Raspberry Pi.
* Several pizzas and drinks tickets included 🙂

http://grehack.org/en/index.php/GreHack-2012-Capture_The_Flag_rules-english/


Come on, let’s p0wn in the mountains!

J’ajouterai pour terminer : « Come on, let’s p0wn ponies! »

Posté dans Evènements par Nicolas. Aucun Commentaire

Forensique analyse mémoire : Volatility

 

Chose promise, chose due ! Voici un petit tour d’horizon de l’outil Volatility.

Pour ceux qui ne le connaisse pas encore, Volatility est un Framework contenant de multiples outils visant à vous aider dans la manipulation de données contenues dans un dump mémoire (RAM). A ce jour, l’outil permet d’extraire les données suivantes :
– Processus en cours d’exécution ;
– Connexion ouvertes ;
– DLLs chargées par les processus ;
– Fichier ouverts par les processus ;
– exécutables ;
– données de la base de registre ;
– etc.

L’outil permet d’extraire les données sur les systèmes d’exploitation Windows. Cependant, une version permettant d’analyser des dump Linux  a été développée par Emilien Girault. L’outil est disponible à l’adresse suivante : http://code.google.com/p/volatilitux/.

Lors du précédent article lié au Wargame de la NDH 2012, une épreuve contenant un dump mémoire Windows a été analysé. Nous allons utiliser ce dernier afin d’aborder les commandes de base de l’outil Volatility.

Here we go !

Commençons par identifier le système d’exploitation d’où provient le dump :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw imageinfo
Volatile Systems Volatility Framework 2.0
          Suggested Profile(s) : WinXPSP3x86, WinXPSP2x86 (Instantiated with WinXPSP2x86)
                     AS Layer1 : JKIA32PagedMemory (Kernel AS)
                     AS Layer2 : FileAddressSpace (/root/Desktop/memdump.raw)
                      PAE type : No PAE
                           DTB : 0x39000
                          KDBG : 0x8054cde0L
                          KPCR : 0xffdff000L
             KUSER_SHARED_DATA : 0xffdf0000L
           Image date and time : 2012-05-09 11:06:48
     Image local date and time : 2012-05-09 11:06:48
          Number of Processors : 1
                    Image Type : Service Pack 3

L’image semble provenir d’un Windows XP SP3 et a été créée le 09 Mai 2012 à 11 heures 06 et 48 secondes.

Maintenant listons les processus y figurant :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 pslist
Volatile Systems Volatility Framework 2.0
 Offset(V)  Name                 PID    PPID   Thds   Hnds   Time
———- ——————– —— —— —— —— ——————-
0x812ed020 System                    4      0     55    231 1970-01-01 00:00:00       
0x811cc5a0 smss.exe                368      4      3     19 2012-05-09 20:06:10       
0xffbcada0 csrss.exe               584    368     10    368 2012-05-09 20:06:10       
0xffb03310 winlogon.exe            608    368     25    539 2012-05-09 20:06:10       
0xffb9d668 services.exe            652    608     21    270 2012-05-09 20:06:11       
0xffaf5488 lsass.exe               664    608     25    359 2012-05-09 20:06:11       
0xffb506e8 VBoxService.exe         820    652      8    106 2012-05-09 20:06:11       
0xffb94368 svchost.exe             864    652     19    195 2012-05-09 11:06:12       
0xffb02da0 svchost.exe             952    652     14    225 2012-05-09 11:06:12       
0xffb175a0 svchost.exe            1044    652     65   1151 2012-05-09 11:06:12       
0xffb3b7a0 svchost.exe            1092    652      5     60 2012-05-09 11:06:12       
0xffaf17e0 svchost.exe            1124    652     11    170 2012-05-09 11:06:12       
0xffb7b608 explorer.exe           1508   1484     21    556 2012-05-09 11:06:13       
0x81121638 spoolsv.exe            1596    652     13    115 2012-05-09 11:06:13       
0xffb4c978 VBoxTray.exe           1708   1508      6     57 2012-05-09 11:06:13       
0xffbcf360 ctfmon.exe             1720   1508      1     93 2012-05-09 11:06:13       
0x81129a48 PassKeep.exe           1864   1508      2     39 2012-05-09 11:06:17       
0xffb22da0 PassKeep.exe           1872   1864      2    104 2012-05-09 11:06:17       
0x8120cc08 svchost.exe            1972    652      5    106 2012-05-09 11:06:21       
0xffb7a440 wscntfy.exe            1040   1044      1     39 2012-05-09 11:06:24       
0x8113f910 alg.exe                1228    652      7    104 2012-05-09 11:06:24       
0xffb43c08 DumpIt.exe              124   1508      1     25 2012-05-09 11:06:46

Yes, nous avons maintenant la liste des processus, le PID, PPID, nombre de threads, nombres d’handles, etc.

Pour dumper tous les binaires, on procédera ainsi :

root@bt:/pentest/forensics/volatility# mkdir yopla
root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw memdump –profile=WinXPSP3x86 –dump-dir yopla
Volatile Systems Volatility Framework 2.0
************************************************************************
Writing System [     4] to 4.dmp
************************************************************************
Writing smss.exe [   368] to 368.dmp
************************************************************************
Writing csrss.exe [   584] to 584.dmp
************************************************************************
Writing winlogon.exe [   608] to 608.dmp

L’article n’étant pas orienté vers une analyse détaillée des processus, je ne vais pas m’attaquer à l’analyse de ces différents dump. Vous pouvez cependant regardé dans le précédent post, l’analyse du binaire « PassKeep.exe« .

Analysons maintenant les DLLs chargées par le processus DumpIt.exe (PID : 124) :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 dlllist –pid=124
Volatile Systems Volatility Framework 2.0
************************************************************************
DumpIt.exe pid:    124
Command line : « C:\Documents and Settings\rootbsd\Desktop\DumpIt\DumpIt.exe »
Service Pack 3

Base         Size         Path
0x00400000   0x035000     C:\Documents and Settings\rootbsd\Desktop\DumpIt\DumpIt.exe
0x7c900000   0x0b2000     C:\WINXP\system32\ntdll.dll
0x7c800000   0x0f6000     C:\WINXP\system32\kernel32.dll
0x77dd0000   0x09b000     C:\WINXP\system32\ADVAPI32.dll
0x77e70000   0x093000     C:\WINXP\system32\RPCRT4.dll
0x77fe0000   0x011000     C:\WINXP\system32\Secur32.dll
0x77f60000   0x076000     C:\WINXP\system32\SHLWAPI.dll
0x77f10000   0x049000     C:\WINXP\system32\GDI32.dll
0x7e410000   0x091000     C:\WINXP\system32\USER32.dll
0x77c10000   0x058000     C:\WINXP\system32\msvcrt.dll
0x76390000   0x01d000     C:\WINXP\system32\IMM32.DLL

Comme vous pouvez vous en douter, pour analyser les DLLs chargées par un processus X, il suffit de remplacer le PID par celui de votre choix. Par ailleurs, si vous avez remarqué, la ligne command line nous donne une information concernant l’emplacement de l’outil sur le système. Elle permet également de nous donner une information sur l’un des noms d’utilisateur du système : rootbsd.

Pour extraire les informations d’une des DLL chargée, on procédera de la manière suivante :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 dlldump -r ntdll -D pony
Volatile Systems Volatility Framework 2.0
Dumping ntdll.dll, Process: smss.exe, Base: 7c900000 output: module.368.10d45a0.7c900000.dll
Dumping ntdll.dll, Process: csrss.exe, Base: 7c900000 output: module.584.3f69da0.7c900000.dll
Dumping ntdll.dll, Process: winlogon.exe, Base: 7c900000 output: module.608.45fa310.7c900000.dll
Dumping ntdll.dll, Process: services.exe, Base: 7c900000 output: module.652.40d8668.7c900000.dll
Dumping ntdll.dll, Process: lsass.exe, Base: 7c900000 output: module.664.470a488.7c900000.dll
Dumping ntdll.dll, Process: VBoxService.exe, Base: 7c900000 output: module.820.43296e8.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.864.4123368.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.952.45fbda0.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.1044.45a65a0.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.1092.46807a0.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.1124.498e7e0.7c900000.dll
Dumping ntdll.dll, Process: explorer.exe, Base: 7c900000 output: module.1508.417c608.7c900000.dll
Dumping ntdll.dll, Process: spoolsv.exe, Base: 7c900000 output: module.1596.1029638.7c900000.dll
Dumping ntdll.dll, Process: VBoxTray.exe, Base: 7c900000 output: module.1708.436d978.7c900000.dll
Dumping ntdll.dll, Process: ctfmon.exe, Base: 7c900000 output: module.1720.3f24360.7c900000.dll
Dumping ntdll.dll, Process: PassKeep.exe, Base: 7c900000 output: module.1864.1031a48.7c900000.dll
Dumping ntdll.dll, Process: PassKeep.exe, Base: 7c900000 output: module.1872.455bda0.7c900000.dll
Dumping ntdll.dll, Process: svchost.exe, Base: 7c900000 output: module.1972.1114c08.7c900000.dll
Dumping ntdll.dll, Process: wscntfy.exe, Base: 7c900000 output: module.1040.417d440.7c900000.dll
Dumping ntdll.dll, Process: alg.exe, Base: 7c900000 output: module.1228.1047910.7c900000.dll
Dumping ntdll.dll, Process: DumpIt.exe, Base: 7c900000 output: module.124.4378c08.7c900000.dll

root@bt:/pentest/forensics/volatility# cd pony

root@bt:/pentest/forensics/volatility/pony# ls

module.1040.417d440.7c900000.dll  module.1872.455bda0.7c900000.dll
module.1044.45a65a0.7c900000.dll  module.1972.1114c08.7c900000.dll
module.1092.46807a0.7c900000.dll  module.368.10d45a0.7c900000.dll
module.1124.498e7e0.7c900000.dll  module.584.3f69da0.7c900000.dll
module.1228.1047910.7c900000.dll  module.608.45fa310.7c900000.dll
module.124.4378c08.7c900000.dll   module.652.40d8668.7c900000.dll
module.1508.417c608.7c900000.dll  module.664.470a488.7c900000.dll
module.1596.1029638.7c900000.dll  module.820.43296e8.7c900000.dll
module.1708.436d978.7c900000.dll  module.864.4123368.7c900000.dll
module.1720.3f24360.7c900000.dll  module.952.45fbda0.7c900000.dll
module.1864.1031a48.7c900000.dll

Passons à la partie réseau en listant les connexions actives du système :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw connections
Volatile Systems Volatility Framework 2.0
 Offset(V)  Local Address             Remote Address            Pid   
———- ————————- ————————- ——

Pas de chance, aucune information n’a pu être retrouvée. Tanpis, nous allons nous rabattre sur le listing des ports en écoute sur le système :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 sockets
Volatile Systems Volatility Framework 2.0
 Offset(V)  PID    Port   Proto               Address        Create Time               
———- —— —— ——————- ————– ————————–
0xffb44af0   1044    123     17 UDP            10.0.2.15          2012-05-09 11:06:21       
0x81134960    664    500     17 UDP            0.0.0.0            2012-05-09 11:06:21       
0xff9942e0   1228   1028      6 TCP            127.0.0.1          2012-05-09 11:06:24       
0xffb4d390      4    445      6 TCP            0.0.0.0            2012-05-09 20:06:10       
0xffbdc9d0    952    135      6 TCP            0.0.0.0            2012-05-09 11:06:12       
0xff9cee98   1124   1900     17 UDP            10.0.2.15          2012-05-09 11:06:24       
0x81132c08      4    139      6 TCP            10.0.2.15          2012-05-09 11:06:15       
0x81132c08    664      0    255 Reserved       0.0.0.0            2012-05-09 11:06:21       
0xffb0b5f8   1044    123     17 UDP            127.0.0.1          2012-05-09 11:06:21       
0xffb80a90      4    137     17 UDP            10.0.2.15          2012-05-09 11:06:15       
0xff9cfd98   1124   1900     17 UDP            127.0.0.1          2012-05-09 11:06:24       
0xffaef008    664   4500     17 UDP            0.0.0.0            2012-05-09 11:06:21       
0xffb4d008      4    445     17 UDP            0.0.0.0            2012-05-09 20:06:10       
0xffb4d008      4    138     17 UDP            10.0.2.15          2012-05-09 11:06:15

Ici, on peut remarquer que les ports 123, 137, 138, 139, 445, 500, etc. sont ouverts.

Passons maintenant à l’analyse de la base de registre en localisant les adresses virtuelles des ruches :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 hivelist
Volatile Systems Volatility Framework 2.0
Virtual     Physical    Name
0xe1ad3348  0x0a7e2348  \Device\HarddiskVolume1\Documents and Settings\rootbsd\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe1a7db60  0x0a7c8b60  \Device\HarddiskVolume1\Documents and Settings\rootbsd\NTUSER.DAT
0xe17ef738  0x09205738  \Device\HarddiskVolume1\Documents and Settings\LocalService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe17e7a28  0x09233a28  \Device\HarddiskVolume1\Documents and Settings\LocalService\NTUSER.DAT
0xe17c5a60  0x08e04a60  \Device\HarddiskVolume1\Documents and Settings\NetworkService\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat
0xe17beb60  0x08d76b60  \Device\HarddiskVolume1\Documents and Settings\NetworkService\NTUSER.DAT
0xe14e4b60  0x02b36b60  \Device\HarddiskVolume1\WINXP\system32\config\software
0xe145d008  0x070f1008  \Device\HarddiskVolume1\WINXP\system32\config\default
0xe1455980  0x06f8f980  \Device\HarddiskVolume1\WINXP\system32\config\SECURITY
0xe145d820  0x070f1820  \Device\HarddiskVolume1\WINXP\system32\config\SAM
0xe135db60  0x01abdb60  [no name]
0xe1019600  0x017b1600  \Device\HarddiskVolume1\WINXP\system32\config\system
0xe1006030  0x016f4030  [no name]
0x8068fdd8  0x0068fdd8  [no name]

On va maintenant lister les sous-clés de la ruche « \Device\HarddiskVolume1\WINXP\system32\config\SAM » :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 hivedump -o 0xe145d820
Volatile Systems Volatility Framework 2.0
Last Written         Key
2012-05-09 11:41:30  \SAM
2012-05-09 11:41:30  \SAM\SAM
2012-05-09 11:41:30  \SAM\SAM\Domains
2012-05-09 18:50:39  \SAM\SAM\Domains\Account
2012-05-09 18:47:12  \SAM\SAM\Domains\Account\Aliases
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Aliases\000003E9
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Aliases\Members
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298\000003EA
2012-05-09 18:47:12  \SAM\SAM\Domains\Account\Aliases\Names
2012-05-09 18:47:12  \SAM\SAM\Domains\Account\Aliases\Names\HelpServicesGroup
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Groups
2012-05-09 18:50:39  \SAM\SAM\Domains\Account\Groups\00000201
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Groups\Names
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Groups\Names\None
2012-05-09 18:50:39  \SAM\SAM\Domains\Account\Users
2012-05-09 11:45:09  \SAM\SAM\Domains\Account\Users\000001F4
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Users\000001F5
2012-05-09 18:46:41  \SAM\SAM\Domains\Account\Users\000003E8
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Users\000003EA
2012-05-09 11:06:13  \SAM\SAM\Domains\Account\Users\000003EB
2012-05-09 18:50:39  \SAM\SAM\Domains\Account\Users\Names
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Users\Names\Administrator
2012-05-09 11:41:30  \SAM\SAM\Domains\Account\Users\Names\Guest
2012-05-09 18:46:41  \SAM\SAM\Domains\Account\Users\Names\HelpAssistant
2012-05-09 18:50:39  \SAM\SAM\Domains\Account\Users\Names\rootbsd
2012-05-09 18:47:21  \SAM\SAM\Domains\Account\Users\Names\SUPPORT_388945a0
2012-05-09 18:50:39  \SAM\SAM\Domains\Builtin
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases
2012-05-09 18:50:39  \SAM\SAM\Domains\Builtin\Aliases\00000220
2012-05-09 11:42:17  \SAM\SAM\Domains\Builtin\Aliases\00000221
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\00000222
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\00000223
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\00000227
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\00000228
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\0000022B
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\0000022C
2012-05-09 11:42:17  \SAM\SAM\Domains\Builtin\Aliases\Members
2012-05-09 11:42:17  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5
2012-05-09 11:42:17  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5\00000004
2012-05-09 11:42:17  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5\0000000B
2012-05-09 18:50:39  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298\000001F4
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298\000001F5
2012-05-09 18:50:39  \SAM\SAM\Domains\Builtin\Aliases\Members\S-1-5-21-1078081533-1383384898-1060284298\000003EB
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Administrators
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Backup Operators
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Guests
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Network Configuration Operators
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Power Users
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Remote Desktop Users
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Replicator
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Aliases\Names\Users
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Groups
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Groups\Names
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Users
2012-05-09 11:41:30  \SAM\SAM\Domains\Builtin\Users\Names
2012-05-09 11:41:30  \SAM\SAM\RXACT

On peut également aller chercher des clés/sous-clés précises :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey -K « Software\Microsoft\Windows\CurrentVersion\Internet Settings »
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: \Device\HarddiskVolume1\Documents and Settings\NetworkService\NTUSER.DAT
Key name: Internet Settings (S)
Last updated: 2012-05-09 18:49:25

Subkeys:
  (S) 5.0
  (S) Lockdown_Zones
  (S) ZoneMap
  (S) Zones

Values:
REG_SZ        User Agent      : (S) Mozilla/4.0 (compatible; MSIE 8.0; Win32)
REG_SZ        IE5_UA_Backup_Flag : (S) 5.0
REG_BINARY    ZonesSecurityUpgrade : (S)
0000   10 BC 89 23 14 2E CD 01                            …#….

REG_DWORD     EnableNegotiate : (S) 1
—————————-
Registry: \Device\HarddiskVolume1\Documents and Settings\rootbsd\NTUSER.DAT
Key name: Internet Settings (S)
Last updated: 2012-05-09 18:51:23

Subkeys:
  (S) 5.0
  (S) CACHE
  (S) Connections
  (S) Lockdown_Zones
  (S) P3P
  (S) ZoneMap
  (S) Zones

Values:
REG_SZ        User Agent      : (S) Mozilla/4.0 (compatible; MSIE 8.0; Win32)
REG_SZ        IE5_UA_Backup_Flag : (S) 5.0
REG_BINARY    ZonesSecurityUpgrade : (S)
0000   10 BC 89 23 14 2E CD 01                            …#….

REG_DWORD     EnableNegotiate : (S) 1
REG_SZ        EmailName       : (S) IEUser@
REG_SZ        AutoConfigProxy : (S) wininet.dll
REG_SZ        MimeExclusionListForCache : (S) multipart/mixed multipart/x-mixed-replace multipart/x-byteranges
REG_BINARY    WarnOnPost      : (S)
0000   01 00 00 00                                        ….

REG_BINARY    UseSchannelDirectly : (S)
0000   01 00 00 00                                        ….

REG_DWORD     EnableHttp1_1   : (S) 1
REG_DWORD     UrlEncoding     : (S) 0
REG_DWORD     SecureProtocols : (S) 160
REG_DWORD     PrivDiscUiShown : (S) 1
REG_DWORD     PrivacyAdvanced : (S) 0
REG_DWORD     DisableCachingOfSSLPages : (S) 0
REG_DWORD     WarnonZoneCrossing : (S) 0
REG_DWORD     MigrateProxy    : (S) 1
REG_DWORD     ProxyEnable     : (S) 0
—————————-
Registry: \Device\HarddiskVolume1\WINXP\system32\config\default

A ce stade, on essaye bien souvent d’aller récupérer les crédences stockés en cache. Pour cela il est nécessaire de connaitre l’adresse virtuelle de la ruche SYSTEM (-y) et de la ruche SAM (-s) (parfait, on a déjà récupéré l’information) :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw hashdump -y 0xe1019600 -s 0xe145d820
Volatile Systems Volatility Framework 2.0
ERROR   : psyco.support       : Unable to read hashes from registry

Pas de chance de ce côté, aucune information n’est disponible. On va essayer via un dump du secret LSA. Pour cela, il faut remplacer l’adresse de la ruche SAM par celle de SECURITY :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw lsadump -y 0xe1019600 -s 0xe1455980
Volatile Systems Volatility Framework 2.0
ERROR   : psyco.support       : Unable to read LSA secrets from registry

Encore loupé, c’est pas notre jour ! ^_^

Aller, on ne se démotive pas et on va aller regarder les clés présentes dans la ruche « \Device\HarddiskVolume1\WINXP\system32\config\software » (pour rappel, l’adresse virtuelle est 0xe14e4b60) :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe14e4b60
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: $$$PROTO.HIV (S)
Last updated: 2012-05-09 19:55:49

Subkeys:
  (S) C07ft5Y
  (S) Classes
  (S) Clients
  (S) Gemplus
  (S) Licenses
  (S) Macromedia
  (S) Microsoft
  (S) ODBC
  (S) Oracle
  (S) Policies
  (S) Program Groups
  (S) Schlumberger
  (S) Secure
  (S) Software by Design
  (S) Windows 3.1 Migration Status

Si l’on souhaite aller voir ce qui se trame dans la sous-clé « GemPlus« , il suffit de procéder ainsi :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe14e4b60 –key « GemPlus »
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: Gemplus (S)
Last updated: 2012-05-09 18:47:28

Subkeys:
  (S) Cryptography

Et now, on veut aller regarder à l’intérieur de « Cryptography » :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe14e4b60 –key « GemPlus\Cryptography »
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: Cryptography (S)
Last updated: 2012-05-09 18:47:28

Subkeys:
  (S) SmartCards

On continue ainsi jusqu’à avoir :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe14e4b60 –key « GemPlus\Cryptography\SmartCards\GemSAFE »
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: GemSAFE (S)
Last updated: 2012-05-09 18:47:28

Subkeys:

Values:
REG_BINARY    Card List       : (S)
0000   47 65 6D 53 41 46 45 20 53 6D 61 72 74 20 43 61    GemSAFE Smart Ca
0010   72 64 20 28 34 4B 29 00 47 65 6D 53 41 46 45 20    rd (4K).GemSAFE
0020   53 6D 61 72 74 20 43 61 72 64 20 28 38 4B 29 00    Smart Card (8K).
0030   00

Bon, rien de bien pertinant mais ca nous fait travailler les commandes :p.

Allons voir ce qu’il y a dans la ruche SYSTEM :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe1019600
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: $$$PROTO.HIV (S)
Last updated: 2012-05-09 20:06:06

Subkeys:
  (S) ControlSet001
  (S) ControlSet002
  (S) LastKnownGoodRecovery
  (S) MountedDevices
  (S) Select
  (S) Setup
  (S) WPA
  (V) CurrentControlSet

On va regarder à l’intérieur de « ControlSet001\Services » :

root@bt:/pentest/forensics/volatility# python vol.py -f /root/Desktop/memdump.raw –profile=WinXPSP3x86 printkey –hive-offset 0xe1019600 –key « ControlSet001\Services »
Volatile Systems Volatility Framework 2.0
Legend: (S) = Stable   (V) = Volatile

—————————-
Registry: User Specified
Key name: Services (S)
Last updated: 2012-05-09 11:06:48

Subkeys:
  (S) Abiosdsk
  (S) abp480n5
  (S) ac97intc
  (S) ACPI
  (S) ACPIEC
  (S) adpu160m
  (S) aec
  (S) AFD
  (S) Aha154x
  (S) aic78u2
  (S) aic78xx
  (S) Alerter
  …
  …

On pourrait continuer à chercher un peu partout mais je pense que vous avez compris le principe.

Voilà donc que se termine le tour d’horizon de la première prise en main de Volatility. On a pas récupéré grand chose au final 🙂 mais l’épreuve était principalement basé sur le binaire KeePass et je ne pense pas qu’il y a des choses intéressantes à en tirer (peut-être que je me trompe, n’hésitez pas à me dire si vous avez trouvé des choses sympa ^_^).

Dans un dump plus complet, de multiples informations sont souvent disponibles. On peut par exemple citer des mots de passe (stockés dans la base de registre), des processus intéressant à analyser (firefox.exe), etc.

N’hésitez pas à commenter l’article si vous souhaitez que j’ajoute certaines commandes qui vous paraissent utiles et qui ont été omises.

Pour finir, si vous souhaitez vous amuser, le Wargame est disponible à l’adresse suivante : http://wargame2k12.nuitduhack.com/

Bonne analyse à tous.

PS : je lis actuellement le livre « Practical Malware Analysis » et je le trouve vraiment très sympa. Je le recommande à tous.

Posté dans Tutos de Nico par Nico. 5 Commentaires

Write-ups Wargame NDH 2k12

Après la fête des 10 ans de la Nuit Du Hack chez Disney, ce week-end s’est déroulé en ligne le CTF public de la Nuit du Hack 2012.

Moins d’une semaine après le petit loupé de la mise en ligne lors de la Nuit du Hack 2012, l’équipe HZV/Sysdream a donc encore bossé dur pour mettre en place ce challenge public.
Le chan IRC était au rendez-vous, réactif, et donc tout était là pour faire de ce CTF une réussite.

Les épreuves étaient très variées et pas moins de 102 personnes (ou équipes sous un seul nom) ont pu scorer. Voici les 3 premiers de ce CTF :

 

Yeah baby Zenk 3ème, ça mérite une petite danse du poney ! (bon en même temps vos des LeetMore était apparemment seul à faire le CTF…) 🙂

 
« Finally, congratulations to w3pwnz for solving 23 challenges, earning 13710 points and winning the Wargame! They also win a free one-year license for Canvas, sponsored by IMMUNITY. « 

Une interface de scoring classique et efficace et 28 challenges à résoudre en Crypto, CrackMe, Forensic, Stegano et WebApp.

Voici la résolution de quelques épreuves plutôt classiques.

[Write-Up] Nuit Du Hack 2K12 – « Password manager 1 »
Catégorie :
Forensic
Score : 500
Description : « Please recover the password from that memory dump »

Nous avions à télécharger l’archive suivante :
http://54.247.160.116/forensics/keep1.tar

Cette dernière contenait le seul fichier ‘memdump.raw‘ (dump physique de la RAM).

On utilise tout d’abord l’outil volatility (Windows ou Linux) pour identifier d’où vient ce dump de RAM.

C:\NDH2K12>volatility.exe imageinfo -f memdump.raw
Volatile Systems Volatility Framework 2.0
Determining profile based on KDBG search…

Suggested Profile(s) : WinXPSP3x86, WinXPSP2x86 (Instantiated with WinXPSP2x86)
AS Layer1 : JKIA32PagedMemory (Kernel AS)
AS Layer2 : FileAddressSpace (memdump.raw)
PAE type : No PAE
DTB : 0x39000
KDBG : 0x8054cde0L
KPCR : 0xffdff000L
KUSER_SHARED_DATA : 0xffdf0000L
Image date and time : 2012-05-09 11:06:48
Image local date and time : 2012-05-09 11:06:48
Number of Processors : 1
Image Type : Service Pack 3

Les process tournant en RAM vont nous éclairer pour la suite de nos recherches Forensic :

C:\NDH2K12>volatility pslist –profile=WinXPSP3x86 -f memdump.raw
Volatile Systems Volatility Framework 2.0 Offset(V)
Name                 PID    PPID   Thds   Hnds   Time
———- ——————– —— —— —— —— ——————-
0x812ed020 System                    4      0     55    231 1970-01-01 00:00:00
0x811cc5a0 smss.exe                368      4      3     19 2012-05-09 20:06:10
[…]
0x81129a48 PassKeep.exe           1864   1508      2     39 2012-05-09 11:06:17
0xffb22da0 PassKeep.exe           1872   1864      2    104 2012-05-09 11:06:17
0x8120cc08 svchost.exe            1972    652      5    106 2012-05-09 11:06:21
0xffb7a440 wscntfy.exe            1040   1044      1     39 2012-05-09 11:06:24
0x8113f910 alg.exe                1228    652      7    104 2012-05-09 11:06:24
0xffb43c08 DumpIt.exe              124   1508      1     25 2012-05-09 11:06:46

On va alors s’intéresser au PID 1872 et dumper le contenu en mémoire de PassKeep.exe

D:\NDH2K12>volatility –profile=WinXPSP3x86 -f memdump.raw -p 1872 memdump -D
Volatile Systems Volatility Framework 2.0
************************************************************************
Writing PassKeep.exe [  1872] to 1872.dmp

Une recherche de strings plus tard nous donnera la clef !

C:\NDH2K12>strings 1872.dmp > 1872.dmp.txt
[…]
admin
admin
J5XfFsmdrBkRE
http://flag.ndh2012.com
Good game
c:\program files\software by design\passkeep
[…]
Il ne restera plus qu’à hacher en MD5 pour scorer :
Texte : J5XfFsmdrBkRE
Résultat : abc7d6294e04e6d6f5c4a9e1aa62370f

 

[Write-Up] Nuit Du Hack 2K12 – « Password manager 2 »
Catégorie :
Forensic
Score : 1500
Description : « Please recover the password from that KeePass memory dump. »

Nous avions à télécharger l’archive suivante :
http://54.247.160.116/forensics/keep2.tar

Cette dernière contenait là encore un seul fichier : memdump.raw (dump physique de la RAM).

Sur le même modèle que l’épreuve « Password manager 1 » on arrive à isoler le PID de KeePassX.exe.

C:\NDH2K12>volatility pslist –profile=WinXPSP3x86 -f memdump.raw
Volatile Systems Volatility Framework 2.0
Offset(V)  Name                 PID    PPID   Thds   Hnds   Time
———- ——————– —— —— —— —— ——————-
0x8111d020 System                    4      0     51    240 1970-01-01 00:00:00
[…]
0xffa25020 KeePassX.exe            768   1584      5    364 2012-04-23 09:16:53

Une fois dumpé et passé à la loupe des strings, il fallait cette fois ci se rendre compte que le fichier n’était pas aussi lisible que le précédent :
La sélection d’un encodage 16-bit little-endian va nous aider à y voir plus clair.

C:\NDH2K12>strings -e l 768.dmp > 768.dmp.l.txt

Cette fois ci, on retrouve plusieurs occurrences de « flag.ndh2012.com », mais une seule avec le password qu’il nous faut passer en MD5 pour scorer :

http://flag.ndh2012.com
textLabel7
Tahoma
7cU6QQKCqxCoHp6ii5WrBCUzVzUGzuS5
\\?\C:\Documents and Settings\ndh\Application Data\KeePassX\config.ini
fieldname
2390

Texte : 7cU6QQKCqxCoHp6ii5WrBCUzVzUGzuS5
Résultat : e413334776721843940e04037e99971a

 
[Write-Up] Nuit Du Hack 2K12 – « Gangbang »
Catégorie :
Stegano
Score : 500
Description : « Action »

Encore un quick-win pour ce grand classique des vidéos « geek » 😉

Nous avions à télécharger l’archive suivante :
http://54.247.160.116/stega/gangbang.tar

Celle-ci ne laissait pas beaucoup de doutes sur le contenu qu’il nous fallait donc analyser.
Dès les premières secondes quelques images semblent être intercalées dans la vidéo.
Plusieurs moyens d’extraction image par image sont possibles, nous retiendront la méthodologie suivante :

C:\NDH2K12>vlc gangbang.avi –video-filter=scene –vout=dummy  –scene-ratio=1    –scene-prefix=img- –scene-path= »C:\NDH2K12\ »

Quelques 834 images sont extraites dont celle-ci :


Le Flag y apparait clairement ainsi que quelques revendications légitimes 😉

[Write-Up] Nuit Du Hack 2K12 – « Apocalypse »
Catégorie :
Stegano
Score : 500
Description : « We were told the end was near. »

Fichier à charger :
http://54.247.160.116/stega/apocalypse.tar

Un fichier texte de 33,4Ko s’offre à nous « Prédictions pour décembre 2012. Les prédictions pour décembre 2012 regroupent plusieurs croyances eschatologiques annonçant de …« .
La source est aisément identifiable sur http://fr.wikipedia.org/wiki/Prédictions_pour_décembre_2012.

 
Mais ce qui attire le plus notre regard dans le fichier texte est la présence de nombreux « blancs » dans le texte.
La présence de stéganographie à base d’espaces en fin de lignes, un grand classique, est donc suspectée http://www.darkside.com.au/snow/

Ce qui se confirme en tentant la commande suivante :

C:\NDH2K12>snow.exe -C apocalype.txt
Encore un coup des Anonymous

Passage en MD5
Texte : Encore un coup des Anonymous
Résultat : 0faec26266432f508d05bf36285ea718

[Write-Up] Nuit Du Hack 2K12 – « Enigmes de S4nch0 #4 »
Catégorie : Crypto
Score : 500
Description : « Resistance is futile. »

Fichier à télécharger :
http://54.247.160.116/crypto/sancho4.tar

Le texte suivant est extrait du fichier « colors » contenu dans le .tar :

[Noir Violet Violet]—[Marron Marron Violet]—[Marron Marron Jaune]—
[Marron Marron Rouge]—[Marron Noir Jaune]—[Marron Rouge Marron]—
[Noir Orange Blanc]—[Marron Marron Vert]—[Noir Orange Rouge]—
[Marron Noir Gris]—[Noir Blanc Violet]—[Marron Marron Blanc]—
[Noir Orange Rouge]—[Marron Marron Vert]—[Marron Marron Violet]—
[Noir Blanc Blanc]—[Marron Noir Violet]—[Marron Marron Vert]—

Pour tous ceux qui ont touché un peu à des cours d’électronique, les indices étaient trop nombreux pour être ignorés !
Ce challenge portait bien sur les codes couleurs des résistances.
http://fr.wikipedia.org/wiki/Résistance_(composant)

Après avoir appliqué cette grille de lecture au texte nous nous retrouvions avec le tableau des valeurs suivantes :
0 Noir – 1 Marron – 2 Rouge – 3 Orange – 4 Jaune – 5 Vert – 6 Bleu – 7 Violet – 8 Gris – 9 Blanc

077 117 114
112 104 121
039 115 032
108 097 119
032 115 117
099 107 115

Ce qui nous fait rapidement penser à un codage de caractères bien connu : http://www.table-ascii.com/

« 077 117 114 112 104 121 039 115 032 108 097 119 032 115 117 099 107 115 »
correspond à :
« Murphy’s law sucks »

Texte : Murphy’s law sucks
Résultat : 49c364f8c9b67d4a1b5b23fcd26ee10e

[Write-Up] Nuit Du Hack 2K12 – « Damn PST »
Catégorie :
Forensic
Score : 1000
Description : « You just found a dead USB key downstairs which happen to store a mysterious pst file »

Fichier à télécharger :
http://54.247.160.116/forensics/pst.tar

Alors que sur le chan IRC de nombreuses voix semblaient évoquer un challenge difficile à résoudre sans version Windows ni Outllook.
Rien de tout cela ne nous a été nécessaire, juste la version Démo de FTK AccessData.

Et voici ce que donne la recherche sur le mot clef « flag » :

Texte : pigeonvoyageur
Résultat : 2b4b609cc86104f7222c940eb4034616

Voici que ce termine ces quelques solutions d’épreuves.

Prochain article d’ici 1 à deux semaines sur l’utilisation de l’outil volatility 😉

Thx to Zenk-Security & Solo (I will have my revenge) ^_^

Posté dans Tutos de Nico par Nicolas. 2 Commentaires

Bonne et heureuse année 2012

Bonjour à tous !

C’est avec grand plaisir que je vous souhaite à tous une très bonne année 2012 ! Plein de bonnes choses pour cette nouvelle année mais surtout une santé de fer ! C’est le plus important.

Pour ma part, j’ai décidé que j’allais me remettre à poster un peu plus souvent car ces temps-ci je n’ai pas trop pris le temps de le faire.

Également, je vais continuer à m’occuper un maximum de ma petite puce car ça grandit trop vite ! En plus, il faut vraiment profiter de cette année car elle risque d’être la dernière d’après plusieurs théories dont la plus fiable reste quand même l’invasion par des poneys !

Pour finir, je vais me remettre un peu au sport ! geek un jour, geek tu cours 🙂

A bientôt 🙂

Posté dans Evènements par Nico. 7 Commentaires

R.I.P CrashFR

Bonsoir à tous,

C’est avec grande tristesse que j’ai appris aujourd’hui la mort de Paolo Pinto alias CrashFR le 3 décembre 2011.
L’ayant côtoyé  IRL pour divers projets, j’ai pu converser avec lui sur pas mal de sujets autour de la sécurité informatique. Ses paroles ont toujours été une vrai mine d’or et son écoute attentive en a toujours fait quelqu’un d’attachant et surtout au cœur immense.

En tout cas, il a toujours été un modèle de réussite pour moi. Outre le fait qu’il est le co-fondateur de la société Sysdream, il a également été à la source de gros projets tels : HackerzVoice, The Hackademy Journal et The Hackademy School, etc.

 Par ailleurs, il est également le créateur des meetings « Nuit Du Hack » et « Hack In Paris » qui ont rassemblé des milliers de passionnés de sécurité informatique.

Je tiens à adresser mes plus sincères condoléances à sa famille et ses proches pour qui cette triste nouvelle doit être un réel coup dur.

En tout cas toute la communauté du Hacking FR te remercions pour tout ce que tu as fait pour nous et te souhaitons un bon hacking au paradis.

R.I.P

Posté dans News IT par Nico. 1 Commentaire

Patch FTWAutopwn


FTWAutopwn est un outil développé par Casten Maartmann-Moe qui a pour but de remplacer/améliorer le programme Winlockpwn qui n’est actuellement plus maintenu.

Pour rappel, Winlockpwn permet de déverrouiller une session active Windows via une attaque DMA sur le port FireWire.

FTWAutopwn permet de rendre plus stable la manipulation et ainsi d’éviter de se retrouver avec un joli BSOD et autre plantage durant la manipulation. Pour faire simple, la méthode vise à modifier la fonction permettant la vérification du mot de passe afin de la rendre valide peut importe ce qui est inséré. Pour cela, il est nécessaire d’étudier la dll msv1_0.dll et plus particulièrement la fonction MsvpPasswordValidate.

Une analyse assez bien faite est disponible à l’adresse suivante :

https://www.moonloop.org/bin/view/Moonloop/Article:k9iBW83eo9cBsdUlg7Red6cUaILIXVGw

Plusieurs signatures ont été intégrées à l’outil permettant de pouvoir patcher la fonction en fonction de l’OS.

Nous avons eu besoin, dans le cadre de mon travail, de trouver la signature d’un Windows 7 64 bits SP1  qui n’a pas été renseignée dans le fichier config.cfg.

Pour ce faire, un coup d’IDA sur la dll, une recherche de la fonction MsvpPasswordValidate, on se place dans la section de code permettant le saut conditionnel pour la validation et on remplace par des nop (0x90).

Ceci nous donne le patch suivant :

« sig »: »C60F857C800000B8″,
« pageoffset »:[0x321],
« patch »: »C6909090909090B8″,
« patchoffset »:0}]

Pour un Windows 7 64 bits SP0  :

« sig »: »C60F85A0B80000B8″,
« pageoffset »:[0x2A8],
« patch »: »C6909090909090B8″,
« patchoffset »:0}]

Pour les curieux, voici quelques documents utiles sur le sujet :

Greatz à Eric 😉

Edit : j’ai mis à jour le pageoffset de Windows 7 SP1 64bits (celui que j’avais trouvé ne fonctionnait pas). Je viens de tester à l’instant avec « pageoffset »:[0x321] et cela fonctionne !
Également, je rajoute le fait que suivant la version de la DLL, la signature peut être différente. Pour information, voici celle que j’ai testée :

Posté dans Pentest par Nico. 8 Commentaires

Arachni, scanner de vulnérabilités Web

Arachni est un scanner de vulnérabilités automatisé Open-Source créé par Tasos Laskos. Il propose un environnement stable, la génération de rapports et offre la possibilité d’écrire des plugins facilement et rapidement.

Site officiel : http://arachni.segfault.gr/news

Fonctionnalités

General :

  • Support cookie-jar ;
  • Support SSL ;
  • Support de proxy (SOCKS4, SOCKS4A, SOCKS5, HTTP) + authentification ;
  • Spoofing du user agent ;
  • Utilisation via une interface Web et/ou en ligne de commande ;
  • Possibilité de dispatcher la couche serveur de l’application permettant des scans parallèles, de la répartition de charge, etc.
  • Pause/reprise possible ;
  • etc.

Crawler :

  • Filtres sur des pages redondantes ;
  • Possibilité de définir des URL à inclure ou exclure lors du scan ;
  • Limite de redirection et de lien ajustable ;
  • etc.

Module :

  • Audit : SQLi, BSQLi, CSRF, XSS, injection LDAP, Path Traversal, LFI/RFI… ;
  • Etc.

Rapport :

  • Génération de rapports automatisés ;
  • Etc.

Plug-in :

  • Permet d’étendre les fonctionnalités d’arachni ;
  • Plugins disponibles : proxy passif, autologin, attaque par dictionnaire sur des authents HTTP, analyseur de WAF, etc.

Installation

Testé sous BT5

Pour lancer arachni :

$arachni_web_autostart

L’interface Web est disponible à l’adresse suivante :

http://127.0.0.1:4567/

Il reste cependant possible d’utiliser le scanner en ligne de commande dont voici la page de documentation officiel :

https://github.com/Zapotek/arachni/wiki/Command-line-user-interface

Exemple de ligne de commande :

$arachni –mods=xss http://localhost/ –exclude=formulaire

Elle permet de scanner les vulnérabilités XSS sur un site local en excluant le mot formulaire de l’URL (lors du crawling).

Utilisation

Il est nécessaire de configurer le dispatcher en cliquant sur celui par défaut. Ce dernier permet de lancer des scans sur différentes instances (également sur d’autres postes).

Une fois cette étape effectuée, le scan d’un site Web peut être lancé. Il est cependant utile de regarder les différents onglets disponibles :

Start a scan :

Permet de lancer son scan en insérant l’URL/l’adresse IP.

Modules :

Permet de sélectionner les modules qui seront utilisés durant la phase de scan.

Plugins :

Plugins permettant d’étendre certaines fonctionnalités de l’outil. Pour exemple, la fonction auto-login se situe dans cette section.

Settings :

Onglet permettant de configurer différentes options telles :

  • Auditer les formulaires ;
  • Auditer les cookies ;
  • Auditer les cookies ;
  • Exclure certaines URLS ;
  • Configurer le nombre de requêtes HTTP ;
  • Utilisation d’un cookie spécifique ;
  • Etc.

Report :

Liste des scans effectués en incluant les rapports sous différents formats (Metareport, format Arachni Framework, Text, XML, HTML).

Add-ons :

Permet d’activer les add-ons permettant d’améliorer les fonctionnalités de la WebUI.

Dispatcher :

Liste des dispatchers et leur charge mémoire.

Log :

Log des scans lancés, des rapports générés, etc.

Exemple de sortie

Summary :

Graphiques des vulnérabilités classés par types :

Issues :

Résultat détaillé des vulnérabilités contenant :

  • Nom du module ;
  • Variable affectée ;
  • URL affectée ;
  • Type d’élément HTML ;
  • CWE ;
  • CVSSV2 ;
  • Descriptif de la vulnérabilité ;
  • Eléments de corrections ;
  • Références : Wikipedia, OWASP, SecuriTeam… ;
  • Etc.

Plugin results :

Informations complémentaires sur les plugins utilisés + healthmap.

Sitemaps :

Liste des URLs testées durant le scan.

Configuration :

Détail de la configuration utilisée lors du scan.

N’hésitez pas à faire des retours sur la pertinence des découvertes de vulnérabilités de l’outil 😉

Pour information complémentaire, voici un article récent et assez intéressant sur le comparatif de plusieurs scanners de vulnérabilités payants et Open-Source :

http://sectooladdict.blogspot.com/2011/08/commercial-web-application-scanner.html

Mode vacances 2 semaines \o/

Posté dans Outils par Nico. 3 Commentaires

Nipper, audit de configuration

Hello all,

Tout d’abord désolé de ne pas avoir posté d’article depuis un bout de temps. Entre mon déménagement, le temps d’attente pour la récupération du net, le boulot, les conférences SSTIC, Hack In Paris, NDH2K11, et s’occuper de la petite, ca ne laisse pas beaucoup de temps.

En tout cas, cela fait extrèmement du bien de retrouver le net ! surtout avec 17 mégas, ça le fait !

J’ai reçu pas mal de mails depuis quelques temps concernant mon boulot. Pour information, non je ne travaille pas chez Bull, mais c’est mon pote Romain qui poste de temps en temps sur ce blog. Pour ma part, après avoir fais un petit détour à l’ESEC Sogeti dans l’équipe pentest, je me suis dirigé chez Telindus dans l’équipe SRC (Security Research Center) ou j’effectue des tests d’intrusion (TI, TIE, audit de conf, un peu de R&D, etc.).

Seconde petite précision, non,  je ne suis pas nico34 de zenk-security 😉

Tiens, en parlant de zenk, j’ai pu revoir certains membres IRL lors de la NDH2k11. On a d’ailleurs participé au CTF mais,  malheureusement, le challenge a été annulé vers 1h00 du matin à cause de différents problèmes techniques. Nous étions assez dégoutés mais on se met à la place du staff pour qui, la déception a été énorme !

Aller, on se remet en jambe avec un soft qu’on utilise de temps en temps au taff, à savoir Nipper.

Cet outil a été développé par titania-security et permet d’auditer la configuration de plusieurs équipements tels :

  • Check Pont VPN-1/Firewall-1 ;
  • Cisco Routers (IOS) ;
  • Crossbeam Firewalls ;
  • Juniper NetScreen Firewalls ;
  • Nokia IP Firewalls ;
  • WatchGuard X Core/Edge ;
  • SonicWALL Firewall (SonicOS) ;
  • etc.

Vous pouvez consulter la liste complète ici.

L’interface est assez intuitive, il suffit simplement de charger le fichier de configuration et de lancer l’analyse. La nouvelle version de Nipper detècte automatiquement l’équipement en fonction du/des fichier(s) importé(s). Voici un exemple avec l’importation d’un fichier de conf Juniper :

Quelques « next » suivants, un rapport automatisé est généré. Ce dernier contient l’ensemble des problématiques de sécurité détectées sur votre conf. On peut y retrouver différents thèmes tels :

  • Les règles du pare-feu trop permissives ;
  • Les fonctionnalités IDS non implémentées ;
  • Le port AUX non désactivé ;
  • Des noms de communautés SNMP trop faibles ;
  • L’utilisation des comptes par défaut ;
  • Etc.

Le rapport indique pour chaque problématique, son niveau de criticité ainsi que  la difficulté de correction. Ces informations sont très utiles afin de prioriser et d’organiser un plan d’action pour corriger les multiples défauts de sécurité détectés.

Le rapport indique également (ce qui est assez utile) les commandes permettant de corriger le problème. Pour exemple, sur la thématique des comptes et mots de passe par défaut, Nipper inclus dans la partie « recommandation », les différentes commandes pour changer le nom d’un compte ainsi que le mot de passe, ex  :

Également, se trouve à la fin du rapport un récapitulatif d’informations utiles à savoir : les interfaces réseaux, les vlans, les zones, les objets, etc.

Pour finir, bien que l’outil soit plutôt bien fait, j’ai constaté un bug assez gênant (remonté à l’éditeur).

Lors de l’analyse d’une configuration Juniper NetScreen,  j’ai remarqué que Nipper effectue une analyse des règles du pare-feu en fonction de leur identifiant (ID) alors que Juniper, analyse les règles ligne par ligne. Concrètement, cela signifie que si une règle ayant l’ID 10 est en première position et que la règle suivante contient l’ID 2, Nipper va ranger de la manière suivante :

  1. Règle ID 2 ;
  2. Règle ID 10.

Tandis que sur Juniper, on aura cet ordre :

  1. Règle ID 10 ;
  2. Règle ID 2.

Ce défaut est un vrai problème car le rapport va potentiellement incorporer des faux-positifs.

J’attends donc un retour de leur part afin de savoir si le bug sera corrigé rapidement.

Téléchargement & Installation

https://www.titania-security.com/downloads

Il est nécessaire de s’enregistrer pour pouvoir récupérer une licence d’essai (outil payant).

Nipper est disponible sur les systèmes d’exploitation suivants : Windows, Mac OS X, Ubuntu GNU/Linux, Fedora GNU/Linux et CentOS GNU/Linux.

Documentation

Titania-security a fait les choses bien côté documentation. En effet, est disponible sur leur site, plusieurs procédures montrant la façon d’extraire les fichiers de configuration sur différents équipements (très utile lorsque l’on ne connait pas trop le produit).

Ces docs sont disponibles à l’endroit suivant : https://www.titania-security.com/support/documentation. N’hésitez surtout pas à les consulter.

Bonnes vacances à tous et à très vite pour la découverte d’un nouvel outil 😉

[Write-Up] Fun with firewire – PlaidCTF


Ce week-end, j’ai participé avec la team Zenk-Security au pCTF 2011 organisé par la team PPP.

Les épreuves étaient vraiment très intéressante et malgré notre 32ème place, nous avons pu nous confronter à des équipes du monde entier. Je tiens à féliciter les 3 premières équipes à savoir :

1. Hacking For Soju 6864 (Team Suédoise) ;
2. C.o.P 6543 (Team Française) ;
3. SSH 6230 (Team Russe).

La présentation des épreuves était sympathique, avec un plan de la tour AED. Jugez par vous-même :

Sur les 38 épreuves disponibles, nous en avons réussi… seulement 10…

Voici la résolution de l’épreuve forensique 9 intitulée « Fun with firewire« .

Description

Category: forensics

All of the machines at the AED office are encrypted using the amazing Truecrypt software.
When we grabbed one of their USB sticks from a computer, we also grabbed the memory using the Firewire port.

Recover the key using the truecrypt image and the memory dump.

Nous avions à télécharger l’archive suivante : http://www.plaidctf.com/chals/81d9467f812d2fbb32e9d4b915cccfe457245f25.tar.bz2

Cette dernière contenait deux fichiers :

  • physmem.bin (dump physique de la RAM) ;
  • ppp.challenge.vol (volume truecrypt).

On utilise l’outil « passware » permettant de déchiffrer le volume truecrypt via le dump de la RAM :

En effectuant une recherche des strings dans le fichier de sorti, nous avons obtenu le flag 🙂

Simple, mais efficace :p (surtout pour 500 points).

Repository

http://repo.shell-storm.org/CTF/PlaidCTF-2011/
http://stalkr.net/files/pctf/2011/

Liste Writeups

Writeup SHP – épreuve : SHA1 is fun
Writeup Hydraze – épreuve : Exploit Me :p
Writeup Nibbles – épreuve : Plain sight
Writeup RajatSwarup – épreuve : Plain sight
Writeup StalkR – épreuve : That’s no bluetooth
Writeup Nibbles – épreuves : Sticky Note, Family Photo! et Crossword Masters
Writeup Jonathan Salwan – épreuve : Another small bug
Writeup auntitled – épreuve : Another small bug
Writeup 0vercl0k & Jonathan Salwan – épreuve : Calculator
Writeup abs|Zer0| – épreuve : Django…really?
Writeup m_101 – épreuve : C++5x
Writeup auntitled – épreuve : hashcalc1
Writeup eindbazen – épreuve : Fun with Numb3rs
Writeup auntitled – épreuve : hashcalc2
Writeup Eloi Sanfèlix – épreuve : The App Store!
Writeup Eloi Sanfèlix – épreuve : ECE’s revenge
Writeup PenSec – épreuve : Chiptunes?… Crickets?
Writeup PenSec – épreuve : Key leak
Writeup PentSec – épreuve : We play cards
Writeup Leet More -épreuve : PC Rogue

 

Posté dans Tutos de Nico par Nico. 9 Commentaires