| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |

Otoczenie sieciowe - Sieć SMB

utworzono: 10/11/2002 :: modyfikacja: 06/08/2006
autor: Marcin Moczkowski :: glappo (at) banita (dot) pl

Udostępnianie poprzez rejestr Windows

W systemach Windows wszystkie operacje udostępniania plików są zapisywane w rejestrze systemu. Wiele programów działa przez to bezpośrednio na zmienianiu odpowiednich kluczy w rejestrze. Poniższy opis jest po to żeby dowiedzieć się jak udostępniać poprzez rejestr i jak wiedzieć co mamy udostępnione i jakie są tego ustawienia. Mimo że pomysł udostępnień poprzez rejestr może wydawać się dziwny ale zważywszy na to że standardowo nie mamy dostępnych funkcji np. z udostępnieniami administratorskimi, a dzięki odpowiednim wpisom do rejestru możemy to zmienić. 

Windows 95/98/Me

Szczególnie dobrze są poznane klucze w rejestrze odpowiedzialne za udostępnianie w Windows 95/98/Me. Wynika to zapewne z dwóch rzeczy, że system ten jest dostępny od bardzo długiego czasu oraz stosuje proste metody zapisu informacji o udostępnieniach.

Udostępnianie z kontrola dostępu na poziome zasobów.

Powinieneś już wiedzieć że w Windows 95/98/Me są dostępne dwie metody udostępniania, a ta z kontrolą dostępu na poziomie zasobów jest standardowo ustawiona. Wszystkie w rejestrze co tyczy udostępniania jest zawarte w tym kluczu:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan

Gdy udostępnimy jakiś katalog, jest tutaj tworzony klucz o jego nazwie udziału (powyżej jest to po prostu "Udział") i w nim zapisywane są ustawienia. I tak są to:

  • Flags - wartość DWORD określająca rodzaj udziału, zależnie od wartości (szesnastkowe "końcówki") są to:

    • 191 - folder udostępniony tylko do odczytu 

    • 192 - folder udostępniony do odczytu i zapisu

    • 193 - folder udostępniony w zależności od podanego hasła 

    • 301 - folder administracyjny (systemowy) udostępniony tylko do odczytu 

    • 302 - folder administracyjny (systemowy) udostępniony do odczytu i zapisu 

    • 303 - folder administracyjny (systemowy) udostępniony w zależności od podanego hasła

  • Pam1enc - wartość binarna w której zakodowane jest hasło  pełnego dostępu, jeśli takie nie zostało ustawione to wartość binarna tego parametru jest równa zero.

  • Pam2enc - wartość binarna w której zakodowane jest hasło dostępu do odczytu, jeśli takie nie zostało ustawione to wartość binarna tego parametru jest równa zero.

  • Path - wartość ciągu w której podana jest ścieżka do udostępnionego udziału (powyżej jest to po prostu "C:\KATALOG")

  • Remark - wartość ciągu w której podany jest komentarz do udziału jeśli takowy został ustawiony ( powyżej jest to po prostu "Komentarz")

  • Type - wartość DWORD określająca typ udziału czyli:

    • 0 - udostępniony udział jest katalogiem

    • 1 - udostępniony udział jest drukarką

Hasła udostępnień udziałów podane w wartościach Pam1enc i Pam2enc są kodowane prostym algorytmem XOR z 8-bitowm rotującym kluczem. Wynika z tego że kod danego znaku jest zależy jak widać od jego miejsca w haśle. Jako że hasło udziału może mieć maksymalnie 8 znaków poniżej jest podane osiem kolejnych wartości dla kolejnych miejsc w haśle, danego znaku (nieźle zakręciłem ;-). w każdym razie w tej tabeli masz wszystkie możliwe znaki jakie możesz użyć w haśle smb

