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

2.1 用自己的话回答以下问题:
2.1.1 实验收获与感想
2.1.2 什么是漏洞?漏洞有什么危害?
2.2 需要描述的内容
2.2.1掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分)
2.2.2掌握反汇编与十六进制编程器 (0.5分)
2.2.3能正确修改机器指令改变程序执行流程(0.5分)
2.2.4能正确构造payload进行bof攻击(0.5分)
3.报告整体观感
3.1 报告格式范围,版面整洁 加0.5。
3.2 报告排版混乱,加0分。
4.文字表述
4.1报告文字内容非常全面,表述清晰准确 加1分。
4.2报告逻辑清楚,比较简要地介绍了自己的操作目标与过程 加0.5分。
4.3报告逻辑混乱表述不清或文字有明显抄袭可能 加0分。

逆向及Bof基础实践说明

1.1 实践目标

  • 本次实践的对象是一个名为pwn1的linux可执行文件。
  • 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。该实验要完成的内容是:
    • 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
    • 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
    • 注入一个自己制作的shellcode并运行这段shellcode。
  • pwn1运行截图

1.2 基础知识

  • 常用Linux操作指令
  • NOP, JNE, JE, JMP, CMP汇编指令的机器码
    • NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。机器码:90
    • JNE:条件转移指令,如果不相等则跳转。机器码:75
    • JE:条件转移指令,如果相等则跳转。机器码:74
    • JMP:无条件转移指令。段内直接短转 Jmp short,机器码:EB ;段内直接近转移 Jmp near,机器码:E9;段内间接转移 Jmp word,机器码:FF;段间直接(远)转移 Jmp far,机器码:EA
    • CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。
    • CALL:调用子程序。

直接修改程序机器指令,改变程序执行流程

通过构造输入参数,造成BOF攻击,改变程序执行流

注入Shellcode并执行

实验中遇到的问题及解决方法

实验收获与感想

猜你喜欢

转载自www.cnblogs.com/moddy13162201/p/10521962.html