Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

Wpis użytkownika entropy_ w Hydepark

GURU

w Hydepark

8piorunów

 
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)

Autorytet2piorunów

Borze, przecież pluginy wordpressa są jak sito, ja bym się bał na tym stronę stawiać. Połatałeś wszystkie pluginy i samego wordpressa?

Autorytet1piorunów

@entropy_ XD

W WP można natywnie włączyć dwuetapowe logowanie? Moze warto dodać kolejną ścianę zabezpieczenia.

Fanatyk2piorunów

@entropy_ - ale, żeś go zrobił - super sposób 🙂
Powietrzna piąteczka :hand:

GURU3piorunów

@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

Setting a Gzip bomb in Nginx without PHPI was browsing GoAccess to see which 404 errors i was serving. There is more than 18.000 connections to wp-admin.php which is the webadmin of WordPress. There is also many other attempts to different other php things, nothing very legit. It's a chance i use Hugo which is a static site generator. On this webserver there is no PHP or any other dynamic language. Webpages here are only simple plain text files without any logic, the server just read the files and send them./home/lord
Osobistość2piorunów

@Fausto fakt te pluginy są jak pola minowe ale na tym polega potega wordpresa , chyba ze chcesz zmarnować pare tygodni aby samemu cos ulepić

Autorytet2piorunów

@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.

GURU1piorunów

@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

GURU0piorunów

@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

Logowanie Poczta Onet | Bezpieczna i darmowa poczta e-mailBezpieczne logowanie do Poczty Onet. | Szybka rejestracja | Konfiguracja wielu kont | Dedykowana pomoc | Szeroka funkcjonalnośćOnet
GURU1piorunów

@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
Osobistość1piorunów

@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
GURU0piorunów

@bimberman na razie to nic nie blokowałem, poza tym co automatycznie fail2ban zrobił.
Znalazłem jeszcze takie coś w ustawieniach xD

Osobistość1piorunów

w konsoli windowsa albo czego tam uzywasz ping twojadres.com aby zobaczyc jaki adres ip ma twoja strona

Osobistość1piorunów

@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

Osobistość1piorunów

twój hosting nie uzywa cloudflare ?

GURU0piorunów

@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

Osobistość1piorunów

@entropy_ patrzyłeś do jakiego kraju należy ?

Osobistość1piorunów

@entropy_ jak masz jego ip to blokuj od razu

GURU0piorunów

@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.

Osobistość2piorunów

@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

Osobistość1piorunów

sa tez pluginy do monitorowania
https://wordpress.org/plugins/log-http-requests/

Log HTTP RequestsLog and view all WP HTTP requestsPlugin Directory
Osobistość1piorunów

@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>';
?>

How to get the client IP address in PHPHow can I get the client IP address using PHP? I want to keep record of the user who logged into my website through his/her IP address.Stack Overflow
GURU0piorunów

@bimberman o właśnie czegoś takiego potrzebuję, dzięki

Osobistość1piorunów

możesz utworzyć prosty log zbierający co jest w poście chyba cały ruch jest przez index.php

GURU0piorunów

@bimberman ja nawet nie wiem co w google wpisać żeby to zrobić xD

GURU1piorunów

Doinstaluj jakaś captche albo honeypota

Osobistość1piorunów

plugin sam może generować zapytania nie musi być z zewnątrz

GURU0piorunów

@bimberman wp-cron, za duży skrót myślowy zrobiłem xD
Do hostingu na pewno nie ma dostępu.

GURU0piorunów

@bimberman mój vpn na ovh. Ogółem mam tam kilka stron i tylko ta ma problemy

Osobistość1piorunów

@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

Osobistość1piorunów

@entropy_ a na jakim serwisie hosting ?znajomy tez mial problemy z wordpresem ale podobno caly hosting mial atak i zainfekowano wiele plikow

GURU0piorunów

@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.

Gruba ryba1piorunów

@koszotorobur Ty jesteś mądry gość, pomożesz?

Fanatyk2piorunów

@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.

GURU1piorunów

@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 😉

Fanatyk3piorunów

@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ć.