WordPres i malware - moje metody wykrywania

WordPres i malware - moje metody wykrywania

Znajomy poprosił mnie o przeniesienie jego stron do mnie na serwer, oczywiście wiedziałem, iż maja jakieś malware w sobie, więc starannie pliki sprawdziłem co mogłem to naprawiłem i w zasadzie pliki są czyste. Jednak komentarze były aktywny co doprowadziło do kolejnych infekcji plików. I były to pliki wtyczek takich jak nginx helper, czy iwp client, a nawet pliki core z admina WordPress-a

Komentarze możemy zablokować – https://wordpress.org/plugins/disable-comments/

Lub zablokować funkcje mail

php_value  disable_functions  mail

Jednak…

W dzisiejszym wpisie pokaże dwie opcje monitoringu.
Jedna opartna na logach, druga na usłudze.

  1. mail() @ php – do logów
  2. incron

Pierwsza metoda bardzo przydatna. Dzięki logowaniu mail() @ php widzimy jaki skrypt php robi wysyłke za pomocą tej funkcji.

[01-Jun-2015 09:50:14 Europe/Warsaw] mail() on [/web/domena.pl/app/wp-content/plugins/iwp-client/lib/dir11.php(1484) : eval()'d code:278]: To: phootballfan@yahoo.com -- Headers: Date: Mon, 1 Jun 2015 09:50:14 +0200 From: Sandy Johnson <sandy_johnson@domena.pl> Message-ID: <2faa7f566580fbd5ec10ab5e542d3ff1@www.domena.pl> X-Priority: 3 X-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/) MIME-Version: 1.0 Content-Type: multipart/alternative; 	boundary="b1_2faa7f566580fbd5ec10ab5e542d3ff1" Content-Transfer-Encoding: 8bit
[01-Jun-2015 09:50:14 Europe/Warsaw] mail() on [/web/domena.pl/app/wp-content/plugins/iwp-client/lib/dir11.php(1484) : eval()'d code:278]: To: m.boyd70@yahoo.com -- Headers: Date: Mon, 1 Jun 2015 09:50:14 +0200 From: Shirley Gibbs <shirley_gibbs@domena.pl> Message-ID: <0d55dc1fbe115f630572940ee1bcdf58@www.domena.pl> X-Priority: 3 X-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/) MIME-Version: 1.0 Content-Type: multipart/alternative; 	boundary="b1_0d55dc1fbe115f630572940ee1bcdf58" Content-Transfer-Encoding: 8bit

Widać, że skrypt /web/domena.pl/app/wp-content/plugins/iwp-client/lib/dir11.php nawala maile. Oczywistość jest, że to wirus. Plik ten w środku jest zakodowany.

Druga metoda polega na wykrywaniu zmian na naszym systemie plików, podobnie działą jak inofity.

Instalacja

apt-get install incron

Dodajemy sobieżliwość używania tego programiku

vim /etc/incron.allow

I w pierwszej linii podajemy nazwę naszego usera.

Kilka podstawowych objaśnień:

  • IN_ACCESS – podczyt pliku
  • IN_ATTRIB – zmiana daty, uprawnień, etc..
  • IN_CREATE – Utworzenie pliku lub katalogu
  • IN_DELETE – Skasowanie pliku lub katalogu
  • IN_MODIFY – Plik został zmodyfikowany
  • IN_MOVED_FROM – Plik został przeniesiony z onitorowanego katalogu
  • IN_MOVED_TO – Plik został przeniesiony do monitorowanego katalog
  • IN_OPEN – Plik został otworzony
  • IN_ALL_EVENTS –

To nie są wszystkie możliwe metody incron-a – więcej :) man incrontab
Jeszcze kilka przydatnych opcji:

  • $@ – wypluje nam scieżke obserwowanego katalogu
  • $% – wypluje jakie było działanie
  • $# – nazwa pliku lub katalogu zwiazana z działaniem w monitorowanym katalogu

I teraz do dzieła.
Schemat:

  <akcja/polecenie> opcje

Wchodzimy do edycji:

incrontab -e

I tutaj mój wpis przykładowy:

/sajty/domena.pl/app/ IN_MODIFY,IN_CREATE logger "$@ - $%: $#"

Wpis powyżej spowoduje iż w pliku /var/log/messages zobaczymy coś na wzór:

Jun  1 14:29:19 8px root: "/sajty/domena.pl/app/ - IN_CREATE: testuje_incron"
Jun  1 14:29:34 hostname username: "/sajty/domena.pl/app/ - IN_CREATE: .#testuje_incron"
Jun  1 14:29:35 hostname username: "/sajty/domena.pl/app/ - IN_MODIFY: testuje_incron"
Jun  1 14:29:35 hostname username: "/sajty/domena.pl/app/ - IN_MODIFY: testuje_incron"

Powyżej widać, iż user nazwany username na hoscie nazwanym hostname w katalogu /sajty/domena.pl/app został utworzony plik testuje_incron, a następnie został on zmodyfikowany.

W zasadzie to koniec, jednak fajnie by było wiedzieć o takiej akcji szybciej, na mail-a :)