20145334赵文豪《网络对抗》shellcode注入&Return-to-libc攻击深入

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

下载安装execstack
885896-20170401201411274-1979169643.png

完成环境配置
execstack -s pwn5303:将堆栈设为可执行状态
execstack -q pwn5303:查看文件pwn5302的堆栈是否是可执行状态
用more /proc/sys/kernel/randomize_va_space:查看地址随机化的状态
用echo "0" > /proc/sys/kernel/randomize_va_space:关闭地址随机化

构造要注入的payload

用anything+retaddr+nops+shellcode结构构造
885896-20170401201552883-114884660.png

注入这段攻击buf:
885896-20170401201629117-1677592983.png

用gdb来调试pwn1这个进程
885896-20170401201715867-1678912574.png

885896-20170401201750320-1322152874.png

设置断点,来查看注入buf的内存地址
885896-20170401201808899-1859433354.png

在另外一个终端中按下回车
885896-20170401203219711-308111740.png

返回地址改为0xffffd3c1
885896-20170401201932274-832085784.png

Return-to-libc 攻击实验

创建32位C语言可编译的环境

进入32位linux操作环境,进入bash,并关闭地址随机化
885896-20170401202049899-1604873308.png

在/tmp下创建“retlib.c”文件,并编译设置SET-UID
885896-20170401202120633-1578368313.png

在/tmp下创建“getenvaddr.c”文件用于读取环境变量,并编译。在/tmp下创建“exploit.c”文件用于攻击
885896-20170401202154852-1769931729.png

进入gdb设置断点,调试运行获取system和exit的地址
885896-20170401202243242-831896710.png

删除 exploit 和 badfile ,重新编译exploit.c,然后先运行攻击程序 exploit,再运行漏洞程序 retlib
885896-20170401202318133-395918252.png

将/bin/sh重新指向/bin/bas
885896-20170401202355211-809293611.png

修改程序
885896-20170401202432258-781838854.png

885896-20170401202439805-474959800.png

转载于:https://www.cnblogs.com/bestizwh/p/6657417.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值