2019-2020-2 20175317钟睿文《网络对抗技术》Exp1+ 逆向进阶
2019-2020-2 20175317钟睿文《网络对抗技术》Exp1+ 逆向进阶
实验内容
第一个实践是在非常简单的一个预设条件下完成的:
(1)关闭堆栈保护
(2)关闭堆栈执行保护
(3)关闭地址随机化
(4)在x32环境下
(5)在Linux实践环境
建议的实践内容包括:
Task1 (5-10分)
自己编写一个64位shellcode。参考shellcode指导。
自己编写一个有漏洞的64位C程序,功能类似我们实验1中的样例pwn1。使用自己编写的shellcode进行注入。
Task 2 (5-10分)
进一步学习并做ret2lib及rop的实践,以绕过“堆栈执行保护”。参考ROP
Task 3 ( 5-25分)
可研究实践任何绕过前面预设条件的攻击方法;可研究Windows平台的类似技术实践。
或任何自己想弄明白的相关问题。包括非编程实践,如:我们当前的程序还有这样的漏洞吗?
同学们可跟踪深入任何一个作为后续课题。问题-思考-验证-深入...。根据实践量,可作为5-25分的期末免考题目。
Task1实验步骤
首先将shellcode源码写入C语言文件并进行测试
使用gdb调试查看反汇编,在main和execve两个函数处
下一步可以开始编写.nasm文件:
编译该汇编文件,nasm -f elf64 shellcode.asm
,ld -o shellcode shellcode.o
查看shellcode的机器码
据此写出C的测试代码test.c
,编译运行该测试代码查看是否可以实现shell的功能:
测试成功,参照实验一配好环境
构造一个input
16进制文件,通过输入(cat input ;cat )|./20175317
将input传入执行中的20175317
中,步骤类似实验一中的注入步骤,这里不再赘述
注入成功后结果如下: