- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SEED信息安全实验系列ShellShock攻击实验,shellshock攻击,shellshock,shellshock,shellshock漏洞,shellshock利用,shellshock忍者神龟,shellshock漏洞利用,shellshock漏洞补丁,shellshock漏洞poc
ShellShock 攻击实验
一、 实验描述
2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发。在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题。
二、 预备知识
1. 什么是ShellShock?
Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。
——摘自维基百科
2. 进行实验所需的准备
1. 环境搭建
以root权限安装4.1版bash(4.2版本以上的漏洞已经被堵上了) bash4.1 下载地址:/bash-4.1.tar.gz?
下载
# wget /bash-4.1.tar.gz
安装
# tar xf bash-4.1.tar.gz
# cd bash-4.1
# ./configure
# make make install
链接
# rm /bin/bash
# ln -s /usr/local/bin/bash /bin/bash
到这里就安装完了,接下来检测是否存在shellshock漏洞。
$ env x=() { :;}; echo vulnerable bash -c echo this is a test
输出vulnerable的话,说明bash有漏洞。
最后,让/bin/sh 指向/bin/bash.
$ sudo ln -sf /bin/bash /bin/sh
现在一切就绪,进入下一步吧。
2.预备知识
了解bash自定义函数,只需要函数名就能够调用该函数。
$ foo() { echo bar; }
$ foo
bar
这个时候的Bash的环境变量:
KEY = foo
VALUE = () { echo bar; }
来看看ShellShock漏洞的真身:
export foo=’() { :; }; echo Hello World’
bash
Hello World
怎么样?看明白了没?为什么调用bash的时候输出Hello World了呢? 瞧瞧他内部的情况:
KEY = foo
VALUE = () { :; }; echo Hello World
bash读取了环境变量,在定义foo之后直接调用了后面的函数。 一旦调用bash,自定义的语句就直接触发。
到了这,你有想到什么么,联系之前的Set-UID课程。 对!干坏事的孩子会被警察叔叔抓走的:)
不多说了,来get root权限吧!
三、 实验内容
1.攻击Set-UID程序
本实验中,我们通过攻击Set-UID程序来获得root权限。 首先,确保安装了带有漏洞的bash版本,并让/bin/sh 指向/bin/bash.
$ sudo ln -sf /bin/bash /bin/sh
请编译下面这段代码,并设置其为Set-UID程序,保证它的所有者是root。我们知道system()函数将调用/bin/sh -c 来运行指定的命令, 这也意味着/bin/bash 会被调用,你能够利用shellshock漏洞来获取权限么?
#include stdio.h
void main()
{
setuid(geteuid()); // make real uid = effective uid.
system(/bin/ls -l);
}
我们注意到这里使用了setuid(geteuid()) 来使real uid = effective uid,这在Set-UID程序中不是普遍实践,但它确实有时会发生。 先自己试着hack一下) …… …… …… …… …… …… 以下是hack过程。
?如果 setuid(geteuid()) 语句被去掉了,再试试看攻击,我们还能够拿到权限么?
#include stdio.h
void main()
{
system(/bin/ls -l);
}
(hack过程与step1完全一样,sh0ck是编译后的程序)
失败啦!这就说明如果 real uid 和 effective uid 相同的话,定义在环境变量中的内容在该程序内有效,那样shellshock漏洞就能够被利用了。但是如果两个uid不同的话,环境变量失效,就无法发动攻击了,这可以从bash的源代码中得到印证(variables.c,在308到369行之间)请指出是哪一行导致了这样的不同,并说明bash这样设计的原因。
这里给出这部分代码
/* Initializ
您可能关注的文档
- 6S黑带培训教材.ppt
- 6第五节人对生物的调控.ppt
- 7.2二重积分的计算.ppt
- 7.第七章特征词.ppt
- 7.3二重积分的应用.ppt
- 73有侧移刚架的计算.ppt
- 74重积分的应用.ppt
- 7制定战略的程序和工具.ppt
- 7糖代谢的其他途径0.ppt
- 80x86课程英文版的课件Chapter7StringOperation.ppt
- springmvc知识大全.doc
- SPC模版之XR管制图暨直方图分析.xls
- SimElectronics的电气系统仿真.ppt
- standardoperation(操作标准化).ppt
- SYSMEXXE2100基本原理及临床应用.doc
- STEMI诊疗新策略.ppt
- springmvc+activiti 完美整合 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率.doc
- TestCenter基本流的建立入门篇.doc
- ThinkCentre如何启用EnhancedIntelSpeedsteptechnology(增强型英特尔Speedstep技术).doc
- TOYOTA丰田5S培训教材.doc
最近下载
- 面向2025年商业银行的金融科技人才金融科技产品运营能力培养策略.docx
- 【50页PPT】数据治理平台与数据运营体系建设方案.pptx VIP
- E5071B网络分析仪指导书.pdf VIP
- 汽车售后经理年终总结.pptx VIP
- 操作考核标准:简易呼吸气囊.pdf VIP
- 高标准基本农田建设项目竣工验收报告.docx VIP
- 人力资源控制程序.doc VIP
- 2020年美工理论题库4.docx VIP
- 国标图集05s502图集阀门井-国家建筑标准设计图集电子版下载 1.docx VIP
- 第2讲 一心跟着共产党(第一课时)没有共产党就没有新中国(课件)-《学生读本(小学低年级)》.pptx VIP
文档评论(0)