基础知识

Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址。

execstack -s xxx:将堆栈设为可执行状态

execstack -q xxx:查看文件pwn5302的堆栈是否是可执行状态

more /proc/sys/kernel/randomize_va_space:查看地址随机化的状态

echo "0" > /proc/sys/kernel/randomize_va_space:关闭地址随机化

(gdb) attach: GDB可以对正在执行的程序进行调度,它允许开发人员中断程序并查看其状态,之后还能让这个程序正常地继续执行。在GDB中使用“attach”命令是一个方法。

(gdb) disassemble foo: 反汇编一段内存地址,

(gdb) c: 继续执行被调试程序,直至下一个断点或程序结束,Continue的简写

(gdb) x/16x : 使用x命令(examine的简写)来查看内存地址中的值。

* x命令的语法:x/

实验过程:

编写shellcode代码:

配置环境

安装execstack

execstack -s xxx:将堆栈设为可执行状态

execstack -q xxx:查看文件pwn5302的堆栈是否是可执行状态

more /proc/sys/kernel/randomize_va_space:查看地址随机化的状态

echo "0" > /proc/sys/kernel/randomize_va_space:关闭地址随机化

做实验的时候忘截图了,就不在这附图了。

用anything+retaddr+nops+shellcode结构构造要注入的payload

注入buf:

此时不按回车。

打开另一个终端,先找到正在执行的 20145325pwn1 的进程号,再用attach指令对该进程进行调试且对foo函数进行反汇编并在ret处设置断点。

找到正在执行的 20145325pwn1 的进程号

用attach指令对该进程进行调试

对foo函数进行反汇编并在ret处设置断点。

确认地址被覆盖

在第一个终端按回车

把地址“\x10\x20\x30\x40” 换为 “\x31\xd3\xff\x”,就成功啦!

Return-to-libc 攻击实验

基础知识

即使栈有不可执行的能力,无法将shellcode放入堆栈中运行,但我们却可以直接让漏洞程序调转到现存的代码来实现我们的攻击。(本次实验所用的是已经载入内存的 libc 库中的 system()函数等)

实验过程

创建32位C语言可编译的环境并进入32位linux操作环境,进入bash,并关闭地址随机化

创建“retlib.c”文件,并编译设置SET-UID

在/tmp下创建“getenvaddr.c”文件用于读取环境变量,并编译。在/tmp下创建“exploit.c”文件用于攻击。并获取地址。

用gdb设置断点,调试运行获取system和exit的地址

修改exploit.c文件,保存到 /tmp 目录下

删除 exploit 和 badfile ,重新编译exploit.c,然后先运行攻击程序 exploit,再运行漏洞程序 retlib,可以看到攻击成功,获得了 root 权限

20145322 何志威《网络对抗》shellcode注入&Return-to-libc攻击深入的更多相关文章

  1. 20145307陈俊达《网络对抗》shellcode注入&return to libc

    20145307陈俊达<网络对抗>shellcode注入 Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将 ...

  2. 20145322何志威《网络对抗》逆向及Bof基础

    20145322何志威<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...

  3. 20145322何志威《网络对抗技术》Exp6 信息搜集技术

    20145322何志威<网络对抗技术>Exp6 信息搜集技术 实验内容 掌握信息搜集的最基础技能: (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发 ...

  4. 20145318《网络对抗》注入shellcode及Return-to-libc

    20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据) ...

  5. 20145322何志威 Exp7 网络欺诈技术防范

    20145322何志威 Exp7 网络欺诈技术防范 一 实践过程记录 简单应用SET工具建立冒名网站 1 确保kali和靶机能ping通: 2 为了使得apache开启后,靶机通过ip地址可以直接访问 ...

  6. 20145327《网络对抗》——注入shellcode并执行和Return-to-libc攻击深入

    20145327<网络对抗>--注入shellcode并执行 准备一段Shellcode 老师的shellcode:\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68 ...

  7. 20145322何志威 Exp8 Web基础

    20145322何志威 Exp8 Web基础 实践过程记录 一.Apache 1 修改/etc/apache2/ports.conf里的端口为5322后重新开启: 2 可以在浏览器中输入localho ...

  8. 20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结

    20145308 <网络对抗> 逆向及BOF进阶实践 注入shellcode+Return-to-libc攻击 学习总结 实践目的 注入shellcode 实现Return-to-libc ...

  9. 20144303石宇森《网络对抗》注入shellcode和Return-to-libc攻击

    20144303石宇森<网络对抗>PC平台逆向破解 实验1:shellcode注入 实验基础 1.Linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcode,n ...

  10. 20145310《网络对抗》注入shellcode及Return-to-libc

    Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. ...

随机推荐

  1. 【七牛云】时间戳防盗链鉴权php实现

    基于时间戳防盗链的功能其实每家的CDN都是支持的.主要是通过使用约定的加密字符串来对具有访问有效期的资源链接进行一些加密计算的到一个sign值,然后访问外链里面带上这个sign和截止时间戳去访问CDN ...

  2. java框架---->Xstream的使用(一)

    Xstream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称.今天我们就简单的学习一下xstream的用法. Xstream的简单实例 项目的结构如下,设计到三个类 ...

  3. 使用Sublime Text 3做Python开发

    引言 刚转到OS X平台时,寻找写Python,JavaScript,Markdown等文件的工具时,比较了许多工具, 最终选择了Sublime Text 2,主要原因是其跨平台, 想着以后再转到wi ...

  4. crossdomain.xml跨域配置文件的安全注意事项

    零.绪论: 对WEB中的FLASH确实了解不多,对程序中的跨域配置也了解不多,这是自己以前写的一篇笔记,到现在也还了解不深,勉强记下来罢了,备忘. 一.什么是crossdomain.xml?这是一个f ...

  5. Express 框架的安装

    从零开始用 Node.js 实现一个微博系统,功能包括路由控制.页面模板.数据库访问.用户注册.登录.用户会话等内容. Express 框架. MVC 设计模式. ejs 模板引擎 MongoDB 数 ...

  6. MUI事件管理

    模块:事件管理 http://dev.dcloud.net.cn/mui/event/ 事件绑定: 除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on( ...

  7. 系统事件管理(Events) ---- HTML5+

    模块:events Events模块管理客户端事件,包括系统事件,如扩展API加载完毕.程序前后台切换等. 比如说:网络的链接的和断开这种事件,系统从前台走到后台这种事件: 不包括:点击和滑动页面事件 ...

  8. debug kibana in chrome

    kibana5.6.5版本 在kibana根目录运行命令:NODE_OPTIONS='--inspect --debug' npm start 也可以尝试命令:NODE_OPTIONS="- ...

  9. Python IDLE 安装与使用教程(调试、下载)

    原文:http://www.jb51.net/softjc/142580.html ---------------------------------------------------------- ...

  10. You don't have permission to access

    局域网内配置Discuz,web端访问server端,出现以下反馈: Forbidden You don't have permission to access / on this server. 网 ...