【应急响应】黑客入侵应急分析手工排查

1. 事件分类

常见的安全事件:

  1. Web入侵:挂马、篡改、Webshell
  2. 系统入侵:系统异常、RDP爆破、SSH爆破、主机漏洞
  3. 病毒木马:远控、后门、勒索软件
  4. 信息泄漏:刷裤、数据库登录(弱口令)
  5. 络流量:频繁发包、批量请求、DDOS攻击

2. 排查思路

一个常规的入侵事件后的系统排查思路:

1. 文件分析

a) 文件日期、新增文件、可疑/异常文件、最近使用文件、浏览器下载文件

b) Webshell 排查与分析

c) 核心应用关联目录文件分析

2. 进程分析

a) 当前活动进程 & 远程连接

b) 启动进程&计划任务

c) 进程工具分析

    i.  Windows:Pchunter

    ii.  Linux: Chkrootkit&Rkhunter

3. 系统信息

a) 环境变量

b) 帐 信息

c) History

d) 系统配置文件

4. 日志分析

a) 操作系统日志

    i.  Windows: 事件查看器(eventvwr)

    ii. Linux: /var/log/

b)  应用日志分析

     i.  Access.log

     ii. Error.log

3. 分析排查

3.1     Linux系列分析排查

3.1.1    文件分析

1. 敏感目录的文件分析(类/tmp目录,命令目录/usr/bin /usr/sbin)

例如:

查看tmp目录下的文件: ls –alt /tmp/

查看开机启动项内容:ls -alt  /etc/init.d/

查看指定目录下文件时间的排序:ls  -alt  | head -n 10

针对可疑文件可以使用stat进行创建修改时间、访问时间的详细查看,若修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。

 2. 新增文件分析

例如要查找24小时内被修改的JSP文件: find ./ -mtime 0 -name “*.jsp”

(最后一次修改发生在距离当前时间n*24小时至(n+1)*24 小时)

查找72小时内新增的文件find / -ctime -2

PS:-ctime 内容未改变权限改变时候也可以查出

根据确定时间去反推变更的文件

ls -al /tmp | grep “Feb 27”

3. 特殊权限的文件

查找777的权限的文件   find  /  *.jsp  -perm 4777

4. 隐藏的文件(以 “.”开头的具有隐藏属性的文件)

5. 在文件分析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件。

3.1.2    进程命令

1. 使用netstat 络连接命令,分析可疑端口、可疑IP、可疑PID及程序进程

netstat –antlp | more

2. 使用ps命令,分析进程

ps aux | grep pid | grep –v grep

将netstat与ps 结合,可参考vinc牛的案例:

(可以使用lsof -i:1677 查看指定端口对应的程序)

3. 使用ls 以及 stat 查看系统命令是否被替换。

两种思路:第一种查看命令目录最近的时间排序,第二种根据确定时间去匹配。

ls -alt /usr/bin   | head -10

ls -al /bin /usr/bin /usr/sbin/ /sbin/ | grep “Jan 15”

PS:如果日期数字,中间需要两个空格。比如1月1日,grep “Jan  1”

4. 隐藏进程查看

3.1.3    系统信息

1.  查看分析history (cat /root/.bash_history),曾经的命令操作痕迹,以便进一步排查溯源。运气好有可能通过记录关联到如下信息:

a)   wget 远程某主机(域名&IP)的远控文件;

b)    尝试连接内 某主机(ssh scp),便于分析攻击者意图;

c)     打包某敏感数据或代码,tar zip 类命令

d)     对系统进行配置,包括命令修改、远控木马类,可找到攻击者关联信息…

2. 查看分析用户相关分析

a)   useradd userdel 的命令时间变化(stat),以及是否包含可疑信息

b)   cat /etc/passwd 分析可疑帐 ,可登录帐

查看UID为0的帐 :awk -F: ‘{if($3==0)print $1}’ /etc/passwd

查看能够登录的帐 :cat /etc/passwd  | grep -E “/bin/bash$”

PS:UID为0的帐 也不一定都是可疑帐 ,Freebsd默认存在toor帐 ,且uid为0.(toor 在BSD官 解释为root替代帐 ,属于可信帐 )

3. 查看分析任务计划

a)     通过crontabl –l 查看当前的任务计划有哪些,是否有后门木马程序启动相关信息;

b)   查看etc目录任务计划相关文件,ls /etc/cron*

