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

https://github.com/k-lfa/Linux-CTFtools