{"id":406,"date":"2015-01-15T16:39:08","date_gmt":"2015-01-15T14:39:08","guid":{"rendered":"http:\/\/webowiec.net\/blog\/?p=406"},"modified":"2015-04-07T10:44:11","modified_gmt":"2015-04-07T08:44:11","slug":"atak-brute-force-jako-googlebot-na-wordpress-jak-wykryc","status":"publish","type":"post","link":"https:\/\/webowiec.net\/blog\/atak-brute-force-jako-googlebot-na-wordpress-jak-wykryc\/","title":{"rendered":"Atak brute force jako GoogleBot na WordPress &#8211; jak wykry\u0107"},"content":{"rendered":"<p>Sprawa do\u015b\u0107 \u015bwie\u017ca (cho\u0107 problem bardzo stary), bo pierwsze sygna\u0142y o atakach pojawi\u0142y si\u0119 ju\u017c 14 stycznia 2015.<\/p>\n<p>Odporny na skanowanie popularnym &#8220;clamscan&#8221;, bot wkrad\u0142 si\u0119 na wiele serwer\u00f3w, dokunuj\u0105c atak\u00f3w typu brute force na inne skrypty, najcz\u0119\u015bciej WordPress, podaj\u0105c si\u0119 za &#8220;GoogleBot&#8221;. Przyk\u0142adowe logi serwera atakowanego:<\/p>\n<p><code> 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)\"<br \/>\nIP - - [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)\"<br \/>\nIP - - [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)\"<\/code><\/p>\n<p>Zabezpieczenie przed atakami to po prostu ograniczenie dost\u0119pu do pliku &#8220;wp-login.php&#8221; poprzez filtrowanie IP, lub dodatkowa autoryzacja wykorzystuj\u0105c &#8220;htpassword&#8221;.<\/p>\n<p>Jednak jak wykry\u0107 czy nasz serwer nie pad\u0142 ofiar\u0105 owego bota, staj\u0105c si\u0119 elementem wi\u0119kszego bot-neta:<\/p>\n<p>Dla ca\u0142ego katalogu \/home lub odpowiedniego katalogu z danymi www, wykonujemy skanowanie plik\u00f3w php po zawarto\u015bci:<br \/>\n<code> grep -lir '\\\\x.\\\\x.\\\\x.' \/home<\/code><br \/>\nPolecenie zwr\u00f3ci list\u0119 potencjalnie zainfekowanych plik\u00f3w.<\/p>\n<p>Aby maksymalnie zwi\u0119kszy\u0107 zasi\u0119g skanowania, polecenie:<br \/>\n<code>grep -lir \"?&gt;&lt;?php\" \/home<\/code><br \/>\nZwr\u00f3ci wszystkie pliki, kt\u00f3re korzystaj\u0105 z &#8220;doklejonego&#8221; fragmentu kodu php.<\/p>\n<p>Dodatkowe metody zabezpieczenia serwera:<br \/>\n&#8211; ustawienie chmod\u00f3w wszystkich plik\u00f3w na : 0666, folder\u00f3w na: 0755<br \/>\n&#8211; wy\u0142\u0105czenie funkcji &#8220;eval&#8221; w php<br \/>\n&#8211; regularne skanowanie programem &#8220;clamscan&#8221;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>UPDATE 16.01.2015:<\/strong><\/span><br \/>\naktualizacja polecenia &#8220;grep&#8221; &#8211; dostosowanie pod wi\u0119ksz\u0105 grup\u0119 potencjalnie niebezpiecznych plik\u00f3w.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>UPDATE 18.01.2015:<\/strong><\/span><br \/>\nSkrypt automatycznie usuwaj\u0105cy zainfekowany kod z plik\u00f3w:<\/p>\n<p>1) Zawarto\u015b\u0107 <b>zapisujemy jako &#8220;clean.sh&#8221; i nadajemy chmody +x<\/b>:<br \/>\n<code><br \/>\n#!\/bin\/bash<br \/>\nFILE=$1<br \/>\nif [ -f $FILE ]<br \/>\nthen<br \/>\n`sed '1d' $FILE &gt; $FILE.tmp`<br \/>\n`mv $FILE.tmp $FILE`<br \/>\n`sed -i 1i\"&lt;?php\" $FILE`<br \/>\necho \"file($FILE) : OK\";<br \/>\nelse<br \/>\necho \"file($FILE) : NOT FOUND\";<br \/>\nfi<br \/>\n<\/code><\/p>\n<p>2) Generujemy liste zainfektowanych plik\u00f3w:<br \/>\n<code> grep -lir '\\\\x.\\\\x.\\\\x.' \/home &gt; all.txt<\/code><\/p>\n<p>3) Uruchamiamy skrypt dla ka\u017cdego znalezionego pliku:<br \/>\n<code> cat all.txt | xargs -n1 .\/clean.sh<\/code><\/p>\n<p>4) Je\u015bli wykonywali\u015bmy skrypt jako root, trzeba jeszcze przywr\u00f3ci\u0107 w\u0142a\u015bciciela pliku.<br \/>\n<code> chown user:user -R \/home\/user<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sprawa do\u015b\u0107 \u015bwie\u017ca (cho\u0107 problem bardzo stary), bo pierwsze sygna\u0142y o atakach pojawi\u0142y si\u0119 ju\u017c 14 stycznia 2015. Odporny na skanowanie popularnym &#8220;clamscan&#8221;, bot wkrad\u0142 si\u0119 na wiele serwer\u00f3w, dokunuj\u0105c atak\u00f3w typu brute force na inne skrypty, najcz\u0119\u015bciej WordPress, podaj\u0105c &hellip; <a href=\"https:\/\/webowiec.net\/blog\/atak-brute-force-jako-googlebot-na-wordpress-jak-wykryc\/\" class=\"btn btn-sm btn-primary\"><i class=\"glyphicon glyphicon-link\"><\/i> Czytaj ca\u0142o\u015b\u0107<\/a><\/p>\n","protected":false},"author":1,"featured_media":448,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[599,39],"tags":[651,652,646,647,648,649,650],"class_list":["post-406","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administracja-serwerami","category-niebezpieczenstwo-w-sieci","tag-ataki-burteforce-googlebot","tag-ataki-buteforce-wordpress","tag-brute-force-attack","tag-brute-force-googlebot","tag-brute-force-wordpress","tag-googlebot-virus","tag-jak-wykryc-bota-bruteforce"],"_links":{"self":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/comments?post=406"}],"version-history":[{"count":8,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/406\/revisions"}],"predecessor-version":[{"id":449,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/posts\/406\/revisions\/449"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/media\/448"}],"wp:attachment":[{"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/media?parent=406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/categories?post=406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webowiec.net\/blog\/wp-json\/wp\/v2\/tags?post=406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}