Anatomia unui atac doorway & cloaking cu spam de cazinou
Unul dintre cele mai insidioase atacuri pe care le-am analizat: un site care, din exterior, arăta perfect normal — dar în Google apăreau sute de pagini de cazinou sub domeniul lui, iar rankingul se prăbușea. Iată cum funcționa.
Loader + server de comandă (C2)
Infecția pornea de la un loader PHP care se conecta la un server de comandă extern (C2), autentificat cu o cheie hardcodată. De acolo primea instrucțiuni și conținut spam. Practic, site-ul devenea o piesă dintr-o rețea de spam SEO.
Ce făcea, concret
Comportamentul era împărțit în etape clare: se înregistra la C2, descărca și importa articole spam direct în baza de date sub un autor fals (un ID de utilizator inexistent, peste 1000), injecta backlink-uri ascunse, genera un sitemap fals ca paginile să fie indexate, apoi raporta înapoi la C2.
Cloaking — de-aia nu observi
Partea periculoasă: cod ofuscat era strecurat în functions.php, între niște markere de tip /* custom filters */. Acesta:
- ascundea articolele spam din panoul de admin (nu le vedeai în WordPress);
- servea conținut diferit lui Googlebot față de vizitatorii reali (cloaking);
- înlocuia conținutul paginii cu material de cazinou printr-un script extern.
IOC-uri suplimentare: intrări ofuscate în wp_options (chei hash-uite) și apeluri către domenii externe de tracking.
Cum am curățat
- am scos blocul injectat dintre markerele din
functions.php; - am curățat baza de date:
DELETE FROM wp_posts WHERE post_author = <id fals>, plus opțiunile ofuscate dinwp_options; - am șters sitemap-urile false și fișierele temporare;
- am vânat shell-urile rămase:
grep -rl "eval\|base64_decode\|gzinflate" wp-content/; - am rotit toate credențialele și am cerut reindexarea în Google Search Console.
Lecția
Un atac de cloaking te păcălește și pe tine, și pe Google. Dacă vezi pagini spam indexate dar site-ul „arată bine", verifică întâi functions.php și baza de date — nu doar fișierele vizibile.