4. 查看linux 开机启动程序

a)   查看rc.local文件(/etc/init.d/rc.local     /etc/rc.local)

b)    ls –alt /etc/init.d/

c)     chkconfig

5. 查看系统用户登录信息

a)  使用lastlog命令,系统中所有用户最近一次登录信息。

b)   使用lastb命令,用于显示用户错误的登录列表

c)   使用last命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp)

utmp文件中保存的是当前正在本系统中的用户的信息。

wtmp文件中保存的是登录过本系统的用户的信息。

/var/log/wtmp 文件结构和/var/run/utmp 文件结构一样,都是引用/usr/include/bits/utmp.h 中的struct utmp

6. 系统路径分析

a)   echo $PATH 分析有无敏感可疑信息

7. 指定信息检索

a)    strings命令在对象文件或二进制文件中查找可打印的字符串

b)    分析sshd 文件,是否包括IP信息strings /usr/bin/.sshd | egrep ‘[1-9]{1,3}.[1-9]{1,3}.’

PS:此正则不严谨,但匹配IP已够用

c)     根据关键字匹配命令内是否包含信息(如IP地址、时间信息、远控信息、木马特征、代 名称)

8. 查看ssh相关目录有无可疑的公钥存在。

a)    Redis(6379) 未授权恶意入侵,即可直接通过redis到目标主机导入公钥。

b)     目录: /etc/ssh    ./.ssh/

3.1.4    后门排查

除以上文件、进程、系统 分析外,推荐工具chkrootkit  rkhunter

www.chkrootkit.org   rkhunter.sourceforge.net

  • chkrootkit

(迭代更新了20年)主要功能:

  1. 检测是否被植入后门、木马、rootkit
  2. 检测系统命令是否正常
  3. 检测登录日志
  4. 详细参考README

  • rkhunter主要功能:
  1. 系统命令(Binary)检测,包括Md5 校验
  2. Rootkit检测
  3. 本机敏感目录、系统配置、服务及套间异常检测
  4. 三方应用版本检测

  • RPM check检查

系统完整性也可以通过rpm自带的-Va来校验检查所有的rpm软件包,有哪些被篡改了,防止rpm也被替换,上传一个安全干净稳定版本rpm二进制到服务器上进行检查

如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串, “c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果 。“. (点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失败:

借用sobug文章案例:如下图可知ps, pstree, netstat, sshd等等系统关键进程被篡改了

  • Webshell查找

Webshell的排查可以通过文件、流量、日志三种方式进行分析,基于文件的命名特征和内容特征,相对操作性较高,在入侵后应急过程中频率也比较高。

可根据webshell特征进行命令查找,简单的可使用(当然会存在漏 和误 )

  1. Webshell的排查可以通过
  2. Github上存在各种版本的webshell查杀脚本,当然都有自己的特点,可使用河马shell查杀(shellpub.com)

综上所述,通过chkrootkit 、rkhunter、RPM check、Webshell Check 等手段得出以下应对措施:

  1. 根据进程、连接等信息关联的程序,查看木马活动信息。
  2. 假如系统的命令(例如netstat ls 等)被替换,为了进一步排查,需要下载一新的或者从其他未感染的主机拷贝新的命令。
  3. 发现可疑可执行的木马文件,不要急于删除,先打包备份一份。
  4. 发现可疑的文本木马文件,使用文本工具对其内容进行分析,包括回连IP地址、加密方式、关键字(以便扩大整个目录的文件特征提取)等。

3.1.5    日志分析

1. 日志查看分析,grep,sed,sort,awk综合运用

2. 基于时间的日志管理:

        /var/log/wtmp

        /var/run/utmp

        /var/log/lastlog(lastlog)

        /var/log/btmp(lastb)

3. 登录日志可以关注Accepted、Failed password 、invalid特殊关键字

4. 登录相关命令

5. 几个语句

3.1.6    相关处置

3.2     Windows系列分析排查

3.2.1    文件分析

1. 开机启动有无异常文件

2. 各个盘下的temp(tmp)相关目录下查看有无异常文件

3. 浏览器浏览痕迹、浏览器下载文件、浏览器cookie信息

4. 查看文件时间,创建时间、修改时间、访问时间。对应linux的ctime mtime atime,通过对文件右键属性即可看到详细的时间(也可以通过dir /tc 1.aspx 来查看创建时间),黑客通过菜刀类工具改变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件。

5. 查看用户recent相关文件,通过分析最近打开分析可疑文件

a)        C:Documents and SettingsAdministratorRecent

