pwn之exp问题反馈和ASLR认知

0x00001:ASLR报错

如上问题是我执行脚本遇到的,改了脚本几次,依然没变,嗯......

当我用了百度,据说是ALSR没关,的确,这导致我脚本中的addr是一个随机数,从而攻击失败

0x00:引用一下查到的知识:在传统的操作系统里,用户程序的地址空间布局是固定的,自低向高依次为代码区, BSS区,堆栈区,攻击者通过分析能轻易得出各区域的基地址,在此情况下,只要攻击者的 注入代码被执行,攻击者就能随意跳转到想到达的区域,终取得计算机的控制权,试想如 果一个程序在执行时,系统分配给此进程三个区域的基地址是随机产生的,每次该程序执行 都不一样,那么攻击者注入的代码即使被执行,也终会因为无法找到合法的返回地址而产 生错误,终进程停止,攻击者无法入侵,这就是地址空间布局随机化的基本思想(ALSR)

于是乎ASLR(Address Space Layout Randomization)在2005年被引入到Linux的内核 kernel 2.6.12 中。其实从名字理解最好理解了,这也是我的addr失效的原因所在

cat /proc/sys/kernel/randomize_va_space  //查看当前操作系统的ASLR配置情况
kernel.randomize_va_space = 2  //全随机,半随机。共享库、栈、mmap() 以及 VDSO ,heap将被随机化
kernel.randomize_va_space = 1  //半随机。共享库、栈、mmap() 以及 VDSO 将被随机化
kernel.randomize_va_space = 0    //关闭

所以我遇上了最坑人的全随机导致一直攻击失败

echo 0 > /proc/sys/kernel/randomize_va_space//在root权限下关了

这时在执行就成了

命名报错

Traceback (most recent call last):
  File "pwn.2.py", line 4, in <module>
    conn = process("./hexcalc")
NameError: name 'process' is not define

修该攻击脚本的名字,最好没有pwn出现。如:pwn.py容易出问题

posted @ 2020-02-27 20:50  zer0_1s  阅读(369)  评论(0编辑  收藏  举报