zoukankan      html  css  js  c++  java
  • 2020-2021-1 20209318《Linux内核原理与分析》第十二周作业

    ShellShock 攻击实验

    作业信息

    这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析>
    这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第十二周作业>
    这个作业的目标 <ShellShock 攻击实验>
    作业正文 https://www.cnblogs.com/20209318zs/p/14183110.html

    一、实验简介

    2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发。在本实验中,需要亲手重现攻击来理解该漏洞,并回答一些问题。

    二、预备知识

    什么是shellshock?
    Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。——摘自维基百科
    2.1进行实验所需的准备
    1环境搭建
    以root权限安装4.1版bash(4.2版本以上的漏洞已经被堵上了)
    bash4.
    原来的下载地址是 http://ftp/gnu.org/gnu/bash/bash-4.1.tar.gz,
    为了加快速度,我们这里使用下面的下载地址
    http://labfile.oss.aliyuncs.com/bash-4.1.tar.gz

    下载

    $ sudo su 
    $ wget http://labfile.oss.aliyuncs.com/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漏洞

    $ exit 
    $ env x='() { :; }; echo vulnerable' bash -c "echo this is a test"
    让/bin/sh 指向/bin/bash
    $ sudo ln -sf /bin/bash /bin/sh
    

    三、实验内容

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

    $ sudo ln -sf /bin/bash /bin/sh
    

    在 /home/shiyanlou 目录下新建一个 shock.c 文件:

    $ vi shock.c
    

    按i键切换到插入模式,再输入如下内容:

    #include <stdio.h> 
    void main() 
    { 	
    setuid(geteuid()); // make real uid = effective uid. 
    system("/bin/ls -l"); 
    }
    

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

    $ sudo su 
    $ gcc -o shock shock.c 
    $ chmod u+s shock
    

    hack过程:

    去掉setuid(geteuid())语句,再次攻击

    说明如果 real uid 和 effective uid 相同的话,定义在环境变量中的内容在该程序内有效,那样shellshock漏洞就能够被利用了。但是如果两个 uid 不同的话,环境变量失效,就无法发动攻击了。

  • 相关阅读:
    naotu.baidu.com 非常棒的脑图在线工具
    编程常用英语词汇大全
    我的总结,编程人生
    排序箭头,升序,降序简单实现
    jquery网页倒计时效果,秒杀,限时抢购!
    echarts入门,5分钟上手写ECharts的第一个图表
    严谨的程序案例Api
    github Travis CI 持续集成
    Cmake使用
    Linxu安装Lamp环境
  • 原文地址:https://www.cnblogs.com/20209318zs/p/14183110.html
Copyright © 2011-2022 走看看