Skocz do zawartości

Nieusuwalne klucze rejestru


2 odpowiedzi w tym temacie

#1
picasso

    Administrator

  • Administratorzy
  • 11 029 postów
Dołączona grafika

Nieusuwalne klucze rejestru
Metody usuwania kluczy null i pozbawionych uprawnień





Copyright @picasso fixitpc.pl Powielanie tej pracy zabronione.

#2
picasso

    Administrator

  • Administratorzy
  • 11 029 postów
Klucze typu NULL
"Błąd uniemożliwia otwarcie klucza" / "Błąd przy usuwaniu klucza"




Wyjaśnienie zagadnienia "null":

Znaki zerowe NULL "\0" to metoda pozwalająca na ukrywanie w rejestrze wpisów w taki sposób, by nie można się było do nich dostać. Ogólnie mamy kwestie dwóch modeli nazewniczych:


Win32 API: Nazwa\0

Zerówka "\0" jest traktowana jako znacznik końcówki nazwy, nie brany pod uwagę. Jako nazwa jest brana tylko nie zerowa zawartość "Nazwa" czyli 5 znaków. Ten model nazewnictwa czytają narzędzia takie jak regedit.

Native API: Nazwa\0

Zerówka "\0" jest traktowana jako część nazwy. Jako nazwa jest brany pod uwagę cały ciąg czyli 6 znaków. Taką nazwę widzi system per se.



Czyli jeśli NULL miał być częścią faktycznej nazwy, następuje zafałszowanie jej wyglądu w takich narzędziach które korzystają z Win32 API. Możecie sami potestować jak to wygląda w praktyce. Sysinternals udostępnia próbkę:

RegHide.zip »

Po uruchomieniu (Vista / Windows 7 w trybie Uruchom jako Administrator) zostanie utworzony w rejestrze klucz null (po zamknięciu narzędzia samoczynnie ulegnie kasacji ta "prezentacja"):

HKEY_LOCAL_MACHINE\Software\Systems Internals\Can't touch me!\0

Edytor rejestru regedit zobaczy tylko:

HKEY_LOCAL_MACHINE\Software\Systems Internals\Can't touch me!

Nazwa nie jest właściwie przeczytana, a w konsekwencji nie jest możliwe otworzenie ani usunięcie takiego klucza, co jest oznajmiane takim typem błędu:

Dołączona grafika

Klucze tego rodzaju mogą zostać wykryte / podglądnięte via programy specjalizowane w wyszukiwaniu rootkitów. Przykład z programu GMER w jaki sposób jest widziana ta próbka:

Dołączona grafika

Technika wstawiania znaków null jest wykorzystywana przez różne zjawiska, zarówno trojany / rootkity, jak i nieszkodliwe oprogramowanie blokujące w ten sposób jakieś określone informacje.
I teraz jest pytaniem jak skasować takie klucze w warunkach rzeczywistych:




Narzędzia do usuwania kluczy "null":



RegDelNull

Strona domowa



Aplikacja Microsoftu, wspominana również w bazie wiedzy: KB2021860. Narzędzie jest typem konsolowym, tzn. obsługiwanym z linii komend. Dla ułatwienia obsługi należy je umieścić w którejś ze ścieżek uwzględnianych w Zmiennych środowiskowych np. w folderze C:\WINDOWS. Narzędzie wykonuje detekcję wszystkich kluczy null, które umie rozpoznać, a to oznacza iż w dialogu interakcyjnym z użytkownikiem mogą zostać zadane pytania o skasowanie kluczy, które są częścią systemu i nie powinny być usuwane, dlatego też należy zareagować przez "n". Przykład:


Microsoft Windows [Wersja 6.0.6002]
Copyright © 2006 Microsoft Corporation. Wszelkie prawa zastrzeżone.

C:\Windows\system32>regdelnull hklm -s

RegDelNull v1.10 - Delete Registry keys with embedded Nulls
Copyright © 2005-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Null-embedded key (Nulls are replaced by '*'):

HKLM\SOFTWARE\Microsoft\Environment*

Delete? (y/n) n

Null-embedded key (Nulls are replaced by '*'):

