Вопрос

Недавно мои журналы исключения Elmah полны попыток от людей, использующих, используя, таким образом, программное обеспечение Security Security Dam Zmeu на моем сервере

Для тех, кто думает "что, черт возьми, Zmeu?" Вот объяснение ...

«Zmeu представляет собой инструмент безопасности, используемый для открытия дырок безопасности в версии 2.xx phpmyadmin, веб-менеджера баз данных MySQL. Инструмент, кажется, возник от где-то в Восточной Европе. Как то, что, кажется, происходит со всеми инструментами безопасности Black Hat Security, он пробился в Китае, где он использовался с тех пор, как для не остановка грубой силы приступает к веб-серверам по всему миру ».

Вот отличная ссылка об этой раздражающей атаке -> http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

Я использую .NET, чтобы они не собирались найти phpmyadmin на моем сервере, но тот факт, что мои журналы полны офМЭУ, атакует его становиться утомительным.

Ссылка выше обеспечивает отличное исправление с помощью HTACCESS, но я использую IIS7.5, а не Apache. У меня есть сайт ASP.NET MVC 2, поэтому я использую файл Global.Asax для создания моих маршрутов

Вот HTACCESS SOUGESTION

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/path/to/your/abusefile.php
RewriteCond %{HTTP_USER_AGENT} (.*)ZmEu(.*)
RewriteRule .* http://www.yourdomain.com/path/to/your/abusefile.php [R=301,L]
</IfModule>

Мой вопрос есть что-то, что я могу добавить так в файле Global.ascx, который делает то же самое?

Это было полезно?

Решение

Альтернативный ответ на Мой другой ... Этот конкретно останавливает Elmah от регистрации на 404 ошибок, создаваемых ZMEU, оставляя остальные свои сайты поведения без изменений. Это может быть немного менее заметным, чем возвращение сообщений прямо к хакерам.

Вы можете контролировать, какие вещи Elmah журнали Различные пути, один из способов добавлять это к Global.Asax

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
    if (e.Exception.GetBaseException() is HttpException)
    {
        HttpException httpEx = (HttpException)e.Exception.GetBaseException();
        if (httpEx.GetHttpCode() == 404)
        {
            if (Request.UserAgent.Contains("ZmEu"))
            {
                // stop Elmah from logging it
                e.Dismiss();
                // log it somewhere else
                logger.InfoFormat("ZmEu request detected from IP {0} at address {1}", Request.UserHostAddress, Request.Url);
            }           
        }
    }
}

Для этого события вам нужно будет ссылаться на Elmah DLL из вашего проекта и добавить using Elmah; на вершину вашего global.Asax.cs.

Линия запуска logger.InfoFormat предполагает, что вы используете log4net. Если нет, измените его на что-то еще.

Другие советы

Атаки ZMEU тоже раздражали меня, поэтому я смотрел в это. Это можно сделать с помощью httpmodule.

Добавьте следующий класс в свой проект:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Security.Principal;
//using log4net;

namespace YourProject
{
    public class UserAgentBlockModule : IHttpModule
    {

        //private static readonly ILog logger = LogManager.GetLogger(typeof(UserAgentBlockModule));

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);
        }

        void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            HttpRequest request = application.Request;
            if (request.UserAgent.Contains("ZmEu"))
            {
                //logger.InfoFormat("ZmEu attack detected from IP {0}, aiming for url {1}", request.UserHostAddress, request.Url.ToString());
                HttpContext.Current.Server.Transfer("RickRoll.htm");
            }

        }

        public void Dispose()
        {
            // nothing to dispose

        }

    }
}

а затем добавьте следующую строку в Web.config

<httpModules>
    ...
   <add name="UserAgentBlockFilter" type="YourProject.UserAgentBlockModule, YourProject" />
</httpModules>

... а затем добавьте подходящую страницу HTM в свой проект, чтобы их перенаправить их.

