Linux系统被入侵后的排查过程

摘自《Linux系统安全》

一、准备工作

1. 检查人员应该可以物理接触到可疑的系统。因为黑客可能会通过网络监听而检测到你正在检查系统,所以物理接触比远程控制更好。

2. 为了当作法庭证据,需要把硬盘做实体备份。如果需要,断开所有与可疑机器的网络连接。

3. 做入侵检测时,检查人员需要一台计算机专门针对检查的过程进行检查项目的结果记录。

4. 请维护可疑服务器的人员来配合,以确定机器上安装的软件和运行的服务、账户等信息,以便于安全检察人员提高检查的效率、准确性和针对性。

二、步骤

检测步骤如下:

1. 检测常用程序是否被替换。确保检测执行命令的结果是可信的

1).通常被替换的程序有login、ls、ps、ifconfig、du、find、netstat、ss等。执行一些命令参数,查看程序是否被替换。例如:

ls -alh
netsta -anp

2).通过检查md5sum和文件大小,判断是否被替换。例如:

md5sum /bin/netstat

3).上传chkrootkit和rkhunter两个工具,检测一下是否有Rootkit,用两个是可以互补。

4).使用ClamAV Antivirus检查/sbin、/bin、/usr/sbin、/usr/bin。使用命令如下:

freshclam
clamscan -r PATH

2. 查找隐藏的目录和文件

查找隐藏目录和文件时使用的命令如下:
find / -name '...'
find / -name '..'
find / -name '.'
find / -name ' '

3. 检测近期系统登录

使用last命令检测近期系统登录,特别注意非正常来源IP地址或者用户名的登录记录。

4. 检测系统用户

1.通过命令less /etc/passwd查看是否有新增用户

2.通过命令grep ':0' /etc/passwd 查看是否有特权用户(root权限用户)

3.通过命令stat /etc/passwd 查看passwd最后修改事件

4.通过命令awk -F: 'length($2)==0 {print $1}' /etc/shadow 查看是否存在空口令的用户。

5. 查看进程

1.输入ps -aux查看输出信息,尤其注意有没有以./xxx开头的进程。如果有,则用kill -9 PID杀死该进程,然后再运行ps -aux查看该进程是否被杀死;如果此类进程出现结束后又重新启动的现象,则证明系统同被人放置了自动启动脚本,这个时候要进行仔细查找。使用如下命令:

find / -name 进程名 -print

2.通过命令lsof -p PID查看进程所打开的端口和文件。

3.检查隐藏进程,使用的命令如下:

ps -ef| awk '{print $2}' | sort -n | uniq>1
ls /proc | sort -n | uniq>2
diff 1 2

6. 检查网络连接和监听端口

2.通过netstat -lntp查看所有监听端口。

3.通过netstat -antp查看所有已经建立的连接。特别注意本机主动连接到外部地址的连接,这可能是反弹shell。

4.通过arp -an查看arp记录是否正常。

7. 检查计划任务

1.通过命令crontab -u root -l查看root用户的计划任务。

2.通过命令cat /etc/crontab查看有无异常条目。

3.通过命令ls /var/spool/cron查看有无异常条目。

4.通过命令ls -l/etc/cron.*查看cron详细文件变化。

8. 检查开机启动项

1.检查开机启动项/etc/rc.local的内容

2.使用systemctl或者chkconfig检查开机启动项。

9. 检查日志中的异常

注:为了防止对原始日志的损坏,建议检查前最好先做好日志备份。

1.需要检查的日志类型如下:

系统日志:message、secure、cron、mail等日志。
应用程序日志:apache日志、nginx日志、ftp日志、mysql、oracle等日志。
自定义日志:很多程序开发过程中会自定义程序日志,这些日志也是很重要的数据,能够帮助我们分析入侵途径等信息。
bash_history:这是bash执行过程中记录的bash日志信息,能够帮我们查看bash执行了哪些命令。
其他安全事件相关的日志记录。

2.分析异常时的注意事项如下:

用户在非常规的事件登录。
不正常的日志记录,比如残缺不全的日志或者注入wtmp这样的日志文件,无故的缺少了中间的记录文件。
用户登录系统的IP地址和以往的不一样。
用户登陆失败的日志记录,尤其是那些一再连续尝试、进入失败的日志记录。
非法使用或不正当使用超级用户权限su的指令。
无故或者非法重新启动各项网络服务的记录。

10. webshell检测

检查web目录下是否存在webshell网页木马,重点检查类似upload目录。使用D盾或者LMD、安全狗等。

三、检测注意项

1.如果这台机器业务很重要而不能被切断网络,那么一定要备份所有重要的资料,以避免黑客注意到正在进行检测而删除文件。

2.如果这台机器业务不是很重要,那么建议切断网络连接做物理隔离,将整个硬盘进行外置存储复制镜像,工具可以使用dd。

3.尝试找出黑客活动的证据:

找到攻击者使用过什么文件,包括被删除的文件(使用取证工具),查看这些文件做了什么,了解它的功能。

检查最近被存取的所有档案

查找是否又远程控制或者后门之类的传播

尝试找出攻击者如何进入系统,所有可能都要考虑到

修复攻击者利用的漏洞

四、修复

1.无论系统被入侵到什么程度以及安全人员检查的情况如何,只要是被渗透过,最好的修复方法就是重装系统,并打上所有补丁,同时按照基线要求进行配置。

2.改变所有系统相关账号的密码。(包括数据库连接字符串)

3.尝试检查、恢复那些已经被攻击者篡改的文件

五、出具检测报告

检测报告一般要包括以下内容:

1. 检测的概要步骤

2. 检测结果

3. 指出什么地方出了问题

4. 入侵事件对业务造成了什么影响

5. 应对改进的建议

posted @ 2020-04-26 22:32  大大大大大大菠萝  阅读(3151)  评论(0编辑  收藏  举报