HKLM\SOFTWARE\Systems Internals\Can't touch me!*

Delete? (y/n) y
Key successfully deleted.

Scan complete.


C:\Windows\system32>



SWReg

Strona domowa

Platforma: Windows 2000/XP/2003/Vista/Windows 7



Alternatywa na wbudowany w system konsolowy wariant edytora rejestru REG.EXE. Narzędzie posiada dodatkowe polecenie SWReg NULL, umożliwiające usuwanie oraz dodawanie kluczy typu NULL:


Microsoft Windows [Wersja 6.1.7600]
Copyright © 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

C:\Windows\system32>swreg null /?
SteelWerX Registry Console Tool 3.0
Written by Bobbi Flekman 2006 ©

SWReg NULL supports a few subcommands for dealing with NULL embedded strings
in the Registry. One thing to note that the embedded nulls are only supported
in the keyname. All possible actions have been augmented with a parameter
that signifies the NULL character, by default this is \0.

SWReg NULL ADD FullKeyName [/v ValueName | /ve] [/t Type] [/s Separator]
[/d Data] [/b] [/n NULL sequence]

See the information with ADD.

SWReg NULL DELETE FullKeyName [/v ValueName | /ve | /va] [/n NULL sequence]

See the information with DELETE.

SWReg NULL QUERY FullKeyName [/v ValueName | /ve | /s ] [/n NULL sequence] [/f]

See the information with QUERY.
In addition you can specify with /f that all non-embedded NULL keys must be
filtered.

Polecenie usuwania wygląda następująco:

swreg null delete "Przykładowy klucz\0"


C:\Windows\system32>swreg null delete "HKEY_LOCAL_MACHINE\SOFTWARE\Systems Internals\Can't touch me!\0"

C:\Windows\system32>

W poleceniu można zastosować także sekwencję zastępczą, np. może to być znak gwiazdki *:

swreg null delete "Przykładowy klucz*" /n *


C:\Windows\system32>swreg null delete "HKEY_LOCAL_MACHINE\SOFTWARE\Systems Internals\Can't touch me!*" /n *

C:\Windows\system32>



NtRegEdit - Native Registry Editor

Strona domowa

Platforma: Windows 2000/XP



Nietypowy edytor rejestru, który operuje w natywnym API, co oznacza iż jest zdolny zobaczyć takie klucze, a także wykonywać na nich operacje typu usuwanie lub tworzenie tak jakby to się działo na regedit wbudowanym w system. Ciekawy projekt, ale wysoce eksperymentalny i zabugowany. Niestety także nie aktualizowany, choć da się uruchomić na Windows Vista/7.

Dołączona grafika





#3
picasso

    Administrator

  • Administratorzy
  • 11 029 postów
Klucze bez uprawnień
"Odmowa dostępu" / "Błąd przy usuwaniu klucza"




Metoda przez zmianę uprawnień kasowanych kluczy:


Dołączona grafikaWindows XP/2003


Start > Uruchom > regedit

Z prawokliku na dany klucz wybierz Permissions / Uprawnienia:

Dołączona grafika

Kliknij Add / Dodaj:

Dołączona grafika

Wpisz dokładną nazwę swojego konta i potwierdź:

Dołączona grafika

Podświetl swoje konto na liście a na dole zaznacz Full Control / Pełna kontrola i potwierdź:

Dołączona grafika

Teraz z prawokliku ten klucz możesz kasować. Jeżeli nadal będzie błąd usuwania klucza: Uprawnienia >>> Zaawansowane >>> w pierwszej zakładce na dole zaptaszyć Zamień wpisy uprawnień na wszystkich obiektach podrzędnych.



Dołączona grafika Windows 7 / Vista

Jest drobna różnica w operacji. Po pierwsze regedit ma być zastartowane w trybie uprawnień administracyjnych. Po drugie przed przyznaniem Uprawnień w sposób wyżej opisany, należy dodatkowo przejąć klucz na własność stając się jego Właścicielem:

1. W Start wpisujemy na szukanie słowo regedit, na wyniku z prawokliku Uruchom jako administrator:

Dołączona grafika

