研究人员发现,Access一项方便功能可能遭到滥用,导致公司内网Windows NTLM验证资讯外泄。
Checkpoint研究人员发现,Microsoft Access一项连结外部表格的功能,可能被攻击者滥用,而将Windows NTLM杂凑经由TCP传输埠,传送到攻击者控制的外部伺服器。使用者可能开启了一个不明.rtf档或.accdb就能遭致攻击。
NTML是微软1993年引入的验证协定。它是一种「出题-解题」方式的协定。NTLM伺服器储存根据使用者密码产生的NTLM杂凑值,每当使用者要登入Windows网域时,伺服器就会发布随机的题目,使用者即以密码运算产生出正确答案来解题,借此完成身分验证。但NTLM很容易遭到攻击,包括暴力破解、杂凑传送(pass-the-hash)或中继攻击(relay attack)或中间人攻击。
Checkpoint公布的一项NLTM攻击手法,是利用MS-Access中的连结外部表格功能。透过「建立连结表格连到资料源」的功能,使用者可以连到外部资料库,像是远端SQL Server,让外部攻击者取得存取内部网路的验证资讯,属于ATT&CK中的「强制验证」(Forced Authentication)。
因此攻击者可以设立一台外部SQL Server伺服器,由其听取port 80连线。攻击手法是传送.accdb或.mdb给用户,当用户点击档案时,即可与外部SQL Server建立连线,由于不是所有使用者都会开启.accdb或.mdb档,因此研究人员结合Access另一项机制来进行攻击。
研究人员使用了Access的物件连结与嵌人(Object Linking and Embedding,OLE)机制,OLE功能允许其他应用程式呼叫Access执行物件。因此,攻击者可在MS Word或RTF文件中嵌入一个Accdb档案送给受害者,等后者开启Word/RTF档案时,即可触发Access资料库处理该Accdb档案,再连结到远端SQL Server,而将敏感资料如NTLM杂凑,透过port 80且绕过防火墙传送给攻击者。
研究人员补充,其实由Access连结外部表格一个执行巨集的过程。微软2020年封锁了VBA巨集,因此开启Office Word、Excel文件时,Windows会预设封锁,以「受保护的检视」模式开启文件,并发出「准备执行巨集」的提醒。但这保护功能之前并不包括Access巨集,因此Access很容易成为攻击跳板。
Checkpoint今年1月通报这项漏洞,微软已经修补。至少在其测试的Office 2010(Current Channel, version 2306, build 16529.20182)版本中,已经加入「受保护检视」的提醒。但研究人员指出,无法排除较旧版或其他版Office仍然有这漏洞。此外,即使Windows发出提醒,用户还是可无视风险而执行外部连结。
针对仍使用NTLM协定的企业管理员,研究人员建议可封锁所有经由NTLM协定(port 139及445)的对外连线。