Tímto článkem vstoupím na hodně slabý led, protože se musím přiznat, že zatím exploity nejsou mojí silnou stránkou a praxi s nimi mám minimální. Pokusím se zde však sepsat informace, které jsem se o exploitech zatím dozvěděl a vás poprosím o rozpoutání diskuze v komentářích. Klidně mi tam nadávejte, že jsou některé informace nepravdivé, uveďte tam věci na které jsem pozapomněl nebo mi prozatím zůstávají utajeny. Společně se tak můžeme dozvědět spousty zajímavých věcí. Díky.
Tak tedy co to Exploity vlastně jsou a k čemu se využívají
Tento odstaveček začnu otázkou: "Proč vznikají bezpečnostní záplaty?" a hned na ni odpovím. Téměř každý program obsahuje chyby a je jen otázka času kdy tyto chyby někdo objeví a zneužije. Valná většina chyb, kterých využívají hackeři, je způsobena špatným naprogramováním kódu, který přistupuje k zásobníku (buffer overflow) nebo tam kde se do proměnných ukládají zadané hodnoty. Pokud je takový vstup špatně ošetřen může hacker vložit větší množství dat než na jaké je program připraven a přepsat tak část programu předem připravenými daty. Program poté provede útočníkův kód nebo zkolabuje. Výsledkem je většinou příkazová řádka s právy uživatele, který daný program na napadeném počítači spustil. Člověk, který takovou chybu v programu objeví na ni často napíše exploit, což je vlastně malý program, který využije nalezené chyby a vrátí útočníkovy například právě příkazovou řádku. Více se o tvorbě exploitů a principu jejich fungování dočtete na stránkách, které uvádím v závěru. Teprve po nějakém čase kdy je exploit vypuštěn přichází softwarové firmy se svými bezpečnostními záplatami tzv. patche, které danou chybu opravují. Některé programy jsou však chybami prolezlé skrz naskrz a sotva je jedna chyba opravena objeví se v zápětí nová. Administrátoři pak často zanedbávají údržbu neustálím záplatováním a jejich programy jsou často náchylné dosti dlouho.
Jaké druhy exploitů existují
-remotní exploity
Tyto exploity se spouštějí na útočníkově stoji a mají za cíl odeslat na napadený systém data, která způsobí pád napadeného programu a vrácení příkazové řádky. Získaná práva jsou většinou stejná jako měl uživatel, který napadený program spustil. Ne vždy jde tedy o roota. Často se toho dosáhne tak, že služba, která naslouchá na určitém portu obdrží od útočníkova stroje větší množství dat než na jakou má deklarovány proměnné nebo zásobník a dojde tak k přepsání paměti. Na napadeném systému nemusíme tudíž mít u remotních exploitů konto s příkazovou řádkou. Tyto exploity mohou využívat ke svému šíření i některé červy, které se pomocí děr v systému do něj mohou dostat bez pomoci uživatele.
-lokální exploity
Tento druh exploitů se od remotních liší tím, že je musíme spustit na napadeném systému. K tomu je nutné abychom na něm měli konto nebo se nějakým způsobem dostali k príkazové řádce. Exploit zkopírujeme na napadený systém a následně ho tam spustíme. Naším cílem v tomto případě bývá zvýšení privilegií, nejčastěji na roota.
Jak se exploity používají
Útočník, který má v plánu hacknout nějaký server si nejprve musí zjistit jaké programy jsou na něm spuštěny a jaké jsou verze těchto programů. Využije nejčastěji scanování portů s následným pročítáním bannerů. Existuje také celá řada specializovaných scannerů, které dokáží server oťuknout velmi důkladně a vypíší seznam programů, které jsou na něm spuštěny včetně jejich verzí a u náchylných programů zároveň uvedou odkaz na stránky s popisem chyby a často i potřebným exploitem. Tyto programy po sobě však zanechávají značně nápadné stopy a není nejvhodnější je využívat pokud chceme zůstat nepozorováni. Pokud chceme zjistit potřebné informace například o webovém serveru bez jediného přístupu na server můžeme k tomu využít Google podle postupu uvedeného v Příručce Google hackera. Verzi mailového softwaru můžeme často zjistit z hlavičky obdrženého emailu. Útočník poté navštíví některý z webů na němž jsou rozsáhlé databáze exploitů a vybere si právě ten exploit, který je určen pro chybu v daném programu. Pár odkazů na tyto weby uvádím v závěru tohoto článku. Exploitů existuje mnoho druhů. Většina jich jsou nezkompilované programy v jazyku C, ale může být exploitem třebas i vhodně napsaná adresa s cestou a parametry, zadaná do vyhledávače, která vyvolá spuštění daných příkazů.
Musíme si tedy nejprve pečlivě přečíst dokumentaci k danému exploitu a zjistit tak jak jej správně použít. Použití každého exploitu je jiné a není tudíž možné uvést zde jednoduchý návod jak se všechny exploity používají. Důležité je vědět, že exploity je většinou možné zkompilovat a spustit jen na systému, ve kterém byly vytvořeny. Tzn, že exploit vytvořen v Linuxu budete jen s velkými obtížemi rozbíhat ve Windows. Některé exploity také nebude možné použít pokud nemáte veřejnou IP adresu tzn. pokud jste skryti na lokální síti za proxy serverem.
Mnoho tvůrců exploitů také do nezkompilovaných kódů úmyslně vkládá chyby znemožňující kompilaci, které mají za cíl zabránit použití exploitu lamerům, kteří nejsou schopni tyto chyby odstranit. V poslední době se také začíná praktikovat vkládání trojských koní. Útočník, který důkladně neprostuduje kód exploitu se tak může velice jednoduše jeho použitím infikovat.
Odkazy na zajímavé články o exploitech
Taky vám přetéká 1/2
Taky vám přetéká 2/2
Přetečení bufferu
Buffer overflow exploit
Prielom 14
Pár odkazů na zdroje exploitů
bismark.extracon.it
junkcode.8k.com
www.web-hack.ru
www.ussrback.com
Doufám, že jsem v tomto článku neuvedl příliš zavádějících informací, ale pokud přeci jen ano, pak pevně věřím, že se v komentářích dočkáme nápravy :)
.cCuMiNn.