b)        C:Documents and SettingsDefault UserRecent

c)        开始,运行   %UserProfile%Recent

5. 根据文件夹内文件列表时间进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及文件件

Server 2008 R2系列

Win10 系列

7. 关键字匹配,通过确定后的入侵时间,以及webshell或js文件的关键字(比如博彩类),可以在IIS 日志中进行过滤匹配,比如经常使用:

3.2.2    进程命令

1. netstat -ano 查看目前的 络连接,定位可疑的ESTABLISHED

2. 根据netstat 定位出的pid,再通过tasklist命令进行进程定位

3. 通过tasklist命令查看可疑程序

3.2.3    系统信息

1. 使用set命令查看变量的设置

2. Windows 的计划任务;

3. Windows 的帐 信息,如隐藏帐 等

4. 配套的注册表信息检索查看,SAM文件以及远控软件类

5. 查看systeminfo 信息,系统版本以及补丁信息

例如系统的远程命令执行漏洞MS08-067、MS09-001、MS17-010(永恒之蓝)…

若进行漏洞比对,建议使用Windows-Exploit-Suggester

https://github.com/GDSSecurity/Windows-Exploit-Suggester/

3.2.4    后门排查

PC Hunter是一个Windows系统信息查看软件

http://www.xuetr.com/

功能列表如下:

PS:最简单的使用方法,根据颜色去辨识——可疑进程,隐藏服务、被挂钩函数:红色,然后根据程序右键功能去定位具体的程序和移除功能。根据可疑的进程名等进行互联 信息检索然后统一清除并关联注册表。

Webshell 排查

1. 可以使用hm

2. 也可以使用盾类(D盾、暗组盾),如果可以把web目录导出,可以在自己虚拟机进行分析

3.2.5    日志分析

1. 打开事件管理器(开始—管理工具—事件查看/开始运行eventvwr)

2. 主要分析安全日志,可以借助自带的筛选功能

3. 可以把日志导出为文本格式,然后使用notepad++ 打开,使用正则模式去匹配远程登录过的IP地址,在界定事件日期范围的基础,可以提高效率

正则是:(((25[0-5]|2[0-4]d|((1d{2})|([1-9]d))).){3}(25[0-5]|2[0-4]d|((1d{2})|([1-9]d))))

4. 强大的日志分析工具Log Parser

有了这些我们就可以对windows日志进行分析了 比如我们分析域控日志的时候,想要查询账户登陆过程中,用户正确,密码错误的情况,我们需要统计出源IP,时间,用户名时,我们可以这么写(当然也可以结合一些统计函数,分组统计等等):
 

事件ID是很好的索引

3.2.6    相关处置

  1. 通过 络连接锁定的可疑进程,进行定位恶意程序后删除(taskkill)
  2. 木马查杀,可配合pchunter 进行进一步专业分析,使用工具功能进行强制停止以及删除
  3. 最后清理后,统一查看 络连接、进程、内核钩子等是否正常。

3.3     应用类

  • Mysql MSSQL数据库类
  1. 检查mysqllibplugin目录没有发现异常文件(参考UDF提权)
  2. Mysql : select * from mysql.func
  3. MSSQL,检查xp_cmdshell等存储过程正常与否
  • Apache、tomcat、Nginx、IIS的Web日志类

无论任何web服务器其实日志需要关注的东西是一致的,即access_log和error_log。一般在确定ip地址后,通过:

find . access_log |grep xargs ip攻击地址

find . access_log| grep xargs 木马文件名

在对WEB日志进行安全分析时,可以按照下面两种思路展开,逐步深入,还原整个攻击过程。

1. 首先确定受到攻击、入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程。

2. 一般攻击者在入侵 站后,通常会上传一个后门文件,以方便自己以后访问。我们也可以以该文件为线索来展开分析。

4. 应急总结

  1. 核心思路是“顺藤摸瓜”
  2. 碎片信息的关联分析
  3. 时间范围的界定以及关键操作时间点串联
  4. Web入侵类,shell定位很重要
  5. 假设与求证
  6. 攻击画像与路线确认

5. 渗透反辅

1. 密码读取

a)    Windows: Mimikatz

b)    Linux: mimipenguin

2. 帐 信息

a)    操作系统帐

b)    数据库帐

c)    应用帐 信息

