随着开源产品越来越流行,作为一名Linux运维工程师,能够清晰的识别异常机器是否被入侵是非常重要的。个人结合自己的工作经验,整理出几种常见的机器被黑案例,供参考:背景资料:以下案例均在CentOS6.9系统查看,其他Linux发行版类似。1、入侵者可能会删除本机的日志信息。可以查看日志信息是否还存在,或者是否已经清除。相关命令示例:2.入侵者可能会创建一个新的文件来存储用户名和密码。可以查看/etc/passwd和/etc/shadow文件,相关命令示例:3.入侵者可能会修改用户名和密码文件。您可以查看/etc/passwd和/etc/shadow文件的内容进行识别。相关命令示例:4.查看本机最近成功登录事件和密码最近一次登录不成功事件对应日志“/var/log/lastlog”,相关命令示例:5.查看日志文件“/var/run”/utmp”对应本机当前登录的所有用户,相关命令示例:6.查看本机创建以来登录过的用户对应的日志文件“/var/log/wtmp”,相关命令示例:7、查看本机所有用户连接时间(小时)对应的日志文件“/var/log/wtmp”,相关命令示例:图8。如果发现本机产生异常流量,可以使用命令“tcpdump”抓包查看流量情况或使用工具“iperf”查看流量情况9.可以查看/var/log/secure日志文件尝试查找入侵者信息,相关命令示例:图10.查询异常对应的执行脚本文件我处理一个。top命令查看异常进程对应的PIDb.在虚拟文件系统目录下找到进程的可执行文件11.如果确认机器被入侵,重要文件被删除,可以尝试找回被删除的文件注意:1.进程打开文件时,只要由于进程保持文件打开,即使删除,它仍然存在于磁盘中间。这意味着进程不知道文件已被删除,它仍然可以读写打开文件时提供给它的文件描述符。这个文件对除进程之外的任何人都是不可见的,因为它对应的目录索引节点已被删除。2、在/proc目录下,包含反映内核和进程树的各种文件。/proc目录挂载了一个映射在内存中的区域,所以这些文件和目录在磁盘上是不存在的,所以我们在读写这些文件的时候,实际上是在从内存中获取它们的相关信息。大多数lsof相关的信息都存放在以进程PID命名的目录中,即/proc/1234包含PID为1234的进程的信息。每个进程目录中存在各种文件,可以让应用程序轻松了解进程的内存空间,列表文件描述符、磁盘上文件的符号链接和其他系统信息。lsof程序使用这个和其他关于内核内部状态的信息来产生它的输出。所以lsof可以显示进程文件描述符和相关文件名等信息。也就是说,我们可以通过访问进程的文件描述符来找到文件的信息。3、当系统中的某个文件被误删除时,只要此时系统中有进程在访问该文件,那么我们就可以通过lsof从/proc目录中恢复文件的内容。假设入侵者删除了/var/log/secure文件,尝试恢复/var/log/secure文件的方法可以参考如下:查看/var/log/secure文件,发现该文件已经不是b了。使用lsof命令检查当前是否有进程打开/var/log/secure,c。从上面的信息我们可以看出PID为1264(rsyslogd)打开的文件的文件描述符是4,也可以看到/var/log/secure已经被标记为删除。因此,我们可以在/proc/1264/fd/4中查看相应的信息(fd下每个以数字命名的文件代表进程对应的文件描述符),如下:从以上信息可以看出,查看/proc/1264/fd/4可以得到要恢复的数据。如果可以通过文件描述符查看到相应的数据,则可以使用I/O重定向将其重定向到文件中,如:e.再次查看/var/log/secure,发现该文件已经存在。这种取消删除文件的方法对许多应用程序非常有用,尤其是日志文件和数据库。
