原创 sudo 控制權限原理
核心在於euid的控制,euid決定於可執行文件創建者的s標誌位。如果文件擁有s標誌位,那麼運行次可執行文件時,此進程的euid將會是創建者的id。如果沒有s標誌位,那麼運行的可執行文件euid將是運行者的id。 所以sudo 命
原创 linux 內核頁表替換
linux 內核頁表替換 一.linux本身關於頁表查找機制的代碼實現 1. 邏輯地址到頁表的查找過程 static int __follow_pte_pmd(struct mm_struct *mm, unsigned long
原创 內核漏洞利用方法
堆噴 //CVE-2016-8655 #define BUFSIZE 1408 char exploitbuf[BUFSIZE]; void kmalloc(void) { while(1) syscall
原创 qemu 搭建linux內核調試
1.建立鏡像啓動相應的內核模塊 查看驅動加載地址 #cat /porc/modules | grep driv cat /sys/modules/driv1/settings/.text cat g > /proc/sysrg-t
原创 linux 內核雙機調試
一. 內核修改 write protect kernel read-only data structures set loadable kernel module date as nx and text as RO 編譯選項去掉
原创 關於內存 頁 物理地址 虛擬地址的思考 漏洞利用思考
對於頁屬性的管理相應思考 我看了下,虛擬地址到物理地址的轉換很簡單,解釋虛擬頁號對應找到物理頁號,偏移計算出物理地址。而且虛擬偏移和物理偏移是一樣的。所以這裏這是虛擬頁好和物理頁號不可能是簡單的確定映射關係。一定有一個複雜的動態映
原创 泄露地址和利用總結
已知libc.so 棧執行保護---------->調用libc.so system("/bin/sh") 關閉ASLR system在內存中的地址不會變化 如果elf中調用了print和read,那麼我們就可以搜索
原创 linux 核心概念
makenod 創建設備文件 應用程序與系統驅動交互的文件中間形式,體現了linux一切皆文件的思想。 mknod 的標準形式爲: mknod DEVNAME {b | c} MAJOR MINOR 1,D
原创 linux 進程切換
內核中棧的管理情況如上,stack->pt_regs指向保存的用戶態棧信息。thread保存的是內核棧的信息。 task_struct數據結構中的stack成員指向thread_union結構(Linux內核通過thread_u
原创 Ftrace跟蹤內核
獲取內核模塊進程號 printk(“info (pid=%d comm=%d)\n”, current->pid,current->comm); 開啓ftrace跟蹤特定函數 這裏是 __alloc_pages_nodemas
原创 supervisor簡單使用方式
supervisord : 啓動supervisor supervisorctl reload :修改完配置文件重啓supervisor supervisorctl status :查看supervisor監管的進程狀態 supe
原创 VT技術和kvm
最近一直在是看VT和kvm技術相關的問題。在網上查了很多資料。很多直接從代碼將,各種流程圖和代碼貼出來。但突然感覺代碼不能直接這樣學。 應該帶着思考來。這裏列出幾個有疑問的點。 VT技術如何實現多個系統直接相互不影響 這個應該就是
原创 內聯jmp使用方法
#include <libunwind.h> #include <stdio.h> void foo() { int b = 3; int c = 4; char *str = "next hello \n";
原创 CVE-2019-11815內核競態漏洞推測
這個本來想看下利用過程,奈何沒找到poc. 感覺自己其實也懂不少原理了,來推測下吧。 https://www.freebuf.com/vuls/208256.html 補丁位置 根據官網漏洞信息,可以知道此漏洞大概是個uaf之類的
原创 CVE-2018-18955user_name_space空間越權漏洞
https://www.exploit-db.com/exploits/45886 漏洞原理 這個洞前前後後看了好幾遍,感覺是明白了。 大概是在用戶命名空間中NS1創建root用戶,然後創建嵌套命名空間NS2。 在NS2中映射大於