checksec安裝和簡單介紹


 安裝:

sudo apt install checksec

 

介紹:

1.Relro:Full Relro(重定位表只讀)
  Relocation Read Only, 重定位表只讀。重定位表即.got 和 .plt 兩個表。
2.Stack:No Canary found(能棧溢出)
  Canary, 金絲雀。金絲雀原來是石油工人用來判斷氣體是否有毒。而應用於在棧保護上則是在初始化一個棧幀時在棧底(stack overflow 發生的高位區域的尾部)設置一個隨機的 canary 值,當函數返回之時檢測 canary 的值是否經過了改變,以此來判斷 stack/buffer overflow 是否發生,若改變則說明棧溢出發生,程序走另一個流程結束,以免漏洞利用成功。 因此我們需要獲取 Canary 的值,或者防止觸發 stack_chk_fail 函數,或是利用此函數。
3.NX: NX enable(不可執行內存)
  Non-Executable Memory,不可執行內存。了解 Linux 的都知道其文件有三種屬性,即 rwx,而 NX 即沒有 x 屬性。如果沒有 w 屬性,我們就不能向內存單元中寫入數據,如果沒有 x 屬性,寫入的 shellcode 就無法執行。所以,我們此時應該使用其他方法來 pwn 掉程序,其中最常見的方法為 ROP (Return-Oriented Programming 返回導向編程),利用棧溢出在棧上布置地址,每個內存地址對應一個 gadget,利用 ret 等指令進行銜接來執行某項功能,最終達到 pwn 掉程序的目的。
4.PIE: PIE enable(開啟ASLR 地址隨機化)
  Address space layout randomization,地址空間布局隨機化。通過將數據隨機放置來防止攻擊。

 

 

參考:https://www.jianshu.com/p/31449fdfe35f

詳細分析:https://www.it610.com/article/1295251903365586944.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM