logo资料库

计算机安全_Lab2_Set-UID Program Vulnerability.docx

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
1 实验描述
2 实验内容
2.1 task 1
2.2 task 2
2.3 task 3
2.4 task 4
2.5 task 5
2.6 task 6
2.7 task 7
3 实验总结
实验报告 课程名称: 计算机与网络安全 任课教师: 常晓林 学生姓名: 郭鑫玥 学生学号: 16281284 学院名称: 计算机与信息技术学院 2019 年 3 月 3 日
Lab 1:Set-UID Program Vulnerability 目录 1 实验描述......................................................................................3 2 实验内容......................................................................................3 2.1 task 1................................................................................3 2.2 task 2................................................................................6 2.3 task 3................................................................................8 2.4 task 4................................................................................8 2.5 task 5.............................................................................. 11 2.6 task 6..............................................................................14 2.7 task 7..............................................................................16 3 实验总结....................................................................................18
1 实验描述 Set-UID 是 Unix 操作系统中一种重要的安全机制。运行 Set-UID 程序时, 它将采用所有者的权限。例如,如果程序的所有者是 root,那么任何人运行此程 序时,程序在执行期间获得 root 权限。Set-UID 允许我们做很多有趣的事情,但 不幸的是,它也是很多坏事的罪魁祸首。 因此,本实验的目标有两个方面: (1)欣赏其良好的一面:理解为什么需要 Set-UID 以及如何实现它。 (2)注意其不好的一面:了解其潜在的安全问题。 2 实验内容 2.1 task 1 实验任务:弄清楚为什么“passwd”,“chsh”,“su”,和“sudo” 命令需要 Set-UID 机制,如果它们没有这些机制的话,会发生什么, 如果你不熟悉这些程序,你可以通话阅读使用手册来熟悉它,如果你 拷贝这些命令到自己的目录下,这些程序就不会是 Set-UID 程序,运 行这些拷贝的程序,观察将会发生什么。 其中,“passwd”用来修改用户的密码;“chsh”用来修改默认 sh; “su”用来获取 super user 权限;“sudo”用来执行一个需要管理员权 限的命令。 实验流程: 1. 利用“whereis”命令找到 su 文件所属位置路径
2. 拷贝“su”到当前文件夹,并查看是否复制成功 3. 运行当前文件夹中的 su,发现无法认证 4. 运行/bin 文件夹中的 su,发现可以获得 super user 权限 5. 与上述四步相似的过程测试其他命令 sudo:在当前文件夹下的 sudo 不可用,提示:必须属于用户 ID 0 并且设置 setuid 位;但在/usr/bin 下的可以正常用
passwd:在当前文件夹下的 passwd 不可用,提示:认证令牌操 作错误;但在/usr/bin 下的可以正常用,显示:已成功更新密码 chsh:在当前文件夹下的 chsh 不可用,提示:无法改变 ID 到 root; 但在/usr/bin 下的可以正常用
回答:setuid 机制是一种控制用户权限的机制,因为“passwd”、 “chsh”、“su”、“suso”都需要使得用户在普通权限下临时具有 root 权限,从而可以访问和修改一些 root 权限下的文件。如果没有 setuid 程序,那么普通用户讲没有权限修改自己的密码,没有权限运行很多 程序,不能安装软件等。所以 setuid 是必要的机制。 2.2 task 2 实验任务:在 linux 环境下运行 Set-UID 程序,以 root 方式登录, 拷贝/bin/zsh 到/tmp, 同时设置拷贝到 tmp 目录下的 zsh 为 set-uid root 权限,然后以普通用户登录,运行/tmp/zsh。你会得到 root 权限吗? 请描述你的结果。 实验流程: 1. 安装 zsh
2. 拷贝/bin/zsh 到/tmp, 同时设置拷贝到 tmp 目录下的 zsh 为 set-uid root 权限 3. 然后以普通用户登录,运行/tmp/zsh。可见 zsh 是能获得 root 权限的,可见 zsh 是不安全的。 4.测试 bash,操作同上 5. 测试发现 bash 在同样情况下,无法获得 root 权限。由此可见 bash 比 zsh 要更为安全
2.3 task 3 实验任务:从题目 2 可以看出,/bin/bash 有某种内在的保护机制 可以阻止 Set-UID 机制的滥用。为了能够体验这种内在的保护机制出 现之前的情形,我们打算使用另外一种/bin/zsh。在一些 linux 的发行 版中(比如 Redora 和 Ubuntu),/bin/sh 实际上是/bin/bash 的符号链接。 为了使用 zsh,我们需要把/bin/sh 链接到/bin/zsh。 实验流程: 1. 把默认的 shell 指向 zsh 2.4 task 4 实验任务:system(const char * cmd)系统调用函数被内嵌到一个
分享到:
收藏