经典案例
  • 妙视界
  • 广州市坊森室内装饰有限公司
  • ArtsRouge
  • 香港·维西·创意设计机构
  • 阳春冠军联盟
  • Management
  • 爱艺术咖啡会所

惨遭黑客入侵,记一次服务器被攻击的应急行动!(8)

发布于:2017-12-06 19:02来源:网络整理 作者:jimmoo 点击:

因此,这基本上是一种将外国 html / javascript 代码包含在该域下的方法。然而,恶意服务器向我展示了一个有趣的信息:

惨遭黑客入侵,记一次服务器被攻击的应急行动!

这可能是因为我没有使用正确的引用头,或者服务器不再为其恶意负载服务。

在一个 html 文件中,我发现:

<iframe src="way.php"></iframe>

它只是用 iframe 方法插入了 way.php 的输出。

进一步寻找 Shell

以上这些文件因为它们异常的文件名被识别后,我开始通过应用程序代码来查找更多可疑的文件。特别是,你可能希望查找在服务器上执行命令的函数,例如:

passthzru

exec

shell_exec

eval

system

并 grep 所有这些函数的文件:

egrep -rin "system|passthru|exec|shell_exec|eval" /var/www/vhosts/xyz/  > 

~/forensics/results_shell_grep.txt

你经常看到人们只 grep*.php 文件,但这可能会遗漏很多信息,PHP 文件可以有其他扩展,当只检查 *.php 扩展时,就可能会忽略*.php5*, *.php4 或*.phps。

因此,如果条件允许,你最好能在所有文件中进行 grep,或者在任何其他文件结束时提前搜索。也可能存在带有任意扩展的恶意文件,这些文件由更常规的 PHP 文件加载,因此你也应该尝试检测这些文件。

但是,请注意,由于这些文件没有直接执行代码,因此不会检测到混淆的文件和上传的 Shell。你可能需要扩展你的搜索范围,减少一些可疑的函数。

fputs

fwrite

fopen (especially with URLs)

chmod

socket_*

curl_*

base64_decode

gzinflate

如果你有一个粗略的想法,当攻击发生的时候,你可能也想要寻找在那个日期之后被创建或修改的文件。

find -mtime -2 /directory

根据在服务器文件上发生的常规更改,你可以很容易地以这种方式检测到更多的 Shell。

如果你已经发现了一些恶意文件,那么还可以使用检测到的文件的某些特性来寻找进一步的变体,比如,检查所有文件的字符串“404-Server!!”。

除了传统的杀毒软件扫描仪外,还有一种方法是使用基于 yara 的扫描仪,比如 OWASP 中的 Web Malware Scanner。

这些基本上是扫描文件,并以检测恶意代码的 yara 规则检查它们。为此,你需要在 git 中安装 yara、Python binding 和 Web Malware Scanner。

在我的例子中,运行 webmalewarescanner,可以在被破坏的 PHP 应用程序的源代码上产生了很多结果,我花了一些时间,但也正确地识别了三种类型的 Web Shell 中的两种。

root@DESKTOP-XXX:~# cat webmalwarescan_results.txt |grep "webshell"

[2017-08-01 09:24:56] Scan result for file /path/to/up.php : webshell iMHaPFtp 2

[...]

此外,还有一些 wordpress 插件试图检测出攻击方案,比如 sucuri。我不想在已经损坏的系统上安装额外的插件,所以我没有尝试这个。

根据我的经验,在寻找 Web Shell 时,你应该始终结合不同的技术。有些文件很难识别,乍看上去合法的文件也可能有恶意的功能。你越了解被破坏的系统,就越容易检测到异常文件。

------分隔线----------------------------
------分隔线----------------------------