個簡單的VBScript足以讓用戶獲得管理權限并完全繞過Windows 10上的UAC。
在普華永道英國安全研究人員Wietze Beukema的最新報告中,我們了解到將近300個Windows 10可執行文件容易受到DLL劫持的攻擊。
在普華永道英國安全研究人員Wietze Beukema的最新報告中,我們了解到將近300個Windows 10可執行文件容易受到DLL劫持的攻擊。
“事實證明,System32文件夾中的近300個可執行文件容易受到相對路徑DLL劫持的攻擊。您知道嗎,使用一個簡單的VBScript,其中一些EXE可以用于提升此類執行,而完全繞開UAC?”Beukema解釋說。
此處提到的漏洞是相對路徑DLL劫持,這是當攻擊者可能導致合法Windows可執行文件加載攻擊者選擇的任意DLL時,很可能是出于惡意目的。
DLL劫持攻擊可以證明對熟練的攻擊者有用,因為它們可以授予諸如任意代碼執行,特權提升和目標系統持久性之類的功能。
Beukema博客文章中涵蓋了DLL劫持的各種技術,包括DLL替換,DLL代理,DLL搜索順序劫持,Phantom DLL劫持,DLL重定向,WinSxS DLL替換以及相對路徑DLL劫持。
為了在實踐中演示相對路徑DLL劫持,Beukema著重研究了Windows 10(v1909)計算機上“ C:\ Windows \ System32”文件夾中存在的庫。
他將合法的winstat.exe進程復制到了系統上的downloads文件夾中。然后,他運行了進程監視工具procmon,以更好地了解EXE在執行過程中查找的DLL。
進程監視器顯示訪問的DLL
“這使我們能夠識別每個應用程序查詢的所有DLL,這將是所有潛在的可劫持DLL候選對象。但是并不能自動得出所有這些也都已加載(并因此執行)的結果。”研究人員解釋說。
“找出正確加載了哪些DLL的最可靠方法是編譯我們自己的DLL版本,并在成功加載后將其寫入唯一文件。如果我們隨后對所有目標可執行文件和DLL重復上述方法,則將導致文件收集,這些文件告訴我們已確認哪些DLL容易受到DLL劫持。”
但是,對攻擊者構成挑戰的是編譯一個可以由可執行文件啟動的自定義版本的DLL,而不會出現任何問題。為了獲得對合法DLL結構的可靠了解,Beukema建議使用DLL Export Viewer之類的工具進行分析。
該工具通過枚舉所有外部函數名稱來深入了解我們試圖重新編譯的DLL結構,這些名稱隨后將在DLL Hijacking漏洞中重復使用。
查找易受攻擊的可執行文件的方法
研究人員提供了一個完整的庫列表,這些庫是劫持攻擊的理想選擇。
他補充說:“這些不僅僅是理論上的目標,這些已經過測試并證實是有效的。該列表包括287個可執行文件和263個唯一的DLL。”
通過github.com/wietze/windows-dll-hijacking/提供了包含這些庫的完整列表的CSV。
研究人員針對此示例攻擊所解釋的一些警告包括:
1)僅運行不需要任何參數的可執行文件
2)避免使用具有高級GUI和錯誤報告功能的應用程序
3)避免使用C ++編寫的DLL。
研究人員已經在Windows 10 64位(操作系統內部版本18362.476)上進行了測試,但表示:“某些[DLL]在[32位Windows]上將無法使用。您可以使用32位GCC編譯C文件,然后將可以正常使用。”
請注意,如Twitter線程中突出顯示的那樣,此處說明的攻擊可能不適用于所有Windows版本。
Windows用戶帳戶控制(UAC)是Windows Vista及更高版本中添加的一項安全功能,該功能詢問用戶是否打算在執行高風險應用程序之前將其運行。
Windows UAC提示
從Windows 7開始,由于一再要求用戶授權合法的過程(可能很快變得煩人),Microsoft在UAC框架內引入了內置的“例外”。有效地,這使受信任的系統DLL可以“自動提升”特權,而不必使用UAC提示來打擾用戶。
“考慮到這一點,您可以嘗試通過使用標記為自動提升的可執行文件來嘗試以提升的特權運行任意代碼,該可執行文件也容易受到DLL劫持的影響。如上一節所述,大約有35種這樣的可執行文件。” Beukema解釋說。
如果成功利用了已執行的惡意DLL,則可以將其用于創建提升權限的命令提示符,從而以管理特權對計算機進行完全訪問。
DLL劫持啟動提升的命令提示符
不過,這里有一個障礙。在期望任何DLL的“自動提升”特權之前,操作系統希望這些DLL存在于受信任的目錄中,該目錄不是用戶可寫的。
“要解決的問題是受信任目錄的問題:自動提升的可執行文件和自定義DLL都必須位于受信任目錄中,但是這些都不是用戶可寫的。”
此處提供了一些方便的模仿技術,例如創建一個模擬的“ C:\ windows \ system32”目錄(在Windows之后緊跟一個空格)。這個名稱異常的文件夾可能會誘使可執行文件將攻擊者創建的目錄視為“受信任位置”。
是否能夠創建這樣的目錄應被視為安全漏洞尚有爭議,因為它為攻擊者提供了利用DLL劫持漏洞的途徑。
“這是否是適當的安全漏洞尚待商--微軟認為不是,但至少是一個缺陷,因為大多數(非企業)Windows計算機默認使用的是“管理員帳戶”。無論哪種方式,這都為我們提供了一種出色的手段,通過它可以使DLL劫持更加強大。”研究人員說。
作者建議使用VBScript的原因之一是因為創建名稱包含尾隨空格的Windows目錄不是通過“傳統方式”可以實現的。
“您可以像原始研究人員一樣,編譯一些C語言來完成此操作,但是事實證明,VBScript實際上也可以為我們做到這一點。以下概念驗證表明,僅需幾行代碼,您就可以使它起作用:”
用VBScript編寫的PoC,可創建模擬“可信目錄”
當受到用戶質疑時,Beukema解釋了為什么他在利用容易受到DLL劫持的可執行文件時選擇了VBScript。
“我知道……這只是因為PowerShell不允許您這樣做,而VBScript卻可以。而且由于它是VBScript,因此您無需帶上自己的編譯二進制文件即可使用此技巧,這意味著,除了自定義DLL之外,您還可以使用Living of the Land +腳本來完成所有工作。”
Beukema提出了一些預防方法,可以用來阻止此類攻擊,例如,如果您的計算機上存在模擬Windows 文件夾中的活動,則可以對其進行查找。同樣,如果最終用戶足夠了解要執行的操作,則將UAC設置調整為“始終通知”可以幫助防止此類攻擊。
另一個策略是監視DLL創建和從意外文件路徑加載的實例:
“您可以從意外路徑中尋找前面提到的任何DLL的創建或加載,特別是在諸如%appdata%之類的臨時位置。畢竟,可以更改加載DLL的(合法)應用程序的名稱,但DLL的文件名始終是固定的。”
Beukema建議,在構建應用程序時,開發人員應強制使用絕對而非相對路徑來加載DLL,以及其他幾種技術。這些都不是足夠簡單的。
但是,如果適當地結合使用,預防措施(如研究人員所解釋的那樣)可以長期阻止DLL劫持攻擊。
6月24日晚,微軟正式發布Windows 11。微軟不惜打臉,推翻“Windows 10會是最后一個Windows”的說法,也要給新系統換新名字。
結果微軟當了快男,發布會40多分鐘就收工,除了運行Android應用的驚喜,還留了大量細節沒有透露。
我們現在匯總并回答一下大家最關心的10個問題。
正式版會在今年秋天開始推送,并持續到2022年。國內官網寫法是:今年年底到2022年。另外,在11月底之后,新電腦都會預裝Win 11。
想嘗鮮的話,Windows預覽體驗計劃(Windows Insider Program)下周就會開始,7月會發布公開測試版。
秋天正式版推送之后,在“系統設置-更新與安全-Windows更新”就能看到推送。
要嘗鮮的話,加入Windows預覽體驗計劃即可。在https://insider.windows.com/register上登陸自己的微軟賬號,符合要求并登陸該賬號的Win 10設備就能收到測試版推送。
Win 10可以免費升級到Win 11。Win 7、Win 8/8.1設備,升級Win 10之后就能收到推送。
但微軟表示Win 10 和 Win 11將和諧共存,Win 10的支持會一直持續到2025年10月14日,而且不再現“Win 7/8.1被強制升級Win 10”的慘劇,畢竟很多設備是沒有必要上Win 11的。
關于特殊的S模式,因為Win 11專業版不支持S模式,所以Win 11專業版S模式的設備,需先退出S模式才能升級,并升級為Win 11專業版。家庭版S模式設備可直接升級成Win 11家庭版S模式(不過這類設備很少就是了)。
免費升級的具體結束日期未定,但結束日期將不會早于升級廣泛推出之后一年。
對于預裝Win 11的設備,Win 11家庭版、專業版、專業工作站版、以及教育專業版,都將獲得為期24個月的支持。Win 11企業版和教育版,將獲得為期36個月的支持。
Win 11所需的硬盤空間和Win 10大致相同,但升級過程中需預留額外的空間,系統將在升級完成10天后自動清理所占用的這些額外硬盤空間。
微軟提供了官方測試工具“電腦健康狀況檢查/WindowsPCHealthCheck”,下載鏈接https://aka.ms/GetPCHealthCheckApp。(微軟:全世界的機佬都會乖乖地送上電腦配置信息)
直接推送升級的最大的阻礙,來自于TPM 2.0這座“高山”。很多年紀稍大的筆記本、DIY主機,它們的BIOS都是沒有TMP 2.0的。
如果你的電腦較新,但又提示不支持。可以到BIOS查看是否開啟了UEFI、Secure Boot(安全啟動)和TPM 2.0(可信平臺模塊)。
根據主板的不同,一般是在security/安全相關選項中,盯著TPM字樣,英特爾處理器就是找Intel Platform Trust Technology/PTT,AMD設備就是FTPM。
有趣的是,連微軟親兒子Surface系列也有部分無法直接升級。保有量巨大的Surface Pro 3/4/5系列,以及冷門的Surface Hub、Surface Studio、 Surface Duo等設備都不在列表之上。確認支持的包括:
不知道微軟之后是否會降低這方面的要求,畢竟之前泄露的鏡像是沒有TPM 2.0的限制的。
有,就是上面剛提到的鏡像安裝方法。此前泄漏的偷跑版Win 11鏡像,有網友表示在酷睿2+X61主板的古董都能跑。
但預計Win 11原版鏡像的放出時間會比推送升級要晚一些。同時提醒,小心來歷不明的鏡像。
在Win 11升級之后,有10天時間回退到Win 10,同時保留升級時隨之遷移的文件和數據。10天之后,若要恢復到Win 10,則需要備份數據,然后執行“干凈安裝"。
可以安裝,但要等到今年秋季,微軟為Win 10和Win 11推送新的應用商店之后才可以。沒聽錯,Win 10也有新商店,但裝不了Android應用。
AMD,甚至Arm架構的電腦(搭載高通驍龍芯片的筆記本)也能在Win 11下跑Android應用。Windows開發者平臺公司副總裁Kevin Gallo澄清,AMD或 Arm設備不需要英特爾Bridge技術就能讓Android應用跑起來。
Win 11通過微軟官方應用商店下載Android app,現在不確認能否直接安裝apk,微軟并未透露過多信息,只是說“未來幾個月內分享更多信息”。
另外,微軟表示并非亞馬遜 Appstore中的每個Android應用都能跑。官方宣傳中可以確定Disney Plus(迪士尼+)、TikTok(海外版抖音)、Netflix(網飛/奈飛)、Uber(優步)、Pinterest等Android應用可以。作為參考,亞馬遜Appstore有近50萬個Android應用,而Google Play商店有約350萬個Android應用。
“你的下一臺安卓平板,何必是安卓平板。蘇菲重大利好”這些話我們肯定不會說啦。
甚至個人也是抱悲觀態度的,特別是對于摸魚用的游戲apk。很多國內游戲要在Win 11上原生運行,可能會遇到挺多的障礙。除了當年英特爾CPU的安卓平板/手機給我們留下的印象外,大家可能還記得,在遠古時代,安卓游戲是要區分GPU的,Mali GPU和高通Adreno GPU分別對應不同的數據包的。很難想象,現在的微軟能突然解決這么多年都搞不定的兼容性問題。
外媒zdnet消息,Windows開發者平臺公司副總裁Kevin Gallo表示,類似于之前已經在Win 10里面的 Linux子系統 (WSL),微軟將在Win 11 中提供Android 子系統 。
Win11 將有虛擬機兼容Android開源項目 (AOSP),該項目不需要Google Play服務支持。微軟應用商店導入的是亞馬遜應用商店,而亞馬遜的FireOS也是基于AOSP的。
發布會提到Android應用時,有提及英特爾的Bridge技術。后者是運行時后編譯器技術,能實時重編譯代碼,讓不同架構的軟件和硬件相互兼容。它類似于蘋果的Rosetta技術,但方向剛好相反,蘋果是讓ARM跑X86,微軟是讓X86跑ARM。
Kevin Gallo也澄清,沒有這個技術的AMD個Arm設備,也能在Win 11上跑Android應用(所以,英特爾Bridge是搞了個啥?)。其表示由于Android應通常是為Arm編譯的,Android允許開發人員將他們的二進制文件與他們的應用程序打包在一起(對的,我們也沒能看懂這句話之間的邏輯)。
Win 11發布,安卓模擬器Blue Stacks團隊的反應是這樣的↑
早在2015年5月,微軟就上線了Project Astoria(阿斯托利亞計劃),希望把Android應用帶到Win 10。當年是讓開發者上傳apk文件到微軟應用商店,然后將其轉換為原生應用。
但Project Astoria在2016年初就被喊停了(微軟砍刀部:你們喜歡?砍了)。同樣無疾而終的,還有讓iOS應用在Win 10運行的Windows Bridge for iOS。
Project Astoria的API翻譯技術,最后被應用在了Win 10的Linux子系統中,也算不枉此生了。外媒zdnet甚至腦補,當年這個項目運行得很好,但微軟希望產生更多的UWP應用,所以取消了這個項目(哈?)
而在2020年11月底,傳聞微軟啟動了Latte計劃,希望讓Win 10能原生運行Android應用,同樣是讓開發者使用簡單的打包工具,把apk發布到微軟應用商店。
大家最關心的Android應用,得等秋季應用商店更新之后才能跑起來,所以大家現在看到的Win 11,概括起來就是“圓角化皮膚、Widgets小工具組件、新的開始菜單和任務欄、游戲/HDR/窗口管理強化”的“Win 10.5”。
升級有風險,搞機需謹慎。在正式版出來之前,建議選用壁紙“升級”的方案,效果更穩定且放心
部分原生壁紙↓