Skip to content
Scanare de malware WordPress cu WP-CLI: ghid pas cu pas

Scanare de malware WordPress cu WP-CLI: ghid pas cu pas

Scanarea de malware prin WP-CLI este o metodă esențială pentru situațiile în care un plugin de securitate WordPress nu mai poate fi de încredere, fie pentru că site-ul a fost compromis înainte de instalarea pluginului, fie pentru că malware-ul însuși a dezactivat sau modificat pluginurile de securitate. Linia de comandă oferă acces direct la fișierele site-ului, independent de starea WordPress-ului.

WP-CLI include comenzi native pentru verificarea integrității fișierelor WordPress și poate fi completat cu scripturi personalizate pentru detectarea pattern-urilor malware comune în fișierele PHP.

Scanare de malware WordPress cu WP-CLI: ghid pas cu pas

Avantajul principal al scanării prin WP-CLI față de un plugin este că operează la nivel de sistem de fișiere, nu prin HTTP. Un site compromis al cărui front-end returnează erori sau redirecționări poate fi scanat complet din terminal.

Accesați serverul prin SSH sau prin terminalul din cPanel și navigați în directorul instalării WordPress înainte de a rula comenzile de mai jos.

Verificarea integrității fișierelor WordPress

Prima comandă de rulat pe orice site suspect este verificarea checksumurilor fișierelor WordPress core față de valorile oficiale din depozitul WordPress.org:

# Verifica integritatea WordPress core
wp core verify-checksums

# Verifica integritatea tuturor plugin-urilor instalate
wp plugin verify-checksums --all

# Verifica integritatea unei teme specifice
wp theme verify-checksums numeTema

Orice fișier modificat față de versiunea oficială va apărea în output cu prefixul CHECKSUM_MISMATCH sau FILE_ADDED. Fișierele adăugate în directoarele core WordPress (wp-admin, wp-includes) sunt un semn clar de compromitere.

Identificarea fișierelor modificate recent

Malware-ul este adesea injectat în fișierele existente sau adăugat ca fișiere noi. Identificați fișierele modificate în ultimele 7 zile:

# Fisiere PHP modificate in ultimele 7 zile
find . -name "*.php" -newer wp-config.php -not -path "./wp-content/cache/*" -type f

# Fisiere modificate in ultimele 24 ore (inclusiv JS si HTML)
find . -mtime -1 -type f -not -path "./wp-content/cache/*"

# Fisiere PHP in directoare care nu ar trebui sa contina PHP
find wp-content/uploads -name "*.php" -type f

Prezența fișierelor PHP în directorul uploads este aproape întotdeauna un semn de compromitere. WordPress nu plasează cod PHP în uploads în mod normal.

Căutarea pattern-urilor malware comune

Malware-ul PHP folosește frecvent funcții specifice pentru a executa cod obscurcat sau descărcat din surse externe. Căutați aceste pattern-uri în fișierele site-ului:

# Cauta functii PHP folosite frecvent in malware
grep -r --include="*.php" -l \\
    "eval(base64_decode" \\
    . 2>/dev/null

# Cauta cod obfuscat tipic malware
grep -r --include="*.php" -l \\
    "str_rot13\\|gzinflate\\|gzuncompress\\|str_replace.*chr" \\
    . 2>/dev/null

# Cauta shell-uri web (fisiere cu comenzi de sistem)
grep -r --include="*.php" -l \\
    "system(\\|exec(\\|shell_exec(\\|passthru(" \\
    . 2>/dev/null

# Cauta linkuri externe ascunse (spam SEO)
grep -r --include="*.php" -l \\
    "iframe\\|document.write" \\
    wp-content/themes 2>/dev/null

Verificarea utilizatorilor administratori necunoscuți

Malware-ul creează frecvent conturi de administrator ascunse pentru acces persistent. Verificați lista completă a utilizatorilor cu privilegii ridicate:

# Listeaza toti utilizatorii administrator
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

# Verifica daca exista utilizatori creati recent
wp user list --role=administrator \\
    --fields=ID,user_login,user_registered \\
    --orderby=user_registered \\
    --order=DESC

Orice cont de administrator pe care nu îl recunoașteți trebuie șters imediat și parolele celorlaltor conturi schimbate.

Curățarea malware-ului identificat

Dacă ați identificat fișiere compromise, nu le ștergeți direct dacă sunt fișiere WordPress core sau plugin-uri oficiale. Reinstalați-le din sursele originale:

# Reinstaleaza WordPress core (pastreaza wp-content si wp-config.php)
wp core download --force

# Reinstaleaza un plugin specific
wp plugin install numePlugin --force

# Sterge un utilizator malitios
wp user delete ID_utilizator --reassign=ID_administrator_legitim

Automatizarea scanărilor periodice

Configurați un cron job pentru scanări automate săptămânale și trimiterea rezultatelor prin email:

#!/bin/bash
# Salvati ca /home/user/scan-malware.sh
cd /home/user/public_html
REZULTAT=$(wp core verify-checksums 2>&1)
if echo "$REZULTAT" | grep -q "CHECKSUM_MISMATCH\\|FILE_ADDED"; then
    echo "$REZULTAT" | mail -s "Alerta securitate WordPress" admin@exemplu.ro
fi

Concluzie

Scanarea cu WP-CLI oferă o vizibilitate completă asupra stării fișierelor WordPress, independent de starea aplicației web. Verificarea checksumurilor, identificarea fișierelor PHP în directoare sensibile și căutarea pattern-urilor malware cunoscute sunt pașii esențiali ai oricărei investigații de securitate WordPress.

Pentru o curățare profesională a malware-ului și remedierea completă a unui site compromis, consultați serviciile noastre de curățare malware WordPress și audit de securitate.

Despre autor

Dorel Tănase este specialist în optimizarea site-urilor pentru motoarele de căutare. Lucrează în online din 1997 și în SEO din 2007, iar activitatea se desfășoară prin GO SEO MARKETING S.R.L. din Alba Iulia. Se ocupă de audit tehnic, arhitectura site-urilor, conținut și construirea legăturilor.

Sus