2013-08-23 15 views
1

當攻擊者獲得對x86-64上Windows指令指針的控制權時,NX位保護功能是否關閉,同時使用NX位和ASLR保護?我假設系統調用禁用此功能只是在非ASLRed地址,並可以直接調用?現代Windows中的ASLR和NX位?

似乎堆噴灑經常被用來利用現代Windows機器(例如在Javascript實現中有bug),顯然這需要一個可執行堆,那麼堆堆在噴堆之前是如何執行的呢?是否有一些文件清楚地顯示了在Windows上如何完成這項工作?

回答

1

通常涉及漏洞涉及ROP attack。 ROP攻擊可能會直接調用一些系統調用(例如,產生一個shell),或者可能調用VirtualProtect()來禁用NX位。

ROP攻擊中的一個步驟通常是在可預測的位置(例如,a DLL that didn't opt into ASLR)至少找到一些代碼或找到一個信息泄露漏洞,讓攻擊者可以預測某些代碼的位置,以便攻擊者可以找到可預測地址的小工具。一旦攻擊者有能力執行任意小工具,通常它就是遊戲結束:例如,攻擊代碼可以將所有其他函數的地址(例如VirtualProtect())去隨機化,然後調用它。

另請參見https://security.stackexchange.com/q/20497/971