最近得到一个样本(bhk.py),这是样本中的描述信息:
#**************************************************************************
# Exploit Title : Foxit 4.1.1
# Date : 13/11/2010
# Author : Sud0
# Bug found by : dookie
# Original POC : 64cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2W2P5s2m8D9L8$3W2@1i4K6u0V1k6r3u0Q4x3X3g2U0L8$3#2Q4x3V1k6W2P5s2m8D9L8$3W2@1M7#2)9J5c8U0p5#2y4e0p5@1i4K6u0r3
# Software Link : 8dbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6G2P5r3W2@1M7$3!0X3N6s2N6S2M7X3g2Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6s2y4Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7l9`.`.
# Version : 4.1.1
# OS : Windows
# Tested on : XP SP3 En (VirtualBox)
# Type of vuln : EIP / SEH
# Thanks to my wife for her support
# Greetz to: Corelan Security Team
# Greetz to: dookie for finding the bug
# Thanks to offsec for the Exploit Week End challenge
# d89K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4G2M7X3g2D9j5h3&6Q4x3X3g2T1k6g2)9K6b7e0R3^5x3o6m8Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8Y4y4W2j5%4g2J5K9i4c8&6i4K6u0r3j5$3!0J5k6h3I4S2L8W2)9J5k6s2c8W2j5h3#2Q4x3X3c8E0k6h3#2T1k6i4u0K6i4K6u0r3
# writeup : e11K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4G2M7X3g2D9j5h3&6Q4x3X3g2T1k6g2)9K6b7e0R3^5x3o6m8Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8U0t1H3x3e0m8Q4x3V1j5I4x3g2)9J5c8U0p5K6i4K6u0r3L8$3k6X3k6h3&6K6K9i4k6W2i4K6u0V1M7$3g2U0N6i4u0A6N6s2W2Q4x3X3c8W2P5s2m8D9L8$3W2@1i4K6u0V1N6$3g2W2K9$3g2F1k6q4)9J5c8R3`.`.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
感谢dookie及Sudo的分享。我根据这个样本调试分析了一下该漏洞,跟踪出最初出问题的地方是lstrcpyw拷贝字符串时覆盖了函数返回地址,下面是分析过程,欢迎大家讨论。
先去异常处理函数0x006a0046看下吧,pop pop ret,没什么 问题,典型的利用异常跳转到Shellcode的利用方式。如果要分析一下Shellcode,那么bp 0x006a0046、shift+F9然后单步就一切了然,这不是这里要讨论的,其实对于这个样本也没有什么定位Shellcode的需要,利用程序(bhk.py)中不是都写明了Shellcode嘛。不过利用程序中的align、control所对应的汇编代码还是有一定参考价值的,演示了成功利用漏洞所应控制的细节方面。