20145202 《网络对抗技术》 PC平台逆向破解

20145202 《网络对抗技术》 PC平台逆向破解

准备工作
994272-20170311154123373-979630974.jpg

先将环境设置为:堆栈可执行、地址随机化关闭
参考http://git.oschina.net/wildlinux/NetSec/blob/master/ExpGuides/Bof_从缓冲区溢出说起.md?dir=0&filepath=ExpGuides%2FBof_从缓冲区溢出说起.md&oid=72b34d542ae4c73c64c2796d28dbc2d9289c0e2b&sha=4f3790a4c0593c3183871a5e65e20bebd6fbda1e
994272-20170311154549373-1441297956.jpg

以 anything+retaddr+nops+shellcode 的结构来构造,先估计返回地址所在位置,并且找到 shellcode 所在地址
994272-20170311154938014-197920909.jpg

要验证返回地址所在位置以及找到 shellcode 地址,需要使用GDB调试
994272-20170311155158826-1266799934.jpg

再找到正在执行的进程号
994272-20170311155953686-1426510267.jpg

进入GDB,联系上该进程号
994272-20170311160125951-944531635.jpg

在 ret 处设置断点,接着运行到断点处,显示当前esp的值并依照此位置显示接下来的内存地址内容,并由此分析出返回地址位置的正确性以及shellcode的地址
994272-20170311162741029-599434617.jpg
由上图可以看出,shellcode地址为:0xffffd334
继续运行,可以确认返回地址是被我们之前输入\x01\x02\x03\x04所覆盖的:
994272-20170311163451248-597811278.jpg
将返回地址修改为0xffffd334,重新注入。

Return-to-libc 攻击

我先另外添加了一个用户:
994272-20170311184434467-746527997.png

进入32位linux环境,将地址随机化关闭,并且把/bin/sh指向zsh
994272-20170311184923248-1950969080.png

将漏洞程序保存在/tmp目录下:
994272-20170311185446436-866928820.jpg

编译该代码,使用–fno-stack-protector来关闭阻止缓冲区溢出的栈保护机制,并设置给该程序的所有者以suid权限,可以像root用户一样操作:
994272-20170311185741670-1898858938.png

读取环境变量的程序:
994272-20170311191013045-443220224.jpg

将攻击程序保存在/tmp目录下:
994272-20170311191026826-1203221855.jpg

用刚才的getenvaddr程序获得BIN_SH地址:
994272-20170311191652420-1975795526.jpg

利用gdb获得system和exit地址:
994272-20170311192122639-1307103777.jpg

将上述所找到的三个内存地址填写在20145215exploit.c中:
994272-20170311192350592-837979933.jpg

到这里才发现之前忘了切换用户了,所以又要重新做一遍但是步骤都一样就不再从新写了,结果是成功了。
994272-20170311194707623-266278554.jpg

参考资料:https://git.oschina.net/wildlinux/NetSec/blob/master/ExpGuides/MAL_逆向与Bof基础.md?dir=0&filepath=ExpGuides%2FMAL_逆向与Bof基础.md&oid=bf7c0c8fd8e306ddb9f728b4db42b5efbb00af80&sha=f4a0f4414045ff786a72020586fcf7663dd56f8b

转载于:https://www.cnblogs.com/tuolemi/p/6516178.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值