UNIX, Linux, Programare, Scripting, Retele
unix, linux, programare, script, hosting, server, retele
|
Lista Forumurilor Pe Tematici
|
UNIX, Linux, Programare, Scripting, Retele | Reguli | Inregistrare | Login
POZE UNIX, LINUX, PROGRAMARE, SCRIPTING, RETELE
Nu sunteti logat.
|
Nou pe simpatie: iulian93 la Simpatie.ro
 | Femeie 25 ani Ilfov cauta Barbat 27 - 68 ani |
|
operabilus
B.O.F.H.
 Din: Sillycon Valley
Inregistrat: acum 20 ani
Postari: 200
|
|
Sunt la moda serverele web sharuite... si e normal. Cine vrea sa dea 150 Euro/luna ca sa inchirieze un server intr-un datacenter pentru o firma mica ? Mai bine isi pune site-ul pe un server web sharuit. Ce inseamna server web in regim de sharing ? E un server inchiriat de o firma intermediara care ofera conturi de web hosting pe serverul respectiv. In felul asta se ajunge la preturi de genu' 1$/luna pentru un cont de hosting mic (50MB). Oferta e tentanta. Problema apare in alt loc. Un cont de hosting serios trebuie sa aiba si suport de PHP si MySQL, nu ? Odata ce ai acces la PHP se pot face multe gainarii, inclusiv rularea scripturilor de genul c99shell. Presupunem ca toti clientii sunt de buna credinta dar nu toti se pricep sa securizeze o pagina asa ca se intampla ca altii sa le injecteze o pagina c99shell in cont din care pot rula un exploit sau pot accesa baza de date etc. Ce putem face ? Sunt softuri comerciale care se ocupa de "urmarirea" scripturilor dar nimanui nu-i convine sa dea o groaza de bani pe asa ceva cand poate sa gaseasca singur "infractorul" doar cu comenzile standard care le pune la dispozitie orice Linux/BSD.
Bun, sa o luam cu inceputul. Care sunt pasii care trebuie urmati ca sa prindem infractorul ?
1. Identificarea procesului cu probleme 2. Gasirea persoanei care a apelat pagina respectiva 3. Urmarirea procesului 4. Eliminarea procesului si securizarea zonei de acces
1. Identificarea procesului cu probleme Cum ne dam seama daca am fost hackeriti ? E simplu. Apache porneste mai multe thread-uri (fire de executie) cate unul pentru fiecare cerere. S-ar putea ca la un moment dat cineva sa incerce sa ruleze un c99shell sau orice altceva. Ca sa il gasim e suficient sa folosim comanda ps. Cum ? Simplu: ps auxf ne va arata toate procesele care ruleaza. Fiecare linie din rezultat o filtram folosind grep in felul urmator: ps auxf | grep nobody. Comanda asta ia rezultatul returnat de ps si afiseaza liniile care contin "nobody" (adica userul pe care ruleaza apache de obicei). In rezultatul afisat cautam ceva iesit din comun. Adica, cautam toate procesele rulate de nobody si care au fost pornite cu "bash" sau "pstree" sau orice alta comanda Linux care normal nu e nevoie sa fie apelata de un site. Un exemplu ar fi urmatorul:
Code:
nobody 1830 0.0 0.9 28000 15280 ? S 17:50 0:00 _ /bin/sh |
In exemplul asta puteti vedea ca nobody ruleaza un shell. E clar ca nu e un script care ruleaza de capul lui ci un user care stie ce face ( sau un lamer care ruleaza comenzile primite de la vecinu' ). Ce mai vedem interesant aici ? Vedem PID-ul sub care ruleaza procesul. PID-ul este important pentru ca trebuie sa stim cine si ce face. De asemenea putem vedea de cat timp ruleaza procesul respectiv (in cazul nostru 0:00 - tocmai a fost pornit).
2. Gasirea persoanei care a apelat pagina respectiva Am gasit un proces cu probleme. What's next ? Trebuie sa aflam cat mai multe date despre procesul respectiv. De exemplu, vedem ca procesul respectiv ruleaza "bash" sau "pstree". Ce putem face ? Cautam toate paginile care contin "bash" sau "pstree" sau ce ne intereseaza pe noi. Pentru asta folosim find si grep in felul urmator:
Code:
#ce /home
#find . -name "*.php" -exec grep -q "bash" {}; -print |
Comanda de mai sus cauta toate fisierele php care contin "bash". Odata ce am gasit fisierele avem cam tot ce ne trebuie. Daca fisierul care contine "bash" e fisier_hackerit.php studiem log-urile din apache. Intram in directorul in care sunt pastrate logurile si executam comanda:
Code:
cat access.log | grep fisier_hackerit.php |
Ca rezultat vom vedea IP-ul persoanei care a accesat pagina respectiva, deci IP-ul atacatorului. Urmatorul pas ar fi sa citim din nou fisierul access.log sa vedem ce alte pagini au mai fost incarcate ca urmare a cererii IP-ului respectiv. Asta se face exct ca mai sus:
Code:
cat access.log | grep IP-ul_atacatorului |
Avem IP-ul, tot ce avem de facut mai departe e sa intram pe dnsstuff.com si sa vedem tara si eventual orasul din care a intrat pe site.
3. Urmarirea procesului Bun... am gasit un proces cu probleme, am gasit PID-ul si stim ca tocmai a fost pornit. Ce putem face ? Urmatorul pas ar fi sa aflam cui ii apartine initiativa. Cum facem asta ? Folosind strace. strace e un program care primeste un PID (Process ID) si urmareste toate apelurile de sistem care le executa procesul respectiv. Cu ce ne ajuta asta ? Urmarim tot ce face programul... daca apeleaza un alt server sau daca incearca sa scrie ceva intr-un fisier cautam detalii. Sa iau un caz simplu, strace imi poate arata ca PID-ul de mai sus incearca sa scrie ceva in /home/user_hackerit/public_html/index.php ceva. Din asta observ ca user_hackerit e victima si PID-ul respectiv sigur are o legatura cu hackingul. De asemenea tot aici putem vedea daca ruleaza un program care incearca sa se conecteze undeva (un bot pentru IRC de exemplu)
4. Eliminarea procesului si securizarea zonei de acces Bun, avem procesul, stim de unde a fost lansat, tot ce avem de facut e sa eliminam vulnerabilitatea. Cateva idei ca sa o eliminam ar fi urmatoarele:
1. Blocam din iptables/ipfw/pf sau ce filtru folositi IP-ul persoanei respective 2. Stergem scriptul cu problema si alte fisiere care ar putea sa fie cu probleme (poate si-a copiat un exploit sau ceva). 3. Incercam sa ne dam seama cum a ajuns sa aiba acces la server, de ce vulnerabilitate a site-ului s-a folosit 3.1 Verificam logurile sa vedem daca nu a intrat pe ssh, telnet sau alt serviciu care ruleaza 3.2 Daca nu a intrat prin alte servicii, probabil s-a folosit de PHP 3.2.1 Verificam permisiunile sa nu existe nici un director cu permisiuni mai mari de 755 si nici un fisier cu permisiuni mai mari de 644 3.2.2 Verificam paginile php din directorul userului hackerit si vedem care sunt vulnerabile la "code injection" sau alte chestii de genul asta.
Cam atat. Nu e un tutorial foarte detaliat dar sunt convins ca am dat suficiente informatii ca sa va descurcati in cazul in care sunteti atacat. Pentru mai multe informatii postati aici nelamuririle (sau completarile - ca mai sunt multe de facut). Bafta !
P.S. Sper sa nu fiti niciodata nevoiti sa cititi in disperare tutorialul 
-- by operabilus --
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
|
andoseg
Newbi
Inregistrat: acum 19 ani
Postari: 32
|
|
|
| pus acum 19 ani |
|
operabilus
B.O.F.H.
 Din: Sillycon Valley
Inregistrat: acum 20 ani
Postari: 200
|
|
Invata sa citesti printre randuri... tocmai ti-am spus cum sa hackeresti peste 80% din site-urile de net gen 3x.ro sau as.ro 
Si... just for the record... daca vrei sa fi cineva invata tacticile din ambele parti. Invata sa penetrezi sisteme dar invata si sa securizezi si sa urmaresti intrusii. E singurul mod in care iti poti forma o viziune larga care sa-ti permita titlul de "hacker" 
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
|
andoseg
Newbi
Inregistrat: acum 19 ani
Postari: 32
|
|
wait wait ! nu vreau sa fiu hacker ! a fi hacker trebuie ani multi de cunostinte si programare in diferitele limbaje de programare.pana peste ani multi , e ceva. eu asta inteleg prin cuvantul hacker. vreau doar sa am habar cu ce se mananca ! nu visez la titlul asta. daca am avut putin entuziasm , mi l-au spulberat "dragutzele " persoane cu care am discutat "foarte frumos" . deja sunt dezgustat. vreau doar sa stiu si eu cate ceva alea alea. poate ep viitor o sa fiu mai entuziasmat cine stie. don;t true in the future. live in present
printre randuri ? tot nu ma prind noi astia din sud suntem cam grei de cap 
Modificat de andoseg (acum 19 ani)
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
|
Sad_Dreamer
Membru
Inregistrat: acum 19 ani
Postari: 57
|
|
tipule :-) deci...scripturile php se ruleaza pe server ...din cate shtiu eu...si pui si "injectezi" un c99shell la un prost care nu shtie sa ishi securizeze pagina si bingo :-P...am citi un rand si asta am inteles :-)
Modificat de Sad_Dreamer (acum 19 ani)
_______________________________________ Portal SkullBox SkullBox Forum IP Finder and web browser details revealer
|
|
| pus acum 19 ani |
|
|
andoseg
Newbi
Inregistrat: acum 19 ani
Postari: 32
|
|
|
| pus acum 19 ani |
|