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. reactjs中props和state最佳实践

    http://blog.csdn.net/dangnian/article/details/50998981

  2. 如何正确使用Google搜索

    “” 双引号表示完全匹配,结果中必须出现与搜索文本完全相同的内容 A -B 搜索包含A但不包含B的结果(请注意A后面的空格不能省略) filetype 搜索对应类型的文件.例如:中国防火墙 filet ...

  3. libevent(2)

    client.cpp // App02.cpp : 定义控制台应用程序的入口点. // #include <string.h> #include <errno.h> #incl ...

  4. Android 4.4 (KitKat) SMS Apis Change——Android 4.4的一个重大变化

    Android团队通过Android开发博客透漏今年会放出Android 4.4 (KitKat) ,同时更新了 SMS 的部分API.博客上讲只有default SMS app才能对短信数据库有写权 ...

  5. zoj3662(dp)

    dp还是比较好想的,但是时间还是比较坑的. 要预处理还加些优化才行 . #include <stdio.h> #include <stdlib.h> #include < ...

  6. 【BZOJ4259】残缺的字符串 FFT

    [BZOJ4259]残缺的字符串 Description 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n.可当你现在再次碰到这两个串时, ...

  7. ipad4丢失查找攻略

    如果不幸你的ipad丢失了,你可以通过find my iphone的软件来.它会帮你定位你ipad的位置.还有一种方式是登录你的icloud里面有个功能是查找我的iphone. 你还可以点击下面这个链 ...

  8. Python IDLE或shell中切换路径

    在Python自带的编辑器IDLE中或者python shell中不能使用cd命令,那么跳到目标路径呢.方法是使用os包下的相关函数实现路径切换功能. import os  os.getcwd() # ...

  9. 记录--jquery 获取父级、子级、兄弟元素 + 实例

    需求如下: 三条数据,需点击其中一条数据在其下面展示与此数据关联的图片.主要功能可能是在点击的数据下增加显示行 思路: 把需要点击增加的数据先隐藏.点击后再将其显示出来. 知识点: jQuery.pa ...

  10. adb 连接小米1S真机调试

    Ubuntu13.04 adb连接小米1S真机调试 搭好Android开发环境后,新建了一个Android Application工程.准备运行,问题来了,模拟器太慢了,怎么在真机上调试呢?百度之,G ...