當前位置:
首頁 > 新聞 > R0Ak:Windows 10內核模式代碼讀取、寫入和執行測試工具

R0Ak:Windows 10內核模式代碼讀取、寫入和執行測試工具

對於研究人員來說,今天介紹的這款工具就相當於他們的「瑞士軍刀」,因為這款名叫R0ak的命令行工具可以幫助研究人員在Windows 10操作系統上讀取、寫入和執行任意代碼,用於進一步測試。


r0ak


r0ak是一款Windows平台下的命令行工具,它可以幫助我們在命令行界面下輕鬆讀取、寫入和執行內核模式代碼,而且除了管理員許可權之外,不需要其他額外的東西。


快速使用



r0akv1.0.0 — Ring 0 Army Knife

http://www.github.com/ionescu007/r0ak


Copyright(c) 2018 Alex Ionescu [@aionescu]


http://www.windows-internals.com




基礎架構:



支持的命令



在使用—execute選項時,這個功能和參數由用戶提供。

在使用—write時,需要使用一個自定義小公舉來修改內核內存中任意位置的32位元組值。


在使用—read時,需要使用一個寫入小公舉來修改系統中HSTI緩衝區指針和大小。


接下來,需要使用HSTI查詢API來將數據重新拷貝至工具的用戶模式地址空間內。

工具使用


由於工具需要使用到Windows符號引擎,所以我們需要安裝Windows軟體開發套件(SDK)或Windows驅動套件(WDK),以及Windows調試工具。工具安裝完成後會自動查詢安裝路徑,並使用目錄中的DbgHelp.dll和SymSrv.dll,由於這些文件是無法多次使用的,因此工具中無法內置這些文件。


或者說,如果你想使用你自己的代碼庫,你也可以修改工具的源代碼。


在使用符號時,需要聯網,除非你在本地預先緩存好數據。除此之外,你還需要設置_NT_SYMBOL_PATH變數,並指向正確的符號伺服器和緩存地址。


工具限制


本工具需要使用正確的Windows 10內核變數以及函數功能,並且只能在64位操作系統上使用。雖然在x86架構的操作系統上沒有這些限制,但是這種平台有很多傳統的方法可以使用,因此這款工具主要針對的是64位的的Windows 10。


限制條件:





  1. 讀取:一次只能讀取4GB數據;



  2. 寫入:一次只能寫入32位長度的數據;



  3. 執行:函數的執行只能接收1個標量參數;


很明顯,我們可以利用其它的編程手段或方法來繞過這些限制。需要注意的是,所有的命令執行(包括讀取和寫入命令)都需要在一個系統Worker線程(PASSIVE_LEVEL)環境下運行,因此用戶模式地址不應該以參數進行傳遞。


* 參考來源:r0ak,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

攻擊索尼影業、發動Wannacry勒索軟體攻擊、竊取孟加拉央行的背後真兇找到了!
台積電之後,下一個「中毒」的會是誰?

TAG:FreeBuf |