应急响应—常见应急响应处置思路

下图是常见应急响应处置思路的思维导图

下面将对 "常见应急响应处置思路" 进行详细的讲解

一、操作系统后门排查

排查目标:找出后门程序在哪里,找到后门是怎么启动的,尽可能发现后门修改了系统的那些地方。

Windows常见系统后门排查

1、工具列表

  • Pchunter               恶意代码检测工具
  • Process Explorer  恶意代码检测工具
  • Autoruns               显示Windows启动时自动运行的程序
  • D盾                       WebShell查杀
  • Logparser             日志分析工具

        Windows的自带命令集没有linux的强大,不能完全满足应急响应时的处置工作,所以一般来说我们都需要借助外部工具进行恶意后门分析

2、检查项目

  • 注册表启动项        查看注册表中的自启动项
  • 恶意进程               查看是否存在可疑进程和用户
  • 系统服务               查看是否存在可疑系统服务
  • 网络连接               查看是否存在可疑的网络连接
  • 计划任务               查看是否存在可疑计划任务条目

       上述的排查项,全部可以使用PChunter和Autoruns完成。

PChunter使用方法:右击,以管理员身份运行——选中 "进程" 选项,然后右键选择 "校验所有数字签名",就可以筛选出数字签名有问题的进程;同样的在PChunter的 "启动信息" 选项中,对 "启动项"、"服务"、"计划任务" 这3个项都需要校验一下数字签名,数字签名的颜色代表什么呢?

  • 黑色:表示微软的进程
  • 蓝色:表示非微软的进程
  • 粉红色:表示没有签名的模块
  • 红色:表示可疑进程,隐藏服务、被挂钩函数

        简单来说就是红色是极大可能是恶意进程,粉红色的话就需要人工再进一步判断一下,蓝色一般来说是正常企业的签名,黑色是微软自己的签名。那么黑色是不是代表就安全的呢?不一定,因为黑客如果使用cmd.exe或者powershell.exe这些命令执行的程序去启动恶意脚本,那么它的签名也会是黑色的,所以这里还是需要注意一下。
        PChunter的其他功能,比如“网络”功能也需要看一下,查看一下有没有对危险服务器建立恶意连接。
        Autoruns这个工具也挺简单,一般我们只要打开查看它的 "Everything" 选项就行了,这个选项是显示所有开机启动项的信息,如果想分类查看的话,就点击别的选项卡就行了。

3、系统日志——查看是否存在恶意登陆情况

Windows的系统日志可以用以下两种方法对其进行分析

  • 方法一:可以使用Logparser格式化后进行分析。
  • 方法二:直接打开 Windows控制面板——管理工具——事件查看器 进行分析,比如我们要筛选是否存在 3389 rdp 暴力破解行为的话,只要在 "安全" 日志中筛选事件ID为4624(登陆成功)和4625(登陆失败)的事件即可。

两种方法使用起来各有千秋,具体使用哪种还是看各自的习惯了。

4、Shift粘滞键后门

        查看C:\WINDOWS\system32\sethc.exe文件是否被替换,或者直接按5下Shift键,看看弹出来的是不是正常的系统粘滞键,如果是的话,那么就可能没有被黑客安装后门,不过也有后门会伪装成正常的粘滞键程序。

5、NTFS(ADS)数据流

检查方法:

  • 首先打开cmd,切换到要检查的目录下,使用命令 "dir /r" 检查目标目录里是否存在使用NTFS数据流隐藏的文件。(hidden、Indentifier)
  • 如果存在,就使用 "notepad 文件名:NTFS隐藏文件名" 来查看隐藏的文件的内容是什么。

        很多时候黑客会使用NTFS数据流的方式去隐藏自己的后门或者WebShell,这时就需要我们通过以上方法检查是否存在ntfs数据流隐藏的文件,从而去发现黑客遗留的后门。

Linux常见系统后门排查命令

1、检查异常账号——cat /etc/passwd

        通过检查/etc/passwd,查看有没有可疑的系统用户,这个文件是以冒号:进行分割字段,一般我们只要注意第三个字段即可,第三个字段是用户ID,也就是UID,数字0代表超级用户的UID,即这个账号是管理员账号。一般Linux只会配置一个root账号为系统管理员,当出现其他账号是系统管理员的时候,就要注意了,很可能是黑客建立的账号。

2、检查异常登陆

  • who         查看当前登录用户(tty本地登陆  pts远程登录)
  • w             查看系统信息,想知道某一时刻用户的行为
  • last          列出所有用户登陆信息
  • lastb        列出所有用户登陆失败的信息
  • lastlog      列出所有用户最近一次登录信息

