APP下载

Linux应急响应之工具篇

消息来源:baojiabao.com 作者: 发布时间:2026-05-23

报价宝综合消息Linux应急响应之工具篇

当企业被攻击者入侵,系统被挂暗链、内容遭到恶意篡改,服务器出现异常连结、卡顿等情况时,需要进行紧急处理,使系统在最短时间内恢复正常。由于应急处理往往时间紧,所以尝试将应急中常见处理方法整合到指令码中,可自动化实现部分应急工作。应急指令码采用python2.0完成,由于所有需要执行的命令都是依靠ssh进行远端连结,所以在执行指令码之前,需要输入正确的主机ip地址、ssh远端连线埠、ssh远端登入账户、ssh远端登入密码。

一、指令码实现的主要功能1、获取主机资讯

获取的主机资讯包括:主机ip地址、主机名、当前系统核心版本、当前系统版本、系统当前时间;

2、获取异常程序

获取异常程序主要是采用两种方式,第一种,通过执行netstat -antp获取当前主机存在哪些连结,并通过判断外部链接地址归属地,如果归属地不是中国,则会提取相关pid,并根据pid定位出文件所在位置。第二种,通过cpu占有率,一旦发现cpu占用率高于%15时,会提取对应程式的pid,根据pid定位异常档案位置。

3、判断常见命令是否被篡改

在之前的应急响应中出现过常见命令被非法篡改情况,如ps、netstat命令被恶意替换,利用stat检视档案详细资讯,通过比对时间的方式判断命令是否被篡改。

4、检视系统启动项

很多恶意程式会修改系统启动项,这样即使系统进行重启时,恶意程式也能自动启动,检视init.d目录下的启动档案,根据修改时间提取最近被修改的启动档案,并根据时间排序列出前5个。

5、检视历史命令

检视.bash_history历史命令,通过匹配关键字,如wget、cur等,来检视系统在被入侵后是否被执行了恶意操作。

6、判断非系统预设账户

恶意程式可能会在系统中新建账户,通过检视login.defs档案获取最小uid,从而根据uid检视passwd档案,获取之后新建的系统使用者。

7、获取当前登入使用者

通过呼叫who,检视当前登入使用者(tty为本地登入,pts为远端登入),判断是否存在异常使用者登入情况。

8、检视系统当前使用者

通过检视etc/passwd,检视相关使用者资讯,确定是否存在异常使用者。

9、检视crontab定时任务

检视/etc/crontab定时任务,并将输出结果储存到log中

10、检视、储存最近三天系统档案修改情况

通过find命令,查询最近三天修改过的档案,由于修改的系统档案较多,所以修改档案被单独储存在本地file_edit档案中

11、查询特权使用者。

检视passwd档案,查询使用者id为0的特权使用者

12、secure日志分析

日志分析是应急的重头工作,尤其是在应急后期的溯源阶段,日志分析更显得尤为重要,由于日志种类包括服务器日志、应用日志,此处只是分析了secure服务器日志,提取日志的ip地址进行判断,并对ip归属地进行判断,检视的secure日志单独储存在本地secure中。

指令码执行后输出如下资讯:

最终在当前目录下生成如下档案

指令码执行完毕后,在当前目录下生成log.txt,记录指令码检查结果:

同时在当前目录下生成的netstat.txt,储存系统连结情况

当前目录下secure.txt,记录当前secure日志

当前目录下file_edit.txt.记录最近三天档案修改情况

指令码整体的思路比较简单,就是远端登入到linux执行常见的应急命令,指令码中的命令在centos下都是可正常执行的,可以在根据实际环境自行在对命令做调整。上面的部分功能如果有好的实现方法也可灵活调整,如判断常见命令是否被篡改,指令码中是根据时间进行判断,在实际应用中也可根据档案大小进行判断。

最后,程式码整体写的比较渣,有意见欢迎大家多多指出,希望通过改进能让功能更加完善。

连结地址:https://github.com/tide-emergency/yingji

二、参考资料在编写此指令码中的很多命令都是借鉴了大牛的的一些经验,多谢大牛的分享,具体参考连结如下:

*本文作者:菜鸟的菜,转载请注明来自FreeBuf.COM

2019-12-16 20:58:00

相关文章