20145335郝昊《网络攻防》Bof逆向基础——ShellCode注入与执行

实验原理

  • 关于ShellCode:ShellCode是一段代码,作为数据发送给受攻击服务器,是溢出程序和蠕虫病毒的核心,一般可以获取权限。我们将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出漏洞,覆盖成为指向ShellCode的地址。

  • Linux中两种基本构造攻击buf:retaddr+nop+shellcodenop+shellcode+retaddr,缓冲区小就把shellcode放后面,若缓冲区较大把缓冲区放置前边。

实验目的与要求

  • 本次实践对象是一个名为pwn1的可执行文件。

  • 对可执行文件pwn1进行操作,注入并运行任意代码。

实验过程及结果

  • 写一段shellcode代码(本次实验采用老师的代码)
  • 设置环境,手动安装execstack
  • 拷贝并运行pwn1文件确保可以使用

  • 设置堆栈可执行
  • 关闭地址随机化,more/proc/sys/kernel/randomizevaspace用来查询地址随机化是否开启或者关闭的状态,2表示开启,0表示关闭。

  • 构造payload,采用nop+shellcode+retaddr方式(\x4\x3\x2\x1将覆盖到堆栈上的返回地址的位置,需要将它改为shellcode的地址)

  • 打开一个新的terminal,注入攻击注入攻击buf(注意回车要在设置断点后进行,否则无法确认进程号,并且要在gdb执行c前回车

-用GDB调试20145335hh1进程,找到进程3400,用attach追踪

  • 启动gdb调试进程,设置断点,查看注入 buf的内存地址

  • 此时发现0x080484ae ret 就跳到我们覆盖的retaddr那个地方了

  • 设置断点后,在另一个终端按下回车,并寻找返回地址,看到01020304表示返回地址的位置是0xffffd31c,shellcode就紧挨着这个地址,加四字节为0xffffd320

  • 退出gdb,按照anything+retaddr+nops+shellcode修改input_shellcode如下打印字母'H',完成实验。

心得体会

本次实验老师在课堂上也有讲到过,但是在自己实验过程中还是遇到问题,比如在最后一步输入命令的时候遇到了问题,在命令perl -e 'print "H" x 32;print "\x20\xd3\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"' > input_shellcode和命令(cat input_shellcode;cat) | ./20145335hh1时候两个shellcode输入错误,导致修改的是一段代码,注入又是另一段代码导致最后结果出现了问题,及时更正了过来完成了实验

转载于:https://www.cnblogs.com/20145335hh/p/6539368.html

20145335郝昊《网络攻防》Bof逆向基础——ShellCode注入与执行相关推荐

  1. 20145335郝昊《网络对抗》逆向及Bof基础实践

    20145335郝昊<网络对抗>逆向及Bof基础实践 1.实践说明 本次实践是对一个名为pwn1的可执行Linux文件进行操作.程序的执行流程是:主函数main调用foo函数,foo将函数 ...

  2. 20145335郝昊《网络攻防》Exp5 MS08_067漏洞测试

    20145335郝昊<网络攻防>Exp5 MS08_067漏洞测试 实验内容 了解掌握metasploit平台的一些基本操作,能学会利用已知信息完成简单的渗透操作. 漏洞MS08_067: ...

  3. 《网络攻防》Web基础

    20145224陈颢文 <网络攻防>Web基础 基础问题回答 什么是表单: 表单是一个包含表单元素的区域.表单元素是允许用户在表单中输入信息的元素.表单在网页中主要负责数据采集功能. 浏览 ...

  4. 《网络攻防》 MSF基础应用

    20145224陈颢文 <网络攻防>MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode: exploit:攻击手段,是能使攻击武器(payloa ...

  5. 2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击

    1. SQL语言 结构化查询语言(Structured Query Language)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系 ...

  6. 逆向基础-shellCode

    shellcode 造成软件漏洞的原因: 本质原因是因为人类目前还没有在原点上区分数据与代码,说白了就是目前人们还没理解编写安全代码的真正方法.如何预防? 通过修改自身代码,公共库函数的安全性降低漏洞 ...

  7. 20142335郝昊第三周学习总结

    20145335郝昊 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 类与对象 定义: 对象(Object):存在的具体实体,具有明确的状态和行为. 类(Class):具有相 ...

  8. 网络攻防技术(摆烂一天)

    网络攻防技术非常基础 1. 信息采集 信息采集的重点概念: 信息采集是黑客为了更有效的实施攻击而在攻击前对被攻击目标进行探测活动(信息渗透的过程) 信息采集是渗透重要的一部分:知道的越多就可能知道的更 ...

  9. 20169218 2016-2017-2 《网络攻防实践》第二周学习总结

    学习内容总结 教材的前两章对网络攻防进行了初步的介绍.第一章介绍了网络攻防的一些基础知识,第一章从"黛蛇蠕虫"的这个真实案例,我了解到了网络攻击的整个具体过程.首先是攻击目标主机, ...

最新文章

  1. html高度塌陷问题解决
  2. c语言多线程游戏,如何用C语言实现多线程
  3. python源码精要(9)-CPython内部原理快速指南(1)
  4. vue路由跳转权限_vue权限路由实现方式总结
  5. 大数据面临的挑战:当大数据遭遇云计算
  6. JS里的onclick事件
  7. SpringBoot2.0之七 实现页面和后台代码的热部署
  8. WPF: 本地化(Localization) 实现
  9. [转]Linux下VSCode常用的快捷键
  10. servlet中的字符编码过滤器的使用
  11. STAMP可以用在win10上面吗
  12. 第五届山东ACM大赛汇总
  13. 再生龙clonezilla备份系统全过程
  14. ##稻盛和夫的名言##
  15. 鸟什么羊什么的成语(鸟什么羊什么四字成语大全)
  16. PicGo+Typora图床搭建教程
  17. 机械键盘Windows键失灵,解决办法
  18. 如何将ASCII码数组转化成多个字符的字符串(摘)?
  19. 深度图像和彩色图像配准原理
  20. 爬虫笔记40之反爬系列三:复杂验证码的处理(12306图片验证码、行为验证:selenium鼠标行为链 + 算法)

热门文章

  1. 关于通过反汇编查看dll的方法【转】(
  2. 容易忽视但是功能灰常强大的Java API(五. 二分查找)
  3. CryEngine3 引擎非商业用途将免费
  4. 红包雨效果html,js+css实现红包雨效果
  5. VC的Win32控制台程序中使用MFC库文件
  6. Linux静态库和动态库学习总结
  7. AUTOSAR从入门到精通100讲(二十六)-AutoSar之微控制器抽象层MCAL
  8. linux中mysql导入数据库命令_linux下mysql数据库导入导出命令
  9. python 3.6 tensorflow_无法在python 3.6中导入Tensorflow
  10. java 线性表的表示和实现_线性表中顺序表的的理解和实现(java)