实验8-嵌入式系统内核Rootkit设计.doc
文本预览下载声明
实验报告
学院(系)名称:计算机科学与工程学院
姓名 学号 专业 信息安全 班级 4班 实验
项目 嵌入式系统内核Rootkit设计 课程名称 嵌入式安全系统综合设计0682053 实验时间 2018年1月9日 实验
地点 计算机软件实验室 考核标 准 实验准备(实验目的/工具熟悉情况)10分 实验过程(实验方案可行性及步骤完整性)40分 实验报告(实验内容丰富度与格式清晰度) 30分 实验结果(结论正确性以及分析合理性)20分 成绩
教师签字: 考核内容 评价实验目的是否明确,实验工具是否清晰了解以及熟悉情况
○可行,不完整
○不可行,不完整
○丰富,清晰
○较丰富,
○丰富,不清晰
○不丰富,
○结论正确,分析合理
○结论正确,分析不充分
○结论不,分析不合理 1.实验目的
编写一个Rootkit模块
2.实验工具
bbb板子
3.实验
发现什么都没有发生,然后利用dmesg命令查看printk输出的消息,如下图所示,为了方便起见这里只显示了最后一条信息,也就是LKM中初始化函数所输出的信息。
输入lsmod命令查看加载的内核模块如下图:
其中lkm是模块名称,904则代表的是模块大小,0表示模块的被使用次数。
对LKM进行卸载,卸载LKM的命令是rmmod,键入rmmod后查看下系统日志,可以看出清除函数中的信息也成功输出
2.从lsmod命令中隐藏模块
将list_del_init(__this_module.list);加入到初始化函数中,保存,编译,装载模块,
再输入lsmod,这时你会发现,输出中模块已经找不到了,在lsmod命令中成功的隐藏了编写的模块!
从sysfs中隐藏我们的模块
管理人员还可以在sysfs中通过查看/sys/module/目录来发现现有的模块
初始化函数中添加一行代码kobject_del(THIS_MODULE-mkobj.kobj);来实现模块在sysfs中的隐藏:
C编程控制GPIO
1、读写led.c输出函数实验:点亮和关闭指示灯
执行后,接在端口上的二极管指示灯一定点亮了。然后修改程序,输出低电平0,指示灯就关掉了。
因为程序打开端口较复杂,这里只是进行简单的输出测试。函数测试如下图所示:
2、LED灯每秒闪亮1次共5次实验
三、设计一个能够三秒开关一次的内核级ookit
每三秒闪一次,既是在上例中的输出0后休眠三秒再输出1,让灯亮
所以只要把sleep(1)改为sleep(3)即可。
5.实验结论与分析
通过本次实验,发现这个嵌入式的系统,或者说得更加具体一点的话,Linux系统。能够直接接触到内核层面的东西,所以也能够实现一些比较高级的功能。这一点,比windows更加的有趣。同时,由此联想到了一些工控安全,有一些漏洞就与这rootkit有关。
第5页 共5页
显示全部