到目前為止,我們漏洞利用中的 shellcode 只是一串複製貼上的位元組。我們見過本地利用的標準「產生 shell」shellcode,以及遠端利用的 port-binding shellcode。
Shellcode 就是漏洞的酬載#
Shellcode 有時也稱為漏洞酬載(exploit payload),因為程式被攻陷後,真正做事的正是這些自足的小程式。shellcode 通常生成一個 shell(那是交出控制權的優雅方式),但它能做任何程式能做的事。
對許多駭客而言,shellcode 的故事止於「複製貼上位元組」——他們只搔到了可能性的表面。自訂 shellcode 給你對被利用程式的絕對控制:也許你想讓 shellcode 在
/etc/passwd加個管理員帳號、或自動從日誌檔移除幾行。
一旦你懂得寫自己的 shellcode,你的漏洞利用就只受限於想像力。此外,寫 shellcode 能磨練組合語言技巧,並運用到許多值得認識的駭客技術。