shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制之机械码,以其经常让攻击者获得shell而得名。shellcode常常使用机器语言编写,由于现代电脑系统基本上启用NX位元保护使得机械码无法直接执行,可透过返回导向编程编写shellcode。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机械码,让电脑可以执行攻击者的任意指令。

分类 编辑

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

本地shellcode 编辑

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

远程shellcode 编辑

通过使用抓包程式抓取封包并查找封包内的漏洞特征,再经由C或Python撰写远端攻击程式,进而取得对方电脑之root权限。