应急响应-入侵排查篇
2023-4-17 00:1:44 Author: 白帽子程序员(查看原文) 阅读量:14 收藏

目录

1.应急响应基本思路流程1.window入侵排查  1.1 检查系统账号安全  1.2 检查异常端口、进程  1.3检查启动项、计划任务、服务  1.4 检查系统相关信息  1.5 自动化查杀  1.6 日志分析2.Linux入侵排查  账号安全  检查异常端口  检查异常进程  检查开机启动项  检查定时任务  检查服务  检查异常文件  检查系统日志0x02 工具篇  2.1 Rootkit查杀  2.12病毒查杀  2.3 webshell查杀  2.4 RPMcheck检查  2.5linux安全检查脚本  3.常见的Webshell查杀工具  4:如何在百万行代码里发现隐藏

1.应急响应基本思路流程

收集信息:收集客户信息和中毒主机信息,包括样本

判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等

抑制范围:隔离使受害⾯不继续扩⼤

深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源

清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产

产出报告:整理并输出完整的安全事件报告

常见的应急响应事件分类:

web入侵:网页挂马、主页篡改、Webshell

系统入侵:病毒木马、勒索软件、远控后门

网络攻击:DDOS攻击、DNS劫持、ARP欺骗

1.window入侵排查

1.1 检查系统账号安全

4步:

1、查看服务器是否有弱口令,远程管理端口是否对公网开放。检查方法:据实际情况咨询相关服务器管理员。

2、查看服务器是否存在可疑账号、新增账号。

检查方法:打开 cmd 窗口,输入lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的

(Administrators)里的新增账户,如有,请立即禁用或删除掉。

3、查看服务器是否存在隐藏账号、克隆账号。检查方法:

a、打开注册表 ,查看管理员对应键值。

b、使用D盾_web查杀工具,集成了对克隆账号检测的功能。

在cmd中输入:net user 看看有没有陌生用户

在cmd中输入:regedit 找到注册表分支 “HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names/”看看有没有克隆用户

4、结合日志,查看管理员登录时间、用户名是否存在异常。检查方法:

a、Win+R打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。

b、导出Windows日志--安全,利用Log Parser进行分析。

1.2 检查异常端口、进程

2步:

1、检查端口连接情况,是否有远程连接、可疑连接。检查方法:

a、netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED

b、根据netstat 定位出的pid,再通过tasklist命令进行进程定位 tasklist | findstr “PID”

2、进程

检查方法:

a、开始--运行--输入msinfo32,依次点击“软件环境→正在运行任务”就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期、启动时间等。

b、打开D盾_web查杀工具,进程查看,关注没有签名信息的进程。

c、通过微软官方提供的 Process Explorer 等工具进行排查 。

d、查看可疑的进程及其子进程。

1.3检查启动项、计划任务、服务

1、检查服务器是否有异常的启动项。检查方法:ctrl x t 或者msconfig——>启动

有异常,结束他们并可用everying查找删除相关文件,并检查注册表,有问题可以用uninstall tool工具删除。

2、检查计划任务

检查方法:

a、单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属性,便可以发现木马文件的路径。

b、单击【开始】>【运行】;输入 cmd,然后输入at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。

3、服务自启动

检查方法:单击【开始】>【运行】,输入services.msc,注意服务状态和启动类型,检查是否有异常服务。

1.4 检查系统相关信息

3步

1、查看系统版本以及补丁信息

检查方法:单击【开始】>【运行】,输入systeminfo,查看系统信息

2、查找可疑目录及文件检查方法:

a、 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。

Window 2003 C:\Documents and Settings

Window 2008R2 C:\Users\

b、单击【开始】>【运行】,输入%UserProfile%\Recent,(win10不行)分析最近打开分析可疑文件。

c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。

d、回收站、浏览器下载目录、浏览器历史记录

e、修改时间在创建时间之前的为可疑文件

3、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

a、利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。

b、利用计算机自带文件搜索功能,指定修改时间进行搜索。

1.5 自动化查杀

病毒查杀

检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。

webshell查杀

检查方法:选择具体站点路径进行webshell查杀,建议使用两款webshell查杀工具同时查杀,可相互补充规则库的不足。

1.6 日志分析

系统日志用Log Parser

web日志

分析方法:

a、找到中间件的web日志,打包到本地方便进行分析。

b、推荐工具:Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。

Linux下,使用Shell命令组合查询分析

2.Linux入侵排查

账号安全

基本使用

1 、 用 户 信 息 文 件 /etc/passwd

2 、 影 子 文 件 /etc/shadow

who查看当前登录用户(tty本地登陆pts远程登录)
w查看系统信息,想知道某一时刻用户的行为

uptime查看登陆多久、多少用户,负载

入侵排查:

1、查询特权用户特权用户(uid 为0)

[[email protected] ~]# awk -F: '$3==0{print $1}' /etc/passwd

2、查询可以远程登录的帐号信息

[[email protected] ~]# awk '/\$1|\$6/{print $1}' /etc/shadow

