Audytujemy uprawnienia użytkownika na dysku sieciowym z użyciem narzędzi ICACLS i AccessEnum


 

Oto sytuacja, jaka spotkała mnie niedawno – dostałem zlecenie, aby na wskazanym dysku sieciowym (powiedzmy „G”) odebrać wszelkie uprawnienia Panu X.  Może Pan X coś przeskrobał, może zmienił stanowisko pracy – to nie ma znaczenia dla naszej misji. W każdym razie, jego konto ma pozostać aktywne. A jakże! Najprostsza czynność o jakiej pomyśleliście (skasowanie konta) nie wchodzi w grę.

W idealnym świecie, weszlibyśmy we właściwości konta użytkownika, przeczesali jego grupy i korzystając ze skrzętnie prowadzonej matrycy „grupa-katalog” i usunęlibyśmy  pana X z grup przypisanych do dysku „G”. Niestety idealny świat nie istnieje. Przez wiele lat pracy, pana X ktoś mógł dodać do katalogów lub plików bezpośrednio. Czy wspomniałem, że dysk X jest ogromny?

W trybie wizualnym zaproponowałbym narzędzie ze strony SYSINTERNALS:

AccessEnum

AccessEnum to bardzo prosty programik, który pozwoli Wam przeskanować katalogi lub rejestr i wyświetli wszystkie uprawnienia:

Dane te można wyeksportować do pliku .txt, a stąd już tylko mały kroczek do obróbki np.Excelu.  Jeśli trafimy na dziwne ciągi znaków, czyli SID’y, to dla 100% pewności możecie zechcieć przetłumaczyć je na nazwy kont i grup. Podpowiadałem jak to zrobić narzędziem PsGetSID.exe – zachęcam do odświeżenia.

Jak zrzucić do pliku uprawnienia z dysku we wierszu poleceń?

W trybie konsolowym, jeśli łączymy się ze zdalnym udziałem, lub plików do przeskanowania będzie tak dużo, że narzędzia GUI zaczną się wieszać – dajmy szanse linii poleceń. Microsoft udostępnia w swoich systemach narzędzie ICACLS. Daje ono tyle możliwości, że to co zademonstruję będzie marnym procencikiem :)

icacls G:\* /save c:\temp\uprawnienia-G.txt /t /c

Parametr “save <ścieżka>” odpowiada za zapisanie wyniku do pliku.
/t zapewnia przeszukanie w głąb.
/c odpowiada za kontynuowanie, nawet jak natrafimy na błędy.

Jak zawsze jednak jest haczyk: tym poleceniem zrzucimy tylko SID’y grup i użytkowników domenowych, więc od razu zaprzyjaźnijmy się z PsGetSID.exe , aby je przetłumaczyć na nazwy, a przynajmniej znajdźmy SID pana X, aby wyszukać go w wyeksportowanym pliku;) Oto przykładowy, maleńki wycinek :)

mfg\products\MX312Driver\pl-PL\net64.inf_locD:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1421331044-1253252634-23344278444)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)S:AImfg\products\MX312Driver\pl-PL\netnwifi.inf_locD:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1421331044-1253252634-23344278444)(A;;0x1200a9;;;BA)(A;;0x1200a9;;;SY)(A;;0x1200a9;;;BU)S:AI

mfg\products\MX312Driver\pl-PL\net32.inf_loc

Choć dane w pliku mogą z początku wydawać się bełkotem to tak naprawdę wystarczy chwila z manualem ( /? ), aby załapać co jest czym.  Szukając uprawnień użytkownika i podstawowym zadaniem będzie po prostu przeszukanie pliku tekstowego pod kątem danego SID’u a to przecież banał :)

Uwaga! Jeśli konto wędrowało sobie z domeny do sub-domeny to jego SID będzie inny niż ten, wpisany w tabeli uprawnień na naszym dysku…  To rzadka sytuacja i trzeba zajrzeć do historii SIDów danego konta i sprawdzić je wszystkie.

PowerShell, a prawa dostępu do katalogów

Na koniec przypomnę, że PowerShell również daje możliwość sprawdzenia uprawnień. Jakiś czas temu pisał o tym nasz kolega redaktor Piotr. Zachęcam do zapoznania się z jego artykułem.


Podobne Tematy: