加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

Linux安全系列之启动篇

发布时间:2019-02-15 04:39:34 所属栏目:建站 来源:不必再等
导读:副标题#e# Linux的自启动项,相对Windows来说简单太多了,在我们应急响应中操作系统的启动方式有哪些这个是一定要知道的,不然后门也清除不干净

init第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,这个脚本大概的作用是如激活udev和selinux,装载硬盘映射,挂载其他文件系统等。修改它当然可以实现自启动,另外它还提供了两个模块加载的地方,实现模块自启动,如下图:

Linux安全系列之启动篇

四.服务

init会根据定义的启动级别去执行相应目录下的脚本,在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本.

如:Run level 0– /etc/rc.d/rc0.d/

这些目录下的脚本只有K*和S*开头的文件,K开头的文件为开机需要执行关闭的服务,S开头的文件为开机需要执行开启的服务。

于是这些脚本成了高危项,尤其是S开头的脚本。哪些服务是否开启关闭可以用chkconfig –list查看,但我们最怕的还是这些脚本被篡改了。

我们怎么检查服务是否被篡改了呢?

可以用ctime及其家族成员newerct来检查,ctime是一个非常重要的参数,它代表了变更时间,一切变更,包括状态属性权限等,它是最可靠的检查方式,跟ctime异曲同工的还有newerct,当然stat命令也可看一切,只是只能查看单一文件。

当然执行stat find等命令时最好先用rpm –Vf看一下,或者用自己的命令工具包。

如下图:

Linux安全系列之启动篇

我们执行ls –larth 显示最后一个改动的服务是mysqld

Linux安全系列之启动篇

但是我们执行命令find . –ctime-100显示最后一个被更改的服务不是mysqld

Linux安全系列之启动篇

如上图:functions服务在100天内被篡改了,我们继续cat看看里面是什么内容

Linux安全系列之启动篇

可以看到在第二行的两个注释中间被人加了这么一行代码,就是服务启动的时候执行/var/tmp/rootkit并且不输出标准输出和错误输出。

正常情况下,都是放在最前面的那些注释行里(尤其是自动的病毒),也有放最后的,这个可不一定,特征基本都是xxx >/dev/null,这样的形式,为了不显示启动输出。

注意,这里要先cd /etc/init.d,因为它都是软链接,所以一定要先进入这个目录,而不能直接使用find /etc/init.d -ctime

90%的linux后门是通过这种方式启动的,如果学会此招,可发现90%的后门。

五.rc.loacl

init根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

这个/etc/rc.local脚本我们很多管理员启动应用服务都喜欢放这里面,不多说。

六.模块

上面介绍sysinit的时候说了,这个脚本提供了两个地方可以自启动模块,分别是

  1. /etc/rc.modules和/etc/sysconfig/modules/*.modules 

上面这是redhat/centos系列的

Debian/Ubuntu/kali系列的是这个文件 /etc/modules

除此之外,模块的启动大多数情况下,要依赖于服务启动和其他启动脚本,这是不同于windows的,甚至2.6版本模块的启动地位比起2.4也大大下降,大多数情况下模块的地位居然没有服务优先级别高。

当然了,系统关键模块的地位还是高的,所以这些系统关键模块是否被替换,也是一个检查点,依然可用ctime检查。

另外,centos系列下还存在一种在线向initrd内部更新驱动模块的方法,可在/etc/initramfs-tools/modules文件中添加相应模块的模块名及其参数,然后用update-initramfs-u -k命令进行更新。

lsmod显示的是正在运行的模块,modprobe –l显示的是所有可加载的模块(不一定在运行)

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读