Une des étapes fondamentale lorsque nous faisons du forensic (et lorsque qu’on a le temps), c’est de faire une timeline.

Une timeline sert a retracer toute la vie d’un système du début à la fin, pour que l’on puisse suivre toutes les conséquences de n’importe quelle action.

Nous allons pour cela utiliser la suite d’outils Plaso: https://plaso.readthedocs.io

Encore une fois, nous allons partir d’un E01 que nous aurons préalablement monté dans /mnt/ewf1

root@forensiclab:~# log2timeline.py --process_archives --parsers linux -z Europe/London --status_view 'linear' -t TEXT /home/tsurugi/Desktop/l2t.txt /mnt/ewf1/ewf1

Ici, nous demandons a log2timeline de travailler sur l’ensemble de notre disque monté, de parser les archives, et lui indiquons qu’il s’agit d’un système linux, le fuseau horaire de la machine et de créer un fichier l2t.txt sur le bureau.

Le reste des arguments sert à faire joli.

Une fois le travail terminé, on vérifie le résultat avec pinfo:


************************** Plaso Storage Information ***************************
            Filename : l2t.txt
      Format version : 20190309
Serialization format : json
--------------------------------------------------------------------------------

*********************************** Sessions ***********************************
8f6cae3f-ee59-49d4-831f-e14e4115b4b2 : 2020-01-04T15:11:31.372399Z
--------------------------------------------------------------------------------

**************** Session: 8f6cae3f-ee59-49d4-831f-e14e4115b4b2 *****************
                Start time : 2020-01-04T15:11:31.372399Z
           Completion time : 2020-01-05T19:06:40.746981Z
              Product name : plaso
           Product version : 20191203
    Command line arguments : /usr/local/bin/log2timeline.py --process_archives
                             --parsers linux -z Europe/London --status_view
                             linear -t TEXT /home/tsurugi/Desktop/l2t.txt
                             /mnt/ewf1/ewf1
  Parser filter expression : 
                             apt_history,bash_history,bencode,binary_cookies,chrome_cache,chrome_preferences,czip/oxml,dockerjson,dpkg,esedb/msie_webcache,filestat,firefox_cache,gdrive_synclog,java_idx,msiecf,olecf,opera_global,opera_typed_history,plist/safari_history,pls_recall,popularity_contest,selinux,sqlite/chrome_27_history,sqlite/chrome_8_history,sqlite/chrome_autofill,sqlite/chrome_cookies,sqlite/chrome_extension_activity,sqlite/firefox_cookies,sqlite/firefox_downloads,sqlite/firefox_history,sqlite/google_drive,sqlite/skype,sqlite/zeitgeist,syslog,systemd_journal,utmp,vsftpd,xchatlog,xchatscrollback,zsh_extended_history
Enabled parser and plugins : apt_history, bash_history, bencode,
                             bencode/bencode_transmission,
                             bencode/bencode_utorrent, binary_cookies,
                             chrome_cache, chrome_preferences, czip, czip/oxml,
                             dockerjson, dpkg, esedb, esedb/file_history,
                             esedb/msie_webcache, esedb/srum, filestat,
                             firefox_cache, gdrive_synclog, java_idx, msiecf,
                             olecf, olecf/olecf_automatic_destinations,
                             olecf/olecf_default, olecf/olecf_document_summary,
                             olecf/olecf_summary, opera_global,
                             opera_typed_history, plist, plist/airport,
                             plist/apple_id, plist/ipod_device,
                             plist/macosx_bluetooth,
                             plist/macosx_install_history, plist/macuser,
                             plist/maxos_software_update, plist/plist_default,
                             plist/safari_history, plist/spotlight,
                             plist/spotlight_volume, plist/time_machine,
                             pls_recall, popularity_contest, selinux, sqlite,
                             sqlite/android_calls, sqlite/android_sms,
                             sqlite/android_webview,
                             sqlite/android_webviewcache, sqlite/appusage,
                             sqlite/chrome_27_history, sqlite/chrome_8_history,
                             sqlite/chrome_autofill, sqlite/chrome_cookies,
                             sqlite/chrome_extension_activity,
                             sqlite/firefox_cookies, sqlite/firefox_downloads,
                             sqlite/firefox_history, sqlite/google_drive,
                             sqlite/hangouts_messages, sqlite/imessage,
                             sqlite/kik_messenger, sqlite/kodi,
                             sqlite/ls_quarantine,
                             sqlite/mac_document_versions,
                             sqlite/mac_knowledgec, sqlite/mac_notes,
                             sqlite/mac_notificationcenter,
                             sqlite/mackeeper_cache, sqlite/safari_history,
                             sqlite/skype, sqlite/tango_android_profile,
                             sqlite/tango_android_tc, sqlite/twitter_android,
                             sqlite/twitter_ios, sqlite/windows_timeline,
                             sqlite/zeitgeist, syslog, syslog/cron, syslog/ssh,
                             systemd_journal, utmp, vsftpd, xchatlog,
                             xchatscrollback, zsh_extended_history
        Preferred encoding : UTF-8
                Debug mode : False
          Artifact filters : N/A
               Filter file : N/A
   Number of event sources : 4307673