3. 敏感信息

a)    配置信息

b)    数据库信息

c)     服务端口信息

d)     指纹信息

4. 滚雪球式线性拓展

a)  密码口令类拓展(远控)

b)   典型漏洞批量利用

5. 常见的入侵方式Getshell方法

a)   WEB入侵

      ii. 容器相关:Tomcat、Axis2、WebLogic等中间件弱口令上传war包等,Websphere、weblogic、jboss反序列化,Struts2代码执行漏洞,Spring命令执行漏洞

b)   系统入侵

        i.  SSH 破解后登录操作

        ii.  RDP 破解后登录操作

        iii. MSSQL破解后远控操作

        iv. SMB远程命令执行(MS08-067、MS17-010、CVE-2017-7494)

c)   典型应用

         i.  Mail暴力破解后信息挖掘及漏洞利用

         ii.  VPN暴力破解后绕过边界

         iii.  Redis 未授权访问或弱口令可导ssh公钥或命令执行

         iv.  Rsync 未授权访问类

         v.   Mongodb未授权访问类

         vi.  Elasticsearch命令执行漏洞

         vii.  Memcache未授权访问漏洞

         viii. 服务相关口令(mysql ldap zebra squid vnc smb)

6. 资源参考

https://www.waitalone.cn/linux-find-webshell.html

http://vinc.top/category/yjxy/

http://www.shellpub.com/

http://linux.vbird.org/linux_security/0420rkhunter.php

https://cisofy.com/download/lynis/

https://sobug.com/article/detail/27rom=message&isappinstalled=1

http://www.freebuf.com/articles/web/23358.html

https://www.microsoft.com/en-us/download/details.aspxd=24659

http://www.cnblogs.com/downmoon/archive/2009/09/02/1558409.html

http://wooyun.jozxing.cc/static/drops/tips-7462.html

http://bobao.360.cn/learning/detail/3830.html

https://yq.aliyun.com/ziliao/65679

http://secsky.sinaapp.com/188.html

http://blog.sina.com.cn/s/blog_d7058b150102wu07.html

http://www.sleuthkit.org/autopsy/

7. FAQ     

1. 应急需求有哪些分类:

a)   被谁入侵了关联 攻击IP 攻击者信息

b)    怎么入侵的关联 入侵时间轴、漏洞信息

c)    为什么被入侵关联 行业特性、数据信息、漏洞信息

d)    数据是否被窃取关联 日志审计

e)    怎么办关联 隔离、排查分析、删马(解密)、加固、新运营

2. 关于windows的日志工具(log parser)有无图形界面版/strong>

Log Parser Lizard 是一款用Vc++.net写的logParser增强工具。主要有以下特点:

a)  封装了logParser命令,带图形界面,大大降低了LogParser的使用难度。

b)  集成了几个开源工具,如log4net等。可以对IIS logsEventLogsactive directorylog4netFile SystemsT-SQL进行方便的查询。

c)  集成了Infragistics.UltraChart.Core.v4.3、Infragistics.Excel.v4.3.dll等,使查询结果可以方便的以图表或EXCEL格式展示。

d)  集成了常见的查询命令,范围包含六大模块:IIS

e)  可以将查询过的命令保存下来,方便再次使用。

PS:软件是比较老的,对新系统兼容性不好,还是建议微软原生态log parser

3. 在linux日志中,有无黑客入侵后的操作命令的统计

a) 可以根据history信息进行溯源分析,但一般可能会被清除

b)  还有方法是需要结合accton 和 lastcomm

4. 3.2.3 提到了Windows-Exploit-Suggester,有无linux版/strong>

Linux_Exploit_Suggester https://github.com/PenturaLabs/Linux_Exploit_Suggester

5. 有无linux自动化信息收集的脚本工具/strong>

LinEnum  https://github.com/rebootuser/LinEnum

6. 检测病毒文件的几个 站

https://x.threatbook.cn/

http://www.virscan.org

https://www.virustotal.com/

https://fireeye.ijinshan.com/

7. 有无综合的取证分析工具

Autopsy 是sleuthkit提供的平台工具,Windows 和 Linux磁盘映像静态分析、恢复被删文件、时间线分析, 络浏览历史,关键字搜索和邮件分析等功能

http://www.sleuthkit.org/autopsy/

 8.  关于业务逻辑的排查方法说明

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月20日
下一篇 2019年1月20日

相关推荐