Domanda

Recentemente il mio ELMAH ceppi di eccezione sono pieni di tentativi da parte di persone che utilizzano quindi diga software di sicurezza Zmeu contro il mio server

per coloro pensare “che diavolo è Zmeu?” Ecco una spiegazione ...

“Zmeu sembra essere uno strumento di sicurezza usato per scoprire falle di sicurezza nella versione 2.x.x di PHPMyAdmin, un web based gestore di database MySQL. Lo strumento sembra abbia avuto origine da qualche parte in Europa orientale. Come quello che sembra accadere a tutti gli strumenti di sicurezza cappello nero, ha fatto la sua strada verso la Cina, dove è stato utilizzato da allora per fermare gli attacchi di forza bruta non contro i server web in tutto il mondo “.

Ecco un grande legame di questo fastidioso attacco -> http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

Im usando .NET in modo che non è gonna trovare PHPMyAdmin sul mio server, ma il fatto che i miei ceppi sono pieni ofZmEu attacca il suo faticoso divenire.

Il link sopra fornire una grande correzione utilizzando HTAccess, ma im utilizzando IIS7.5, non apache. Ho un sito asp.net MVC 2, in modo im utilizzando il file Global.asax per creare i miei percorsi

Questa è la 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>

La mia domanda è c'è qualcosa che posso aggiungere come questo nel file Global.ascx che fa la stessa cosa?

È stato utile?

Soluzione

Una risposta alternativa al mia altra ... questo si ferma specificamente Elmah dalla registrazione i 404 errori generati dal Zmeu, lasciando il resto del vostro comportamento siti invariato. Questo potrebbe essere un po 'meno evidente che tornare messaggi direttamente ai hacker.

È possibile controllare ciò che genere di cose ELMAH log in vari modi , un modo è l'aggiunta di questo al 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);
            }           
        }
    }
}

Per questo evento al fuoco, sarà necessario fare riferimento al DLL Elmah dal progetto, e aggiungere un using Elmah; alla parte superiore dei Global.asax.cs.

La linea di partenza logger.InfoFormat presuppone che si sta utilizzando log4net. In caso contrario, modificarlo a qualcosa d'altro.

Altri suggerimenti

Gli attacchi Zmeu erano fastidioso me, così ho guardato in questo. Esso può essere fatto con un HttpModule.

Aggiungere la seguente classe al progetto:

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

        }

    }
}

e quindi aggiungere la seguente riga al web.config

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

... e quindi aggiungere una pagina htm adatto al vostro progetto quindi non c'è un posto per orientarle verso.

Si noti che se si sta utilizzando log4net è possibile lasciare un commento, nelle linee log4net nel codice per registrare le occasioni in cui i calci filtro in.

Questo modulo ha funzionato per me in fase di test (quando invio i valori UserAgent giusti per esso). Non ho ancora testato su un server vero e proprio. Ma dovrebbe fare il trucco.

Anche se, come ho detto nei commenti di cui sopra, qualcosa mi dice che il ritorno errori 404 potrebbe essere una risposta meno evidente che lasciare che gli hacker sanno che siete a conoscenza di loro. Alcuni di loro potrebbero vedere qualcosa di simile a questo come una sfida. Ma poi, io non sono un esperto di hacker di psicologia, quindi chissà.

Ogni volta che ricevo uno Zmeu o phpMyAdmin o forgotten_password ho reindirizzare la query per:

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

[o APNIC o Arin]. Spero che gli amministratori a ripe.net non come essere violato.

su IIS 6.0 si può anche provare questo ...

Imposta il tuo sito web in IIS per intestazioni uso host. Quindi creare un sito web in IIS, utilizzando lo stesso indirizzo IP, ma senza una definizione intestazione host. (Ho etichettato il mio "Rogue Sito" perché alcuni canaglia volta che è stata impostata la deliverately DNS per il suo dominio per risolvere al mio sito governo popolare. (Non so perché) In ogni caso, utilizzando le intestazioni host su più siti è una pratica buona. E avendo un sito definito per il caso in cui nessuna intestazione host è inclusa è un modo per i visitatori di cattura che non hanno il nome di dominio nella richiesta HTTP.

Sul sito senza intestazione host, creare una home page che restituisce lo stato intestazione della risposta di "HTTP 410 Gone". Oppure è possibile reindirizzare altrove.

Tutti i bot che cercano di visitare il server tramite l'indirizzo IP piuttosto che il nome di dominio risolveranno il sito e ottenere l'errore "410 Gone".

Io uso anche di Microsoft URLscan, e modificato il file URLScan.ini per escludere la stringa user angent, "Zmeu".

Se si utilizza IIS 7.X si potrebbe usare Richiesta di filtraggio per bloccare le richieste

Scan intestazioni: User-agent

Nega Strings: ZmEu

Per provare se funziona avviare Chrome con il parametro --User-Agent "ZmEu"

Questa asp.net modo non viene mai richiamato e la sua consente di risparmiare un po 'di CPU / memoria ..

ho aggiunto questo modello in Microsoft URL Rewrite Module:

entrare descrizione dell'immagine qui

entrare descrizione dell'immagine qui

entrare descrizione dell'immagine qui

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

Il top elencati uno, “^ $” è l'espressione regolare per una stringa vuota. Non permetto bot per accedere alle pagine a meno che non si identificano con un user-agent, ho trovato il più delle volte le uniche cose di colpire le mie queste applicazioni con un user agent erano strumenti di sicurezza canaglia andato.

I vi consiglierà quando i bot di blocco essere molto specifico. Semplicemente usando una parola generica come “fuoco” potrebbe pop positivo per “firefox” È inoltre possibile regolare l'espressione regolare per risolvere questo problema, ma ho trovato molto più semplice per essere più precisi e che ha il vantaggio di essere più informativo alla persona successiva a toccare quella impostazione.

Inoltre, si vedrà Io ho una regola per Java / 1.7.0_25 in questo caso è successo a essere un bot utilizzare questa versione di Java a sbattere i miei assistenti. Fate attenzione lingua blocco agenti utente specifico come questo, alcune lingue come ColdFusion corsa sulla JVM e utilizzare l'agente e web le richieste degli utenti di lingua a localhost per assemblare le cose come file PDF. JRuby, Groovy, o Scala, possono fare cose simili, ma io non li ho ancora testato.

Imposta il server in modo corretto e la preoccupazione circa Dont gli attaccanti :) Non fanno altro che provare alcune possibilità di base per vedere se avete trascurato un trabocchetto evidente. Nessun punto filtrando questo hacker che è abbastanza piacevole per firmare il suo lavoro per voi. Se si dispone di uno sguardo più da vicino i file di log che si vede ci sono così tante bot che fanno questo tutto il tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top