圖5
看看CreateAppContainerProcessW的邏輯片段,把傳入的CapabilitySIDs和PackageSID加入到ProcThreadAttributes,然后通過STARTUPINFOEX結(jié)構(gòu)把ProcThreadAttributes傳給了CreateProcessW。
圖6
圖7
圖8
搞清楚IE Tab進(jìn)程的創(chuàng)建邏輯,我們就可以創(chuàng)建自己的AppContainer進(jìn)程了。
直接復(fù)用IE的PackageSID和CapabilitySIDs來創(chuàng)建AppContainer進(jìn)程。如果需要定義自己的PackageSID,可以參考MSDN上的CreateAppContainerProfile等API,這里就不討論了。
成功的創(chuàng)建出了具有AppContainer隔離機制的記事本進(jìn)程。32位和64位進(jìn)程都可以?梢宰杂山M合Capability,這里我選擇了IE Tab6個Capability里的3個。
圖9
圖10
如果程序在設(shè)計時沒有考慮使用AppContainer隔離機制,依賴沒有授權(quán)給AppContainer的系統(tǒng)資源,比如系統(tǒng)根目錄,用戶根目錄等,使用AppContainer隔離機制啟動程序會失敗。
為描述方便,AppContainer進(jìn)程的AccessToken我們簡稱為LowBoxToken(下同)。
下面是一個LowBoxToken的部分信息,可以看到TokenFlags的掩碼位0×4000是置位的,這表示該Token是一個LowBoxToken。我們還可以看到PackageSid、Capabilities等信息(圖2里標(biāo)志為AppContainer和Capability的SID)。
圖11
DACL的遍歷是在SepNormalAccessCheck/SepMaximumAccessCheck里進(jìn)行的。這里我們以SepNormalAccessCheck為例,來看一看如何處理AppContianer相關(guān)的ACE。
一般來說,在遍歷DACL時,如果滿足以下3個條件中的任意一個,檢查停止。
1.有一個access-denied ACE明確拒絕了請求訪問權(quán)限中的任意一個;
2.有一個或者多個access-allowed ACEs明確給予了所有的請求訪問權(quán)限;
國產(chǎn)工具PKAV HTTP Fuzzer滲透測試助手最新發(fā)布
閱讀惠普漏洞:惠普ArcSight企業(yè)安全系列產(chǎn)品曝高危安全漏洞
閱讀蘋果Mac OS X系統(tǒng)被發(fā)現(xiàn)存在DLL劫持漏洞
閱讀D-Link(友訊)路由器曝遠(yuǎn)程文件上傳及命令注入漏洞(已發(fā)布安全更新)
閱讀Win10將使用P2P進(jìn)行系統(tǒng)更新,引發(fā)安全擔(dān)憂
閱讀美國最大的無卡ATM網(wǎng)絡(luò)即將推出,從此告別刷卡!
閱讀谷歌應(yīng)用漏洞泄漏超過28萬條私人WHOIS數(shù)據(jù)
閱讀使命召喚、魔獸世界、英雄聯(lián)盟……專攻游戲的勒索軟件TeslaCrypt
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)