作者:陈公子 | 来源:互联网 | 2024-12-11 14:35
本报告详细记录了在2018-2019学年网络安全技术课程中的实验过程,重点探讨了PC平台上逆向工程的基本方法和利用缓冲区溢出(BOF)漏洞的技术。通过一系列实验,加深了对计算机系统安全性的理解。
在本次实验中,我们探索了如何通过手动修改可执行文件的机器指令来改变程序的执行流程,具体操作包括直接跳转至特定函数(如getShell函数)。此外,还利用了foo函数中存在的缓冲区溢出(BOF)漏洞,通过精心构造的输入字符串覆盖函数的返回地址,从而触发getShell函数的执行。
我们还学习了如何注入自定义的shellcode,并确保这段代码能够被执行,这涉及到对程序执行流的强制性修改以及任意代码的注入执行。
为了更好地理解这些技术,我们首先需要熟悉几个重要的汇编指令及其对应的机器码,例如NOP (90), JNE (75), JE (74), JMP (E9), CMP (38-3D)等,这些指令在控制程序流向和条件判断中扮演着关键角色。
关于漏洞的概念,它是指由于软件设计或实现上的缺陷,导致程序行为异常,可能被恶意利用以执行未授权的操作,如数据泄露或权限提升。这些漏洞可能是由于编程错误、逻辑设计缺陷或硬件限制引起的。
通过这次实验,不仅掌握了缓冲区溢出攻击的原理和技术细节,而且深入了解了如何通过修改程序的机器指令来实现特定的安全攻击。动手实践使理论知识得以巩固,同时提高了对网络安全重要性的认识。
在实验过程中,遇到了一些技术挑战,比如在Kali Linux虚拟机中复制粘贴文件的问题,通过安装open-vm-tools-desktop解决了这一难题。接着,我们提高了pwn1文件的执行权限,并通过反汇编分析,精确地修改了目标地址,实现了对getShell函数的直接调用。
在进一步的实验中,通过构造特定的输入参数,成功触发了缓冲区溢出攻击,改变了程序的正常执行路径。最后,我们编写并注入了一段shellcode,成功执行了额外的代码片段,验证了整个攻击过程的有效性。
总之,这次实验不仅提升了我们的技术能力,也增强了对网络安全威胁的认识,为我们今后的学习和研究打下了坚实的基础。