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:
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:
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ń.

|