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

相關文章
相關標籤/搜索