3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限[[email protected] ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

4、禁用或删除多余及可疑的帐号

usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头

userdel user 删除user用户

userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除

历史命令基本使用

history

history -c

检查异常端口

netstat -antlp|more

查看下pid所对应的进程文件路径,

运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)

检查异常进程

使用ps命令,分析进程

ps aux | grep pid

检查开机启动项

当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链  接即可

入侵排查:

启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/

检查定时任务

基本使用

1、利用crontab创建计划任务基本命令

crontab -l 列出某个用户cron服务的详细内容

Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)

crontab -e 使用编辑器编辑当前的crontab文件

如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件

2、利用anacron实现异步定时任务调度使用案例

每天运行 /home/backup.sh脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh 当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待 7天。

入侵排查

重点关注以下目录中是否存在恶意脚本

/var/spool/cron/*

/etc/crontab

/etc/cron.d/*

/etc/cron.daily/*

/etc/cron.hourly/*

/etc/cron.monthly/*

/etc/cron.weekly/

/etc/anacrontab

/var/spool/anacron/*上面目录都是与 Linux 系统中的定时任务(cron)相关的目录  。定时任务是一种在指定时间或周期执行某些命令或脚本的功能。每个目录的作用如下:

•  /var/spool/cron/* :存放每个用户(包括 root)的 crontab 文件,每个文件以用户名命名,用于定义用户自己的定时任务  。

•  /etc/crontab :系统级别的 crontab 文件,由 root 用户管理,用于定义系统级别的定时任务  。

•  /etc/cron.d/* :存放一些特殊格式的 crontab 文件,可以被 /etc/crontab 文件引用,也可以单独运行

•  /etc/cron.daily/* ,/etc/cron.hourly/* ,/etc/cron.monthly/* ,/etc/cron.weekly/ :存放按照日、小时、月、周周期执行的脚本文件 。

•  /etc/anacrontab :anacron 是 cron 的一个补充工具,用于在系统没有运行或关机时执行错过的定时任务 。这个文件用于定义 anacron 的配置和任务

•  /var/spool/anacron/* :存放 anacron 的时间戳文件,记录上次执行任务的时间

检查服务

服务自启动

第一种修改方法:

chkconfig [--level 运行级别] [独立服务名] [on|off]

chkconfig –level 2345 httpd on

开启自启动chkconfig httpd on (默认level是2345)

入侵排查

1、查询已安装的服务:

RPM包安装的服务

chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务

ps aux | grep crond 查看当前服务

检查异常文件

1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件

3、针对可疑文件可以使用stat进行创建修改时间。

检查系统日志

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

0x02 工具篇

2.1 Rootkit查杀

chkrootkit

网址:http://www.chkrootkit.org

rkhunter

http://rkhunter.sourceforge.net

2.12病毒查杀

Clamav

ClamAV的官方下载地址为:http://www.clamav.net/download.html

2.3 webshell查杀

linux版:

河马webshell查杀:http://www.shellpub.com

深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html

2.4 RPMcheck检查

系统完整性可以通过rpm自带的-Va来校验检查所有的rpm软件包,查看哪些命令是否被替换了:

./rpm -Va > rpm.log

2.5linux安全检查脚本

3.常见的Webshell查杀工具

1D_Web查杀
2、百度WEBDIR+

在线查杀地址:https://scanner.baidu.com/

3、河马

兼容性:支持Windows、linux,支持在线查杀。官方网站:https://www.shellpub.com/

4Web Shell Detector

Webshell Detector具有“ Webshell”签名数据库,可帮助识别高达99%的“ Webshell”。兼容性:提供php/python脚本,可跨平台,在线检测。

官方网站:http://www.shelldetector.com/

5、在线webshell查杀工具

在线查杀地址:http://tools.bugscaner.com/killwebshell/

4:如何在百万行代码里发现隐藏的后门

文件完整性验证

1、文件MD5校验

粗略:windows命令界面中CertUtil -hashfile 文件路径 +算法(

支持的算法有:MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

详细:

2diff命令

在linux中,我们经常使用diff来比较两个文本文件的差异。同样,我们可以通过一行命令快速找出两个项目文件的差异。

diff -c -a -r cms1 cms2

(备注:如果只是想查看两个文件是否不同又不想显示差异之处的话,可以加上-q选项。)

3、版本控制工具

版本控制工具,比如说git,重新上传代码到git,add+commit+push,然后打开项目,点击commits,在历史提交版本  里面,查看文件更改内容,很容易就可以发现代码被篡改的地方了。

另外,也可以通过git diff 用来比较文件之间的不同。

本文作者:木良辰666, 转载请注明来自FreeBuf.COM


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3Mjc0MDQ2Nw==&mid=2247492079&idx=1&sn=27c3bccfdc737899fa4771c2b87897fa&chksm=cee802f3f99f8be5bdc4c37155a7e7dc337b6962913549b03f2f0fdbb1c099e2169ff18ef67b#rd
如有侵权请联系:admin#unsafe.sh