› Archiwum miesiąca › Styczeń 2015

Atak brute force jako GoogleBot na WordPress – jak wykryć

Sprawa dość świeża (choć problem bardzo stary), bo pierwsze sygnały o atakach pojawiły się już 14 stycznia 2015.

Odporny na skanowanie popularnym “clamscan”, bot wkradł się na wiele serwerów, dokunując ataków typu brute force na inne skrypty, najczęściej WordPress, podając się za “GoogleBot”. Przykładowe logi serwera atakowanego:

IP - - [14/Jan/2015:19:12:04 +0100] "POST wp-login.php HTTP/1.1" 200 3865 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
IP - - [14/Jan/2015:21:20:10 +0100] "POST wp-login.php HTTP/1.1" 200 6166 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
IP - - [14/Jan/2015:19:12:04 +0100] "POST wp-login.php HTTP/1.1" 200 3865 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Zabezpieczenie przed atakami to po prostu ograniczenie dostępu do pliku “wp-login.php” poprzez filtrowanie IP, lub dodatkowa autoryzacja wykorzystując “htpassword”.

Jednak jak wykryć czy nasz serwer nie padł ofiarą owego bota, stając się elementem większego bot-neta:

Dla całego katalogu /home lub odpowiedniego katalogu z danymi www, wykonujemy skanowanie plików php po zawartości:
grep -lir '\\x.\\x.\\x.' /home
Polecenie zwróci listę potencjalnie zainfekowanych plików.

Aby maksymalnie zwiększyć zasięg skanowania, polecenie:
grep -lir "?><?php" /home
Zwróci wszystkie pliki, które korzystają z “doklejonego” fragmentu kodu php.

Dodatkowe metody zabezpieczenia serwera:
– ustawienie chmodów wszystkich plików na : 0666, folderów na: 0755
– wyłączenie funkcji “eval” w php
– regularne skanowanie programem “clamscan”

UPDATE 16.01.2015:
aktualizacja polecenia “grep” – dostosowanie pod większą grupę potencjalnie niebezpiecznych plików.

UPDATE 18.01.2015:
Skrypt automatycznie usuwający zainfekowany kod z plików:

1) Zawartość zapisujemy jako “clean.sh” i nadajemy chmody +x:

#!/bin/bash
FILE=$1
if [ -f $FILE ]
then
`sed '1d' $FILE > $FILE.tmp`
`mv $FILE.tmp $FILE`
`sed -i 1i"<?php" $FILE`
echo "file($FILE) : OK";
else
echo "file($FILE) : NOT FOUND";
fi

2) Generujemy liste zainfektowanych plików:
grep -lir '\\x.\\x.\\x.' /home > all.txt

3) Uruchamiamy skrypt dla każdego znalezionego pliku:
cat all.txt | xargs -n1 ./clean.sh

4) Jeśli wykonywaliśmy skrypt jako root, trzeba jeszcze przywrócić właściciela pliku.
chown user:user -R /home/user

Kurs css

  • Kurs CSS dla niecierpliwych [cz 1/2]

    Co to jest CSS, po co go używać, jak go używać.. CSS - stylizowanie różnych elementów HTML, inaczej mówiąc: wizualizowanie/nadawanie odpowiedniego wyglądu strony www. Zaczynając kurs…

  • Kurs CSS dla niecierpliwych [cz 2/2]

    Kontynuacja przyspieszonego kursu dla niecierpliwych. Część 1/2 - Kurs CSS dla niecierpliwych 1/2 Zakładam, że znasz lub zapoznałeś/aś się już wstępnie z podstawami HTML, wiesz do czego…