Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

bypass des ACL NTFS (en partie) via vbscript ?

5 réponses
Avatar
jmh
Bonjour,
Je viens de tomber, par hasard, sur une chose qui m'étonne un peu:

Sur une machine windows XP SP2, intégré dans un domaine windows 2003, j'ai
une session ouverte avec un compte du domaine, aucun droits d'administration
particulier (membre du groupes utilisateurs local via l'appartenance au
groupe de domaine "utilisa. du domaine".)

en ligne de commande, si je fais ca :
---------------------------------------------------------
c:\>dir "c:\Documents and Settings\LocalService\ntuser.dat"
Le volume dans le lecteur C s'appelle SYSTEM
Le numéro de série du volume est 9BB1-A14E

Répertoire de c:\Documents and Settings\LocalService

Fichier introuvable
---------------------------------------------------------

.... normal je n'ai pas les accès :

C:\_local_admin>cacls "c:\Documents and Settings\LocalService\NTUSER.DAT"
c:\Documents and Settings\LocalService\NTUSER.DAT AUTORITE NT\SERVICE
LOCAL:F

AUTORITE NT\SYSTEM:F

BUILTIN\Administrateurs:F


Maintenant, j'éxécute ca (un vbscript) toujours depuis le meme compte
utilisateur:
---------------------------------------------------------
On Error Resume Next
set fso = createobject("scripting.filesystemobject")
Set oFolder = fso.GetFolder("C:\Documents and Settings")

For Each subfolder In oFolder.SubFolders
Set oFile = fso.GetFile("C:\Documents and Settings\" & subfolder.name &
"\ntuser.dat")
wscript.Echo subfolder.name & " - " & oFile.DateLastModified
Next

Set oFolder = Nothing: Set oFile = Nothing
---------------------------------------------------------

Résultat :
---------------------------------------------------------
C:\>cscript c:\temp\test.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

Administrateur -
All Users - 02/12/2005 12:21:38
Default User - 02/12/2005 12:21:42
usrtest - 04/09/2006 13:37:42
LocalService - 04/09/2006 13:37:42 <-----!!!
NetworkService - 04/09/2006 13:37:42 <-----!!!
---------------------------------------------------------

Est-ce que cela veut dire qu'en passant par scripting.filesystemobject,
getfolder...etc.....j'ai des accès à des "meta-info" sur les fichiers que
normalement je ne devrait pas ouvoir (en tout cas, la command 'dir' me
laisse pas passer).
Il semble que "dir" et "scripting.filesystemobject" n'ont pas les même
méthode d'accès aux fichiers. L'un parait plus permissif que l'autre.

Quelqu'un a une explication?
Et quelqu'un peut-il essayer de reproduire ce phénomène ?


Merci
jm

5 réponses

Avatar
Stéphane [MS]
Bonjour,

Il manque juste l'information que, par défaut, la commande DIR ne visualise
pas les fichiers cachés.
Vous le verrez si vous composez la commande suivante :
dir "c:Documents and SettingsLocalServicentuser.dat" /ah

Cdlt
Stéphane
http://blogs.msdn.com/spapp/default.aspx


"jmh" a écrit dans le message de news:

Bonjour,
Je viens de tomber, par hasard, sur une chose qui m'étonne un peu:

Sur une machine windows XP SP2, intégré dans un domaine windows 2003, j'ai
une session ouverte avec un compte du domaine, aucun droits
d'administration particulier (membre du groupes utilisateurs local via
l'appartenance au groupe de domaine "utilisa. du domaine".)

en ligne de commande, si je fais ca :
---------------------------------------------------------
c:>dir "c:Documents and SettingsLocalServicentuser.dat"
Le volume dans le lecteur C s'appelle SYSTEM
Le numéro de série du volume est 9BB1-A14E

Répertoire de c:Documents and SettingsLocalService

Fichier introuvable
---------------------------------------------------------

.... normal je n'ai pas les accès :

C:_local_admin>cacls "c:Documents and SettingsLocalServiceNTUSER.DAT"
c:Documents and SettingsLocalServiceNTUSER.DAT AUTORITE NTSERVICE
LOCAL:F

AUTORITE NTSYSTEM:F

BUILTINAdministrateurs:F


Maintenant, j'éxécute ca (un vbscript) toujours depuis le meme compte
utilisateur:
---------------------------------------------------------
On Error Resume Next
set fso = createobject("scripting.filesystemobject")
Set oFolder = fso.GetFolder("C:Documents and Settings")

For Each subfolder In oFolder.SubFolders
Set oFile = fso.GetFile("C:Documents and Settings" & subfolder.name &
"ntuser.dat")
wscript.Echo subfolder.name & " - " & oFile.DateLastModified
Next

Set oFolder = Nothing: Set oFile = Nothing
---------------------------------------------------------

Résultat :
---------------------------------------------------------
C:>cscript c:temptest.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

Administrateur -
All Users - 02/12/2005 12:21:38
Default User - 02/12/2005 12:21:42
usrtest - 04/09/2006 13:37:42
LocalService - 04/09/2006 13:37:42 <-----!!!
NetworkService - 04/09/2006 13:37:42 <-----!!!
---------------------------------------------------------

Est-ce que cela veut dire qu'en passant par scripting.filesystemobject,
getfolder...etc.....j'ai des accès à des "meta-info" sur les fichiers que
normalement je ne devrait pas ouvoir (en tout cas, la command 'dir' me
laisse pas passer).
Il semble que "dir" et "scripting.filesystemobject" n'ont pas les même
méthode d'accès aux fichiers. L'un parait plus permissif que l'autre.

