🢂Jak usunąć pliki malware z WordPressa z konsoli
Malware w WordPressie to zagrożenie, które może wpłynąć nie tylko na działanie strony, ale również narazić na szwank reputację firmy i bezpieczeństwo danych użytkowników.
W tym wpisie opiszę, jak za pomocą prostych kroków i narzędzi, możesz zidentyfikować i wyeliminować złośliwe oprogramowanie ze strony. Skupię się na praktycznych poradach dotyczących korzystania z wiersza poleceń oraz zapytań SQL, które pomogą Ci w szybkim zlokalizowaniu i neutralizacji potencjalnych zagrożeń.
Pamiętaj, że prewencja i regularne monitorowanie to klucz do ... ble ble ble. Miłej zabawy
Krok po kroku
Aby usunąć malware z WordPressa w konsoli (SSH), możesz wykonać następujące kroki. Pamiętaj, że wymaga to pewnej wiedzy technicznej i ostrożności:
- Zaloguj się do serwera za pomocą SSH.
- Zrób kopię zapasową swojej strony, używając polecenia
tar
dla plików imysqldump
dla bazy danych. Abo bądź twardy i niech się dzieje ... - Znajdź podejrzane pliki. Użyj
grep
lub innych narzędzi, aby wyszukać typowe szkodliwe kody, np.:
grep -ril "base64_decode" .
- Skorzystaj z narzędzi do skanowania. Możesz zainstalować narzędzia linii poleceń, takie jak
maldet
(Linux Malware Detect) lubclamav
(Clam AntiVirus), aby przeskanować i zidentyfikować pliki z malware (polcean również PHP Antimalware Scanner, Nikto, Loki czy Yara). - Ręczne usuwanie. Gdy zidentyfikujesz szkodliwe pliki, możesz je usunąć lub zastąpić czystymi wersjami. Użyj
rm
do usuwania lubscp
/sftp
do wgrywania czystych wersji plików. - Aktualizuj WordPressa, wtyczki i motywy. Użyj WP-CLI, narzędzia do zarządzania WordPressem z linii poleceń, aby zaktualizować wszystko do najnowszych wersji:
wp core update
wp plugin update --all
wp theme update --all
- Nadpisz pliki i znajdz różnice Dobrą praktyką jest również (po zrobieniu aktualizacji) nadpisanie projektu pobranymi nowymi wersjami plików (po aktualizacji). Dzięki temu zobaczysz, które z plików nie zostały napisane (inna data pliku) i dużym prawdopodobieństwem tam znajdują się malware.
# Znajdź pliki zmodyfikowane po określonej dacie w katalogu1
find katalog1 -type f -newermt "2023-01-01" > nowsze_pliki_katalog1.txt
# Znajdź pliki zmodyfikowane po tej samej dacie w katalogu2
find katalog2 -type f -newermt "2023-01-01" > nowsze_pliki_katalog2.txt
# Porównaj listy plików
diff nowsze_pliki_katalog1.txt nowsze_pliki_katalog2.txt
# Porównanie zmian między dwiema datami
git diff --name-only "@{2023-01-01}" "@{2023-02-01}"
- Zmień hasła i klucze bezpieczeństwa w
wp-config.php
. - Sprawdź i oczyść bazy danych. Szukaj podejrzanych wpisów, które mogą być związane z malware. Możesz użyć polecenia:
mysql -u nazwa_użytkownika -p nazwa_bazy_danych
aby zalogować się do mysql, a aastępnie poszukaj podejrzanych wpisów za pomocą odpowiednich zapytań SQL.
Po wykonaniu tych kroków ważne jest, aby regularnie monitorować swoją stronę pod kątem znaków ponownej infekcji i utrzymywać aktualność wszystkich składników systemu zarządzania treścią.
Jedno polecenie
Aby skutecznie wyszukać pliki mogące zawierać złośliwe oprogramowanie w instalacji WordPressa, korzystając z jednego polecenia i koncentrując się na najczęściej wykorzystywanych sygnaturach malware, takich jak eval
, base64_decode
, gzinflate
, str_rot13
czy innych, możesz użyć poniższego polecenia grep.
Polecenie to skanuje rekursywnie wszystkie pliki w bieżącym katalogu (i podkatalogach), szukając wspomnianych ciągów:
grep -rilE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(|exec\(|system\(|shell_exec\(|header\(|fopen\(|proc_open\(" > PlikiDoSprawdzenia.txt
Wyjaśnienie składni:
grep
- narzędzie do wyszukiwania tekstów,r
lub-recursive
- przeszukuje rekursywnie pliki w katalogu i podkatalogach,i
- ignoruje wielkość liter,l
- wyświetla tylko nazwy plików zawierających dopasowanie,E
- umożliwia używanie wyrażeń regularnych rozszerzonych, co pozwala na wyszukiwanie wielu wzorców oddzielonych znakiem|
.
Pamiętaj, aby po zlokalizowaniu podejrzanych plików dokładnie sprawdzić, czy rzeczywiście zawierają one złośliwe oprogramowanie. Niektóre legalne skrypty mogą używać tych funkcji w niezłośliwy sposób.
Szukamy w bazie danych WordPressa
Aby wyszukać podejrzane wpisy w bazie danych WordPressa za pomocą zapytań SQL, skupisz się na tabelach, które najczęściej są celem ataków, takich jak wp_posts
, wp_options
, wp_users
, i wp_comments
.
Przed rozpoczęciem upewnij się, że masz dostęp do bazy danych, na przykład przez phpMyAdmin, lub możesz użyć interfejsu wiersza poleceń MySQL.
1. Wyszukiwanie złośliwego kodu w postach
SELECT ID, post_title, post_content FROM wp_posts
WHERE post_content LIKE '%base64_decode%'
OR post_content LIKE '%eval%'
OR post_content LIKE '%gzinflate%'
OR post_content LIKE '%str_rot13%'
OR post_content LIKE '%exec%'
OR post_content LIKE '%shell_exec%'
OR post_content LIKE '%passthru%'
OR post_content LIKE '%system%';
2. Wyszukiwanie podejrzanych opcji
SELECT option_name, option_value FROM wp_options
WHERE option_value LIKE '%base64_decode%'
OR option_value LIKE '%eval%'
OR option_value LIKE '%gzinflate%'
OR option_value LIKE '%str_rot13%'
OR option_value LIKE '%exec%'
OR option_value LIKE '%shell_exec%'
OR option_value LIKE '%passthru%'
OR option_value LIKE '%system%';
3. Wyszukiwanie w użytkownikach
Możesz szukać niezwykłych nazw użytkowników, zwłaszcza jeśli podejrzewasz, że atakujący mógł utworzyć konto administratora:
SELECT ID, user_login, user_email FROM wp_users
WHERE user_login LIKE '%admin%';
4. Wyszukiwanie w komentarzach
SELECT comment_ID, comment_author, comment_content FROM wp_comments
WHERE comment_content LIKE '%<script>%'
OR comment_content LIKE '%javascript:%';
Uwagi:
- Zastąp prefix
wp_
odpowiednim prefixem tabeli, jeśli korzystasz z innego niż domyślny. - Zapytania te są przykładowe i mogą wymagać dostosowania do specyfiki ataku, którego doświadczyła Twoja strona.
- Uważaj na legalne użycie niektórych funkcji. Nie wszystkie znaleziska będą złośliwe.
- Regularne kopie zapasowe i monitorowanie są kluczowe dla bezpieczeństwa Twojej witryny.
Wykonując te zapytania, będziesz w stanie zidentyfikować podejrzane wpisy w bazie danych WordPressa. Po wykryciu takich wpisów, dokładnie przeanalizuj je i podejmij odpowiednie kroki, aby usunąć złośliwy kod lub wpisy.
Znajdowanie sygnatur malvare w kodzie
detekcji malware w plikach WordPressa, poszukiwanie specyficznych sygnatur kodu może pomóc w identyfikacji zainfekowanych plików. Oto kilka przykładów takich sygnatur, które mogą wskazywać na obecność malware:
- eval (często używane do wykonania zaszyfrowanego lub zakodowanego złośliwego kodu):
grep -ril "eval\(" .
- base64_decode (używane do dekodowania zaszyfrowanego tekstu, który może być szkodliwy):
grep -ril "base64_decode" .
- gzinflate (używane do dekompresji danych, które mogły zostać zakodowane w celu ukrycia):
grep -ril "gzinflate" .
- str_rot13 (funkcja rotacji używana do ukrycia złośliwego kodu):
grep -ril "str_rot13" .
- exec (może być używane do wykonania zewnętrznego kodu lub programów):
grep -ril "exec\(" .
- create_function (stara, niezalecana funkcja PHP używana do tworzenia funkcji anonimowych, czasami wykorzystywana przez malware):
grep -ril "create_function\(" .
- passthru, system, shell_exec (funkcje pozwalające na wykonanie poleceń systemowych, co może być wykorzystane przez atakujących):
grep -ril "passthru\(" .
grep -ril "system\(" .
grep -ril "shell_exec\(" .
- assert (może być używane do wykonania kodu PHP wewnątrz ciągów):
grep -ril "assert" .
- $_POST, $_GET, $_REQUEST (bezpośrednie użycie tych superglobalnych zmiennych może wskazywać na próbę zdalnego wykonania kodu):
grep -ril "\$_POST" .
grep -ril "\$_GET" .
grep -ril "\$_REQUEST" .
- $_COOKIE (użycie tej superglobalnej zmiennej może być również metodą na wprowadzenie i wykonanie złośliwego kodu):
grep -ril "\$_COOKIE" .
Przy użyciu tych komend, możesz zlokalizować pliki, które potencjalnie zawierają złośliwy kod. Ważne jest jednak, aby pamiętać, że niektóre z tych funkcji mogą być używane w legalny sposób przez pewne wtyczki lub tematy, dlatego każdy znaleziony przypadek należy dokładnie zbadać.
Przydasie
Inne sygnatury
translation_v3
ipadview
macFFBgHack
File_Put_conTents
xsShell
awaywant