《Linux内核原理与分析》 第十一周作业

一、预备知识

  • 什么是ShellShock?

        Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。

二、实验过程和分析

我选择的实验是ShellShock 攻击实验,具体的实验过程如下:

  1. 以root权限安装4.1版bash。





  2. 首先,确保安装了带有漏洞的bash版本,并让/bin/sh 指向/bin/bash.



  3. 在 /home/shiyanlou 目录下新建一个 shock.c 文件,内容如下:

  4. 编译这段代码,并设置其为Set-UID程序,保证它的所有者是root。

  5. 这里使用了setuid(geteuid()) 来使real uid = effective uid,这在Set-UID程序中不是普遍现象, 以下是hack过程:



  6. 去掉setuid(geteuid()) 语句,再试攻击,不能拿到权限

        失败了!这就说明如果 real uid 和 effective uid 相同的话,定义在环境变量中的内容在该程序内有效,那样shellshock漏洞就能够被利用了。但是如果两个 uid 不同的话,环境变量失效,就无法发动攻击了,这可以从 bash的源代码中得到印证

       就是上述那一行判断逻辑导致了两者的不同,primode即私有模式,要求real uid 与 effective uid保持一致。

最新文章

  1. 用Kotlin语言重新编写Plaid APP:经验教训(II)
  2. Sprint第三阶段(第四天12.12)
  3. Four Operations---hdu5938(暴力)
  4. WPF 之 未捕获异常的处理
  5. PS抠图神器: KnockOut 2.0安装汉化和使用教程
  6. Z.Studio高级成衣定制(双井店)价格,地址(图)-北京-大众点评网
  7. python image show()方法的预览问题
  8. [置顶] cocos2d-x 植物大战僵尸(13)类似酷跑的【同一角色不同动画间的切换的实现】
  9. 简单谈谈JavaScript中的this
  10. scrapy 修改URL爬取起始位置
  11. python基础学习(一)
  12. 使用 pm2 守护你的 .NET Core 应用程序
  13. Python 常用的正则表达式
  14. MATLAB:图像的移动(move函数)
  15. C 表達式及返回值
  16. Mysql分析优化查询的方式
  17. 【数论Day1】 最大公约数(gcd)题目
  18. CI Weekly #22 | flow.ci 新版 iOS 构建流程的 4 大变化
  19. JAVA内存构成详解
  20. using namespace cv

热门文章

  1. QtQuick与Qml介绍
  2. jenkins目录
  3. queryWrapper 拼接日期查询
  4. SpringBoot + Shiro + Redis + JWT 实现无状态登录
  5. C/C++中的可变参数
  6. Pytorch之数据处理
  7. .NET Core读写InfluxDB时序数据库的方法教程
  8. jdbc中druid连接池遇到的问题和jdbcTemplate
  9. 使用layui+jQuery实现点击删除单行数据
  10. 普罗米修斯-docker安装