到目前為止,我們漏洞利用中的 shellcode 只是一串複製貼上的位元組。我們見過本地利用的標準「產生 shell」shellcode,以及遠端利用的 port-binding shellcode。

Shellcode 就是漏洞的酬載#

Shellcode 有時也稱為漏洞酬載(exploit payload),因為程式被攻陷後,真正做事的正是這些自足的小程式。shellcode 通常生成一個 shell(那是交出控制權的優雅方式),但它能做任何程式能做的事。

對許多駭客而言,shellcode 的故事止於「複製貼上位元組」——他們只搔到了可能性的表面。自訂 shellcode 給你對被利用程式的絕對控制:也許你想讓 shellcode 在 /etc/passwd 加個管理員帳號、或自動從日誌檔移除幾行。

一旦你懂得寫自己的 shellcode,你的漏洞利用就只受限於想像力。此外,寫 shellcode 能磨練組合語言技巧,並運用到許多值得認識的駭客技術。