2. Przechodzimy do klucza, który chcemy skasować, i z prawokliku nań wybieramy Permissions / Uprawnienia:

Dołączona grafika

3. Otworzy się główne okno z listą użytkowników. Wybieramy button Advanced / Zaawansowane:

Dołączona grafika

4. Przechodzimy do zakładki Owner / Właściciel, zaznaczamy nasze konto, na dole ptaszkujemy opcję Zamień właściciela dla podkontenerów i obiektów i zatwierdzamy wszystko:

Dołączona grafika

5. Powrót na listę >>> button Dodaj >>> wpisać nazwę naszego konta i zatwierdzić >>> zaznaczyć je na liście i zaptaszyć dla niego Pełna kontrola >>> zatwierdzić:

Dołączona grafika

Po zmianie właściciela i dograniu praw dostępowych klucz bez trudu się usuwa wraz z całą zawartością.



Metoda przez zastartowanie regedit z uprawnieniami konta SYSTEM:

Alternatywna metoda usuwania kluczy rejestru, do których nie ma uprawnień, to wywołanie edytora rejestru w innym kontekście zabezpieczeń, czyli z poziomu konta SYSTEM. Tak uruchomiony edytor udostępni klucze jako gotowe do kasacji i nie trzeba przyznawać im praw, albo też proces przyznawania uprawnień zostanie skrócony. Znakiem na systemie XP, że edytor rejestru regedit jest uruchomiony z tak wysokimi uprawnieniami, jest widoczność m.in. podkluczy klucza SAM, które w standardowo uruchomionym regedit są niewidoczne. Na systemach Vista i Windows 7 metoda ta ma mniejsze znaczenie niż na XP. Na tych platformach nastąpiło przewartościowanie i kluczowym kontem jest TrustedInstaller. Niemniej startowanie regedit jako SYSTEM również może się okazać przydatne.
Takie specjalne uruchomienie edytora rejestru można wykonać przy udziale jednego z darmowych narzędzi:



Process Hacker

Strona domowa

Platforma: Windows XP SP2/2003/Vista/2008/Windows 7
Licencja: GPL



Z menu Hacker należy wybrać opcję Run As i wypełnić dialog jak na poniższym obrazku:

Dołączona grafika



PsExec

Strona domowa

Platforma: Windows XP/2003/Vista/2008/Windows 7
Licencja: freeware



Pobierz z linka pakunek PsTools zawierający m.in. narzędzie PsExec. Rozpakuj ściągnięty zip i skopiuj pliki psexec.exe i pdh.dll do folderu system32. Biblioteka pdh.dll może już być obecna w systemie i w takim przypadku należy ominąć kopiowanie tego pliku.

Windows 7 / Vista:

W Start w polu szukania wpisz cmd. Na wynikach szukania z prawokliku wybierz opcję Uruchom jako Administrator.

Dołączona grafika

W linii komend wpisz polecenie psexec -s -i -d regedit

Dołączona grafika

Windows 2000/XP/2003:

Start > Uruchom > cmd i wpisz komendę psexec -s -i -d regedit


Jeśli ta komenda zwróci błąd "nie znaleziono", wpiszcie z pełnymi ścieżkami dostępu: C:\WINDOWS\system32\psexec.exe -s -i -d C:\WINDOWS\regedit.exe



SysRun

Strona domowa

Licencja: freeware



Do działania aplikacji jest potrzebna zainstalowana paczka Microsoft Visual C++ 2005 Service Pack 1 Redistributable.



Automatyczne narzędzia:



RegASSASSIN

Strona domowa

Platforma: Windows 2000/XP/Vista
Licencja: freeware



Do kompletu mała aplikacja portable (nie wymagająca instalacji a ważąca tylko 68KB) umożliwiająca kasowanie z rejestru kluczy do których nie ma uprawnień. Program ma opcję resetowania uprawnień i rekursywnego kasowania całego klucza wraz z jego zawartością. Wystarczy program uruchomić, wkleić w pasek adresów ofensywny klucz, pozostawiając ptaszki na Reset permissions i Delete registry key and all subkeys, i kliknąć w button Delete.

Dołączona grafika










Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych