Linux Shell Shock漏洞利用和实战

265 篇文章 35 订阅
249 篇文章 7 订阅

漏洞介绍

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

漏洞****实验环境搭建

1、 以root权限安装4.1版本的bansh。下载地址:
http://labfile.oss.aliyuncs.com/bash-4.1.tar.gz
2、 安装:

tar xf bash-4.1.tar.gz``cd bash-4.1``./configure``Make && make install

3、链接

rm / bin/bash``ln -s /usr/local/bin/bash /bin/bash

4、检查漏洞是否存在:

Env x=’() { :; };echo vulnerable’ bash -c “echo this is a test”

5、 如果上一步输出vulnerable,那么让/bin/sh指向/bin/bash

Sudo ln -sf /bin/bash /bin/sh

漏洞真身复现:

 Export foo=’() { :; }; echo hello world’

Bash读取了环境变量,在定义foo之后就直接调用了后面的函数,一旦调用bash,自定义语句就直接触发。

  1. 攻击Set-UID程序。
    我们知道system()函数将调用“/bin/sh -c”来运行指定的命令,这也意味着/bin/bash会被调用。你能够利用shellshock漏洞来获取权限吗?首先确保安装了带有漏洞版本的bash版本,并让/bin/sh指向/bin/bash

编辑如下C代码:

并给其赋一个SUID权限。

成功拿到root权限:

重点函数还是C代码中的setuid(geteuid());可以尝试,如果这段代码被删除,那么就无法成功提权。

原理分析:

我们这里使用该语句的原因是希望read uid = effective uid
这就说明如果real uid 和effective uid相同的话,定义在环境变量中的内容 在该程序中任然有效,但是两个uid如果不同,环境变量失效,就无法发动攻击了,这可以从bash的源代码中得到印证。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值