Quelques tool forensic
H3ll0 W0rlD ! Étant impliqué dans des challenges et CTF forensic ces derniers temps, j'ai décidé d'ouvrir un billet la dessus pour présenter ce domaine méconnu et pourtant si intéressant
Cet article se complète avec celui sur les tool de steganographie /!\
L’analyse Forensic pour ceux qui ne connaîtrais pas c’est l’art de retrouver, d’exploiter des preuves numérique pour comprendre un mode opératoire afin de retracer toutes les actions liés à un incident.
Un exemple ?
Une société de vente de vin était coupable de voler des informations bancaire via une application android piratée, la cause ? une application vérolé mise en ligne sur le play store renvoyant sur un serveur web de vente en ligne piraté récupérant les paquets contenant les données bancaires des heureux possesseur de l’application !
Comment cela a t-il été décelé ? des consultants ont analysés l’application en la désossant (c’est le reverse engineering) pointant sur une IP qui était celle du serveur web de vente en ligne
{#True_story_from_nuitduhack_2K17}
Un autre exemple ?
L’administrateur d’un site pédopornographique retrouvé via des posts posés sur un forum de développeur demandant de l’aide pour un soucis de programmation web, grâce à son adresse mail perso. Comment est-ce possible ? Les enquêteurs analysant le code source du forum pédopornographique ont put retrouver un post indiquant le code identique à celui du serveur WEB (via le google hacking)
Je vous conseille de voir la video d’AbsolVideo qui fait du très bon travail https://www.youtube.com/watch?v=IDRx6fEW6s0 pour plus de détails
En bref le forensic comporte plusieurs technique
- Analyse des fichiers infectés;
- Analyse de la mémoire;
- Détection et analyse de Rootkits;
- Récupération de fichiers effacés;
- Analyse des logs;
Néanmoins pour être efficace dans ce domaine il vous faudra connaître , l’architecture des systèmes (Windows, Linux/Unix), avoir de bonnes bases en réseaux, savoir manipuler les formats de fichiers, avoir de la veille technologique constante (oui la technologie évolue tout le temps !) et surtout une logique à toute épreuves (et accessoirement un peu de chance)
Pour bien avancer sur ce genre de recherche il est primordial de connaître les outils adaptés à cela, étant dans mes bons jours je vous lâche quelques tips ! 😉
Analyse de disques / FS
Foremost
Outils permettant de récupérer des fichiers qui ont été supprimés
Utilisation :
$foremost Challenge_Forensique.raw
Processing: Challenge_Forensique.raw
foundat BotnetScanners LRAB.zip
foundat BotnetScanners LRABxPK3
dd_rescue
Outil permettant de récupérer des fichiers qui ont été supprimés
Utilisation :
$dd_rescue sda1 file.img
dd_rescue: (info): Using softbs=65536
dd_rescue: (info): expect to copy 37747712kB from dev/sda1
dd_rescue: (info): ipos: 1758208.0k, opos: 1758208.0k, xferd: 1758208.0k
errs: 0, errxfer: 0.0k, succxfer: 1758208.0k
+curr.rate: 197836kB/s, avg.rate: 108919kB/s, avg.load: 44.5%
.......................................
scalpel
Outil permettant de disséquer les fichiers stockés sur le disque dur
Utilisation : décommenttez le type de fichier que vous voulez retrouver (Dans l’exemple les zip)
$vi /etc/scalpel/scalpel.conf zip y 10000000 PK\x03\x04 \x3c\xac
scalpel /dev/sda1 -o out
Scalpel version 1.60
Written by Golden G. Richard III, based on Foremost 0.69.
Opening target "/dev/sda1"
Image file pass 1/2.
/dev/sda1: 9.0%|*****************
ntfsundelete
Outil permettant de récupérer des fichiers effacés sur le système de fichier NTFS
Utilisation :
$umount /mnt/NTFS
$ntfsundelete /dev/sdb1
61 F..! 0% 1970-01-01 01:00 0 <none>
62 F..! 0% 1970-01-01 01:00 0 <none>
63 F..! 0% 1970-01-01 01:00 0 <none>
64 FR.. 100% 2018-10-07 18:55 0 preuve1
65 FR.. 100% 2018-10-07 18:55 0 preuve2
66 FR.. 100% 2018-10-07 18:55 0 Flag.zip
67 FR.. 100% 2018-10-07 18:55 0 password.txt
Files with potentially recoverable content: 4
fatback
Outil permettant de récupérer des fichiers effacés sur le système de ficher FAT
sleuthkit
Ensemble d’outil permettant d’investiguer sur des partition NTFS, FAT, EXT2, EXT3, EXT4, FFS, …
Permet également de faire du reporting durant les recherches (Fait gagner un temps fou lorsqu’on sait l’utiliser)
Photorec
Permet de retrouver des fichiers supprimés sur des disques dur, CDROM, Caméra digital, …
Utilisation :
$photorec Challenge_Forensique.raw
Disk Challenge_Forensique.raw - 124 MB /118 MiB (RO)
Partition Start End Size in sectors
P FAT16 001950132243264[KODAK]
7 files saved in/root/Bureau/CTF/WIPE/out/recup_dir directory.
Recovery completed.
kpartx
Permet de monter une partition avec un fichier image (Like Daemon Tool)
Utilisation :
$kpartx -a lost_flash_drive -v
add map loop0p1 (254:0): 07831550 linear 7:02 ls/media/root/UNTITLED/ Documents/ .Spotlight-V100/ .Trashes/ Pictures/ .TemporaryItems/ Videos/
chainbreaker
Pour ouvrir un keychain MacOS sous linux
https://github.com/AppLeU0/chainbreaker
python chainbreaker/chainbreaker.py -f login.keychain -k 1AC15973C307....
[-] DB Key
00000000: 27 84 9D C6 EE 23 FD F3 07 00 1F CF 97 C6 44 6B '....#........Dk
00000010: 09 4D 3E 68 09 E7 82 3C .M>h...<
[+] Symmetric Key Table: 0x00005114
[+] Generic Password Record
[-] Create DateTime: 2018-10-24 18:05:20
[-] Last Modified DateTime: 2018-10-24 18:05:20
[-] Description :
[-] Creator :
[-] Type :
[-] PrintName : Apple Persistent State Encryption
[-] Alias :
[-] Account : Window Bitmap Encryption
[-] Service : Apple Persistent State Encryption
[-] Password
00000000: 45 43 32 39 44 34 45 46 30 33 43 33 34 41 32 38 EC29D4EF03C34A28
00000010: 41 32 31 35 44 42 38 36 41 38 38 46 32 43 44 31 A215DB86A88F2CD1
[+] Generic Password Record
[-] Create DateTime: 2018-10-24 18:14:37
[-] Last Modified DateTime: 2018-10-24 18:14:37
[-] Description :
[-] Creator :
[-] Type :
......
plistutil
Permet de lire des fichiers Apple Binary Property en XML
plistutil -i klfa.plist
...
<key>shell</key>
<array>
<string>/bin/bash</string>
</array>
<key>unlockOptions</key>
<array>
<string>0</string>
</array>
<key>realname</key>
<array>
<string>klfa</string>
</array>
<key>AvatarRepresentation</key>
<array>
<string></string>
</array>
<key>hint</key>
<array>
<string>Laissez dire les sots, le savoir a son prix.</string>
</array>
<key>_writers_UserCertificate</key>
<array>
<string>klfa</string>
</array>
<key>name</key>
<array>
<string>klfa</string>
</array>
<key>ShadowHashData</key>
<array>
<data>
....
MacInHash
Permet de convertir un mot de passe plist en fichier hash pour cracking
https://github.com/JMagers/MacinHash
./machash.py klfa.plist klfa.hash
hashcat -m 7100 --username klfa.hash /usr/share/wordlist/rockyou.txt
Commandes disques (Linux)
udisksctl #Verifier les disques connectes
mmls /dev/sdb #Afficher les partitions du disque /dev/sdb
fls /dev/sdb -f ntfs -o 206848 #Se deplacer dans la partition sans monter le disque
fls /dev/sdb -f ntfs -i 206848 436 #Se deplacer dans l'arborescence sans monter le disque (emplacement reference 436)
fls -z GMT -s 0 -m '/' -f ntfs -r /dev/sdb >> timeline.txt #Creer la timeline globale du disque
mactime -b timeline.txt -z GMT #Creer la timeline au format CSV (classé par date)
Analyse d’images
exiftool
Outil permettant de gérer les métadata des images
Utilisation :
$exiftool IMG_0743.png
ExifTool Version Number : 11.10
File Name : IMG_0743.png
Directory : .File
Size : 4.8 MB
File Modification Date/Time : 2018:03:04 18:26:08+01:00
File Access Date/Time : 2018:10:07 18:18:58+02:00
Lens Model : iPhone 6 back camera 4.15mm f/2.2
Resolution Unit : inchesX
Resolution : 72
Camera Model Name : iPhone 6
GPS Altitude : 11 m Above Sea Level
WestImage Size : 2448x3264
Megapixels : 8.0
Shutter Speed : 1/30
Focal Length : 4.2 mm
GPS Position : 40 deg 43' 13.54" N, 73 deg 59' 2.43"
Analyse de fichier
file
Outil permettant de déterminer le type de fichier
Utilisation :
$file forensic.E01
forensic.E01: EWF/Expert Witness/EnCase image file format
strings
Permet de sortir les caractères affichables d’un fichier ou d’un flux
Utilisation:
$strings payload.exe
flag
FLAG : This1$Y0urFl4gs
ExceptionFlags
___chkstk_ms
__native_startup_lock
[...]
binwalk
Permet d’identifier les codes/données incorporés dans le fichier et et rechercher les images, binaires, code exécutable, …
Utilisation :
$binwalk -B 666c61676765643f.exe
DECIMAL HEXADECIMAL DESCRIPTION--------------------------------------------------------------------------------
0 0x0 Microsoft executable, portable (PE)
17999 0x464F Unix path: /crossdev/src/mingw-w64-v3-git/mingw-w64-crt/crt/crtexe.c
25764 0x64A4 mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 8bit
binwalk -D png Full_Bin.dat
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
53 0x35 PNG image, 640 x 480, 8-bit/color RGBA, non-interlaced
161 0xA1 PNG image, 640 x 480, 8-bit/color RGBA, non-interlaced
Ghex
Outil de manipulation hexadécimal d'une image
Utilisation :
Dumpzilla
Outil manipulant les données de profiles firefox (dump password, historique, ...)
$dumpzilla .mozilla/firefox/o0gfhl.default/ --Passwords
User login (crypted): DFEEoEEhvc000DECVEECGQiIGc9wcicBBDV2Zx+ouM2158461FTRBMu+QGgCAWJC8
Password login (crypted): DFEEEEhvcNAEhvc000DECVEECGQiIGcwcECL6IksL4y0rsBBCwsrL8Ao452GHYRkOfbA
=========================
Username: UserPressionLeak
Passsword: P@$$
pngcheck
Outil permettant de vérifier l'intégrité d'un fichier PNG, JPG et MNG
$pngcheck -vt 35.png
File: 35.png (15225 bytes)
chunk IHDR at offset 0x0000c, length 13
640 x 480 image, 32-bit RGB+alpha, non-interlaced
chunk bKGD at offset 0x00025, length 6
red = 0x00ff, green = 0x00ff, blue = 0x00ff
chunk pHYs at offset 0x00037, length 9: 2835x2835 pixels/meter (72 dpi)
chunk tIME at offset 0x0004c, length 7: 27 Jun 2017 08:56:06 UTC
invalid chunk name "" (10 15 ffffffba ffffffe3)
ERRORS DETECTED in 35.png
Pngtools suite
Suite d'outil d'investigation/reperation de PNG
pngchunks alengthyissue.png
Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR]
Critical, public, PNG 1.2 compliant, unsafe to copy
IHDR Width: 1280
IHDR Height: 720
IHDR Bitdepth: 8
IHDR Colortype: 3
IHDR Compression: 0
IHDR Filter: 0
IHDR Interlace: 1
IHDR Compression algorithm is Deflate
IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)
IHDR Interlacing method is unknown
Chunk CRC: -1885069838
Chunk: Data Length 1 (max 2147483647), Type 1111970419 [sRGB]
Ancillary, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Chunk CRC: -1362223895
Chunk: Data Length 4 (max 2147483647), Type 1095582055 [gAMA]
Ancillary, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Chunk CRC: 201089285
Chunk: Data Length 1212501072 (max 2147483647), Type 1163152464 [PLTE]
Critical, public, PNG 1.2 compliant, unsafe to copy
... Unknown chunk type
Erreur de segmentation
Un script de déploiement rapide dispo ici