--------------------------------------------------------------------------------

************************* Events generated per parser **************************
Parser (plugin) name : Number of events
--------------------------------------------------------------------------------
         apt_history : 78
                dpkg : 10866
            filestat : 14893123
       olecf_default : 1
                oxml : 22
          pls_recall : 13
              syslog : 1203346
                utmp : 127
     xchatscrollback : 7487
               Total : 16115063
--------------------------------------------------------------------------------

************************ Warnings generated per parser *************************
Parser (plugin) name : Number of warnings
--------------------------------------------------------------------------------
         <No parser> : 125838
                utmp : 2
         <No parser> : 10002
          pls_recall : 3
     xchatscrollback : 106
--------------------------------------------------------------------------------

************************* Pathspecs with most warnings *************************
Number of warnings : Pathspec
--------------------------------------------------------------------------------
                31 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41552429, location:
                     /root/pentes/hashcat/rules/toggles5.rule
                30 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41552428, location:
                     /root/pentes/hashcat/rules/toggles4.rule
                25 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41552427, location:
                     /root/pentes/hashcat/rules/toggles3.rule
                15 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41552426, location:
                     /root/pentes/hashcat/rules/toggles2.rule
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421685, location:
                     /root/smile/nickel_v2.zip
                   : type: ZIP, location:
                     /nickel/bower_components/bootstrap/dist/css/bootstrap.min.css
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421488, location:
                     /root/smile/caf_v2.zip
                   : type: ZIP, location: /caf/cc/vbv/vbvimg/bnp.jpg
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421488, location:
                     /root/smile/caf_v2.zip
                   : type: ZIP, location:
                     /caf/bower_components/jquery/src/event.js
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421488, location:
                     /root/smile/caf_v2.zip
                   : type: ZIP, location:
                     /caf/bower_components/font-awesome/fonts/fontawesome-webfont.svg
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421685, location:
                     /root/smile/nickel_v2.zip
                   : type: ZIP, location:
                     /nickel/bower_components/font-awesome/css/font-awesome.min.css
                 5 : type: OS, location: /mnt/ewf1/ewf1
                   : type: RAW
                   : type: TSK_PARTITION, location: /p2, part index: 6, start
                     offset: 0x0ef00000
                   : type: TSK, inode: 41421488, location:
                     /root/smile/caf_v2.zip
                   : type: ZIP, location:
                     /caf/bower_components/jquery/src/traversing/var/rneedsContext.js
--------------------------------------------------------------------------------
No analysis reports stored.

root@forensiclab:~# ls -alh /home/tsurugi/Desktop/l2t.txt 
-rw-r--r-- 1 root root 6.9G Jan  5 19:07 /home/tsurugi/Desktop/l2t.txt

Vous avez bien lu…

Start time : 2020-01-04T15:11:31.372399Z
Completion time : 2020-01-05T19:06:40.746981Z

28h de traitement, le fichier final pèse près de 7Go…. Et c’est pas fini…

Il nous faut maintenant rendre ce fichier texte intelligible. Nous allons utiliser psort pour créer une belle timeline lisible…

root@forensiclab:/home/tsurugi/Desktop# psort.py -z Europe/London -o l2tcsv -w timeline.csv l2t.txt 

Nous demandons donc a psort de nous sortir un fichier timeline.csv, en précisant le fuseau horaire.

plaso - psort version 20191203

Storage file		: l2t.txt
Processing time		: 02:35:04

Events:         Filtered        In time slice   Duplicates      MACB grouped    Total
                0               0               330730          15784128        16115063

Identifier              PID     Status          Memory          Events          Tags            Reports
Main                    1494    exporting       702.0 MiB       16115063 (1)    0 (0)           0 (0)

root@forensiclab:~# ls -alh /home/tsurugi/Desktop/timeline.csv 
-rw-r--r-- 1 root root 2.5G Jan  5 22:13 /home/tsurugi/Desktop/timeline.csv

Nous nous retrouvons maintenant avec un fichier csv de 2.5Go à traiter…

Quoi faire ensuite? Cela dépend de ce que vous cherchez… Vive les greps ^^

Laisser un commentaire