Cum să verific dacă am eliminat complet un hack WordPress?

10 iun. 2011, 15:31:42
Vizualizări: 17.9K
Voturi: 110

Blogul meu WordPress pentru distracție de la http://fakeplasticrock.com (rulează WordPress 3.1.1) a fost hackuit - afișa un <iframe> pe fiecare pagină astfel:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

Am făcut următoarele:

  1. Am actualizat la versiunea 3.1.3 prin sistemul integrat de actualizare WordPress
  2. Am instalat Exploit Scanner (multe avertismente critice despre fișiere neobișnuite) și AntiVirus (acesta a arătat totul verde și curat, așa că l-am dezinstalat după rulare)
  3. Am schimbat parola MySQL
  4. Am schimbat toate parolele utilizatorilor WordPress
  5. M-am conectat prin FTP și am descărcat întregul sistem de fișiere (nu este mare, acesta este un host Linux partajat doar pentru WordPress)
  6. Am comparat sistemul de fișiere cu un ZIP oficial de WordPress 3.1.3 și am eliminat sau suprascris orice nu se potrivea

Sunt destul de sigur că:

  • toate fișierele de pe disc sunt fișiere oficiale WordPress 3.1.3
  • nu există fișiere "extra" pe disc în afară de tema mea /theme, pluginul Exploit Scanner (pe care tocmai l-am descărcat), folderul /uploads și câteva alte fișiere așteptate. Celălalt plugin, wp-recaptcha, se potrivește cu versiunea oficială descărcată
  • Am verificat și fișierul .htaccess și nu pare să fie nimic greșit acolo

Comparare fișiere WordPress 3.1.3 în Beyond Compare

Nu am atins baza de date, dar mă întreb cum ar putea fi ceva din baza de date rău intenționat fără cod PHP special care să-l facă să funcționeze?

Blogul meu WordPress pare acum OK și fără hack (cred), dar mai sunt alte lucruri pe care ar trebui să le verific?

1
Comentarii

Ar trebui să menții blogul la zi. :)

fuxia fuxia
20 iul. 2014 19:49:51
Toate răspunsurile la întrebare 12
9
84

Ai identificat vectorul de exploitare? Dacă nu, este posibil să te expui la viitoare exploatări.

Alte aspecte de luat în considerare:

  1. Schimbă parolele utilizatorilor de administrare WordPress - finalizat
  2. Schimbă parola contului de hosting
  3. Schimbă parolele FTP
  4. Schimbă parola utilizatorului MySQL - finalizat
  5. Schimbă prefixul tabelelor din baza de date
  6. Actualizează nonces/salt din wp-config
  7. Verifică permisiunile fișierelor/directoarelor
  8. Blochează accesul la navigarea în directoare, prin .htaccess
  9. Parcurge tot conținutul din articolul Codex Întărirea WordPress
  10. Parcurge tot conținutul din articolul Codex FAQ Site-ul meu a fost hackuit
10 iun. 2011 15:58:31
Comentarii

scuze, am uitat să menționez -- am schimbat parolele WordPress desigur. Am actualizat postarea și am bifat pe listă aici! Nu-mi pot imagina niciun mod prin care ar putea avea parola de hosting sau parola FTP, doar intrând în WordPress; această informație nu se află nicăieri în sistemul de fișiere sau în baza de date.

Jeff Atwood Jeff Atwood
10 iun. 2011 16:18:09

Ai invers vectorul probabil de exploatare; nu este probabil WordPress -> cont de hosting, ci mai degrabă cont de hosting (prin server sau FTP) -> WordPress.

Chip Bennett Chip Bennett
10 iun. 2011 16:20:28

Aș adăuga "schimbă numele de utilizator admin". Ar trebui să fie obligatoriu!

Bainternet Bainternet
10 iun. 2011 16:26:00

@chip cum așa? parolele de hosting și FTP nu le-am folosit efectiv de 12 luni (evident, le-am folosit astăzi), și sunt ultra-aleatorii, așa cum au fost atribuite de host.