3、网络连接——netstat -pantl

        通过查看网络连接,检查是否存在对外的恶意连接,这些恶意连接是哪个进程产生的,就可以判断出服务器是否被黑客入侵。

4、查看进程——ps -ef | more

        查看进程信息,进程运行参数太长或存在不可见字符时,需加 more命令 或把ps命令的结果输出到文件查看。

        查看系统进程可以有效的发现是否存在黑客运行的恶意程序。这里要注意一点,PID是进程运行的ID号,PPID是父进程号,也就是启动这个进程的程序是谁,不过我们一般只要注意PID就可以了。很多时候服务器运行的进程较多,而且当进程的参数出现不可见字符的时候,我们只用ps -ef很可能会忽略掉一些进程的启动信息,所以建议大家使用ps -ef查看进程时加一个more命令,这样就能有效的避免我刚才说到的情况。

        很多时候黑客运行的程序会做很多伪装,比如我们通过ps命令查看到一个进程名是abc,但是如果黑客经过伪装的话,启动这个程序的文件名就可能不是abc了,是其他的命令,所以我们就要通过在/proc这个内存目录来查看具体是哪个程序启动的这个进程,同样的,使用lsof -p命令我们一样能达到同样的效果

ls -la /proc/<PID>/exe    或

lsof -p <PID>

5、计划任务

  • crontab -l               列出计划任务列表
  • crontab -e              编辑计划任务,当计划任务出现不可见字符时,需要此命令才能看到具体信息
  • ls -la /var/spool/cron/          查看计划任务文件
  • more /etc/crontab               查看计划任务

        计划任务也是黑客经常会使用到的一个功能,通过查看计划任务,可以发现黑客是否在系统中添加了定期执行的恶意脚本或程序。如果发现某个计划任务是定期运行一个python脚本,但我们不知道这个python脚本是不是恶意的,这时就需要我们去查看python脚本的内容来确定它是不是一个恶意脚本了。

6、系统启动项

  • more /etc/rc.local
  • ls -l /etc/rc.d/rc<0~6>.d       优先查看/etc/rc.d/rc3.d的内容
  • more /etc/ld.so.preload       ld.so.preload是linux动态链接库,linux正常程序运行过程中,动态链接器会读取LD_PRELOAD环境变量的值和默认配置文件/etc/ld.so.preload的文件内容,并将读取到的动态链接库进行预加载,即使程序不依赖这些动态链接库。

       查看系统启动项也是一个有效发现黑客攻击的方法,一般来说我们只需要查看上述的这几个文件就行。

7、系统日志

  • /var/log/secure        SSH登陆日志、su切换用户日志,只要涉及账号和密码的程序都会记录
  • /var/log/message    记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,但因为记录的信息太杂,一般不查看。
  • /var/log/cron            计划任务日志
  • /var/log/wtmp          记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。这个文件是二进制文件,需要使用last命令来查看

        通过查看系统日志,能发现黑客究竟做了一些什么事情,不过一般我们只查看secure日志即可,这个日志能有效的发现黑客有没有通过暴力破解的方法攻破过服务器,查看日志的方式也很简单,使用cat、more、grep等命令查看即可。

8、Rootkit查杀

  • chkrootkit
  • rkhunter

        如果遇到更顽强的系统木马,比如Rootkit这类型的后门,我们就要使用一些专门的Rootkit查杀工具了,直接运行就可以开始查杀。

二、Web日志分析

目标:1.找出可能是攻击成功的真实攻击; 2.找出可能是webshell的文件

        Web日志会有很多没用的攻击日志记录,那些日志记录的都是没有攻击成功的日志信息,这些日志对我们来说的参考作用不大,所以一般可以直接忽略。

        Web日志分析会相对难一点,因为针对Web的攻击手法是最多种多样的,而Web日志所记录的信息也并不完善,所以Web日志分析会相对其他日志麻烦一点。

1、网站所在目录和网站日志

        对于Web日志分析,第一个问题就是怎么找到Web目录所在的位置,大家可能会说直接问现场的客户不就知道了。其实大多数情况下是可以直接问客户,但是很多时候现场的客户自己都不知道自己的网站目录在哪里,所以这时就要我们自己找web目录了。

