1. 程式人生 > >20155323劉威良 網絡對抗《網絡攻防》 Exp1 PC平臺逆向破解(5)M

20155323劉威良 網絡對抗《網絡攻防》 Exp1 PC平臺逆向破解(5)M

CP 網絡 同時 制作 十六進制 漏洞 div 地址 情況

實踐目標

本次實踐的對象是linux的可執行文件
該程序正常執行流程是:main調用foo函數,foo函數會簡單回顯任何用戶輸入的字符串。

該程序同時包含另一個代碼片段,getShell,會返回一個可用Shell。正常情況下這個代碼是不會被運行的。我們實踐的目標就是想辦法運行這個代碼片段。我們將學習兩種方法運行這個代碼片段,然後學習如何註入運行任何Shellcode。

實踐內容

手工修改可執行文件,改變程序執行流程,直接跳轉到getShell函數。
利用foo函數的Bof漏洞,構造一個攻擊輸入字符串,覆蓋返回地址,觸發getShell函數。

註入一個自己制作的shellcode並運行這段shellcode。
1.掌握NOP, JNE, JE, JMP, CMP匯編指令的機器碼

2.掌握反匯編與十六進制編程器

3.能正確修改機器指令改變程序執行流程

4.能正確構造payload進行bof攻擊

實踐要求

1.所有操作截圖主機名為本人姓名拼音

2.所編輯的文件名包含自己的學號

實踐一

直接修改程序機器指令,改變程序執行流程

過程:

1.用cp pwn1 20155323lwl拷貝pwn1文件

2.輸入objdump -d lwl20155323 | more進行反匯編

技術分享圖片

3.輸入vi lwl20155323進行編輯

4.按Esc鍵再輸入:%!xxd將顯示模式切換為16進制模式

5.輸入/e8d7查找要修改內容

6.將d7修改為c3

7.用:%!xxd -r轉換16進制為原格式

8.輸入:wq

保存並退出

技術分享圖片

實踐二

通過構造輸入參數,造成BOF攻擊,改變程序執行流

20155323劉威良 網絡對抗《網絡攻防》 Exp1 PC平臺逆向破解(5)M