Obsah:
Video: EKONOMIKA DARU: Mění se tradiční ekonomické vztahy? (AJ a ČJ) 2025
V tomto případě Chip Andrews, odborník na bezpečnost serveru SQL Server, sdílí tuto zkušenost s (etickým) hackováním do klienta databáze odhalit bezpečnostní nedostatky. Tento příklad poskytuje varovný příběh, který chrání vaše důležité informace tím, že trvá na zabezpečení spolehlivé databáze.
Situace
Při rutinním testu penetrace pan Andrews provedl povinné vyhledávání Google, výzkum doménových jmen, otisky prstů operačního systému a kontrolu portů, ale tato konkrétní stránka byla těsně uzavřena. Při přechodu na webovou aplikaci běžící v systému byl okamžitě konfrontován s přihlašovací stránkou pomocí autentizace pomocí šifrovaných formulářů SSL.
Při kontrole zdroje webové stránky zjistil, že skryté pole App_Name bylo předáno aplikaci vždy, když se uživatel pokoušel o přihlášení k webu. Mohlo by to být, že vývojáři pravděpodobně neprovedli správné ověření vstupů na tento nevinně vyhlížející parametr? Lov byl spuštěn.
Výsledek
Nejdříve bylo načase sestavit soubor nástrojů. V době tohoto penetračního testu pan Andrews dává přednost použití následujících parametrů: Paros Proxy, Absinthe, Cain & Abel, Datový zloděj a Microsoft SQL Server Management Studio / SQL Server (Express Edition), které jsou k dispozici zdarma.
Pro začátek používal Paros Proxy, aby umožnil větší kontrolu a zviditelnění webových požadavků na webový server.
Po spidrování stránky pro dostupné stránky a provedení rychlé kontroly zranitelnosti pro SQL injection bylo potvrzeno, že parametr App_Name způsobil, že aplikace způsobila chybu výjimky Error 500, což naznačuje selhání aplikace. Penetrační testy jsou jednou z mála příležitostí, kdy je žádoucí výsledek žádoucí selhání aplikace.
Protože selhání aplikace ukázalo, že pan Andrews mohl do kódu odesílaného z aplikace do databáze vložit neúmyslné znaky, zjistil, zda je to vyloučitelná podmínka.
Společným testem, který pracuje s databázemi Microsoft SQL Server, je vstříknutí příkazu, jako například WAITFOR DELAY '00: 00: 10 ', který způsobí, že databázový server zhasne po dobu 10 sekund. V aplikaci, která zpravidla vrátí stránku za sekundu nebo méně, je konzistentní 10sekundové zpoždění dobrým indikátorem, že můžete vkládat příkazy do streamu SQL.
Dále se pan Andrews pokusil použít nástroj Data Thief k útoku na přihlašovací stránku.Tento nástroj se snaží vynutit databázi, aby pomocí příkazu OPENROWSET zkopírovala data z cílové databáze do databáze pana Andrewse umístěného na Internetu.
Toto je obvykle velmi účinný způsob, jak sifonovat velké množství dat z ohrožených databází, avšak v tomto případě byl jeho útok zničen! Správce databáze na cíl zakázal funkci OPENROWSET správnou konfigurací volby Disable Adhoc Distributed Queries.
Pane Andrews s náležitým úsilím přetrvával s dalším nástrojem - Absinthem. Tento nástroj používá techniku nazvanou slepou SQL injekci , která umožňuje stanovení údajů pomocí jednoduchých odpovědí na databázi nebo ano. Například nástroj může požádat databázi, zda první písmeno tabulky je menší než "L. "
Pokud ano, aplikace by nemusela dělat nic, ale pokud ne, aplikace by mohla učinit výjimku. Pomocí této jednoduché binární logiky je možné tuto techniku použít k odhalení celé struktury databáze a dokonce i dat uložených uvnitř - i když velmi pomalu. Pomocí nástroje zjistil tabulku citlivých informací o zákaznících a stáhl několik stovek záznamů, které klientovi ukázaly.
Konečně, bylo načase vyzkoušet si poslední zákrok databanky. Nejprve pan Andrews naložil nástroj s názvem Cain & Abel a nastavil jej tak, aby vstoupil do režimu čichání. Pak pomocí Paros Proxy a již identifikovaného ohroženého parametru použil rozšířenou uloženou proceduru xp_dirtree, která je dostupná pro uživatele databáze SQL Serveru, aby se pokusil zobrazit adresář na svém počítači připojeném přes Internet pomocí cesty Universal Naming Convention.
Toto přinutilo cílovou databázi, aby se skutečně pokoušela autentizovat proti stroji pana Andrewse. Vzhledem k tomu, že Cain & Abel poslouchal na drátu, získal hash výzvy, která byla použita pro ověření sdílené sdílené složky.
Předáním tohoto hashovacího hesla do crackeru hesel postaveného na Cain & Abel, pan Andrews by měl uživatelské jméno a heslo účtu, pod kterým byl zranitelný server SQL spuštěn jen za určitou dobu.
Mohl by tento pirátský účet používat stejné heslo jako účet administrátora webové aplikace? Bylo by toto heslo totožné s účtem místního správce na hostiteli? To byly otázky na další den. Bylo načase shromáždit všechny shromážděné údaje, připravit zprávu pro klienta a dal nástroje na další den.
Chip Andrews je spoluzakladatel bezpečnostní poradenské společnosti Special Ops Security, Inc. a vlastníka SQLSecurity. com, který má více zdrojů o zabezpečení Microsoft SQL Server, včetně nástroje SQLPing3. Co-autor pro několik knih o zabezpečení serveru SQL Server a přednášející Black Hat, pan Andrews prosazuje zabezpečení serveru SQL a zabezpečení aplikací od roku 1999.