20145202 《网络对抗技术》 PC平台逆向破解
20145202 《网络对抗技术》 PC平台逆向破解
准备工作

先将环境设置为:堆栈可执行、地址随机化关闭
参考http://git.oschina.net/wildlinux/NetSec/blob/master/ExpGuides/Bof_从缓冲区溢出说起.md?dir=0&filepath=ExpGuides%2FBof_从缓冲区溢出说起.md&oid=72b34d542ae4c73c64c2796d28dbc2d9289c0e2b&sha=4f3790a4c0593c3183871a5e65e20bebd6fbda1e

以 anything+retaddr+nops+shellcode 的结构来构造,先估计返回地址所在位置,并且找到 shellcode 所在地址

要验证返回地址所在位置以及找到 shellcode 地址,需要使用GDB调试

再找到正在执行的进程号

进入GDB,联系上该进程号

在 ret 处设置断点,接着运行到断点处,显示当前esp的值并依照此位置显示接下来的内存地址内容,并由此分析出返回地址位置的正确性以及shellcode的地址

由上图可以看出,shellcode地址为:0xffffd334
继续运行,可以确认返回地址是被我们之前输入\x01\x02\x03\x04所覆盖的:

将返回地址修改为0xffffd334,重新注入。
Return-to-libc 攻击
我先另外添加了一个用户:

进入32位linux环境,将地址随机化关闭,并且把/bin/sh指向zsh

将漏洞程序保存在/tmp目录下:

编译该代码,使用–fno-stack-protector来关闭阻止缓冲区溢出的栈保护机制,并设置给该程序的所有者以suid权限,可以像root用户一样操作:

读取环境变量的程序:

将攻击程序保存在/tmp目录下:

用刚才的getenvaddr程序获得BIN_SH地址:

利用gdb获得system和exit地址:

将上述所找到的三个内存地址填写在20145215exploit.c中:

到这里才发现之前忘了切换用户了,所以又要重新做一遍但是步骤都一样就不再从新写了,结果是成功了。

参考资料:https://git.oschina.net/wildlinux/NetSec/blob/master/ExpGuides/MAL_逆向与Bof基础.md?dir=0&filepath=ExpGuides%2FMAL_逆向与Bof基础.md&oid=bf7c0c8fd8e306ddb9f728b4db42b5efbb00af80&sha=f4a0f4414045ff786a72020586fcf7663dd56f8b
20145202 《网络对抗技术》 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一般是 ...
随机推荐
- LeetCode Two Sum 解题思路(python)
问题描述 给定一个整数数组, 返回两个数字的索引, 使两个数字相加为到特定值. 您可以假设每个输入都有一个解决方案, 并且您不能使用相同的元素两次. 方法 1: 蛮力 蛮力方法很简单.循环遍历每个元素 ...
- LeetCodeOJ刷题之13【Roman to Integer】
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
- Python爬虫利器之Beautiful Soup,Requests,正则的用法(转)
https://cuiqingcai.com/1319.html https://cuiqingcai.com/2556.html https://cuiqingcai.com/977.html
- Python语言程序设计基础(2)—— Python程序实例解析
温度转换 def tempConvert(ValueStr): if ValueStr[-1] in ['F','f']: ans = (eval(ValueStr[0:-1]) - 32)/1.8 ...
- CF235C 【Cyclical Quest】
厚颜无耻的发一篇可能是全网最劣解法 我们发现要求给定的串所有不同的循环同构出现的次数,可以直接暴力啊 因为一个长度为\(n\)的串,不同的循环同构次数显然是不会超过\(n\)的,所以我们可以直接对每一 ...
- luogu P1503 鬼子进村
嘟嘟嘟 线段树好题. 其实挺水的,想暴力怎么做:每一次从这个点开始向两边扩,直到遇到第一个摧毁的房屋. 那么把暴力改成倍增,然后线段树查询区间和是否为0.时间复杂度O(nlog2n). 题解好像有线段 ...
- VOJ1067 【矩阵经典7 构造矩阵】
任意门:https://vijos.org/records/5be95b65d3d8a1366270262b 背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条 ...
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A、Saving Tang Monk II 【状态搜索】
任意门:http://hihocoder.com/problemset/problem/1828 Saving Tang Monk II 时间限制:1000ms 单点时限:1000ms 内存限制:25 ...
- 三角测量(Triangulation)
三角测量(Triangulation)是视觉定位中,已知多个相机位置和空间中一点的投影点,进一步求该点3D位置的方法.三角测量是Pose Estimation的相反过程,求出相机位置后,图像中其它特征 ...
- 【洛谷P1159】排行榜
排行榜 题目链接 看到题解中一个很巧妙的做法: 先确定SAME的位置, 将DOWN的按输入顺序从上往下输出 再将UP的接着从上往下输出 这样便可以保证DOWN的人名次一定下降了 UP的人名次一定上升了 ...