20145229吴姗珊《网络对抗》shellcode注入&Return-to-libc攻击深入(待上传)

shellcode注入

  • shellcode是一段代码,是溢出程序和蠕虫病毒的核心,一般可以获取权限,如果将代码存储到对方的栈中,将返回地址利用缓冲区溢出就可以指向我们所希望的shellcode

    实践

  • 首先需要一个shellcode,我就取名为20145229shellcode啦

  • 编译运行一下呗

  • 为了在后面查询文件的堆栈是否可以执行,所以需要安装execstack指令

  • 配置环境,查询地址随机化是否开启

    execstack -s:设置堆栈可执行
    execstack -q:查询文件的堆栈是否可执行 X为可执行
    参数0表示地址随机化关闭,1表示将mmap基址,stack和vdso页面随机化,2为在1的基础下增加栈随机化

  • 构造要注入的payload
    以下buf结构为:nops+shellcode+retaddr,nop为了填充以及一个保险的作用,保证我们的猜测只要一个到nop即可跳转shellcode
    用\x4\x3\x2\x1覆盖返回地址的位置(这个图打字打错了,但是正确那个忘截图了,就用这个吧)

  • 打开另一个终端攻击buf,后面调试工程再按回车!!切记!!

  • 再打开一个终端,查找与20145229shellcode相关的进程,前面的终端按一下回车,出现如下图,找到该进程号为2304

  • 打开gdb,用attach指令进行反汇编

  • 对foo函数进行反汇编

  • 在ret处设置断点,查看注入buf的内存地址,分析我们之前猜测的返回地址位置是否正确

    这里经历了诸多磨难,发现前面有个地方输错了!!!然后重新来!!

20145229吴姗珊《网络对抗》shellcode注入&Return-to-libc攻击深入的更多相关文章

  1. 20145229吴姗珊《网络对抗》WEB基础实践

    20145229吴姗珊<网络对抗>WEB基础实践 基础与实践 基础问题 1.什么是表单 表单是可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一部分是HTML源代码用于 ...

  2. 20145229吴姗珊《网络对抗》MSF基础应用

    20145229吴姗珊<网络对抗>MSF基础应用 试验过程及基础知识 实验完成问题回答 用自己的话解释什么是exploit,payload,encode. exploit:通过一个漏洞对程 ...

  3. 20145229吴姗珊逆向BOF实践

    20145229吴姗珊逆向BOF实践 实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. ...

  4. 20145229吴姗珊 《Java程序设计》课程总结

    20145229吴姗珊 <Java程序设计>课程总结 (按顺序)每周读书笔记链接汇总 第一周:http://www.cnblogs.com/20145229ss/p/5248728.htm ...

  5. 20145229吴姗珊 《Java程序设计》第8周学习总结

    20145229吴姗珊 <Java程序设计>第8周总结 教材学习内容总结 第十四章 NIO与NIO2 NIO: InputStream.OutputStream的输入输出,基本上是以字节为 ...

  6. 20145229吴姗珊 《Java程序设计》第9周总结

    20145229吴姗珊 <Java程序设计>第9周总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交 ...

  7. 20145229吴姗珊 《Java程序设计》2天小总结

    20145229吴姗珊 <Java程序设计>2天小总结 教材学习内容总结 由于这周学的内容比较简单,主要是关于日期.日期之类的东西.所以自己从书上看了一些内容 总结了第四章 认识对象 和第 ...

  8. 20145229吴姗珊 《Java程序设计》第7周学习总结

    20145229吴姗珊 <Java程序设计>第7周学习总结 教材学习内容总结 第13章时间与日期 即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间. 秒的单位定 ...

  9. 20145229吴姗珊《java程序设计》第2次实验报告

    20145229吴姗珊<java程序设计>第2次实验报告 实验名称 Java面向程序设计,采用TDD的方式设计有关实现复数类Complex. 理解并掌握面向对象三要素:封装.继承.多态. ...

随机推荐

  1. 【Raspberry pi】GPIO使用指南

    http://www.cnblogs.com/qtsharp/archive/2013/02/28/2936800.html 树莓派RaspberryPi的RPi.GPIO使用指南   Python操 ...

  2. 【Python】求素数-未经过任何优化

    print 'Find prime number smaller then input number \n' print 'Please input a number:' import time nu ...

  3. MySQL Error: Illegal mix of collations for operation 'concat'

    在使用concat连接字符串时出现错误:MySQL Error: Illegal mix of collations for operation 'concat' 原因:字段操作默认为UTF8的编码, ...

  4. webpack 代码拆分(按需打包)

    https://segmentfault.com/a/1190000007649417

  5. 苹果 App Store 申请和管理相关知识

    本文转载至 http://blog.csdn.net/yu0089/article/details/8027669 app store为开发者提供四种类型的申请: 个人ios开发者计划$99/年 公司 ...

  6. C语言函数重入

    C语言函数重入 可重入函数:可以被中断的函数,即这个函数执行时,可以中断其执行,可以由一个或多个任务并发使用,而不比担心数据错误. 不可重入函数(不安全函数) 不能运行在多任务环境下,除非能保证互斥( ...

  7. JavaScript-rem字体自适应

    给html标签上添加 id=“FontSize”: 你期望满屏的rem值,如: <html font-size:100px></html> 我的主要内容为1200px,那么我的 ...

  8. C++ 调用webservice 出现 函数返回值为 3 (SOAP_TAG_MISMATCH) 的解决方案

    最近在用C++ gsoap做webservice服务时,函数返回值为SOAP_TAG_MISMATCH (==3)错误码,原因是我传入wsdl地址时连同后面的?wsdl都传入了,如下: http:// ...

  9. ASP.NET Identity 2集成到MVC5项目--笔记02

    ASP.NET Identity 2集成到MVC5项目--笔记01 ASP.NET Identity 2集成到MVC5项目--笔记02 继上一篇,本篇主要是实现邮件.用户名登陆和登陆前邮件认证. 1. ...

  10. JavaScript dotAll模式

    JavaScript正则表达式中点(.)是一个特殊字符,它可以匹配除了一下条件的任意字符. 四个字节的UTF-16字符 换行符(\n) 回车符(\r) 行分隔符 段分隔符 为了使点(.)可以匹配任意字 ...