A =74 =db =0c =e7 =12 =e8 =95 =2b
B =77 =d8 =0f =e4 =11 =eb =96 =28
C =76 =d9 =0e =e5 =10 =ea =97 =29
D =71 =de =09 =e2 =17 =ed =90 =2e
E =70 =df =08 =e3 =16 =ec =91 =2f
F =73 =dc =0b =e0 =15 =ef =92 =2c
G =72 =dd =0a =e1 =14 =ee =93 =2d
H =7d =d2 =05 =ee =1b =e1 =9c =22
I =7c =d3 =04 =ef =1a =e0 =9d =23
J =7f =d0 =07 =ec =19 =e3 =9e =20
K =7e =d1 =06 =ed =18 =e2 =9f =21
L =79 =d6 =01 =ea =1f =e5 =98 =26
M =78 =d7 =00 =eb =1e =e4 =99 =27
N =7b =d4 =03 =e8 =1d =e7 =9a =24
O =7a =d5 =02 =e9 =1c =e6 =9b =25
P =65 =ca =1d =f6 =03 =f9 =84 =3a
Q =64 =cb =1c =f7 =02 =f8 =85 =3b
R =67 =c8 =1f =f4 =01 =fb =86 =38
S =66 =c9 =1e =f5 =00 =fa =87 =39
T =61 =ce =19 =f2 =07 =fd =80 =3e
U =60 =cf =18 =f3 =06 =fc =81 =3f
V =63 =cc =1b =f0 =05 =ff =82 =3c
W =62 =cd =1a =f1 =04 =fe =83 =3d
X =6d =c2 =15 =fe =0b =f1 =8c =32
Y =6c =c3 =14 =ff =0a =f0 =8d =33
Z =6f =c0 =17 =fc =09 =f3 =8e =30
1 =04 =ab =7c =97 =62 =98 =e5 =5b
2 =07 =a8 =7f =94 =61 =9b =e6 =58
3 =06 =a9 =7e =95 =60 =9a =e7 =59
4 =01 =ae =79 =92 =67 =9d =e0 =5e
5 =00 =af =78 =93 =66 =9c =e1 =5f
6 =03 =ac =7b =90 =65 =9f =e2 =5c
7 =02 =ad =7a =91 =64 =9e =e3 =5d
8 =0d =a2 =75 =9e =6b =91 =ec =52
9 =0c =a3 =74 =9f =6a =90 =ed =53
0 =05 =aa =7d =96 =63 =99 =e4 =5a
space =15 =ba =6d =86 =73 =89 =f4 =4a
~ =4b =e4 =33 =d8 =2d =d7 =aa =14
` =55 =fa =2d =c6 =33 =c9 =b4 =0a
! =14 =bb =6c =87 =72 =88 =f5 =4b
@ =75 =da =0d =e6 =13 =e9 =94 =2a
# =16 =b9 =6e =85 =70 =8a =f7 =49
$ =11 =be =69 =82 =77 =8d =f0 =4e
% =10 =bf =68 =83 =76 =8c =f1 =4f
^ =6b =c4 =13 =f8 =0d =f7 =8a =34
& =13 =bc =6b =80 =75 =8f =f2 =4c
* =1f =b0 =67 =8c =79 =83 =fe =40
( =1d =b2 =65 =8e =7b =81 =fc =42
) =1c =b3 =64 =8f =7a =80 =fd =43
- =18 =b7 =60 =8b =7e =84 =f9 =47
_ =6a =c5 =12 =f9 =0c =f6 =8b =35
+ =1e =b1 =66 =8d =78 =82 =ff =41
= =08 =a7 =70 =9b =6e =94 =e9 =57
[ =6e =c1 =16 =fd =08 =f2 =8f =31
] =68 =c7 =10 =fb =0e =f4 =89 =37
{ =4e =e1 =36 =dd =28 =d2 =af =11
} =48 =e7 =30 =db =2e =d4 =a9 =17
; =0e =a1 =76 =9d =68 =92 =ef =51
: =0f =a0 =77 =9c =69 =93 =ee =50
' =12 =bd =6a =81 =74 =8e =f3 =4d
" =17 =b8 =6f =84 =71 =8b =f6 =48
, =19 =b6 =61 =8a =7f =85 =f8 =46
< =09 =a6 =71 =9a =6f =95 =e8 =56
. =1b =b4 =63 =88 =7d =87 =fa =44
> =0b =a4 =73 =98 =6d =97 =ea =54
? =0a =a5 =72 =99 =6c =96 =eb =55
/ =1a =b5 =62 =89 =7c =86 =fb =45
\ =69 =c6 =11 =fa =0f =f5 =88 =36
| =49 =e6 =31 =da =2f =d5 =a8 =16

Udostępnianie z kontrola dostępu na poziome użytkownika.

Gdy twój Windows 95/98/Me posiada ustawioną kontrole dostępu na poziomie użytkownika opcje udostępnień są zawarte w dwóch kluczach. pierwszy z nich to jak w kontroli dostępu na poziomie hasła to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Network\LanMan

Znaczenie wszystkich opcji "Path," "Remark," i "Type" w tym kluczu jest takie jak poprzednio. Wartości "Pam1enc" i "Pam2enc" posiadają wartość binarna zero i są teraz ignorowane. Natomiast wartość DWORD "Flags" jest ustawiona na 193. Uprawnienia do udostępnionych zasobów są zawarte w kluczu:

HKEY_LOCAL_MACHINE\Security\Access\ i dalej ścieżka do folderu. 

Czyli dla udostępnionego katalogu znajdującego się na ścieżce "C:\katalog", klucz w rejestrze ma taką wartość:

HKEY_LOCAL_MACHINE\Security\Access\C:\katalog\

Wartości binarne w tym kluczy mają postać "DOMENTA_NT\USER" czyli np. "WARAIACI\GLAPPO". Domena NT występuje tutaj gdyż Windows 95/98/Me weryfikuje poprze kontroler tej domeny prawa dostępu użytkowników do udziału. Może również wystąpić tylko "gwiazdka" czyli * oznaczającą grupę "Wszyscy". Uprawnienia są zapisywane w postaci binarnej i są "składane" (dodawane) z poniższych wartości (są one wymienione niestandardowych prawach dostępu):

  • 0x0100 - Czytanie plików

  • 0x0200 - Zapisywanie do plików

  • 0x0400 - Tworzenie plików i folderów

  • 0x1000 - Usuwanie plików

  • 0x2000 - Zmiana atrybutów plików

  • 0x8000 - Podgląd listy plików

  • 0x4000 - Zmiana kontroli dostępu

  • 0x0080 - oznaczenie grupy użytkowników (np. "Wszyscy" lub "Domain users")

  • 0xb700 - jest to pełny dostęp i oznacza wszystko poza zmianą zmiana kontroli dostępu

  • 0xf700 - jest to pełny dostęp wraz ze zmianą zmiana kontroli dostępu

Rozgryzienie (składanie) tego wygląda tak (przykłady z obrazka powyżej):

  • 0xb700 - użytkownik glappo posiada pełny dostęp

  • 0x8100 - użytkownik jarek posiada prawo tylko do odczytu

  • 0x0400 - użytkownik yaro posiada prawo tworzenia plików

Windows NT 4.0/2000/XP/2003

W Windows NT 4.0/2000/XP/2003 ustawienia udostępnionych zasobów zawarte jest w tym kluczu rejestru:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Shares

Gdy udostępnimy jakiś katalog, jest tutaj tworzony poprzez wartość REG_MULTI_SZ (binarna) o jego nazwie udziału (powyżej jest to po prostu "Udział") gdzie w formie tekstowej są określone parametry udziału,. I tak są to:

  • CSCFlags - opcja związana z ustawieniami buforowania niedostępna w Windows NT 4.0 i wcześniejszych, czyli:

    • 0 - ustawienie standardowe oznaczające "Ręczne buforowanie dokumentów"

    • 16 - ustawia "Automatyczne buforowanie dokumentów"

    • 32 - ustawia "Automatyczne buforowanie programów i dokumentów"

    • 48 - opcja uniemożliwiająca buforowanie czegokolwiek w danym udziale 

  • MaxUses - określa limit użytkowników mogących korzystać jednocześnie z udziału. Jeśli nie zostało to specjalnie określone w opcjach udostępniania parametr ten ma tutaj wartość 4294967295 czyli maksymalna ilość dla danego rodzaju systemu (zależne czy Workstation czy Server)

  • Path - określa ścieżkę do udostępnionego udziału (powyżej jest to po prostu "C:\katalog")

  • Permissions - standardowo ustawione na "0" (i nic więcej o tej opcji nie wiem)

  • Remark - określa komentarz do udziału jeśli takowy został ustawiony ( powyżej jest to po prostu "komentarz")

  • Type - określa typ udziału, czyli:

    • 0 - udostępniony udział jest katalogiem

    • 1 - udostępniony udział jest drukarką

Uprawnienia określone są w postaci binarnej w podkluczu Security  ale jeśli uprawnienia do danego udziału jest standardowe, to nie ma wartości dla tego udziału. No i teraz czekam aż ktoś to rozgryzie, gdyż nie wiem i nigdzie nie znalazłem rozpracowanej szczegółowo metody zapisu tych uprawnień. 


Drukuj Dokument