tic*_*use 5 linux php brute-force-attacks
我照顾的其中一台服务器似乎参与了对 Wordpress 安装的暴力攻击。
我已经多次处于这种情况的接收端,因此非常熟悉可以采取哪些步骤来防止这种情况发生。然而,我正在努力解决的是检测传出攻击。该服务器是一个典型的 Apache 服务器,上面有许多虚拟主机——这当然是复杂的地方——如果那里只有一个,那就不会那么困难了!
我目前正在使用 tcpflow 使用以下命令记录从该服务器上的任何端口到任何其他机器上的端口 80 的流量:
tcpflow -i eth0 dst port 80 and src host <my_servers_ip> and port not 22
Run Code Online (Sandbox Code Playgroud)
我发现这比 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
Run Code Online (Sandbox Code Playgroud)
请注意,我已经混淆了上面的“主机:”,我相信这是被攻击的主机(这是正确的吗?)。
所以我的问题真的是,我该如何检测产生这种恶意流量的虚拟主机?如果我能做到这一点,我可以让我的客户知道,他可以采取措施调查该网站并进行必要的更改以阻止它。
非常感谢收到任何解决方案:)
根据您的说法,我假设您处于无法使用allow_url_fopen 限制客户端下载url 的设置中。
在这种情况下,实际上很难返回到原始 php 脚本,因为您显示的 tcpflow 日志实际上并未嵌入该信息。
一个可以考虑的简单选择是强制任何传出请求具有可显示的用户代理,您可以使用该代理来识别发出该请求的实际客户端。
例如,您可以向 client1 网站的 vhost 定义添加一条指令
php_admin_value user_agent client1
Run Code Online (Sandbox Code Playgroud)
这将强制该网站发出的任何 http 请求使用用户代理“client1”,该请求将显示在您的 tcpflow 日志中,从而让您知道是谁发起的。
请注意,如果担心隐私,您可能需要使用只有您可以映射到实际客户端的 user_agent(例如客户端名称的加密)。
然而,它可能会损害可用性,因为某些网站将根据提供的 user_agent 显示不同,并且此设置有意阻止您的客户端进行更改它的任何尝试。
归档时间: |
|
查看次数: |
2392 次 |
最近记录: |