creation git, ssh
https://www.circl.lu/services/forensic-training-materials/
-
Il ne faut pas toucher au pc sans l'investigateur
-
On cherche a comprendre ce qui se passe, comment, quand, pourquoi.
-
il faut bien garder les preuves pour ce qui est juridique
-
bien se préparer et avoir pas mal d'outil
-
Parler avec les personnes et prendre des notes
-
identifier les sources possible de preuve: les ordi, les imprimantes....
-
dump mémoire
-
image du systeme
- hardware layer: disk volumes and partitons (dd)
- File system layer: NTFS (deleted file)
- Data layer: photorec, string search
- OS layer: registry, prefetch files
- Application layer: AV log, browser history...
- Identify malware: Temp or Startup folders, windows task
◦ Nibble: 0101 0000 0110 1001 0110 1110 0110 0111
◦ Byte: 01010000 01101001 01101110 01100111
◦ Word: 0101000001101001 0110111001100111
◦ Double Word: 01010000011010010110111001100111
Big Endian: 15-0 (poids fort à gauche, décroissant)
Little Endian: 0-15 (poids fort à droite)
HPA (Host Protected Area): Recovery data. persistent data, READ NATIVE MAX ADDRESS
DCO (Device Configuration Overlay): Control reported capacity and disk features, DEVICE CONFIGURATION IDENTIFY
HPA peut contenir des info caché inaccesible par l'os mais récupérable avec des outils.
Il faut utiliser les hash pour savoir si le disk a changé ou non pares une modification
Un hardware write blocker empeche les attaques contrairement à des outils comme hdparm ou blockdev
dd, if=source, of=dest, bs=block_size, count=nb_block_cp, skip=ignor_block_entree, seek=ignore_block_sorti, conv=noerror(continue malgré tout)
TSk command at slide 11
Explication d'un file system:
Fichier supprimé:
dd if=deleted.dd of=file2.txt bs=32 skip=7122 count=2 --> This is Paula
dd if=deleted.dd of=file1.txt bs=32 skip=7123 count=2 --> Paula World
Structure de FAT :
Structure de NTFS:
En NTFS tout est fichier
MFT: 1 record par fichier/dossier et chaque record=1024 bytes
$Bitmap localisé au record 6 de MFT, il contient le status de chaque cluster (allocated or not), chaque bit represente 1 cluster
Byte 1: 0x13 == 0001 0100 --> Cluster alloué: 3, 5
--> Cluster non alloué: 1, 2, 4, 6, 7, 8
pour le cluster 4169: 4169 / 8 == 521.125 --> dans $Bitmap il faut donc regarder au byte 521 pour avoir ce cluster
si le fichier n'est pas supprimé: 1111 1111 et supprimé: 1110 0001
- FAT
- Mac
- M: Content last Modified
- A: Content last Accessed
- C: File Created
- Mac
- NTFS
- MACE or MACB
- M: Content last Modified
- A: Content last Accessed
- C: File Created
- E: MFT Entry last modified
- MACE or MACB
command: mactime
Les données doivent etre séquentielles, si elles sont fragmentées, elles peuvent et cassées
un byte peut permettre d'identifier le fichier en cours d'analyse avec des en-tete défini et des fins définis aussi.
consiste a chercher des chaines de caractère lisible humainement, des formats, email, url, ip, bank
A file is resident if it is the primary copy of the file (as opposed to a backup copy) and it is stored on disk, regardless of whether the disk is online. A file is nonresident if it is stored only on a backup tape or if the file is a backup copy that is stored on another disk family.
-
SAM
- Local users
-
Security
- Audit settings
-
System
- General system config
- Program execution
-
Software
- Windows version, Profiles list
- Scheduled Tasks
- Program execution
RegRipper permet d'analyser les registres
- Auto Start
- Run
- RunOnce
- Applications installed & uninstalled
- WordWheelQuery
- user search on localhst
- Shell Bags
- user preferences
- UserAssist
- User Activities
- RecentDocs
Event viewer, Event log Explorer, evtxexport (command line), evtx dump.py
Location: /Windows/System32/winevt/Logs/
--> Security.evtx System.evtx Application.evtx
strings -el $NameOfFile
permet de récupérer le chemin jusqu'au fichier avant suppression
type $NameOfFile
permet de faire la même chose (Windows)
Donne des information sur l'accès aux fichiers
- Backup of:
- Critical system files
- Registry partially
- Local user profiles
- But NO user data
- Created automatically:
- Every 24 hours
- Windows Update
- Installation of applications incl. driver
- For analyst
- rp.log
- Description of the cause
- Time stamp
- State of the system at different times
Backup service:
- System files
- User data files
- Operates on block level
- Monitor an application when it starts
- Collect information about all resources needed
Permet de prouver qu'une application a bien été lancée.
Location: /Windows/Prefetch
Information inside prefetch file:
- Run count: How often launched
- Last time executed
- Application name incl. parameter
- Path to application and resources
analyse with tool like prefetch.py
Similaire à RecentDocs
Document pour une application ouverte récemment
Location: AppData/Roaming/Microsoft/Windows/Recent/AutomaticDestinations
Le nom des fichiers finissent par: .automaticDextinations-ms
--> 918e0ecb43d17e23.automaticDextinations-ms
Les valeurs Hexa sont définis mondialement --> 918e0ecb43d17e23 = Notepad.exe
- DOS Header
- PE Header
- OPtional Header
- Section Headers
- .text Section ( Program Code )
- .idata Section ( Importd Libs )
- .rsrc Section ( Strings, Images, ... )
- .reloc Section (Memory Translation )
tools useful: file, efixtool, strings, virustotal, misp, Circl DMA
tools useful Standard Linux: file, efixtool, strings,md5sum, sha1sum, 7z
Dedicated tools: oledump.py,pdfid.py, pdf-parser.py, VirusTotal tools
Memory dump
- System Time
date /t & time /t
- Loggedon Users
net session
PsLoggedon.exe
logonsessions.exe
- Open files
net file
- Network Connections and Status
netstat -anob, -rn
- Running Processes
tasklist
- Command history
doskey /history
-
Dumpit (do the dump)
-
Redline
-
Volatility
Les fichiers Prefetch windows sont désignés pour améliorer le démarrage d'application.
Les fichiers Prefetch contiennent :
- Le nom de l'executable
- une liste unicode des DLLs utilisé par l'exe
- un compteur du nombre d'execution
- et un timestamp de la dernière execution
Attention: Les Prefetch sont désactivé par défault sur les SSD
Les noms de fichiers Prefetch suivent un format définis:
- Nom de l'exe en majuscule
- un tiret
- Un hash de 8 caractères de la localisation de l'appli
- une extension
.pf
Les fichiers Prefetch contiennent:
- Le nom de l'exe, jusqu'à 29 caractères
- Le nombre d'execution ou le temps que l'appli à tournée
- Info sur le volume
- La taille du fichier Prefetch
- Le fichier et dossier où l'appli est lancé
Contiens également 2 timestamps:
- Le temps de la dernière execution de l'appli (version 26 garde les 7 dernières executions)
- Le temps de création du volume sur lequel le fichier Prefetch a été créé.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
1er avril: apprentissage, lecture, test outils 8 avril: définition du sujet plus dans le détails
27 Avril: Avancement du projet avec des regles qui fonctionne, maintenant, automatisation de la creation des regles
5 Mai: Présentation de l'auto et reste juste a améliorer
28 mai: uuid, test
2 juin: test, cpe
21 juin: yara -d, parametre externe
- arborescence de la machine
- NTUSER
- Registry
- Evtx
- Prendre en-tete et fin de programme en hexa, fair gaffe a chaque version
- Strings dans exe
- Strings dans le disque qui correspond au programme voulu
- evtxtract: sors les evtx san,s monter le disque
-
Install a software on a machine, change the machine into a raw format.
-
Uninstall the software and change again the machine into a raw format
-
keep the principal exe of the software and take the first 30 lines of hexadecimal of this exe and to the same with the end of the exe:
xxd my_disk.img | head -n 30 | cut -c11-50
xxd my_disk.img | tail -n 30 | cut -c11-50
- After that, do
strings
on the exe and look for line who can be find only in this exe:name="PuTTY"
If no line is usable, do without.
-
You can do
strings
on the disk withgrep
to see all readable output who match with the software -
Finally just try your rule yara on the disk and apply some change if the rule is too general:
yara -s -w my_rule.yar my_disk.img
fls -o 104448 -r out.img > out_fls
: create the tree of the raw image