“凌晨 1 点,接到朋友的求助,网站被黑了,访问网站首页会自动定向到一个赌博网站,这个时间点都是该进入梦乡的时间,直接开干。
本文分为以下五个部分介绍:
- 入侵情况分析
- 服务器第一次安全处理
- 服务器第二次安全处理
- 日志分析和追踪
- 总结及分析
入侵情况分析
查看首页代码
通过查看首页(index.html/index.php)源代码发现网站存在 3 处编码后的代码,如图 1 所示,分别在 title、meta 属性中加入了代码,对代码文件中的其他代码进行查看,未发现有异常。
图 1:首页中的可疑代码
Unicode 编码转换
从首页中插入的代码来看是 Unicode 编码,将其复制到 Unicode 编码在线解码的网站(http://tool.chinaz.com/tools/unicode.aspx),并选择 Unicode 转 ASCII。
如图 2 所示,解码后的内容为菠菜宣传语,换句话说就是黑链宣传,网站被插入黑链了。
图 2:分析网站被插入链接
服务器现状
公司网站发现情况后,由于服务器前期运维人员已经离职,网站是托管在独立服务器,目前仅仅只有管理员帐号,所以无法直接进入服务器。
在该情况下,迅速开展以下工作:
- 通过已知管理员帐号登录前台和后台进行查看。登录前台可以使用,后台无法使用,怀疑文件被修改或者删除,无法通过后台来查看如何被入侵的。
- 对目标网站进行漏洞扫描。
- 查看同 IP 其他网站。通过查看该 IP 地址同服务器其他网站,发现服务器上存在 4 个其他站点,后经询问 4 个站点均不是公司架设的。怀疑黑客在服务器上架设站点用来进行 SEO 黑链服务。
网站漏洞分析
确认网站系统情况
手工通过 robots.txt 文件确认网站采用某网站 CMS v7 版本,这个系统很多漏洞,一看心里就凉了。
发现列目录漏洞
通过手工和扫描判断服务器配置上没有禁止目录浏览,导致服务器所有目录均可以被访问。
如图 3 所示,通过 upload_files 可以看到很多 447 字节的 PHP 文件,第一感觉就是挂马、黑链创建文件或者是后门文件。
后面通过分析一句话后门的大小,一句话后门 <?php@eval($_POST['cmd']);?> 文件的大小为 30 字节,跟 447 字节相差太远,直接排除一句话后门,当然有可能是加密的一句话后门。
图 3:列目录漏洞
发现本地文件下载漏洞
通过了解此网站 CMS V7 版本存在的漏洞发现存在一个文件下载漏洞,其漏洞利用为:http://www.*******.org.cn/do/job.php?job=download&url=base64 编码文件地址,base64 编码文件地址。
例如 data/config.php 需要将最后一个 p 更换为“<”,例如分别要读取 data/config.php、data/uc_config.php、data/mysql_config.php 文件。
其对应 url 中的未编码地址应为:data/config.ph<、data/uc_config.ph<、data/mysql_config.ph<,利用如下:
- http://www.****.org.cn/do/job.php?job=download&url=ZGF0YS9jb25maWcucGg8
- http://www.****.org.cn/do/job.php?job=download&url=ZGF0YS91Y19jb25maWcucGg8
- http://www.****.org.cn/do/job.php?job=download&url=ZGF0YS9teXNxbF9jb25maWcucGg8
在浏览器中访问即可下载这些文件,在本地打开即可查看代码,如图 4 所示,读取到数据库配置是 root 账号。
图 4:获取网站敏感文件内容
通过同样的方法读取 upload_files/kongzhipin.php 文件,其内容如图 5 所示,典型的 SEO 手法。
图 5:网站 SEO 黑链代码源文件
获取本地物理地址
通过访问 cache/hack 目录下的 search.php 文件,成功获取网站的真实物理路径。
如图 6 所示,目前有 mysql root 账号和密码,有真实路径,离获取 webshell 已经很近了。
图 6:获取真实物理路径
文件上传及 IIS 解析漏洞
如图 7 所示,可以通过 ckfinder.html 在其上传目录中创建 1.asp 和 1.php 目录,如果服务器存在解析漏洞可以直接获取 webshell。
图 7:文件解析及上传漏洞
数据库导入漏洞
如图 8 所示,通过文件目录漏洞发现在数据库备份目录存有数据库备份文件,前期通过文件下载漏洞获取了数据库用户名和密码,在这里输入后,可以使用旧数据覆盖新数据。
在实际测试时一定要小心,一旦使用该漏洞进行测试,对数据库将是毁灭性的,数据库导入一般都是先 drop,后插入。
因此执行此操作后,能成功恢复数据的可能性非常低,建议网站管理人员定期备份数据库以及代码文件!
图 8:数据库导入漏洞
服务器第一次安全处理
备份当前网站代码及数据库
最重要的事情就是备份,备份数据库及其代码文件到本地,注意是备份当前的数据库和源代码。
如果是要报案,则最好使用备份服务器恢复网站和数据,被入侵服务器留好数据,便于打击和取证,备份源代码和数据库可以用在后面进行分析,对黑客进行追踪和定位。
使用 WebShellKill 查找后门文件
查杀后门
个人觉得 WebShellKill 这个工具不错,可以自动检测很多已知的后门文件和一些病毒文件,它的最新版本是 2.0.9。
下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
下载后选择需要扫描的目录即可开始查杀,如图 9 所示,在该站点下找到几百个黑链及后门文件,不看不知道,一看吓一跳,入侵者真狠!对这些可疑文件进行查看和删除。
图 9:查杀后门文件
网站大马
如图 10 所示,在服务器上发现多个 webshell 大马,该 webshell 可以对文件、数据库等进行操作,功能强大。
图 10:网站大马
没有最黑,只有更黑
通过对网站进行大小查看,一个普通的网站竟然超过 20G,明显不正常,如图 11 所示,在 data_cache 中,黑客用来做 SEO 竟然高达 21.8552 万个页面,共计 15.3G。
图 11:黑客使用缓存文件高达 15G 大小
删除服务器添加账号及后门文件
通过计算机管理-“本地用户和组”-“用户”,查看计算机上所有的用户
经过朋友的确认,红色框住用户全部为黑客添加账号,如图 12 所示,共计 7 个账号,将其删除。
图 12:黑客添加账号
查看管理员组和对应用户所属文件夹
如图 13 所示,通过命令查看管理员及用户账号,并查看当前用户的配置文件,在其配置文件中包含一些黑客攻击工具,将这些文件全部打包压缩,然后删除用户及其配置文件。
图 13:查看管理员账号及其黑客账号配置文件
清理服务器后门文件
对于服务器后门文件清理就要靠个人经验和技术,一方面可以借助安装 360 等杀毒软件来进行自动查杀,如图 14 所示,系统盘下一堆病毒。
通过杀毒软件的查杀可以清理第一批,对于被入侵过的服务器,建议是重做系统!
图 14:使用杀毒软件对病毒进行查杀处理
实在没有办法只能手工对病毒进行清理。后续可以借助 autoruns 和 processxp 等工具对启动项、服务、进程等进行查看。
如果发现无签名,可以采取以下一些办法:
- 将可疑文件直接上报杀毒网站进行引擎查杀。可以将样本直接上报卡巴斯基和 360 等平台。(https://virusdesk.kaspersky.com/、http://sampleup.sd.360.cn/)
- 更多上报地址请查看http://www.stormcn.cn/post/782.html。
- 通过百度等搜索引擎搜索名称,查看网上有无相关资料。
- 对可疑程序做好备份后,将其删除。
- 顽固病毒需要通过冰刃以及进程管理等工具强行结束进程,然后再删除。
- 通过 CurrPorts(http://www.nirsoft.net/utils/cports.zip)查看当前网络连接程序及其相关情况。
- 实在不放心就要用抓包程序对服务器进行抓包,查看对外连接。
- 记得清理 shift 后门和放大镜等可以利用远程桌面启动的后门,建议将 shift、放大镜等程序直接清理或者禁用。
更改所有账号及密码
至此第一段落网站入侵清理完毕,对所有网站使用的账号及密码进行更改,更改所有密码,包括远程桌面,ftp、ssh、后台管理、数据库账号密码等。
由于黑客入侵过,可能已经下载数据库和获取所有相关密码,因此需要全部进行更改。
恢复网站正常运行
对网站进行恢复,使其正常运行,同时开启防火墙,对外仅仅开放 80 端口和远程管理端口。
服务器第二次安全处理
服务器再次出现挂黑链现象
过了两天服务器再次出现问题,发现网站再次出现黑链现象,百度搜索该网站域名,出现结果一访问就指向赌博网站。
手动清理后门文件
再次使用 WebShellKill 工具对站点进行查看
手工对网站所有 PHP 文件进行查看
对网站所有的 PHP 文件进行搜索,安装文件大小进行排序,对超过 20K 以上文件都需要进行查看。
如图 15 所示,定位到大文件目录,一看该文件多半是 webshell,如图 16 所示,打开以后果然是 webshell,采取了加密,所以 WebShellKill 无法查杀,将该文件的 hash 值直接上报给 WebShellKill 工具。
图 15:定位大文件位置
图 16:查看文件内容
手工查杀狡猾的后门
对网站的文件逐个进行查看,文件中有加密字符、乱码的,多半是 webshell。
如图 17 所示,另外还发现存在文件上传页面,这种通过工具很难查杀出来。
图 17:另外加密的 webshell
通过分析日志文件定位后门文件
对日志文件中的 php 文件进行搜索,逐个进行验证,这个可以通过逆火日志分析软件来实现,后续有介绍。
寻找首页黑链源代码文件
对于网站首页的黑链源代码文件,通过搜索百度等均未发现有价值的处理意见,后面通过分析,其代码一定有加载出来。
对每一个 js 文件进行源头查看,最终获取一个编辑器加载的 node.js 文件,其内容如图 18 所示,明显就是这个来实现的,将其删除!
图 18:获取黑链源代码文件
第二段落的处理完毕后,网站恢复正常运行,同时修补了发现的漏洞,以及部分明显程序漏洞。
日志分析和追踪
对 IIS 日志进行手工分析
- 将 IIS 日志文件生成一个文件,可以利用命令来实现:cat *.log>alllog.txt。
- 对源代码中存在的后门文件进行逐个梳理,整理出文件名称。
- 在日志中以文件名为关键字进行查看,如图 19 所示,可以获取曾经访问过该文件的 IP 地址,这些地址可以用来进行跟踪和案件打击。
图 19:手工追踪黑客 IP 地址
黑客账号配置文件分析和追踪
获取黑客的 QQ 号码
通过查看黑客添加的账号下的配置文件,可以获取黑客曾经使用过什么工具,访问过什么站点等信息,如图 20 所示,黑客曾经在该服务器上登录过。
图 20:获取黑客访问的 QQ 号码
获取黑客攻击高校源代码
在黑客当前账号下,还发现三个高校站点压缩包,如图 21 所示。
图 21:黑客攻击其他目标
利用逆火对网站日志进行分析处理
分析黑客攻击 IP 地址
在虚拟机上安装逆火日志分析软件(该软件已经停止更新),如图 22 所示,安装完毕后,需要设置网站的 url、首页文件和日志文件名称及位置,完毕后即可进行分析。
这里需要注意的是如果需要定位黑客,需要在选项中进行配置,将黑客的后门文件名称加入到文件追踪和黑客攻击中。
图 22:通过日志分析黑客 IP 地址及其相关行为
对网站进行漏洞分析
如果日志文件足够多,则可以通过统计分析,在访问资源、错误等内容中去发现存在的漏洞和攻击行为,这些分析将有助于修补漏洞和发现攻击行为,对存在问题进行修复。
总结及分析
回顾整个处理过程,看似简单,却非常耗费时间,通过跟圈内朋友交流,我们跟黑客攻击目标网站进行 SEO 黑链处理,就是一场战争。
服务器上会有各种木马和 webshell,第一次以为自己清理完毕,结果还遗留有加密的 webshell 以及上传类型的后门,这种后门的清理非常的耗费时间,尤其是在 Windows 下。
整个过程有以下一些体会跟大家分享:
- 备份数据库及代码文件到本地或者其他服务器。
- 使用 WebShellKill 自动清理第一遍,对第一遍出现的 shell 后门要进行登记或者抓图,特别要统计文件时间。
- 利用文件时间对文件进行搜索,对同时间点的文件要进行特别查看。
- 对所有相关文件类型进行搜索,对大个头文件一定要进行手工查看。
- 可以在 Windows 操作系统下加载类 Linux 系统对文件内容进行扫描,不放过文件包含后门。
- 对首页挂马的 js 文件可以进行核实,找到源头。
- 将 IIS 日志文件利用逆火日志分析软件进行分析处理,寻找漏洞和黑客 IP。
- 安装杀毒软件,开启防火墙,对服务器进行安全清理和加固,升级系统补丁程序。
陈小兵,高级工程师,北理工计算机学院博士在读。拥有丰富的信息系统项目经验以及 15 年以上网络安全经验。现主要从事网络安全及数据库技术研究工作。已出版《SQL Server2000培训教程》《黑客攻防及实战案例解析》《Web渗透及实战案例解析》《安全之路-Web渗透及实战案例解析第二版》、《黑客攻防实战加密与解密》、《网络攻防实战研究:漏洞利用与提权》、《网络攻防实战研究:MySQL数据库攻击与防范》共计 7 本专著,在国内核心期刊及普通学术期刊发表论文 20 余篇,曾在《黑客防线》、《黑客X档案》、《网管员世界》、《开放系统及世界》、《视窗世界》等杂志发表文章 100 余篇。