2013-01-17 184 views
1

我使用grep分析我的日志文件后,发作的攻击。 通常这样的grep模式,匹配多个文件

grep -F "POST /xxxxx.php" ./access-log 

现在有人攻击我的一些网站,但我不知道在哪里的漏洞,而且没有,攻击者的IP地址是什么。现在,我想找到一个IP地址,谁sended请求我的网站不止一个,这样的:

abcde.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-" 

wxyz.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-" 

,但我不知道我是怎样得到的grep或其他的Unix工具,只给我匹配,谁匹配是多个日志文件。

+0

既然你不知道哪里有漏洞,你可以提供什么样的特点确定攻击请求?它总是一个POST请求?总是对.php文件?如果没有这些数据,您还可以与Google-Bot相匹配,例如,从您的两个站点请求robots.txt。 – Perleone

回答

0

假设你想要的IP地址是出现在每个日志文件的第一个字段的一个,试试这个:

awk ' 
    /POST \/xxxxx\.php/ { 
     ip=$1 
     if (!(ipFilePairs[ip,FILENAME]++)) { 
     ipFileCnt[ip]++ 
     ipFileList[ip] = ipFileList[ip] " " FILENAME 
     } 
    } 
    END { 
     for (ip in ipFileCnt) 
     if (ipFileCnt[ip] > 1) 
      print ip ":" ipFileList[ip] 
    } 
' *.log