应急响应—常见应急响应处置思路_应急响应排查思路思路

157 阅读10分钟

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等文件全部都能看到。