fuzzy security 學習第四部分,主要是介紹另外一種攻擊技巧– egg hunter
egg hunter 簡單講就是一段用來找 shellcode 的 shellcode ,出現的原因是在 windows 下寫 shellcode 要複雜於 linux ,動輒數百個字元,有些時候無法一次性把 shellcode 跟其他 payload 擺在一起,所以另外找個地方放 shellcode
前面的範例多半是 shellcode 放在 esp 指到的的空間,簡單的 jmp esp 或 pop pop ret 就能找到 shellcode ,若 shellcode 放在其他地方或根本不同 page 就沒轍。
egg hunter 以一個 page 為大小的單位逐一對每個 page 進行一個 byte 一個 byte 的搜尋,找到 shellcode 就立刻 jmp 過去
條件:
!mona egg -t b33f
以下簡單講一個 egg hunter
這邊將 edx 以 0x1000 byte 來成長
呼叫 NtAccessCheckAndAuditAlarm 來確認 edx 的地址是否為合法地址,不是則再加 0x1000
以一次增加一個 byte 來比對是否為 b33f
比對成功一次,再比對一次,增加可信度
確認無誤,透過 edi 跳往 shellcode
可以說 egg hunter 是種無腦硬爆法
跟上一篇一樣,目標換成 Kolibri 2.0
整體 payload 結構會長的象:
!mona findmsp
找到 offset: 515!mona jmp -r esp