Apache 访问日志 \x80w\x01\x03\x01

Apache 访问日志 \x80w\x01\x03\x01

我收到以下路径的状态代码为 200(OK)的错误请求:

[06/Feb/2013:07:41:38 +1100] "\x80w\x01\x03\x01" 200 550 "-" "-"
[05/Feb/2013:10:52:22 +1100] "\x80g\x01\x03\x01" 200 550 "-" "-"

我现在收到大量垃圾邮件。我的服务器是否被入侵了?

答案1

日志中的这些字节序列看起来像 SSL 版本 2 客户端 hello 数据包的开头,这是由于某些 HTTPS 客户端连接到您的 Web 服务器需要纯 HTTP 而非 HTTPS 的端口所致。您的 Web 服务器会尝试将 SSL 握手的开始解释为 HTTP 请求方法。

所以这里有两个问题:

  1. 有人试图将 HTTPS 与您的 Web 服务器需要 HTTP 的端口通信。这可能是您的服务器配置错误(例如,您添加了指令Listen 443,但未正确启用 HTTPS),或者只是愚蠢的机器人在非标准端口上尝试 HTTPS 的端口扫描的结果。或者这可能是由客户端配置错误引起的(例如https://example.com:80/可能会导致这种行为)。
  2. 您的服务器出于某种原因,对使用虚假方法的请求回复了状态代码 200。虽然 Apache 本身不应该处理这种未知方法,但 PHP 默认接受所有内容并将请求传递给脚本。再加上一些导致将不存在文件的请求传递给重写规则index.php(通常用于获取“干净的 URL”)以及不检查$_SERVER['REQUEST_METHOD']这一点的脚本,可能会导致您在此处看到的行为。

如果发送这些请求的客户端由您控制,那么您就会遇到第三个问题 - 这些客户端正在使用过时且不安全的 SSL v2 协议(他们宣传支持 SSL 版本 3.1,实际上是 TLS 1.0,但会接受来自服务器的 SSL v2 响应,因此由于 SSL v2 中缺少对握手的完整性保护,它们很容易受到协议降级攻击)。

答案2

是的,垃圾信息似乎来自对 http 服务器的 https 请求。

HNAP1 请求看起来像是针对大量路由器的自动攻击。

如果它击中了 Apache 安装,那就没问题了。

如果它攻击任何类型的电缆/DSL 路由器,它很可能被攻击了。你应该重置它并将固件更新到最新版本。这个漏洞可能会让黑客进入你的内部网络,但我真的怀疑自动攻击会走得那么远。幸运的是,它似乎只能更改密码和设置,所以重置会撤消它,但如果你不更新到固定固件,它就会再次发生。涉及覆盖固件的更持久的漏洞将是特定于设备的。

答案3

我不断发现请求方法与一个配对,GET /HNAP1/ HTTP/1.1这让我怀疑该\x80w\x01\x03\x01序列可能与家庭自动化系统之一中的漏洞有关。

74.203.xx.xx - - [13/Dec/2013:19:01:25 -0800] "\x80w\x01\x03\x01" 405 997 "-" "-"
74.203.xx.xx - admin [13/Dec/2013:19:01:25 -0800] "GET /HNAP1/ HTTP/1.1" 301 579 "http://.../" "Mozilla/5.0 Galeon/1.0.2 (X11; Linux i686; U;) Gecko/20011224"
74.203.xx.xx - - [13/Dec/2013:19:04:43 -0800] "\x80w\x01\x03\x01" 405 997 "-" "-"
74.203.xx.xx - admin [13/Dec/2013:19:04:44 -0800] "GET /HNAP1/ HTTP/1.1" 301 581 "http://.../" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.0.1) Gecko/20030306 Camino/0.7"

相关内容