Asp.net

使用 ASP.NET MVC 阻止 ZmEu 攻擊

  • September 3, 2017

最近,我的 elmah 異常日誌充滿了人們對我的伺服器使用因此 dam ZmEu 安全軟體的嘗試

對於那些想“ZmEu到底是什麼?”的人。這是一個解釋…

“ZmEu 似乎是一種安全工具,用於發現 PHPMyAdmin 2.xx 版中的安全漏洞,PHPMyAdmin 是一個基於 Web 的 MySQL 數據庫管理器。該工具似乎起源於東歐的某個地方。就像所有黑帽安全工具似乎發生的事情一樣,它進入了中國,此後一直被用於對世界各地的網路伺服器進行不間斷的暴力攻擊。”

這是關於這個惱人攻擊的一個很好的連結-> http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

我使用.net,所以他們不會在我的伺服器上找到 PHPMyAdmin,但我的日誌充滿了 ZmEu 的事實攻擊它變得令人厭煩。

上面的連結使用 HTAccess 提供了一個很好的修復,但我使用的是 IIS7.5,而不是 apache。我有一個 asp.net MVC 2 站點,所以我使用 global.asax 文件來創建我的路由

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

我的問題是我可以在 Global.ascx 文件中添加這樣的東西嗎?

的另一個答案的另一種答案…這個答案專門阻止 Elmah 記錄 ZmEu 生成的 404 錯誤,同時保持您網站的其餘部分行為不變。這可能比直接向黑客返回消息不那麼引人注目。

您可以通過各種方式控制 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,並將 a 添加using Elmah;到 Global.asax.cs 的頂部。

開頭的行logger.InfoFormat假設您使用的是 log4net。如果沒有,請將其更改為其他內容。

引用自:https://stackoverflow.com/questions/3846304