20192204-exp1-逆向与Bof基础 (5)

在注入shellcode的实践中,我了解到了Linux下有两种基本构造攻击的方法:retaddr+nop+shellcode nop+shellcode+retaddr,这里的nops为滑行区,shellcode在注入之后不是在缓冲区的前面就是自缓冲区的后面,通过查看esp寄存器的值,在使用x/16x命令跳转到相应区域后,加上之前注入的shellcode的末尾部分字节长度即为注入的shellcode地址,然后重新注入shellcode,并将其替换为shellcode的地址,成功完成了通过注入shellcode并使其地址覆盖到返回地址从而完成对shellcode的调用。在上述操作中我熟悉了在kali系统中如何查看当前在运行中的进程以及进程号,并在gdb调试中以attach + 进程号的形式成功在另外一个终端中调试进程。

在结合nc模拟远程攻击的实践中,我学会了如何使用nc命令来模拟一个有网络漏洞的服务器(靶机),并且使用cat指令进行shellcode的注入,并且结合第三个终端来单步调试查看esp的值,最后成功实现对一个有网络漏洞的服务器的shellcode注入。

在第五部分对bof攻击防御技术的学习中,我学会了如何使用execstack命令来设置堆栈不可执行,这样即使成功注入了shellcode也无法执行,同时也可以使用内存地址随机化的机制来使得每次内存中堆栈的地址都会随机变化,这样实验中预先调试可执行文件得到堆栈地址并以此为基础准备攻击的方式便不奏效了,是很实用的bof攻击防御技术。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjwgg.html