首页 技术 正文
技术 2022年11月16日
0 收藏 725 点赞 3,749 浏览 927 个字

逆向与BOF基础——注入shellcode并执行

准备阶段

  • 下载安装execstack.

  • 本次实验实验的shellcode是心远的文章中生成的代码,即\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\

  • 为减少实验难度,设置堆栈可执行,并关闭地址随机化。

实验过程

1.构造注入的payload,格式为nop(即\x90)+shellcode+返回地址。

2.gdb调试该段代码,判断返回地址应在哪里。

3.跳坑,进去体验一下。

4.重新开始时,使用了另一种构造注入payload的方法,anything+retaddr+nops+shellcode,只要返回地址在该范围内,最终都会滑行到shellcode上。

5.成功。

Return-to-libc

准备工作

  • 执行安装可用于编译32位程序的东西的命令。
sudo apt-get update
sudo apt-get install lib32z1 libc6-dev-i386
sudo apt-get install lib32readline-gplv2-dev
  • 进入32位Linux环境,使用bash。

攻击漏洞程序并获得root权限

  • 关闭堆和栈初始地址的随机化。

  • 用zsh代替/bin/bash

  • 编写漏洞程序,保存在/tmp目录下

  • 编译该程序,使用“栈不可执行”,设置SET-UID

  • 编写读取环境变量的程序并编译

  • 编写攻击程序,将其放在/tmp下

  • 使用获取环境变量的程序取得BIN_SH 的地址

  • 使用GDB获取system和exit的地址

  • 修改攻击程序,将取得的地址填入相应的位置,重新编译。

  • 运行攻击程序和漏洞程序,获得root权限。

将/bin/sh 重新指向/bin/bash(或/bin/dash)

  • 指向/bin/bash

  • 指向/bin/dash

与缓冲区溢出漏洞实验的异同

  • 相同之处:利用漏洞来获得对被攻击者的权限,都需关闭地址随机化。
  • 不同之处:缓冲区溢出需用shellcode的地址来覆盖程序的返回地址,使漏洞程序去执行栈中的shellcode;而return-to-libc是漏洞程序调转已编好的代码实现攻击。
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,994
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,507
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,350
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,135
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,768
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,845