Обратите внимание, что если вы используете log4net, вы можете прокомментировать строки Log4net в коде для регистрации случаев, когда фильтр удается.

Этот модуль работал для меня в тестировании (когда я отправляю правильные значения пользовательских данных на него). Я еще не проверил его на реальном сервере. Но это должно сделать трюк.

Хотя, как я уже сказал в комментариях выше, что-то говорит мне, что возвращение 404 ошибок может быть менее заметным ответом, чем позволяя хакерам знать, что вы знаете о них. Некоторые из них могут увидеть что-то вроде этого как вызов. Но тогда я не эксперт по хакерам психологии, так кто знает.

Всякий раз, когда я получаю Zmeu или phpmyadmin или забыл_password, я перенаправляю запрос к:

<meta http-equiv='refresh' content='0;url=http://www.ripe.net$uri' />

или апнический или арин]. Я надеюсь, что администраторы в Rife.net не нравится взломать.

На IIS 6.0 вы также можете попробовать это ...

Установите свой веб-сайт в IIS, чтобы использовать заголовки хоста. Затем создайте веб-сайт в IIS, используя тот же IP-адрес, но без определения заголовка хоста. (Я пометил шахты «мошенничества», потому что какая-то мошенничество ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооодающее. (Я не уверен, почему) в любом случае, использование заголовков хоста на нескольких сайтах - хорошая практика. И иметь Сайт, определенный для случая, когда заголовок хоста не включен, это способ уловить посетителей, у которых нет вашего доменного имени в HTTP-запросе.

На сайте без заголовки хоста создайте домашнюю страницу, которая возвращает статус заголовка ответа «HTTP 410 COED». Или вы можете перенаправить их в другом месте.

Любые боты, которые пытаются посетить свой сервер по IP-адресу, а не доменное имя, будет разрешать этот сайт и получить ошибку «410 COOD».

Я также использую URLSCAN Microsoft и модифицировал файл URLSCAN.INI для исключения строки унции пользователя «ZMEU».

Если вы используете IIS 7.x, вы можете использовать фильтрацию запроса, чтобы заблокировать запросы

Сканирование заголовков: User-agent

Запретить строки: ZmEu

Чтобы попробовать, если это работает Начните Chrome с параметром --User-Agent "ZmEu"

Этот способ ASP.NET никогда не вызывает, и его спасает вас какой-то CPU / память.

Я добавил этот шаблон в Microsoft URL Rewrite Module:

enter image description here

enter image description here

enter image description here

^$|EasouSpider|Add Catalog|PaperLiBot|Spiceworks|ZumBot|RU_Bot|Wget|Java/1.7.0_25|Slurp|FunWebProducts|80legs|Aboundex|AcoiRobot|Acoon Robot|AhrefsBot|aihit|AlkalineBOT|AnzwersCrawl|Arachnoidea|ArchitextSpider|archive|Autonomy Spider|Baiduspider|BecomeBot|benderthewebrobot|BlackWidow|Bork-edition|Bot mailto:craftbot@yahoo.com|botje|catchbot|changedetection|Charlotte|ChinaClaw|commoncrawl|ConveraCrawler|Covario|crawler|curl|Custo|data mining development project|DigExt|DISCo|discobot|discoveryengine|DOC|DoCoMo|DotBot|Download Demon|Download Ninja|eCatch|EirGrabber|EmailSiphon|EmailWolf|eurobot|Exabot|Express WebPictures|ExtractorPro|EyeNetIE|Ezooms|Fetch|Fetch API|filterdb|findfiles|findlinks|FlashGet|flightdeckreports|FollowSite Bot|Gaisbot|genieBot|GetRight|GetWeb!|gigablast|Gigabot|Go-Ahead-Got-It|Go!Zilla|GrabNet|Grafula|GT::WWW|hailoo|heritrix|HMView|houxou|HTTP::Lite|HTTrack|ia_archiver|IBM EVV|id-search|IDBot|Image Stripper|Image Sucker|Indy Library|InterGET|Internet Ninja|internetmemory|ISC Systems iRc Search 2.1|JetCar|JOC Web Spider|k2spider|larbin|larbin|LeechFTP|libghttp|libwww|libwww-perl|linko|LinkWalker|lwp-trivial|Mass Downloader|metadatalabs|MFC_Tear_Sample|Microsoft URL Control|MIDown tool|Missigua|Missigua Locator|Mister PiX|MJ12bot|MOREnet|MSIECrawler|msnbot|naver|Navroad|NearSite|Net Vampire|NetAnts|NetSpider|NetZIP|NextGenSearchBot|NPBot|Nutch|Octopus|Offline Explorer|Offline Navigator|omni-explorer|PageGrabber|panscient|panscient.com|Papa Foto|pavuk|pcBrowser|PECL::HTTP|PHP/|PHPCrawl|picsearch|pipl|pmoz|PredictYourBabySearchToolbar|RealDownload|Referrer Karma|ReGet|reverseget|rogerbot|ScoutJet|SearchBot|seexie|seoprofiler|Servage Robot|SeznamBot|shopwiki|sindice|sistrix|SiteSnagger|SiteSnagger|smart.apnoti.com|SmartDownload|Snoopy|Sosospider|spbot|suggybot|SuperBot|SuperHTTP|SuperPagesUrlVerifyBot|Surfbot|SurveyBot|SurveyBot|swebot|Synapse|Tagoobot|tAkeOut|Teleport|Teleport Pro|TeleportPro|TweetmemeBot|TwengaBot|twiceler|UbiCrawler|uptimerobot|URI::Fetch|urllib|User-Agent|VoidEYE|VoilaBot|WBSearchBot|Web Image Collector|Web Sucker|WebAuto|WebCopier|WebCopier|WebFetch|WebGo IS|WebLeacher|WebReaper|WebSauger|Website eXtractor|Website Quester|WebStripper|WebStripper|WebWhacker|WebZIP|WebZIP|Wells Search II|WEP Search|Widow|winHTTP|WWWOFFLE|Xaldon WebSpider|Xenu|yacybot|yandex|YandexBot|YandexImages|yBot|YesupBot|YodaoBot|yolinkBot|youdao|Zao|Zealbot|Zeus|ZyBORG|Zmeu

Верхний перечисленный, «^ $» - это регулярное выражение для пустой строки. Я не разрешаю ботам доступа к страницам, если они не идентифицируют с пользовательским агентом, я нашел чаще всего, единственное, что ударяет моими этими приложениями без пользовательского агента, были инструментами безопасности.

Я посоветую вам, когда блокируют боты очень специфики. Просто используя универсальное слово «Огонь», может поп-положительное значение для «Firefox», вы также можете настроить Regex, чтобы исправить эту проблему, но я нашел намного проще, чтобы быть более конкретным, и это имеет дополнительное преимущество, чтобы быть более информативным к следующему человеку коснуться этой настройки.

Кроме того, вы увидите, что у меня есть правило для Java / 1.7.0_25 в этом случае, оно случилось ботом, используя эту версию Java, чтобы уловить мои серверы. Будьте осторожны, блокируя языком конкретные пользовательские агенты, такие как это, некоторые языки, такие как ColdFusion, работают на JVM, и используют агент пользователей языка и веб-запросы для localhost для сборки таких вещей, как PDF. JRuby, Groovy или Scala, может сделать подобные вещи, однако я не проверил их.

Настройте свой сервер правильно и не беспокоитесь о злоумышленниках :) Все, что они делают, это попробуйте некоторые базовые возможности, чтобы увидеть, если вы упустили из виду очевидную ловушку. Нет смысла отфильтровать этот хакер, который достаточно хорош, чтобы подписать свою работу для вас. Если у вас есть ближе, посмотрите на ваши файлы журналов, которые вы видите, есть так много ботов, которые делают это все время.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top