zoukankan      html  css  js  c++  java
  • 20145322 何志威《网络对抗》shellcode注入&Return-to-libc攻击深入

    基础知识

    Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址。

    execstack -s xxx:将堆栈设为可执行状态

    execstack -q xxx:查看文件pwn5302的堆栈是否是可执行状态

    more /proc/sys/kernel/randomize_va_space:查看地址随机化的状态

    echo "0" > /proc/sys/kernel/randomize_va_space:关闭地址随机化

    (gdb) attach: GDB可以对正在执行的程序进行调度,它允许开发人员中断程序并查看其状态,之后还能让这个程序正常地继续执行。在GDB中使用“attach”命令是一个方法。

    (gdb) disassemble foo: 反汇编一段内存地址,

    (gdb) c: 继续执行被调试程序,直至下一个断点或程序结束,Continue的简写

    (gdb) x/16x : 使用x命令(examine的简写)来查看内存地址中的值。

    * x命令的语法:x/<n/f/u>

    实验过程:

    编写shellcode代码:

    配置环境

    安装execstack

    execstack -s xxx:将堆栈设为可执行状态

    execstack -q xxx:查看文件pwn5302的堆栈是否是可执行状态

    more /proc/sys/kernel/randomize_va_space:查看地址随机化的状态

    echo "0" > /proc/sys/kernel/randomize_va_space:关闭地址随机化

    做实验的时候忘截图了,就不在这附图了。

    用anything+retaddr+nops+shellcode结构构造要注入的payload

    注入buf:

    此时不按回车。

    打开另一个终端,先找到正在执行的 20145325pwn1 的进程号,再用attach指令对该进程进行调试且对foo函数进行反汇编并在ret处设置断点。

    找到正在执行的 20145325pwn1 的进程号

    用attach指令对该进程进行调试

    对foo函数进行反汇编并在ret处设置断点。

    确认地址被覆盖

    在第一个终端按回车

    把地址“x10x20x30x40” 换为 “x31xd3xffx”,就成功啦!

    Return-to-libc 攻击实验

    基础知识

    即使栈有不可执行的能力,无法将shellcode放入堆栈中运行,但我们却可以直接让漏洞程序调转到现存的代码来实现我们的攻击。(本次实验所用的是已经载入内存的 libc 库中的 system()函数等)

    实验过程

    创建32位C语言可编译的环境并进入32位linux操作环境,进入bash,并关闭地址随机化

    创建“retlib.c”文件,并编译设置SET-UID

    在/tmp下创建“getenvaddr.c”文件用于读取环境变量,并编译。在/tmp下创建“exploit.c”文件用于攻击。并获取地址。

    用gdb设置断点,调试运行获取system和exit的地址

    修改exploit.c文件,保存到 /tmp 目录下

    删除 exploit 和 badfile ,重新编译exploit.c,然后先运行攻击程序 exploit,再运行漏洞程序 retlib,可以看到攻击成功,获得了 root 权限

  • 相关阅读:
    centos7下安装docker
    java中获取两个时间中的每一天
    Linq中string转int的方法
    logstash 主题综合篇
    Windows环境下ELK(5.X)平台的搭建
    本地没问题 服务器 提示 Server Error in '/' Application
    错误 未能找到类型或命名空间名称"xxxxxx"的真正原因
    System.web和System.WebServer
    Chrome Adobe Flash Player 因过期而 阻止
    请求WebApi的几种方式
  • 原文地址:https://www.cnblogs.com/HZW20145322/p/6653850.html
Copyright © 2011-2022 走看看