Shellcode
此條目沒有列出任何參考或來源。 (2021年11月2日) |
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權限。
這是一篇與軟體相關的小作品。您可以透過編輯或修訂擴充其內容。 |