从我的服务器传出暴力攻击

我看到的其中一台服务器似乎参与了针对Wordpress安装的powershell攻击。

我已经接受了这么多次,所以我非常熟悉可以采取措施来防止这种情况。 然而,我正在努力的是检测传出的攻击。 服务器是一个典型的Apache服务器,上面有许多虚拟主机 – 这当然是复杂的事情 – 如果只有一个虚拟主机,那就不会那么困难了!

我正在使用tcpflow来logging从服务器上的任何端口到使用此命令的任何其他机器上的端口80的stream量:

tcpflow -i eth0 dst port 80 and src host <my_servers_ip> and port not 22 

我发现这个更适合tcpdump。 通过它的输出可以稍微脑融化一段时间:) tcpflow将每个请求放入一个单独的文件..

以下是一个我认为是可疑活动的文件输出:

 POST /wp-login.php HTTP/1.1 User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Host: somedomain.com Accept: */* Cookie: wordpress_test_cookie=WP+Cookie+check Content-Length: 97 Content-Type: application/x-www-form-urlencoded log=jacklyn&pwd=london&wp-submit=Log+In&redirect_to=http://somedomain.com/wp-admin/tes1a0&testcookie=1 

请注意,我已经混淆了上面的“Host:”,我相信这是被攻击的主机(这是否正确?)。

所以我的问题真的是,我该如何去检测正在产生这种恶意stream量的虚拟主机? 如果我可以这样做,我可以让我的客户知道,他可以采取措施,调查网站,并作出必要的更改,以阻止它..

任何解决scheme非常感激地收到:)

我从你说的话中假设你在一个设置中,你不能用allow_url_fopen来限制你的客户端的url下载。

在这种情况下,实际上很难回到原始的php脚本,因为你显示的tcpflow日志实际上并没有embedded这些信息。

要考虑的一个简单的select是强制任何传出的请求有一个暴露的用户代理,你可以用它来识别实际的客户端。

例如,你可以在client1网站的虚拟主机定义中添加一条指令

 php_admin_value user_agent client1 

这将强制任何由该网站发出的http请求来使用用户代理“client1”,它将显示在你的tcpflow日志中,从而让你知道是谁发起的。

请注意,如果隐私是一个问题,您可能希望使用只能映射到实际客户端的user_agent(例如客户端名称的encryption)。

但是,这可能会损害可用性,因为某些网站会根据所提供的user_agent显示不同的内容,并且此设置有意防止您的客户尝试对其进行更改。