20145331魏澍琛 《网络对抗技术》 PC平台逆向破解
20145331魏澍琛 《网络对抗技术》 PC平台逆向破解
学习任务
1、shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode 的地址。
2、Return-to-libc 攻击实验:即使栈有不可执行的能力,无法将shellcode放入堆栈中运行,但我们却可以直接让漏洞程序调转到现存的代码来实现我们的攻击。
注入Shellcode并执行
1、设置环境
2、以 anything+retaddr+nops+shellcode 的结构来构造,先估计返回地址所在位置,并且找到 shellcode 所在地址
3、验证返回地址所在位置以及找到 shellcode 地址,切记先别着急按回车,先另外打开一个终端!
4、找到正在执行的20145331pwn1的进程号
5、进入GDB,联上刚刚找到的进程号
6、在 ret 处设置断点,接着运行到断点处,显示当前esp的值并依照此位置显示接下来的内存地址内容,并由此分析出返回地址位置的正确性以及shellcode的地址
7、继续运行,再次检测是否跳到覆盖的返回地址所表示的地方
8、将作为输入的 input_shellcode 处的 “\x10\x20\x30\x40” 换为上面所找到的 shellcode 地址 “\x31\xd3\xff\xff”,接着执行 20145331pwn1 ,shellcode成功注入!
Return-to-libc 攻击实验
1、进入 32 位 linux 环境。输入“/bin/bash”使用 bash
2、把漏洞程序代码保存为“retlib.c”,在 /tmp 目录下
3、编译
4、环境变量的程序“getenvaddr.c”,代码如下
5、攻击程序代码保存为“exploit.c”,在/tmp 目录下
6、用getenvaddr程序获得 BIN_SH 地址
7、用gdb获得system和exit地址
8、用得到的值去覆盖原exploit.c 文件的对应数据(BIN_SH+system+exit)
9、先运行攻击程序 exploit,再运行漏洞程序 retlib,可见攻击成功,获得了 root 权限,实验成功!
/.
个人痕迹好像不太明显。。。。
不过BIN_SH、system、exit的值每个人都应该不一样
./
20145331魏澍琛 《网络对抗技术》 PC平台逆向破解的更多相关文章
- 20145330 《网络对抗》PC平台逆向破解:注入shellcode 和 Return-to-libc 攻击实验
20145330 <网络对抗>PC平台逆向破解:注入shellcode 实验步骤 1.用于获取shellcode的C语言代码 2.设置环境 Bof攻击防御技术 需要手动设置环境使注入的sh ...
- 2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解
2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解 目录 一.逆向及Bof基础实践说明 二.直接修改程序机器指令,改变程序执行流程 三.通过构造输入参数,造成BOF攻击,改变程 ...
- 20145312 《网络对抗》PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验
20145312 <网络对抗>PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验 注入shellcode 实验步骤 1. 准备一段Shellcode 2. ...
- 20155305《网络对抗》PC平台逆向破解(二)
20155305<网络对抗>PC平台逆向破解(二) shellcode注入 1.shellcode shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 2.构造方法 ...
- 20155311《网络对抗》PC平台逆向破解(二)
20155311<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备- ...
- 20145221《网络对抗》PC平台逆向破解
20145221<网络对抗>PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户 ...
- 20155307《网络对抗》PC平台逆向破解(二)
20155307<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备- ...
- 20145201李子璇《网络对抗》PC平台逆向破解
20145201<网络对抗>PC平台逆向破解 准备阶段 下载安装execstack. 获取shellcode的c语言代码 设置堆栈可执行 将环境设置为:堆栈可执行.地址随机化关闭(2开启, ...
- 20145219《网络对抗》PC平台逆向破解
20145219<网络对抗>PC平台逆向破解 shellcode注入 1.shellcode shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 2.构造方法 (1) ...
- 20145240《网络对抗》PC平台逆向破解_advanced
PC平台逆向破解_advanced shellcode注入 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是 ...
随机推荐
- 一般图的着色 - [Welch Powell法][贪心]
原本这是离散数学的期末作业,因为对图论比较熟悉,就先看了一下图论题: 引用<离散数学(左孝凌版)>(其实就是我们的离散数学课本……): 用韦尔奇·鲍威尔法对图G进行着色,其方法是: a)将 ...
- PyCharm安装配置Qt Designer+PyUIC教程
原文写的不错,拿来大家都可以看一下 原文地址:https://www.cnblogs.com/lsdb/p/9121903.html https://www.cnblogs.com/tiankong2 ...
- 【linux echo -e命令】
man帮助的解释是,允许后面的输出进行转义,假设你是 echo -e "i will use \n $HOME" 输出的将是i will use/root(当前用户的主目录)如果是 ...
- CentOS 7设置Samba共享目录
1. 安装Samba服务 yum -y install samba # 查看yum源中Samba版本 yum list | grep samba # 查看samba的安装情况 rpm -qa | gr ...
- 访问GitLab的PostgreSQL数据库-(3)
1.登陆gitlab的安装服务查看配置文件 cat /var/opt/gitlab/gitlab-rails/etc/database.yml production: adapter: postgre ...
- XtraBackup完整备份与增量备份的原理
MySQL数据库实现备份的操作包括完整备份和增量备份等,本文我们主要介绍一下增量备份和完整备份的原理,接下来我们就一起来了解一下这部分内容. 完整备份的原理: 对于InnoDB,XtraBackup基 ...
- break continue练习
break :跳出 1.当break单独存在时,下面不要定义其他语句,因为执行不到. 2.如果出现了循环嵌套,break响应跳出指定的循环,可以通过标号来完成 例如: continue:要么是swit ...
- maven指定本地仓库
在settings.xml文件中添加:<localRepository>E:\jihui\maven\jar</localRepository><!--指定本地仓库路径- ...
- JavaWeb 服务启动时,在后台启动加载一个线程
JavaWeb 服务启动时,在后台启动加载一个线程. 目前,我所掌握的一共有两种方法,第一种是监听(Listener),第二种是配置随项目启动而启动的Servlet. 下面对这两种方法做一简单的介绍, ...
- Summary: Difference between null and empty String
String s1 = ""; means that the empty String is assigned to s1. In this case, s1.length() i ...