
Wpis użytkownika entropy_ w Hydepark
entropy_GURU
8piorunów#hejtopytanie #serwerownia
Sprawa wygląda tak: włamali mi się na stronę na wordpresie. Dodała się jakaś wtyczka, jakiś motyw, sporo plików z core wordpress miało inne checksumy niż powinny mieć.
Panel plesk sam wykrył problemy, wprowadził kwarantannę, pokazał co się zmieniło przed i po.
Naprawiłem (chyba naprawiłem) większość rzeczy, aaaaale.
Widzę, że co chwilę ktoś się próbuje zalogować i coś wysyłają metodą POST. Ale strona jeszcze się trzyma. Na pewno nie jestem to ja.
Prosty sposób na przeczytanie co jest w tych wysyłanych danych - Szukaj
Stack: System debian(albo centos?), panel plesk, nginx, wordpress najnowszy
Komentarze (40)
Borze, przecież pluginy wordpressa są jak sito, ja bym się bał na tym stronę stawiać. Połatałeś wszystkie pluginy i samego wordpressa?
@entropy_ XD
W WP można natywnie włączyć dwuetapowe logowanie? Moze warto dodać kolejną ścianę zabezpieczenia.
@entropy_ - ale, żeś go zrobił - super sposób 🙂
Powietrzna piąteczka :hand:
@Fausto @bimberman @koszotorobur
Może to przypadek, ale słuchajcie co zrobiłem.
Boty latające mi po stronie odwiedzały specyficzne linki, zawsze ?add-to-cart=id było na końcu.
Plus milion prób logowania, no to na noc przestawiłem nginxa według tego poradnika
https://lord.re/en/posts/139-gzip-bomb-nginx/ i zacząłem im serwować 10gigabajtów skompresowanych zer xD
plus strona logowania
https://stackoverflow.com/questions/38745171/php-is-it-possible-to-implement-a-gzip-bomb-in-php-for-malware-scanners
Nie wiem czy pomogło, ale dzisiaj zaczął logować się hasłem "F*uck you" xD
@Fausto fakt te pluginy są jak pola minowe ale na tym polega potega wordpresa , chyba ze chcesz zmarnować pare tygodni aby samemu cos ulepić
@Fausto No co umiałem to poprawiłem, na razie się trzyma xD
@Fausto @bimberman @koszotorobur
Dziękuję za pomoc
@entropy_ ja bym jeszcze doradził - ograniczyć wtyczki do minimum, może są jakieś rzeczy bez których się obejdziesz, albo zrobisz sam w łatwy sposób.
@Fausto pierwszy raz mi się coś takiego zdarzyło.
Wszystko polatałem, zrobiłem trochę hardeningu i chyba będzie dobrze. Na razie typ się jeszcze nie dostał ponownie a od rana próbuje xD
@bimberman @GazelkaFarelka @lubieplackijohn C⁎⁎ja się znam, ale napiszę co znalazłem:
Atakujący sprawdzał jakie jest konto administratora używając następującego sposobu:
1. Wchodził na https://adres.pl/?author=1 , jak można się domyślić user z id 1 to ja z uprawnieniami administratora. Tak poznawał login.
2. Chwilę później odwiedzał adres.pl/wp-admin robił nieznaną mi rzecz i przychodził do mnie za każdym razem mail z informacją o resecie hasła.
Zrobiłem taką regułę w nginxie:
if ($args ~ "^author=([0-9]*)") {
return 302 https://127.0.0.1:8080/?;
}
i od tej pory wszystkie próby logowania robi jako:
Users: array ( 0 => 'wwwadmin', )
ClientIP: 172.70.91.226
Wcześniej używał zawsze poprawnego loginu który jest inny niż wwwadmin
Czyli pewnie dalej mam dziurę na stronie ale skrypt nie umie nazwy użytkownika znaleźć xD
@bimberman jak będzie jeszcze kombinował to po prostu przestawię cloudflera na tunelowanie i gościa znajdę.
Ten modsecurity dość dobrze działa, sprowokowałem go żeby zablokował mnie i ma bardzo mało cierpliwości xD
Nawet nie wiedziałem, że to mam xDDD Ban na jednej stronie obcina dostęp do wszystkich na serku więc fajnie.
Zobaczymy jak teraz będzie to pracować. Wydaje mi się że najwięcej pomogło to bo od rana nie zabrał mi dostępu xDDD
Harden wordpress security nginx
https://gist.github.com/nfsarmento/57db5abba08b315b67f174cd178bea88
Harden wordpress security nginxHarden wordpress security nginx. GitHub Gist: instantly share code, notes, and snippets.Gist@entropy_ nie wiem jak te ustawienia działają ale tutaj CF podaje że twój serwer otrzymuje ich IP a IP clienta który się łączy jest w innym miejscu
https://developers.cloudflare.com/support/troubleshooting/restoring-visitor-ips/restoring-original-visitor-ips/
Restoring original visitor IPs · Cloudflare Support docsWhen your website traffic is routed through the Cloudflare network , we act as a reverse proxy. This allows Cloudflare to speed up page load time by …Cloudflare Docs@bimberman na razie to nic nie blokowałem, poza tym co automatycznie fail2ban zrobił.
Znalazłem jeszcze takie coś w ustawieniach xD
w konsoli windowsa albo czego tam uzywasz ping twojadres.com aby zobaczyc jaki adres ip ma twoja strona
@entropy_ to upewnij się że to nie jest zakres twojego hostingu bo jak zablokujesz te IP może się okazać ze blokujesz własny hosting
@bimberman używa
twój hosting nie uzywa cloudflare ?
@entropy_
tu możesz sprawdzić kto jest właścicielem adresu , zakres należy to cloudflare UK
https://www.iplocation.net/ip-lookup
https://who.is/whois-ip/ip-address/172.70.91.226
@bimberman tego nie umiem sprawdzić, znaczy google nic mi nie pokazywało na pierwszy strzał to nie szukałem dalej.
Ten co wyżej
172.70.91.226
172.68.65.139
172.71.242.124
@entropy_ patrzyłeś do jakiego kraju należy ?
@bimberman ze 20 ma minimum
@entropy_ jak masz jego ip to blokuj od razu
@bimberman jak nie zna loginu to nie może się zalogować z jakiegoś powodu, ostatni mail ze zmianą hasła miałem o 4 rano i od 8 jak zrobiłem regułę nginxa próbował z 50 razy i zero efektu.
Ujebał sobie jeszcze otwierać robots.txt?kilkalosowychcyferek
Ale to już nie wiem po co.
@entropy_ tak uzywwajac tego ?author=1 przekierowuje na author/login i poznal login, mogł sprawdzac ile jest autorów
?author=1
?author=2
?author=3
wordpress to chora platforma
a to znasz ?
twojastron.com/wp-json/ ?? moga pobrac cala zawartosc wordpressa wszystkie wpisy kategorie i mulimedia
tu jest taki najprostszy sposób trzeeba by wrzucić do tego pliku index.php pod pierwszym komentarzem
https://stackoverflow.com/questions/3718307/php-script-to-log-the-raw-data-of-a-post
sa tez pluginy do monitorowania
https://wordpress.org/plugins/log-http-requests/
@entropy_ w sumie trzeba by poszukać jeszcze skąd wysyła post do logowania z jakiego IP, te informacje są w innej zmiennej potem takie IP można łatwo zablokować też w tym pliku index.php
https://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php
możesz sprawdzić co jest w tej zmiennej , ale potrzebujesz $_SERVER[‘REMOTE_ADDR’] aby znaleźć IP
<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
?>
@bimberman o właśnie czegoś takiego potrzebuję, dzięki
możesz utworzyć prosty log zbierający co jest w poście chyba cały ruch jest przez index.php
@bimberman ja nawet nie wiem co w google wpisać żeby to zrobić xD
Doinstaluj jakaś captche albo honeypota
plugin sam może generować zapytania nie musi być z zewnątrz
@bimberman wp-cron, za duży skrót myślowy zrobiłem xD
Do hostingu na pewno nie ma dostępu.
@bimberman mój vpn na ovh. Ogółem mam tam kilka stron i tylko ta ma problemy
@entropy_
>dodał jakieś dziwne akcje do crona. - a jak tam uzyskal dostep ? to jest na wyzszym poziomie niz wordpress dostep do crona jest na poziomie admina hostingu
@entropy_ a na jakim serwisie hosting ?znajomy tez mial problemy z wordpresem ale podobno caly hosting mial atak i zainfekowano wiele plikow
@GazelkaFarelka tylko to chyba nie przez komenty, z tego co widzę to próbował uruchamiać to co sobie zainstalował w pluginach i dodał jakieś dziwne akcje do crona.
Nie wiem co zrobił, ale jak pierwszy raz przywróciłem kopię zapasową do zainfekował ponownie stronę swoim kodem w mniej niż 15min.
@koszotorobur Ty jesteś mądry gość, pomożesz?
@entropy_ - cieszę się, że sobie poradziłeś - wygląda na to, że w jeden dzień nauczyłeś się więcej o zabezpieczaniu stronki na WordPressie niż przez całe życie :stuck_out_tongue_winking_eye:
Niemniej myślę, że nie ominie Cie update wszystkiego by zminimalizować ilość dziur w swojej stronie.
@koszotorobur no właśnie ja sobie przywracałem kopię sprzed ataku, a hakier przywracał sobie backdoora i tak się bawiliśmy od wczoraj xD
Niżej napisałem co według mnie rozwiązało problem 😉
@lubieplackijohn - miałem wir w pracy i widzę, że dużo mnie ominęło.
Pierwsze co, to trzeba monitorować ruch i od razu blokować adresy IP atakującego.
Jąk można odciąć serwer od przychodzącego internetu całkiem (co położy stronę) to polecam to zrobic i od razu uaktualnić system, WordPressa i wszystkie pluginy.
Jak da radę to postawić drugi serwer z najnowszym uaktualnionym systemem, na nim zainstalować najnowszego WordPressa z najnowszymi pluginami i tam przenieść stronę.
WordPress i jego pluginy są znane ze swojej dziurawiści i są często atakowane - nikomu nie polecam tego używać.