Verificați site-ul php hacking-ul

Verificați jurnalele de acces


Ce ar trebui să înceapă undeva, aș dori să vă împărtășesc unele dintre intrările din jurnalul de acces (log de acces) site-ul prietenului meu piratat.


Este adesea necesar să se verifice accesul la jurnalele de server, dar dacă nu ești atent, URL-ul, cum ar fi cele de mai sus, care la prima vedere par inofensive, pot merge direct trecut tine.

Să luăm în considerare liniile de jurnal de mai sus, nimic nu te atinge?

Vă rugăm să rețineți că accesul la cererile de jurnal POST, nu GET cereri.
Cel mai probabil, atacatorii vrut să facă un jurnal de acces mai greu de remarcat ca majoritatea revistelor nu păstrează datele post.

Identificați fișierul PHP rău intenționat


Există mai multe moduri în care ar identifica fișierele suspecte PHP pe server, aici sunt cele mai bune.
Sfat: Aceste instrucțiuni sunt executate din directorul rădăcină al site-ului.

Căutare fișiere PHP recent modificate


Să începem cu un exemplu simplu, nu ați efectuat modificări ale codului php pentru un timp, următoarele căutări comanda toate fișierele PHP în arborele directorul curent care au schimbat în ultima săptămână. Opțiunea Moră se poate schimba la voință, de exemplu, mtime -14 timp de două săptămâni.


Serverul piratat returnat următoarele rezultate:


Toate aceste script-uri sunt încărcate de un atacator pentru a descărca director de utilizator.
Notă: Această comandă va produce rezultate false, dacă le-ați modificat fișierele PHP într-o anumită perioadă de timp. Următoarele metode sunt mult mai eficiente.

Căutați toate fișierele PHP cu cod suspect


Acest lucru nu este cea mai bună abordare, următoarele echipe sunt în căutarea pentru fișierele PHP care conțin scenariu de atac. Începem simplu și obține mai mult cu căutarea avansată.

În primul rând verificați fișierul care conține eval, base64_decode, gzinflate sau str_rot13.


Sfat: Primul parametru este de căutare pentru directorul de căutare, punctul înseamnă directorul curent (și toate subdirectoarele). Puteți schimba această setare pentru orice director existent, în scopul de a reduce rezultatele căutării, de exemplu:


Dacă ștergeți opțiunea -l de grep, acesta va afișa fișierul text potrivit. Pentru a merge mai departe, aș fi profitat de această echipă combinat, care este mai frecventă


