Question

récemment mes Elmah journaux d'exception sont pleins de tentatives de personnes utilisant ce barrage sur le logiciel de sécurité Zmeu contre mon serveur

pour ceux qui envisagent « ce que l'enfer est Zmeu? » Voici une explication ...

« Zmeu semble être un outil de sécurité utilisé pour découvrir les failles de sécurité dans la version 2.x.x de phpMyAdmin, un gestionnaire de base de données MySQL basée sur le Web. L'outil semble provenir de quelque part en Europe de l'Est. Comme ce qui semble arriver à tous les outils de sécurité de chapeau noir, il a fait son chemin vers la Chine, où il a été utilisé depuis pour non-stop attaques par force brute contre les serveurs Web partout dans le monde « .

Heres un lien au sujet de cette attaque ennuyeux -> http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

Im en utilisant .net afin qu'ils aint va trouver PHPMyAdmin sur mon serveur, mais le fait que mes journaux sont pleins ofZmEu attaque son fastidieux devenir.

Le lien ci-dessus fournissent un correctif à l'aide HTAccess, mais im en utilisant IIS7.5, pas apache. J'ai un site asp.net MVC 2, donc im en utilisant le fichier global.asax pour créer mes itinéraires

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

Ma question est-ce que je peux ajouter comme celui-ci dans le fichier Global.ascx qui fait la même chose?

Était-ce utile?

La solution

Une alternative réponse à mon autre ... celui-ci arrête spécifiquement Elmah de se connecter les 404 erreurs générées par Zmeu, tout en laissant le reste de votre comportement sites inchangés. Cela pourrait être un peu moins visible que le retour des messages directement aux pirates.

Vous pouvez contrôler ce genre de choses dans les journaux Elmah diverses manières , une façon ajoute ceci au 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);
            }           
        }
    }
}

Pour cet événement au feu, vous aurez besoin de faire référence à la DLL Elmah de votre projet, et ajouter un using Elmah; au sommet de votre Global.asax.cs.

Le logger.InfoFormat à partir de la ligne suppose que vous utilisez log4net. Sinon, changez à autre chose.

Autres conseils

Les attaques Zmeu étaient ennuyeux moi aussi, donc je regardais dans ce. Il peut être fait avec un HttpModule.

Ajoutez la classe suivante à votre projet:

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

        }

    }
}

puis ajoutez la ligne suivante à web.config

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

... et puis ajoutez une page HTM adaptée à votre projet donc il y a un endroit pour les rediriger vers.

Notez que si vous utilisez log4net vous pouvez commenter les lignes de log4net dans le code pour enregistrer les occasions où le filtre entre dans.

Ce module a travaillé pour moi dans les essais (quand j'envoie les bonnes valeurs de userAgent à elle). Je ne l'ai pas testé sur un vrai serveur encore. Mais il devrait faire l'affaire.

Bien que, comme je l'ai dit dans les commentaires ci-dessus, quelque chose me dit que le retour des erreurs 404 pourrait être une réponse moins visible que de laisser les pirates savent que vous êtes au courant d'entre eux. Certains d'entre eux pourraient voir quelque chose comme cela comme un défi. Mais, je ne suis pas un expert en psychologie du hacker, alors qui sait.

Chaque fois que je reçois un Zmeu ou phpMyAdmin ou forgotten_password rediriger la requête:

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

[ou APNIC ou arin]. J'espère que les admins à ne ripe.net pas comme être piraté.

Sur IIS 6.0, vous pouvez également essayer ...

Définir votre site dans IIS en-têtes hôtes d'utilisation. Ensuite, créez un site Web dans IIS, en utilisant la même adresse IP, mais sans définition d'en-tête d'hôte. (Je le mien portant la mention « Site Rogue » parce que certains oonce voyous mis deliverately son DNS pour son domaine de résolution sur mon site du gouvernement populaire. (Je ne sais pas pourquoi) Quoi qu'il en soit, en-têtes d'hôte sur plusieurs sites est une bonne pratique. Et ayant un site défini pour le cas où aucun en-tête d'hôte est inclus est un moyen pour les visiteurs de prises qui n'ont pas votre nom de domaine dans la requête HTTP.

Sur le site sans en-tête d'hôte, créez une page d'accueil qui renvoie un statut d'en-tête de réponse « HTTP 410 Gone ». Ou vous pouvez les rediriger ailleurs.

Les bots qui tentent de visiter votre serveur par l'adresse IP plutôt que le nom de domaine résoudront le site et obtenir l'erreur « 410 Gone ».

Je l'utilise aussi URLscan de Microsoft, et modifié le fichier URLscan.ini pour exclure la chaîne de Tangente utilisateur, « Zmeu ».

Si vous utilisez IIS 7.x, vous pouvez utiliser le filtrage des demandes pour bloquer les requêtes

Scan en-têtes: User-agent

Deny Strings: ZmEu

Pour essayer si cela fonctionne au démarrage de Chrome avec le paramètre --User-Agent "ZmEu"

Cette asp.net manière est jamais invoqué et son vous permet d'économiser une CPU / mémoire ..

J'ajouté ce modèle dans Microsoft URL Rewrite Module:

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

Le haut figure une, « ^ $ » est l'expression rationnelle pour une chaîne vide. Je ne permets pas bots d'accéder aux pages à moins qu'ils identifient à un agent utilisateur, je trouve le plus souvent les seules choses frapper mes ces applications avec un agent utilisateur étaient des outils de sécurité gone rogue.

Je vous conseille quand les robots collecteurs de blocage soient très spécifiques. en utilisant simplement un mot générique comme « feu » pourrait pop positif pour « firefox » Vous pouvez également régler le regex pour résoudre ce problème, mais je l'ai trouvé beaucoup plus simple d'être plus précis et qui a l'avantage d'être plus d'information à la personne suivante de toucher ce paramètre.

De plus, vous verrez que j'ai une règle pour Java / 1.7.0_25 dans ce cas, il est arrivé à être un robot en utilisant cette version de Java pour claquer mes serveurs. Ne soyez des agents linguistiques de blocage soigneuses utilisateur spécifique comme celui-ci, certaines langues telles que l'exécution ColdFusion sur la machine virtuelle Java et utiliser l'agent utilisateur de la langue et les demandes Web à localhost pour assembler des choses comme des fichiers PDF. JRuby, Groovy ou Scala, peuvent faire des choses semblables, mais je ne les ai pas testé.

Configurez votre serveur correctement et ne vous inquiétez pas sur les attaquants :) Tout ce qu'ils font est d'essayer quelques possibilités de base pour voir si vous avez oublié une évidente piège. Aucun point filtrant celui-hacker qui est assez gentil pour signer son travail pour vous. Si vous regardez de plus près vos fichiers journaux que vous voyez, il y a tant de bots qui font tout le temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top