Jeff Atwood Jeff Atwood
10 iun. 2011 16:31:13

Faptul că este un hosting partajat (potențial) nu te expune la probleme?

Travis Northcutt Travis Northcutt
10 iun. 2011 16:33:56

@Jeff unele exploit-uri la nivel de server nu le poți controla (în afară de a găsi un host mai bun). Dar doar pentru că tu nu ai folosit credentialele de hosting/FTP nu înseamnă că cineva nu le-a furat, obținând acces la contul tău de hosting.

Chip Bennett Chip Bennett
10 iun. 2011 16:36:49

Există un exploit foarte comun care circulă în prezent, prin care un malware infectează stația de lucru (sau stația de lucru a unui contractor), caută parolele salvate în programul FTP preferat (sau un program cu suport FTP) și le trimite atacatorului, care apoi compromite site-ul și îl folosește pentru a răspândi același malware către alți webmasteri. Aceasta este o modalitate comună prin care parola FTP este furată. Ceea ce este deosebit de insidios este faptul că se răspândește prin site-uri normale precum al tău, nu prin cele dubioase unde ai fi mai atent.

tylerl tylerl
10 iun. 2011 17:09:03

Cred că ai uitat să menționezi scanarea temelor și pluginurilor. Unii oameni le descarcă de pe site-uri dubioase, iar multe dintre ele au deja cod rău intenționat - inclusiv injecții SQL în baza de date (nu va ajuta dacă le dezactivezi sau ștergi pur și simplu).

krembo99 krembo99
9 feb. 2014 10:50:43

Pentru informare, dacă ai acces la linia de comandă, WP-CLI are o comandă verify checksums care va verifica fiecare fișier față de versiunea de pe wordpress.org

William Turrell William Turrell
4 apr. 2015 11:58:00
Arată celelalte 4 comentarii
3
26

Analizând mesajul "safe browsing" din Google Chrome, apare hack-ul ".cc iFrame" care circulă intens în ultima vreme. Cred că versiunea 3.1.3 va rezolva problema, dar verifică fișierul index.php din directorul principal al site-ului tău, acolo am avut probleme până când am actualizat TOT și am schimbat toate parolele.

Există unele metode FOARTE viclene prin care utilizatorii pot injecta cod în postări și comentarii. Poți rula următoarele interogări în baza de date pentru a le identifica. Am descris restul metodologiei mele de "urmărire" aici.

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

Sper că aceste informații te ajută!

10 iun. 2011 16:00:39
Comentarii

Aș adăuga SELECT * FROM wp_* WHERE comment_content LIKE '%<?%' și SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%' doar pentru a fi sigur...

SeanJA SeanJA
10 iun. 2011 16:04:40

Oh, o ultimă observație. Presupun că ai Google Webmaster Tools conectat la acest domeniu. După ce rezolvi problemele, poți trimite o cerere din contul tău Webmaster Tools pentru ca Google să rescaneze site-ul și să elimine mesajul de avertizare. De obicei procesează cererile din Webmaster Tools în decurs de o zi. Altfel, rămâi pe "lista neagră" pentru vreo 90 de zile.

Dillie-O Dillie-O
10 iun. 2011 16:06:09

Am găsit o grămadă de rezultate, dar e din cauza iframe-urilor încorporate pentru Vimeo.

tooshel tooshel
10 iun. 2011 16:19:22
6
20

Baza de date poate conține și cod rău intenționat: conturi de utilizator ascunse sau valori care sunt afișate fără a fi escapan undeva. De asemenea, verifică directorul de încărcare pentru fișiere care nu ar trebui să fie acolo.

Și încercați să înțelegeți cum a găsit atacatorul calea spre site-ul vostru. Pe conturile partajate, adesea întregul server este afectat. Verifică celelalte site-uri de pe server pentru bloguri sau alte pagini compromisate. Citește jurnalul FTP. Dacă nu știi cum s-a întâmplat, nu poți preveni următoarea încălcare.

