Frage

vor kurzem meiner Elmah Ausnahmeprotokolle sind voll von Versuchen, von Menschen mit so Zmeu Sicherheitssoftware gegen meinen Server dam

für diejenigen denken „was zum Teufel Zmeu ist?“, Hier ist eine Erklärung ...

„Zmeu scheint ein Sicherheits-Tool für die Entdeckung der Sicherheitslücken in der Version 2.x.x von phpMyAdmin, ein web-basierten MySQL-Datenbank-Manager verwendet werden. Das Werkzeug wird von irgendwo in Osteuropa entstanden zu sein. Wie, was scheint auf alle schwarzen Hut Sicherheits-Tools zu passieren, machte es seinen Weg nach China, wo sie seitdem für Non-Stop-Brute-Force-Angriffe auf Web-Servern auf der ganzen Welt verwendet worden sind.“

Heres ein großer Link zu diesem lästigen Angriff -> http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

Im mit .net, so dass sie aint phpMyAdmin auf meinem Server Gonna zu finden, aber die Tatsache, dass meine Protokolle sind voll ofZmEu greift seine immer ermüdend.

Der Link oben eine große Verlegenheit bietet HTAccess verwenden, aber im IIS7.5 verwenden, Apache nicht. Ich habe eine asp.net MVC 2-Website, so im die global.asax-Datei mit meinen Routen

erstellen

Hier ist die HTAccess seugestion

<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>

Meine Frage ist es etwas, was ich so in der Global.ascx Datei hinzufügen kann, die die gleiche Sache tut?

War es hilfreich?

Lösung

Eine alternative Antwort auf meinem anderen ... diese stoppt speziell Elmah von Protokollierung der 404-Fehler von Zmeu erzeugt, während der Rest Ihrer Websites Verhalten unverändert bleibt. Dies könnte ein bisschen weniger auffällig als Nachrichten direkt an den Hacker zurück.

Sie können steuern, welche Art von Dingen Elmah anmeldet verschiedene Weise , eine Möglichkeit ist, diese zu dem 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);
            }           
        }
    }
}

Für dieses Ereignis zu Feuer, werden Sie die Elmah DLL von Ihrem Projekt verweisen müssen, und fügen Sie eine using Elmah; an der Spitze Ihres Global.asax.cs.

Die Linie beginnend logger.InfoFormat vorausgesetzt, dass Sie log4net verwenden. Wenn nicht, es noch etwas ändern.

Andere Tipps

Die Zmeu Angriffe waren ärgerlich ich zu, so dass ich in diesen aussehen. Es kann mit einem Httpmodule erfolgen.

Fügen Sie die folgende Klasse zum Projekt hinzu:

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

        }

    }
}

und fügen Sie dann die folgende Zeile in web.config

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

... und fügen Sie dann eine passende htm Seite zu einem Projekt, so gibt es irgendwo ist sie umgeleitet werden.

Beachten Sie, dass, wenn Sie log4net verwenden Sie in den log4net Zeilen im Code kommentieren können die Gelegenheiten zu protokollieren, wenn die Filter Kicks in.

Dieses Modul hat für mich gearbeitet zu testen (wenn ich die richtigen Useragent Werte an ihn schicken). Ich habe es nicht auf einem realen Server noch nicht getestet. Aber es sollte den Trick tun.

Obwohl, wie ich oben in den Kommentaren gesagt, etwas mir sagt, dass 404-Fehler zurückkehrt könnte eine weniger auffällige Reaktion als den Hacker wissen zu lassen, dass Sie sich von ihnen bewusst. Einige von ihnen könnten so etwas wie dies als Herausforderung sehen. Aber dann, ich bin kein Experte für Hacker Psychologie, also wer weiß.

Jedes Mal, wenn ich ein Zmeu oder phpMyAdmin oder forgotten_password leite ich die Abfrage an:

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

[oder APNIC oder Arin]. Ich hoffe, dass die Admins bei ripe.net nicht wie gehackt.

Auf IIS 6.0 Sie können auch diese versuchen ...

Stellen Sie Ihre Website in IIS zu verwenden Host-Header. Dann erstellen Adresse einer Website in IIS, mit der gleichen IP, aber ohne Host-Header-Definition. (I markierte mine „Rogue Site“, weil einige Gauner oonce deliverately seine DNS für seine Domäne aufzulösen meine Volksherrschaft Website eingestellt. (Ich bin nicht sicher, warum) Wie auch immer, mit Host-Header auf mehreren Seiten ist eine gute Praxis. Und mit eine Website für den Fall festgelegt, wenn keine Host-Header zu fangen Besucher ist eine Art und Weise enthalten ist, die Ihren Domain-Namen in der HTTP-Anforderung.

haben nicht

Auf der Website ohne Host-Header, erstellen eine Homepage, dass eine Antwort zurück Kopfstatus von „HTTP 410 Gone“. Oder Sie können sie an anderer Stelle weitergeleitet werden.

Jede Bots, die versuchen, den Server durch die IP-Adresse und nicht den Domain-Namen zu besuchen, die diese Website und erhalten die Fehlermeldung „410 Gone“.

lösen

Ich benutze auch Microsofts URLscan und modifiziert, um die Datei Urlscan.ini den Benutzer angent Zeichenfolge ausschließen „Zmeu“.

Wenn Sie IIS 7.X verwenden Sie Anforderungsfilterung verwenden könnten die Anfragen blockieren

Scan-Header: User-agent

Deny Strings: ZmEu

Um zu versuchen, wenn es Chrome funktioniert beginnen mit dem Parameter --User-Agent "ZmEu"

Auf diese Weise asp.net wird nie aufgerufen und seine erspart Ihnen einige CPU / Speicher ..

Ich habe dieses Muster in Microsoft URL Rewrite-Modul:

^$|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

Die oben aufgeführten ein, „^ $“ ist die Regex für eine leere Zeichenfolge. Ich erlaube nicht Bots die Seiten zugreifen, wenn sie mit einem User-Agent zu identifizieren, fand ich am häufigsten die einzigen Dinge, die meine diese Anwendungen schlagen mit sich als ein User-Agent waren Sicherheits-Tools gone rogue.

Ich werde Ihnen raten, wenn Blockierung Bots sehr spezifisch sein. Einfach mit für „firefox“ positiv könnte ein allgemeines Wort wie „Feuer“ Pop können Sie auch die Regex einstellen, dass Problem zu beheben, aber ich fand es viel einfacher, präziser zu sein, und das hat den zusätzlichen Vorteil, an die nächsten Person mehr informativ diese Einstellung zu berühren.

Darüber hinaus werden Sie sehen, ich habe eine Regel für Java / 1.7.0_25 in diesem Fall geschah es ein Bot mit dieser Version von Java zu sein, meinen Server zuzuschlagen. Sie vorsichtig Sperrsprachspezifische Benutzeragenten so sein, dass einige Sprachen wie Coldfusion läuft auf der JVM und verwenden Sie die Sprache User-Agenten und Web-Anfragen an localhost Dinge wie PDFs zusammenzustellen. JRuby, Groovy oder Scala können ähnliche Dinge tun, aber ich kann sie nicht getestet haben.

Setup des Servers up richtig und Sorgen Sie sich nicht über die Angreifer :) Alles, was sie tun, ist einige grundlegende Möglichkeiten zu sehen, ob youve eine offensichtliche Gefahr übersehen. Kein Punkt Ausfiltern diese einen Hacker, der gut genug ist, seine Arbeit für Sie zu unterzeichnen. Wenn Sie einen genaueren Blick auf Ihre Log-Dateien haben Sie sehen, es gibt so viele Bots tun dies die ganze Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top