20165214 2018-2019-2 《网络对抗技术》Exp1+ 逆向进阶 Week4

《网络对抗技术》Exp2 PC平台逆向破解之“MAL_简单后门” Week4

1、实验内容

  • Task1shell

  • 本身编写一个64位shellcode。参考shellcode指导。编程

  • 本身编写一个有漏洞的64位C程序,功能相似咱们实验1中的样例pwn1。使用本身编写的shellcode进行注入。网络

  • Task 2(未完成)函数

  • 进一步学习并作ret2lib及rop的实践,以绕过“堆栈执行保护”。参考ROP学习

  • Task 3(未完成)测试

  • 可研究实践任何绕过前面预设条件的攻击方法;可研究Windows平台的相似技术实践。3d

  • 或任何本身想弄明白的相关问题。包括非编程实践,如:咱们当前的程序还有这样的漏洞吗?调试

2、实验步骤

一、Task1

  • 一、打开创段,建立shellcode.c,输入shellcode源码:
    code

  • 二、编译生成可执行文件,执行查看效果:
    blog

  • 三、反汇编查看代码objdump -d shellcode | more,而且找到main函数:

  • 四、打开另外一终端,将main函数的16进制代码写进一个C程序中来测试咱们得到的shellcode是否正确。这里折腾了两三个小时后失败了。对于总体的流程我已经烂熟于心了,但一直卡在一个地方:根据反汇编代码,用汇编写出代码。这一点我始终学不会,学姐的博客也没有写出来。因而我决定先跳过这一步,拿现成的汇编代码来进行下面的步骤。也但愿本身可以在从此的学习中解决这个遗憾。

  • 五、建立newshellcode.nasm,输入以下代码:

  • 六、前后输入nasm -felf32 newshellcode.nasm -o newshellcode.old -melf_i386 newshellcode.o -o newshellcode.bin,进行汇编与连接,,再输入./newshellcode运行尝试,成功。

  • 七、查看反汇编代码,提取出来

    shellcode[]="\x31,\xc0,\x31,\xd2,\xb0,\x0b,\x52,\x66,\x68,\x2d,\x63,\x89,\xe7,\x52,\x68,\x62,\x61,\x73,\x68,\x68,\x62,\x69,\x6e,\x2f,\x68,\x2f,\x2f,\x2f,\x2f,\x89,\xe3,\x52,\xeb,\x06,\x57,\x53,\x89,\xe1,\xcd,\x80,\xe8,\xf5,\xff,\xff,\xff,\x2f,\x62,\x69,\x6e,\x2f,\x73,\x68"

  • 八、放进C语言程序进行调试:

  • 九、调试,成功:

  • 十、使用实验一的第三个步骤的方法进行注入,结果以下:

二、Task2

相关文章
相关标签/搜索