10 iun. 2011 15:47:11
Comentarii

nu ar găsi Exploit Scanner orice conturi de utilizator ascunse?

Jeff Atwood Jeff Atwood
10 iun. 2011 15:52:34

@Jeff Atwood nu m-aș baza pe asta. Tabela ta de utilizatori nu este atât de mare. Poți să o citești ușor fără niciun plugin.

fuxia fuxia
10 iun. 2011 15:55:31

am verificat tabelul wp_users și doar 2 rânduri, ambele așteptate.. nimic neobișnuit în folderul /upload (doar gif-uri, png-uri și jpeg-uri)

Jeff Atwood Jeff Atwood
10 iun. 2011 16:00:12

@Jeff Atwood Ai verificat fișierele sau doar extensiile? Toate acele fișiere sunt listate în biblioteca media?

fuxia fuxia
10 iun. 2011 16:02:17

Fișierele de imagine sunt o metodă destul de comună de livrare a sarcinii utile. Vezi aici, iar Echipa de Revizuire a Temelor a întâlnit și Teme care folosesc o exploatare similară TIFF.) Deci, da: aș verifica fiecare, pentru a mă asigura că face parte din Biblioteca Media. (Scanare simplă la nivel înalt: verifică imaginile care nu au dimensiuni de thumbnail definite.)

Chip Bennett Chip Bennett
10 iun. 2011 16:16:41

@Chip Bennet Mulțumesc pentru articolul interesant despre Otto - uimitor la ce încearcă spammerii ;)

TheDeadMedic TheDeadMedic
10 iun. 2011 19:03:52
Arată celelalte 1 comentarii
1
13

Îmi pare rău că ai fost hack-uit - dar se pare că ai făcut o treabă bună la recuperare!

Sistemul tău de fișiere pare să fie în regulă, nu aș putea spune că mai este ceva de făcut aici.

Cred că Exploit Scanner ar arunca o avertizare dacă ar găsi scripturi, iframe-uri, PHP (deși periculos doar dacă este eval-uit) sau alte coduri neobișnuite în baza ta de date.

Nu sunt sigur dacă verifică tabelele în afară de postări și comentarii, ar putea fi util să verifici /wp-admin/options.php pentru o privire rapidă și să vezi dacă observi ceva neobișnuit.

Aș verifica și tabelul de utilizatori într-un client MySQL (utilizatorii pot fi în baza de date dar nu vizibili în admin).

10 iun. 2011 15:49:16
Comentarii

cu siguranță o idee bună să rulezi o interogare MySQL pe tabela de utilizatori pentru a te asigura că nu este nimic neașteptat acolo, și am făcut asta. Bun sfat!

Jeff Atwood Jeff Atwood
6 iul. 2011 07:10:03
1

Verifică instrumentele Google Webmaster pentru două aspecte:

  • confirmă că site-ul tău nu a fost marcat ca compromis și solicită reconsiderare dacă este cazul
  • verifică site-ul tău ca Googlebot și asigură-te că nu există spam introdus care este vizibil doar pentru Googlebot - un exemplu în acest sens este hack-ul WP Pharma

De asemenea, aș reimplementa tema sau aș verifica-o extrem de atent. Câteva linii de PHP pot redefini funcțiile de bază ale PHP astfel încât să extragă cod rău intenționat din baza de date, în special din tabelele wp_options cheie / valoare

10 iun. 2011 16:10:41
Comentarii

da, cu siguranță am retrimis site-ul prin Google Webmaster Tools și acum pare "curățat".

Jeff Atwood Jeff Atwood
11 iun. 2011 00:38:30
0

Caută în baza de date prin phpmyadmin după „iframe” sau exportă baza de date și caută în text.

Și verifică utilizatori invizibili în tabela de utilizatori; am văzut utilizatori în tabele care nu apăreau în WP Admin>>Utilizatori.

