zoukankan      html  css  js  c++  java
  • 20145310《网络对抗》注入shellcode及Return-to-libc

    Shellcode注入

    基础知识

    • Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址。Shellcode一般是作为数据发送给受攻击服务器的。 Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地。漏洞利用中最关键的是Shellcode的编写。

    实践过程

    • 首先写一段shellcode,保存为20145310shellcode.c

    • 安装execstack

      

    • 将环境设置为:堆栈可执行、地址随机化关闭
    • execstack -s 5310pwn命令来将堆栈设为可执行状态
    • execstack -q 5310pwn命令来查看文件pwn20145333的堆栈是否是可执行状态
    • more /proc/sys/kernel/randomize_va_space命令来查看地址随机化的状态
    • echo "0" > /proc/sys/kernel/randomize_va_space命令来关闭地址随机化

         

    • 采取nop+shellcode+retaddr方式构造payload(x4x3x2x1将覆盖到堆栈上的返回地址的位置,需要将它改为shellcode的地址)

    • 注入攻击buf

    • 此时在第一个终端,用gdb来调试5310pwn进程,找到该进程的进程ID。

    • 启动gdb调试进程,用attach指令对该进程进行调试,设置断点,查看注入buf的内存地址

    • 设置断点后,在另一个终端按回车,寻找返回地址,看到01020304表示返回地址的位置,shellcode加四字节为其地址

    • 退出gdb,按anything+retaddr+nops+shellcode修改input_shellcode

    • 执行5310pwn,成功

    Return-to-libc攻击

    • 配置环境,输入指令创建32位C语言可编译的环境

      sudo apt-get update

      sudo apt-get install lib32z1 libc6-dev-i386

    • 进入32位linux环境,并使用bash

    • 关闭地址随机化

      sudo sysctl -w kernel.randomize_va_space=0

    • 为了不让/bin/bash的防护程序起作用(为了防止shell攻击,程序被调用时会自动弃权),使用另一个shell程序(zsh)代替/bin/bash,设置zsh程序

    • 在编译时手动设置栈不可执。在tmp文件夹下创建“retlib.c”文件,并编译设置SET-UID

    • 我们在编译代码时需要用 “–fno-stack-protector” 关闭GCC 编译器栈保护机制

    • 在tmp文件夹下准备读取环境变量的程序“getenvaddr.c”,并编译。

    • 把以下代码(攻击程序)保存为“exploit.c”文件,保存到 /tmp 目录下。

    • 用刚才的 getenvaddr 程序获得 BIN_SH 地址。

    • gdb获得systemexit地址,编译,获得 system 和 exit 地址

    • 修改 exploit.c 文件,填上内存地址

    • 删除刚才调试编译的exploit程序和badfile文件,重新编译修改后的exploit.c。
    • 先运行攻击程序 exploit,再运行漏洞程序 retlib,攻击成功,获得 root 权限。

  • 相关阅读:
    Memcached 笔记与总结(9)Memcached 与 Session
    python禁止函数修改列表的实现方法
    python禁止函数修改列表的实现方法
    大数据是工业的核心资源 企业入局需合理把握
    大数据是工业的核心资源 企业入局需合理把握
    Python执行时间的计算方法小结
    Python执行时间的计算方法小结
    大数据无处不在 企业实践指南有哪些?
    大数据无处不在 企业实践指南有哪些?
    python条件变量之生产者与消费者操作实例分析
  • 原文地址:https://www.cnblogs.com/pigeondandelion/p/6646873.html
Copyright © 2011-2022 走看看