Quelqu'un a une explication?
Et quelqu'un peut-il essayer de reproduire ce phénomène ?


Merci
jm



Avatar
Gilles LAURENT
"jmh" a écrit dans le message de
news:
| Bonjour,

Bonjour,

[...]

| C:>cscript c:temptest.vbs
| Microsoft (R) Windows Script Host Version 5.6
| Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
|
| Administrateur -
| All Users - 02/12/2005 12:21:38
| Default User - 02/12/2005 12:21:42
| usrtest - 04/09/2006 13:37:42
| LocalService - 04/09/2006 13:37:42 <-----!!!
| NetworkService - 04/09/2006 13:37:42 <-----!!!
| ---------------------------------------------------------
|
| Est-ce que cela veut dire qu'en passant par
| scripting.filesystemobject, getfolder...etc.....j'ai des accès à des
| "meta-info" sur les fichiers que normalement je ne devrait pas ouvoir
| (en tout cas, la command 'dir' me laisse pas passer).
| Il semble que "dir" et "scripting.filesystemobject" n'ont pas les même
| méthode d'accès aux fichiers. L'un parait plus permissif que l'autre.
|
| Quelqu'un a une explication?
| Et quelqu'un peut-il essayer de reproduire ce phénomène ?

Editez votre script et mettez en commentaire la première ligne soit :
' On Error Resume Next

La réponse va vous "sauter" aux yeux :-)

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Gilles LAURENT
"jmh" a écrit dans le message de
news:
| Bonjour,

Bonjour,

[...]

| C:>cscript c:temptest.vbs
| Microsoft (R) Windows Script Host Version 5.6
| Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
|
| Administrateur -
| All Users - 02/12/2005 12:21:38
| Default User - 02/12/2005 12:21:42
| usrtest - 04/09/2006 13:37:42
| LocalService - 04/09/2006 13:37:42 <-----!!!
| NetworkService - 04/09/2006 13:37:42 <-----!!!

Ci-dessous le script corrigé pour mettre cela en évidence :

-- Coupez ici : listProfiles.vbs --

Option Explicit

' déclaration des variables
Dim oFs, oFolder, oFile
Dim subFolder, strProfilesRoot

' gestion des erreurs
On Error Resume Next

' en cas d'erreur, le traitement n'est pas interrompu
' il est donc impératif dans ce cas de tester la valeur Err.Number
' après toutes fonctions "sensibles" afin de ne pas fausser le résultat

' initialisation
strProfilesRoot = "C:Documents And Settings"
set oFs = CreateObject ("scripting.FileSystemObject")
Set oFolder = oFs.GetFolder (strProfilesRoot)

' parcours des profils
For Each subFolder In oFolder.SubFolders
Set oFile = oFs.GetFile (strProfilesRoot & "" & _
subFolder.Name & "ntuser.dat")

' évaluation du traitement
If Err.Number <> 0 Then
WScript.Echo subFolder.Name & ", Error = " & Err.Number
Err.Clear
Else
WScript.Echo subFolder.Name & ", LastM = " & _
oFile.DateLastModified
End If
Next

-- Coupez ici : listProfiles.vbs --

Note : Le numéro d'erreur 53 qui s'affiche lors de l'exécution du script
sur les dossiers protégés par ACL signifie "Fichier introuvable". Fort
heureusement, cette erreur est identique à celle de la commande cmd
'dir' effectué sur les mêmes dossiers ;-)

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Gilles LAURENT
"Stéphane [MS]" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Il manque juste l'information que, par défaut, la commande DIR ne
| visualise pas les fichiers cachés.
| Vous le verrez si vous composez la commande suivante :
| dir "c:Documents and SettingsLocalServicentuser.dat" /ah

Ceci n'est pas lié aux attributs du fichier mais à un problème de droit
d'accès ! Comme l'indique avec précision "jmh" (la sortie de commande
cacls est dans le post initial), les droits sur ces dossiers sont
extrèmement limités. En fait, le script VBScript ne gére pas les
exceptions. Toutes les dates affichées pour les dossiers protégés sont
identiques à la date du dernier dossier autorisé.

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
jmh
Bonjour,
Ok. belle erreur, je comprends mieux.
Faut que j'investisses dans une bonne paire de lunette...les dates
identiques auraient du me sauter aux yeux!

Merci
jm

"Gilles LAURENT" a écrit dans le message de news:
e%
"jmh" a écrit dans le message de
news:
| Bonjour,

Bonjour,

[...]

| C:>cscript c:temptest.vbs
| Microsoft (R) Windows Script Host Version 5.6
| Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
|
| Administrateur -
| All Users - 02/12/2005 12:21:38
| Default User - 02/12/2005 12:21:42
| usrtest - 04/09/2006 13:37:42
| LocalService - 04/09/2006 13:37:42 <-----!!!
| NetworkService - 04/09/2006 13:37:42 <-----!!!
| ---------------------------------------------------------
|
| Est-ce que cela veut dire qu'en passant par
| scripting.filesystemobject, getfolder...etc.....j'ai des accès à des
| "meta-info" sur les fichiers que normalement je ne devrait pas ouvoir
| (en tout cas, la command 'dir' me laisse pas passer).
| Il semble que "dir" et "scripting.filesystemobject" n'ont pas les même
| méthode d'accès aux fichiers. L'un parait plus permissif que l'autre.
|
| Quelqu'un a une explication?
| Et quelqu'un peut-il essayer de reproduire ce phénomène ?

Editez votre script et mettez en commentaire la première ligne soit :
' On Error Resume Next

La réponse va vous "sauter" aux yeux :-)

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD