Shellcode

shellcode是一段用于利用软件漏洞而执行的代码，shellcode為16進位之機械碼，以其经常让攻击者获得shell而得名。shellcode常常使用机器语言编写，由於現代電腦系統基本上啟用NX位元保護使得機械碼無法直接執行，可透過返回導向編程編寫shellcode。
可在暫存器eip溢出後，塞入一段可讓CPU執行的shellcode機械碼，讓電腦可以執行攻擊者的任意指令。

分类
shellcode可以按照攻击者执行的位置分为本地shellcode和远程shellcode.

本地shellcode
本地运行的shellcode经常用于利用软件漏洞提升权限。比如在Linux下由普通权限提升至root权限。

远程shellcode
通過使用抓包程式抓取封包并查找封包内的漏洞特徵，再經由C、Python、ruby (metasploit)撰寫遠端攻擊程式，這類漏洞如果發生在內核空間，如路由器等嵌入式系統上的可載入核心模組，或是伺服器訊息區塊協議的實作漏洞，如永恆之藍，則可以取得對方電腦之root或SYSTEM權限。如果漏洞發生在用戶空間的程式，只能取得此處理程序的使用者權限，除非在本地運行特權提升漏洞利用，或是程序本身就有root權限。

Category:保全漏洞
Category:注入漏洞