Această comandă va găsi fișiere care conțin php eval (str_rot13 (base64_decode (
sintaxa grep este foarte simplu și se poate schimba pentru a se potrivi nevoilor dumneavoastră. Aruncati o privire la expresia de pe partea de sus, pe care cautam, aceasta este «eval * (str_rot13 * (base64_decode * (»
Gap în urma * înseamnă zero sau mai multe caractere spațiu. Mai sus expresia de mai sus este valabilă pentru următoarele linii:


Sfat: Expand expresie funcții care pot fi utilizate cu rea intenție, cum ar fi e-mail, fsockopen, pfsockopen, stream_socket_client, Exec, sistem și passthru de căutare. Puteți combina toate aceste valori într-o singură comandă:


Notă: vom folosi egrep, nu grep, vă permite să utilizați expresii regulate extinse.
În cele din urmă, există cel puțin o metodă cunoscută, pentru a ascunde codul:


preg_replace cu e modificator va executa acest cod, se pare ciudat, dar este doar comprimat în format de cod php base64 folosind unele coduri de caractere hexazecimale.
\ X65 \ x76 \ X61 \ X6c \ X28 \ x67 \ X7a \ x69 \ x6E \ X66 \ X6c \ X61 \ X74 \ X65 \ X28 \ X62 \ X61 \ x73 \ X65 \ X36 \ X34 \ x5F \ x64 \ X65 \ X63 \ x6F \ x64 \ X65 \ X28 se traduce ca eval (gzinflate (base64_decode (și \ X29 \ X29 \ X29 \ X3b, cum)));

Această comandă vă va ajuta să găsiți utilizarea preg_replace:

Sfat: Dacă aveți o tona de rezultate de la această comandă, puteți salva într-un fișier, sau de a le redirecționa către un alt program numit mai puțin, care vă permite să vizualizați rezultatele pe o singură pagină la un moment dat. F-cheie este responsabil pentru derularea înainte, q cheie pentru ieșire.


Cu toate echipele de căutare de mai sus putem continua în același spirit.

Sfat: să acorde o atenție la X29 hexazecimal la sfârșitul anului? Această paranteză de închidere, și X3b virgulă. Puteți verifica acest lucru rulând:


Puteți utiliza pentru a găsi găsi aceste coduri hexazecimale în fișiere PHP pentru investigații suplimentare.


Aceasta este o abordare bună dacă știi, care nu utilizează valorile hexazecimale de cod.

constata faptele


Cele mai multe metode presupun că atacatorul descarcă fișiere la nord, și folosește o anumită formă de obfuscating codul, atunci când atacatorii pot modifica pur și simplu un cod php existent. În acest caz, codul ar arata natural si se potrivesc cu stilul unui script existent sau poate fi confuz.

Pentru a rezolva această problemă aveți nevoie de o copie curată a codului dacă utilizați un script PHP pe scară largă, cum ar fi WordPress, vbulletin, IP.Board etc. - ați terminat. Dacă nu, sper că utilizați gastrointestinală sau alt sistem de control al versiunii și puteți obține o versiune curată a codului.

Pentru acest exemplu voi folosi WordPress.

Am două curat WordPress-folderul care conține doar descărca o copie a WordPress și WordPress-compromise, care conține o amenințare undeva în fișierele.


Pot găsi diferențele dintre setul meu și WordPress WordPress curat, care rulează comanda:


Am exclus wp-conținutul acestei cercetări, pentru că fiecare are propriile sale teme și plugin-uri.
Sfat: asigurați-vă că utilizați aceeași versiune WordPress pentru comparație.

Aici sunt rezultatele cautarii mele:


El a descoperit cod rău intenționat!

Din curiozitate.


Un atacator cu 3 linii de cod? În primul rând, atacatorul ar fi învățat informații folositoare:

Căutați întotdeauna cataloagele disponibile pentru a descărca codul executabil


Folosind metode care sunt prezentate mai sus, este ușor de a găsi un cod php în directorul de boot. Wordpress pentru acest lucru ar fi:


Sfat: Iata un script bash foarte simplu care caută directoarele disponibile pentru înregistrarea și php fișiere în ele. Rezultatul va fi salvat într-un fișier results.txt. Script-ul funcționează recursiv.


Call fișier search_for_php_in_writable si da-l la exercitarea dreptului


Salvați acest fișier în directorul acasă, și apoi navigați la directorul în care aveți de gând să găsiți și să executați următoarea comandă:


Notă: În cazul în care site-ul dvs. este pe un server virtual și serverul Web nu este configurat în siguranță, site-ul dvs. nu poate fi singurul subiect pentru a ataca. Total coajă de descărcări PHP pe site-urile vulnerabile, în esență, este un instrument care oferă un atacator browserul de fișiere. Ei pot folosi acest instrument care ar descărca script-uri de atac pentru toate dosarele de pe server sunt disponibile pentru înregistrare, cum ar fi directorul de descărcare.
Notă: Atacatorii de obicei, încercați să încărcați imagini care conțin cod PHP, deci verificați și alte extensii, metodele enumerate mai sus.


Nu mă crezi? Acest fișier a fost încărcat ca imagine jpg pe un site piratat. Se pare că a fost confundat cu un binar de date. Aici este același fișier în format mai „ușor de citit“.

Încă nu se poate citi? Așa cum eu sunt la o inspecție mai profundă. Toate acest cod este destinat pentru a rula această funcție:


Ceea ce face ca acest scenariu nu contează, trebuie să înveți, trebuie să verificați directorul de boot.
Daca te intrebi, este doar un scenariu de test care ar vedea dacă gazda vulnerabile, atacul a avut loc mai târziu.

Unde altundeva pot ascunde cod rău intenționat?


În cazul în care codul php pentru a genera dinamic conținutul paginii și site-ul dvs. a fost compromisă, un atacator poate scrie cod malițios în baza de date. Puteți efectua, de asemenea, o analiză mai aprofundată.

Du-te la site-ul dvs., atunci când se încarcă pagina verifica codul sursă HTML și salvați-l undeva pe computer, de exemplu mywebsite.txt; Executați următoarea comandă

Căutare în baza de date


Poate că un atacator a adăugat codul de la baza de date. Acesta va fi numai în cazul în care script-ul stochează codul personalizat, cum ar fi plug-in-uri în baza de date. Deci, nu vBulletin. Deși acest lucru este rar, dar ar trebui să știi asta. Dacă sunteți în acest caz au fost rupte, atacatorul ar putea insera iframe în tabele care afișează datele de pe site-ul tau.

În acest exemplu, vom folosi MySQL sau derivați ai acestuia.

Pentru aceasta, aș dori să ia PHPMyAdmin și nu este obișnuită pentru mine, eu prefer să folosesc instrumente de linie de comandă, cod, ele sunt disponibile, dar acest lucru este un instrument convenabil pentru căutarea.

Personal, eu nu alerga PHPMyAdmin pe un server de producție, pot descărca o copie a bazei de date și rulați-l pe un server local. În cazul în care baza de date este mare, nu este recomandat să caute bucăți mici de text de pe serverul de producție.

Deschideți PHPMyAdmin selectați baza de date și faceți clic pe „Căutare“. Puteți căuta siruri de caractere, cum ar fi% base64_% și% eval (%, sau orice altă combinație pe care am subliniat deja.

Verificați fișierele .htaccess dacă utilizați Apache


Dacă utilizați serverul Web Apache, verificați fișierele .htaccess pentru modificări suspecte.

auto_append_file și auto_prepend_file includ alte fișiere PHP sunt la începutul sau la sfârșitul tuturor scripturi PHP, atacatorii le pot utiliza pentru a include codul lor.


Următoarele căutări comandă fișiere toate subdirectoarele .htacsess care conțin „http“. Rezultatul căutării este o listă a tuturor normelor redirectionari, care pot fi de regulă rău intenționate.


Unele redirecționări rău intenționate se bazează pe agentul utilizator. Ar fi bine să se uite utilizarea HTTP_USER_AGENT în fișiere .htaccess. Comenzile anterioare pot fi modificate cu ușurință, doar schimba cuvântul cheie la punctul de punct.

Pentru a crește nivelul de securitate, dacă este posibil, opriți utilizarea .htaccess în directorul și se transferă configurația la configurația de bază a apache.

În „lumea reală“


Deci, de ce oamenii doresc să hack site-ul dvs., ce înseamnă acest lucru pentru ei? Pentru unii este un hobby, pentru alții o sursă de venit.

Aici este un exemplu de script-ul încărcat pe site-ul atacator piratat. Ea se bazează exclusiv pe operațiunile poștale, cele mai multe dintre jurnalele de server web ar fi inutil în acest caz. Am fost capabil de a obține interogări jurnalele postare:


script-ul rău intenționat zombi practic SPAM, care va trimite nici un e-mail pentru oricine care utilizează serverul dvs. pentru a trimite e-mailuri prin poștă cererea. Tastele din fiecare post o interogare poate fi schimbat, iar scenariul este foarte inventiv, acesta verifică caracteristicile instalate și se adaptează la ea. De exemplu, în cazul în care e-mail php () nu este disponibil, va încerca să creeze un socket pe portul 25 și trimite e-mail direct prin SMTP.

Dacă utilizați sfaturile date în acest articol, nu va fi dificil de a găsi un astfel de scenariu.

concluzie


Dacă utilizați scripturi PHP publice ca noi WordPress, să acorde o atenție la actualizările critice și de securitate nu numai pentru instalarea de bază, dar, de asemenea, pentru extensii, cum ar fi plug-in-uri. Cele mai multe atacatorii vor încerca să găsească mii de site-uri cu vulnerabilități cunoscute, așa că, dacă sunt vulnerabile, veți găsi în cele din urmă.

Completați cerere on-line, vă vom contacta în cel mai scurt timp posibil și să răspundă la toate întrebările.