常见中间件与其配置信息(Linux下):

  • Apache              /etc/httpd/conf/httpd.conf
  • Nginx                 /etc/nginx/nginx.conf
  • Tomcat               server.xml
  • Weblogic            登陆控制台查看
  • WebSphere        登陆控制台查看

       找web目录的方法很简单,只要通过查看中间件的配置文件,就能找到对应的web目录和web日志的位置。这里列出的配置文件路径不是固定的,只是默认情况下的配置文件路径。找到中间件的配置文件后,查找到相应的网站目录配置和网站日志目录配置,就能找到web目录和web日志了。

       当然还有更简单的方法,就是直接用find命令查找如php这样后缀的动态脚本文件。如 # find  / -name *.php

常见中间件与其配置信息(Windows下):

  • 前面Linux列出的所有中间件
  • IIS                     打开IIS配置查看
  • XAMPP             XAMPP目录下的htdocs目录
  • PHPStudy         PHPStudy目录下的www目录
  • ApmServ           ApmServ目录下的htdocs目录

        Windows下的中间件除了刚才讲到的Linux下常见中间件外,还有IIS和其他一键部署环境,比如XAMPP、Apmserv这些,都是Windows下常用的一键部署环境,看到这样命名的目录的时候,基本就能知道web目录在哪里。

        当然,windows下也能直接通过全盘搜索如php等脚本文件来找到web所在目录。

2、web日志分析

确定了web目录以及web日志,接下来就是对web日志进行分析了。

第一步:排除常见状态码

  • 200           正常访问,服务器已成功处理了请求。
  • 301/302   永久移动/临时移动,跳转到新的网页。
  • 400          错误的HTTP数据包,服务器不理解请求的语法。
  • 401          请求要身份验证。
  • 403          服务器拒绝请求。
  • 404          服务器找不到请求的网页。
  • 500          某个网页出错、服务器遇到错误,无法完成请求。

        Web日志中有很多无用的杂质和没有成功的攻击信息,所以在进行web日志分析时,会先排除掉一些无用信息,一般会先对301、302、400、401、403、404这几个状态码排除掉,Linux下可以使用grep -v参数进行排除。Windows下可以使用sublime或notepad++辅助分析

       web日志分析的目标就是找出可能存在的真实攻击,和找出可能是webshell的脚本文件。

       在Windows下进行web日志分析时,由于没有很好的原生命令,所以需要借助第三方编辑器去进行分析,这样会比较方便,这时就可能需要用到正则表达式来辅助我们分析。我们只需要掌握简单的正则表达式的基础,就可以完全上手进行日志分析了。

简单的正则表达式

  • \n           换行符
  • \w           匹配一个字母,数字,下划线
  • \W           除\w了以外的任意字符
  • \d           数字
  • \D           除数字之外的任意字符
  • \s           空白、空格字符
  • \S           除空白、空格的任意字符
  • ^            以某个字符串开始
  • $            以某个字符串结束
  • *            0次、1次或多次
  • ?            0次或1次
  • +            1次

第二步:筛选web日志中所述语言后缀

       查看网站是使用什么语言开发的,然后筛选出那个语言对应的后缀名。如使用PHP语言开发的网站,就筛选.php后缀的文件,因为如果网站的脚本文件是php后缀的,那么黑客攻破网站后上传的WebShell木马也会是php后缀。

        Linux系统下可以使用命令:# grep .php access_log 来筛选出php后缀的Web日志信息

第三步:开始逐条分析日志

       先使用命令  wc -l 统计筛选后的日志条数,若数量不多,则可以开始逐条分析日志。日志中重复性较大的相同类型日志可以快速忽略,当发现可能攻击成功的攻击日志时,则需要仔细分析后面的日志信息,找出可能存在的WebShell木马。

三、网站劫持类事件分析

目标:1.找出网站被劫持的原因;2.找出网站被劫持的方式;3.尽可能找到网站被劫持的源头。

方法一:

        打开Chrome浏览器的F12检查功能,选中 "NetWork(网络)" 选项,刷新存在问题的网站页面,即可看到所有网站加载的动态和静态文件,如gif、css、js等文件全部都能看到。

方法二:

       查看网站源代码,查找是否存在可能是恶意加载的js文件或javascript代码。

       当发现可疑javascript代码,并且该代码被混淆或加密过,可以使用chrome浏览器的 F12 检查功能,利用console.log()这个打印方法把混淆过的javascript代码打印出来,这样就能获得解密后的明文代码。

方法三:

       打开WireShark进行抓包,刷新存在问题的网站页面,对抓取到的PCAP数据包进行分析。这种方法一般适用于运营商的链路劫持事件。

  • 22
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值