Les sous-dossiers SID de la Corbeille expliqués
3 min de lecture
Ouvrez C:\$Recycle.Bin sur l'image d'un poste de travail et vous
voyez quelques dossiers aux noms longs et structurés :
S-1-5-21-3623811015-3361044348-30300820-1013
S-1-5-21-3623811015-3361044348-30300820-500
S-1-5-18
Chacun est un identifiant de sécurité Windows. Windows partitionne la Corbeille par utilisateur pour qu'aucun compte ne voie les fichiers supprimés d'un autre (et pour que le shell puisse calculer des quotas par utilisateur). Pour un enquêteur, cette partition est l'attribution la plus propre possible.
Lire un SID
S-1-5-21-3623811015-3361044348-30300820-1013
| | | | |
| | | | └─ RID (le compte spécifique)
| | | └─ sous-autorité 3 : ID machine/domaine (SID machine sur un poste)
| | └─ autorité 5 (NT Authority)
| └─ révision 1
└─ littéral "S"
Ce qui compte réellement par RID :
500: Administrateur intégré.501: Invité.1000+: comptes ordinaires créés au fil du temps. Les RID les plus bas ont été créés en premier ;1000est le premier utilisateur non par défaut.S-1-5-18: LocalSystem.S-1-5-19: LocalService.S-1-5-20: NetworkService.
Un $I sous S-1-5-18 signifie une suppression en contexte SYSTEM.
Ce n'est pas une action utilisateur normale, généralement une tâche
planifiée, un service, ou quelque chose s'exécutant en tant que
SYSTEM sans session bureau.
Associer un SID à un utilisateur
Depuis le registre (fonctionne sur une image hors ligne) :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID>
ProfileImagePath = C:\Users\<nom>
L'analyseur de registre affiche
proprement cette ruche. Sur un hôte en direct,
wmic useraccount get name,sid ou en PowerShell
Get-LocalUser | Select Name,SID fait le même travail. Pour les
comptes de domaine, la ruche SOFTWARE locale ne résout que les
utilisateurs qui se sont connectés au moins une fois. Pour les autres,
il faut l'enregistrement du contrôleur de domaine ou Get-ADUser.
Pourquoi c'est une attribution forte
Un fichier $I dans S-1-5-21-…-1013 a été écrit sous la session
d'ouverture de ce compte. Combiné au FILETIME de suppression, vous
obtenez :
- Qui : le propriétaire du SID.
- Quoi : le chemin d'origine et la taille depuis le
$I. - Quand : UTC à la seconde.
Ce trio, corroboré par une connexion 4624 dans la même fenêtre, est à peu près l'attribution la plus directe fournie par Windows.
Quand l'attribution devient bruyante
- Profils itinérants ou hôtes RDS. Plusieurs utilisateurs touchent le même volume. Lisez le SID, ne supposez pas "l'utilisateur évident".
- RunAs et usurpation. Un utilisateur peut détenir des jetons pour
d'autres comptes. Une suppression sous le SID X pourrait en principe
être initiée par l'utilisateur Y via
runas. Recoupez avec l'EVTX4648(connexion avec identifiants explicites). - Suppression de compte. Un SID dont l'entrée
ProfileLista disparu apparaît toujours comme dossier. Le RID est unique à jamais ; si l'utilisateur a été supprimé, il faudra peut-être une ruche de sauvegarde pour le résoudre.
Pour aller plus loin
Questions fréquentes
- Pourquoi $Recycle.Bin contient-il des dossiers nommés S-1-5-21-... ?
- Chaque sous-dossier est l'identifiant de sécurité (SID) d'un utilisateur. Windows isole les fichiers supprimés de chaque utilisateur dans son propre dossier SID afin qu'ils ne voient pas les éléments des autres.
- Comment trouver à quel utilisateur appartient un SID ?
- Lancez 'wmic useraccount get name,sid', consultez HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList dans le registre, ou utilisez PsGetSid / 'Get-LocalUser' en PowerShell.
- Que signifie le préfixe S-1-5-21 ?
- S-1-5-21 désigne un compte de domaine ou local. Les chiffres suivants sont l'identifiant machine/domaine, et le RID final (par ex. -1001) identifie le compte spécifique ; 500 est l'Administrateur intégré.
- Les dossiers SID permettent-ils d'attribuer une suppression à un utilisateur ?
- Oui. Un fichier $I dans un dossier SID donné a été créé par la session de cet utilisateur, ce qui constitue une preuve d'attribution forte dans une investigation.