Clean Options « WordPress Plugins va arăta ce rămășițe de la plugin-uri vechi și posibil vulnerabile au rămas în baza de date.

Tema ta lipsește și tag-ul <head>, așa că aș verifica asta în caz că ai editat tema pentru a elimina link-uri rele.

Și ca de obicei: Cum să găsești o backdoor într-un WordPress hack-uit și Hardening WordPress « WordPress Codex

10 iun. 2011 15:58:58
1

"mai este ceva ce ar trebui să verific?" Trebuie să-ți analizezi procesul și să afli cum ai fost hackuit (aproape sigur pentru că nu ai actualizat la timp sau corect) și să rezolvi și această problemă, nu doar simptomele.

10 iun. 2011 16:00:32
Comentarii

Mă îndoiesc că a avut legătură cu neactualizarea WordPress (deși este posibil, doar că nu este probabil). WordPress în sine este aproape niciodată vectorul de exploit. Vectorii obișnuiți sunt configurația nesigură a gazdei și credentialele FTP furate.

Chip Bennett Chip Bennett
10 iun. 2011 16:03:42
0

Mi s-a întâmplat și mie odată, din cauza unei scurgeri de date pe mediatemple. A trebuit să scriu un plugin pentru a verifica baza de date în căutare de link-uri injectate. Îl poți descărca aici sub formă de gist pe GitHub.

Este destul de ușor de utilizat, are mai mulți pași care oferă feedback și verifică din nou baza de date după ce ai terminat.

Mult succes!

10 iun. 2011 16:01:11
0

Am avut un hack foarte asemănător pe care a trebuit să-l repar pe unul dintre site-urile clienților mei.

Existau scripturi malicioase în sistemul de fișiere (coduri php base64_decode). Totuși, tabelele 'posts' și 'comments' din baza de date au fost compromise, iar codul iframe era împrăștiat și prin acele date.

Aș face cel puțin câteva căutări în baza de date, doar ca să fiu sigur. :)

10 iun. 2011 16:11:06
0

Verificați-vă pluginurile! Până acum, în acest an, au fost lansate 60 de exploatări pentru pluginuri de pe .org. Bănuiesc că numărul real este mult mai mare, deoarece nimeni nu face acest lucru cu dedicare deplină.

Ai menționat că ai doar un plugin, dar acesta avea o vulnerabilitate de securitate (nu știu cât timp a fost expusă și poate nu a fost vectorul).

wp-recaptcha-plugin
Exploatarea a fost lansată: 2011-03-18
Versiunea afectată: 2.9.8

Autorul a declarat că a rescris pluginul în versiunea 3.0, dar nu există nicio mențiune despre patch-ul de securitate.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Jurnalul modificărilor: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

11 iun. 2011 04:43:24
0

Folosesc un server în cloud și am numere de port SSH aleatorii și nu am deloc FTP. Parolele sunt extrem de greu de spart. Toate accesurile root sunt complet interzise. Sunt de acord că WordPress nu va fi vinovatul. Un alt lucru de verificat sunt sesiunile FTP care nu se închid, virusul de pe computerul personal (rețineți că puteți încărca un fișier pe site-ul dvs. și cine încarcă acel fișier poate primi același virus), de asemenea, nu păstrați parolele pe site-uri publice sau private, scrieți-le întotdeauna pe hârtie, niciodată într-un document Word sau Notepad.

În cele din urmă, întrebați-vă gazda dacă a avut recent o încălcare a securității, deoarece ar trebui să aibă un firewall configurat.

11 iun. 2011 05:50:21
0

Verifică data fișierelor tale. Niciun fișier nu ar trebui să aibă o dată de modificare mai recentă decât ultima ta editare/instalare!

Dar și acest lucru poate fi falsificat. Singura modalitate de a fi sigur ar fi să compari (de exemplu, prin comparare hash) toate fișierele cu cele din instalarea originală.

11 iun. 2011 12:49:56