您的位置:首页 > 理论基础 > 计算机网络

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

2017-03-30 15:37 232 查看

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的内存地址,分析我们之前猜测的返回地址位置是否正确



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