15.管理linux内核和可加载内核模块

所有操作系统至少由两个主要组件组成。内核:操作系统的中心,控制着操作系统所做的一切。用户区域:几乎包括其他所有元素。

  内核被设计成一个受保护或特权的区域,只能由root账户或其他特权账户访问。大多数操作系统只向用户和服务提供对用户区域内的访问,用户可以在不控制操作系统的情况下访问几乎任何他们需要的内容。

  访问内核允许用户更改操作系统的工作方式,外观和感觉,还允许操作系统崩溃,使其无法工作。必须非常谨慎地访问内核。

  本章中,将研究如何改变内核的工作方式并将新模块添加到内核中。如果黑客可以改变目标的内核,他们就可以控制系统。此外,攻击者可能需要改变内核对某些攻击的作用,例如中间人(MITM)攻击,黑客将自己置于客户端和服务器之间,并且可以窃听或改变通信。

  我们先仔细研究内核结构及其模块。

  

什么是内核模块?                你可以简单理解为:rootkit攻击等于内核攻击,内核攻击等于诱使用户安装驱动程序。

  内核控制着操作系统所做的一切,包括管理硬件组件之间的交互和启动必要的服务。内核在你看到的用户应用程序和运行所有东西的硬件之间运行。

  linux是一个单片内核,可以添加内核模块,可以删除内核模块。内核有时需要更新,这可能需要安装新的设备驱动程序(如视频卡,蓝牙设备或USB设备),文件系统驱动程序,甚至系统扩展。必须将这些驱动程序嵌入到内核中才能完全正常运行。某些系统中,要添加驱动程序必须重建、编译和重新引导整个内核,但linux能够在不经过整个过程的情况下向内核添加一些模块。这些模块称为可加载内核模块或LKM

  LKM必须能够访问内核的最低级别,这使得它们成为黑客极易攻击的目标。一种称为rootkit的特殊类型的恶意软件通常通过这些LKM嵌入到操作系统的内核中。如果恶意软件嵌入内核,黑客可以完全控制操作系统。

  如果黑客可以让linux管理员将新模块加载到内核,那么黑客不仅可以获取对目标系统的控制权,而且因为他们在操作系统的内核级别运行,可以控制目标系统正在运行的进程,端口,服务,硬盘空间以及能想到的几乎任何其他内容。

  最阴险的rootkit利用方式就是诱使用户安装嵌入rootkit的显卡或其他设备驱动程序,来完全控制系统和内核。

  了解LKM绝对是成为一名非常有效和隐蔽的黑客的关键,进而发现它的存在,成为一名更优秀的防御者,为安全的事业服务!

  

检查内核版本

  检查系统正在运行的内核。至少有两种方法可以做到这一点。

  uname -a

  内核通常告诉我们,正在运行的发行版是linux kai,内核版本是4.6.4,构建的架构是x86_64架构。它具有对称多处理(SMP)功能(意味着它可以在具有多个核心或处理器的机器上运行),并于2016年7月21日在debian 4.6.4上构建。安装或加载内核驱动程序时可能需要这些信息,了解如何获取这些信息非常有用。

  又吃一堑长一智了。攻防的本质可以变相成是在学,任何是对各种系统,各种功能的增删改查的技巧。找都找不到,攻击个毛线。

 

  获取这些信息以及其他一些有用信息的另一种方法是

  cat /proc/version

  

