IPRO - PC Magazine Romania, Decembrie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB
Securitatea Rețelei
Alexandru Ioan Lazăr
Instrumente (2) - Tux&Co
Vorbisem data trecută despre scanere, programe care scanează o mașină-țintă
și întorc informații despre ea. Scanerele sunt indispensabile oricărui hacker
sau cracker - dar în același timp sunt necesare administratorilor. În fond,
cum ar putea un administrator să-și prote☺eze rețeaua dacă nu știe care îi sunt
vulnerabilitățile?
Totuși - cum probabil ți-ai imaginat - un hacker nu-ți va face rău doar cu
un scanner. Ai văzut data trecută că informațiile întoarse de ma☺oritatea scannerelor
nu dau decât informații restrânse - o ,,hartă" a serviciilor, cel mult
prezența unei vulnerabilități în sistemul țintă (care uneori poate nici să nu
fie prezentă). Evident, un spărgător va avea nevoie și de alte instrumente…
Scamatoriile lui Tux
Cei mai mulți hackeri sau crackeri folosesc Linux. Asta e clar - și normal,
de vreme ce Linux este gratuit, sigur din unele puncte de vedere, rapid online
și offline, și dispune de foarte multe compilatoare și interpretoare. Unii folosesc
SunOS (excelent sistem, dar cam greu de procurat în România).
Am citit pe usenet despre oameni care folosesc Plan 9 (de la Bell Labs) sau
chiar Windows XP (care este mai sigur ca până acum). Când vreau să-mi ,,testez"
rețeaua, eu unul folosesc Linux Slackware, iar serverele web și ftp rulează
Debian - alegerea e a fiecăruia. Ei bine, toate aceste sisteme (mai puțin WinXP,
care are nevoie de instrumente 3rd party) au în comun o serie de utilitare mai…
speciale ☺.
Degetul lui Tux
Sau finger (nu-i așa că sună aiurea?). Finger poate fi folositor unui hacker,
din mai multe motive. Haideți să vedem întâi ce a întors comanda aceasta asupra
unei mașini din rețeaua mea (este vorba de un calculator pe care rulează Red
Hat 5, domeniul test.ro este fictiv)…
# finger @rh5target.test.ro
Login name: root
Directory /
Last login Mon Oct 06 6:33
No plan
In real life:
Phone: 6536030
Email: [email protected]
Shell: /sbin/sh
Prima linie arată sintaxa comenzii. Aici, @ ține locul caracterului * din cazul
expresiilor regulate. Comanda finger întoarce informații legate de contul de
utilizator - ultima logare, directorul home, shell-ul folosit, precum și informațiile
din fișierul .plan - un fișier ,,ascuns", propriu fiecărui utilizator.
Cum s-ar putea folosi un atacator de aceste date? La prima vedere, nu e nimic
interesant de văzut. Și totuși:
- Primele două linii dezvăluie numele utilizatorului logat și directorul
său. Fiind vorba de root, probabil că e un administrator, deci un atacator
nesinucigaș ar amâna momentul atacului (nu întotdeauna; dacă root nu e administrator,
aceasta e o greșeală gravă de configurare pe care spărgătorul o va exploata
sigur). De asemenea, prin interogări repetate, atacatorul poate afla nume
de utilizator valide - și apoi poata afla o parte din structura de directoare.
- Linia a treia arată atacatorului când s-a logat utilizatorul root. Folosind
mai multe interogări finger, el poate afla "agenda" acelui utilizator
- și își poate da seama când sunt șanse mici să existe un administrator logat,
pentru a declanșa atacul.
- A șasea linie dovedește nevoia unei parole sigure. Dacă aș încerca să obțin
acces de la distanță la acea mașină, numărul de telefon ar fi printre primele
parole pe care le-aș încerca.
Rețineți că finger nu e disponibil în toate versiunile Linux/UNIX - din motivele
enumerate mai sus, unele distribuții nu includ demonul finger. Unele îl includ
(Red Hat 9 de exemplu) dar trebuie să creați manual fișierul .plan (se găsește
în directorul fiecărui utilizator).
Finger este folosit în special în mediile academice sau pentru a oferi mai
multe informații despre un server (împătimiții FTP au văzut, desigur, mesa☺ul
finger for more info care sugerează o comandă finger pentru a afla mai multe
informații). Eu recomand însă dezactivarea totală a serviciului finger (chiar
dacă nu există un fișier .plan, finger va arăta unele informații, de exemplu
numele utilizatorului logat, deci poate dezvălui nume de utilizator valide).
Dacă finger vă este neapărat necesar, folosiți măcar un demon special - rfingerd
sau cfinger (ultimul e recomandat).
Gazda lui Tux
Vi s-a părut că finger nu este ceva nesigur? Stați să vedeți utilitarul host…
Host întoarce informații despre un calculator-gazdă din Internet. Mi se pare
a fi cel mai periculos utilitar (deși vor fi destui care să sară și să-mi spună
că nu e așa). Iată un fragment din fișierul generat de comanda host: vezi
pe CD-ROM-ul revistei, în directorul /surse/ipro01.txt.
...care demonstrează și puterea emulatoarelor, domeniul test.ro nu este real,
face parte dintr-o rețea virtuală. La prima vedere, nu poate fi cine știe ce
pericol acolo. Totuși, iată la ce mă gândesc eu când văd aceste înregistrări ☺:
- Test.ro, wtarg.test.ro și wtargii.test.ro folosesc Win95. Dacă există directoare
partajate în rețea, eu le-aș putea vedea conținutul prin declararea mea ca
guest.
- Rh5targ.test.ro. Am făcut o greșeală când am dat numele acesta: am dezvăluit
că pe calculatorul acela rulează Red Hat 5. Iată cum am dezvăluit date despre
rețeaua mea. Rh5targ.test.ro este o țintă potențială - e posibil ca serviciul
de protecție a parolelor prin shadowing să nu fie activ. Aceeași greșeală
și cu slack.test.ro - există o șansă serioasă ca slack.test.ro să ruleze Linux
Slackware.
- Dacă există relații de încredere, aș putea lansa un atac prin imitare IP
(ca și Kevin Mitnick). Mă îndoiesc că aceste relații există între vmstest.test.ro/
mactarg. test.ro și alte stații - dar e posibil ca ele să existe în cazul
stațiilor cu Windows 95.
- Dacă aș vrea să-mi fac de cap prin rețea, aș încerca în primul rând să
sparg una din stațiile cu Windows 95. Win95 nu are, în stare nativă, suport
pentru consemnarea logărilor - de aceea aș putea sa lucrez aproape nestingherit
pe acea stație pentru a putea afla mai multe date despre rețea (deși, dată
fiind puterea sistemului Windows 95 în rețea…).
Pikamere pentru Tux ...
Să presupunem că cineva a pătruns în sistemul dumneavoastră și a reușit să
fure fișierul /etc/passwd (Linux) sau vreun fișier .pwl (Win9x). Credeți că
a reușit total?
La drept vorbind, dacă a reușit să fure acel fișier, e "tare", dar
nu e destul. Trebuie să le mai și spargă, altfel n-a făcut nimic (rețineți că
un fișier poate fi furat chiar fără ca atacatorul să știe vreun nume de utilizator
și vreo parolă). Din păcate (pentru el, din fericire pentru noi…), orice
fișier care conține parole este criptat.
De aceea, el va trebui să folosească un spărgător de parole. Schema de criptare
nu-i va permite să spargă orice fișier. De altfel, așa ceva e imposibil. S-a
găsit însă o soluție: folosirea unui dicționar de parole.
Un program care sparge parole va lua, pe rând, fiecare cuvânt dintr-un fișier-dicționar,
și îl va compara cu parola (tehnică numită și brute force - forță bruta). Dacă
un cuvânt din dicționar corespunde cu parola, programul îi va da atacatorului
parola respectivă, și atacul va putea fi continuat. Să vedem cât de bune au
fost parolele mele ... vezi pe CD-ROM-ul revistei, în directorul /surse/ipro02.txt.
Mai pe scurt, The Password Cracker (scris de Alec Muffet, cel mai "tare"
program de spart parole) mi-a făcut parolele de rușine, ghicind una dintre ele.
Mai grav e faptul că parola spartă era cea a utilizatorului root (admin mai
sus), ceea ce înseamnă că oricine o are va putea să-și facă de cap prin rețeaua
mea.
Există o multitudine de instrumente care pot face așa ceva (eu unul am găsit
peste 200 numai pentru spart parole Linux…), dar mă voi abține să prezint
aici link-urile - sunt puține situri legale care le găzduiesc, chiar dacă deținerea
și utilizarea lor în scopuri nefrauduloase sunt perfect legale.
Celelalte scamatorii ...
OK, cam atât pentru azi. Mai multe informații pe această temă veți putea găsi
pe Internet, în trei locuri: USENET, ftp și multe situri de prin underground-ul
Internetului.
Înarmați-vă cu răbdare și, pentru liniștea mea, citiți de trei ori legislația
înainte să faceți ceva ce eu am descris până acum.
Mult noroc!
|