Shellcode

维基百科,自由的百科全书

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

分类

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

本地shellcode

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

远程shellcode

通過使用抓包程式抓取封包并查找封包内的漏洞特徵,再經由C或Python撰寫遠端攻擊程式,進而取得對方電腦之root權限。