使用sysctl进行内核优化           警告:使用sysctl时需要小心,没有相匹配的知识和经验,非常容易使系统崩溃,在修改前确保自己有足够的自信和知识。已中间人攻击(MITM)为例,来体验一下内核的修改。

  使用正确的命令,可以优化自己的内核,意味着可以更改内存分配,开启网络功能,甚至加固内核以抵御外部攻击。

  现代linux内核使用sysctl命令来优化内核选项。使用sysctl所做的更改仅在重启系统之前有效。要任何更改永久化,必须直接在/etc/sysctl.conf编辑sysctl的配置文件。

  看一下sysctl的内容

  sysctl -a | less

  在输出中,看到数百行参数,可以编辑这些参数来优化内核。这里有些内容对你作为黑客十分有用。作为如何使用sysctl的示例,将介绍如何启用数据包转发功能。

  在中间人(MITM)攻击中,黑客将自己置于通信主机之间,以截获信息。流量会经过黑客系统,因此他们可以查看并可能更改通信。实现这种路由的一种方法是启用包转发。

  向下滚动查询输出中的几页或过滤“ipv4”(sysctl -a | less | grep ipv4),应该能看到以下内容

  

  net.ipv4.ip_forward = 0 该行是内核参数,使内核能够转发它接收的数据包。它接收的数据包将被发送出去。默认设置为0,是禁用了数据包转发。

  要启用IP转发,将0更改为1

  sysctl -w net.ipv4.ip_forward=1       记住,要进行永久性更改,需要编辑配置文件/etc/sysctl.conf。

  下面让我们来更改内核处理MITM攻击的IP转发的方式,并使此更改永久化。

  

  在文本编辑器中打开/etc/sysctl.conf文件,并取消对IP转发行的注释。

  从操作系统加固的角度来看,你可以通过给此文件添加行net.ipv4.icmp_echo_ignore_all=1来禁用icmp echo请求,以使黑客更难找到你的系统,但这并非完全没有可能找到你的系统。添加该行后,需要运行命令sysctl -p

 

管理内核模块

   至少有两种方法来管理内核模块。较旧的方法是使用围绕insmod suite-insmod构建的一组命令代表插入模块,用于处理模块

  第二种方法,使用modprobe命令

 

  使用insmod套件中的lsmod命令,列出内核中已安装的模块

  lsmod

  nf netlink模块(一种用于内核和用户空间之间通信的基于消息的协议)是16384字节且由nf netlink_日志模块使用。

  从insmod套件中,可使用insmod加载或插入模块,rmmod删除模块。这些命令并不完美,可能没有考虑模块依懒性,因此使用它们会使内核不稳定或无法使用。

  linux现代版添加了modprobe命令,该命令自动加载依懒项并使加载和删除内核模块的风险降低。

 

使用modinfo查找更多信息

  modinfo    模块名称

  modinfo bluetooth        检索先前运行lsmod命令时看到的蓝牙内核模块的基本信息

  注意,在许多其他事情中,它列出了模块依懒项,rfkill和crc16。依懒项是必须安装的模块才能使蓝牙模块正常运行。

  通常,在排除特定硬件设备无法正常工作的原因时,这是有用的信息。除了注意依懒项之外,还可以获取有关模块版本和模块开发内核版本的信息,确保它们与你运行的版本相匹配。

   

使用modprobe添加和删除模块

  大多数linux新版本都包含用于LKM管理的modprobe命令。

  modprobe -a 【module name】添加模块到内核

  modprobe -r 【module to be removed】删除模块

  使用新版本中的modprobe添加和删除内核模块更容易,更安全。

 

插入和删除内核模块

  举例,你刚刚安装了一个新的显卡,且需要为它安装驱动程序。记住,设备的驱动程序通常直接安装在内核中,以便为它们提供正确运行所需的访问权限。这也是恶意黑客安装rootkit或其他监听设备的肥沃土壤。

  警告:以下命令出于演示,千万不要实际运行这些命令。删掉就非常烦人了。

  假设我们要添加一个名为newvideo的新视频驱动程序。

  modprobe -a newvideo

  

  要测试新模块是否正确加载,可通过运行dmesg命令,该命令从内核打印出消息到缓冲区,然后过滤video内容,并查找任何指示问题的警报。

  dmesg | grep video

 

  删除模块

  modprobe -r newvideo

  记住:可加载的内核模块对用户来说是一种便利,但它们也是一个主要的安全漏洞,也是专业黑客熟悉的漏洞。LKM可以成为让你的rootkit进入内核并造成严重破坏的完美工具。在取证方面,从比特流中雕刻出数据以后,可以用这些命令去搜索,看一看是否有恶意软件想运行这些命令,植入rootkit。所以说,取证是综合所有的信息来工作的。进攻的知识面,决定取证的经验。

  初级阶段,尤其是入门。不要把方向,书名分的那么清楚,什么喜欢web,不喜欢二进制,这些都是闭国自封的表现。开阔思维,只要是神书,就要去看。根据个人经验发现,这些书籍才能带你真正的入门,学到核心技能已养家模糊。不知道为什么,海外以及港澳台出版的书中,出现神作的概率非常大。你需要过几个月关注一下,这些出处的作品。

  

转载于:https://www.cnblogs.com/sec875/articles/10965155.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值