Jeśli wolisz korzystać z narzędzi wiersza polecenia, narzędzie Accesschk z pakietu MS Sysinternals może być użyte do sprawdzenia, czy proces działa z uprawnieniami administratora.
W tym celu przydatne są następujące flagi:
Opcja -p
(proces) akceptuje nazwę lub identyfikator PID uruchomionego procesu.
Opcja -v
(pełna) drukuje poziom integralności systemu Windows
Opcja -q
(cicha) zapobiega drukowaniu informacji o wersji.
-f
(Pełne) Opcja ta może być również wykorzystane w celu zapewnienia jeszcze większej ilości informacji na temat procesu (ES) (Security Token dane użytkowników, grup i przywilejów), ale ten poziom dodatkowych informacji nie jest wymagane w celu sprawdzenia podwyższonymi uprawnieniami.
Przykład
Wymień uprawnienia wszystkich uruchomionych cmd
procesów:
> accesschk.exe -vqp cmd
[5576] cmd.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW ICS\Anthony
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[8224] cmd.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW ICS\Anthony
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Error opening [6636] cmd.exe:
Access is denied.
Tutaj widzimy, cmd
że rozpocząłem trzy procesy. Pierwsze dwa mają średni poziom obowiązkowy (integralności) i są wyświetlane jako uruchomione na moim koncie domeny, co wskazuje, że procesy te zostały uruchomione bez uprawnień administratora.
Jednak ostatni proces (PID 6636) został uruchomiony z podwyższonymi uprawnieniami, więc moje nieuprzywilejowane polecenie nie może odczytać informacji o tym procesie. Uruchomienie z podwyższonymi uprawnieniami accesschk
i jawne określenie jego PID powoduje wydrukowanie następujących informacji:
> accesschk.exe -vqp 6636
[6636] cmd.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Teraz widzimy, że poziom integralności jest wysoki i że proces ten działa w ramach Administrators
wbudowanej grupy zabezpieczeń.