Изучаем Vt и AdAware
Aug. 20th, 2014 12:55 pmБерем программу примитивного загрузчика, содержащий UrlDownloadToFile и ShellExecute.
Т.е. мы скачиваем некий файл с интернета и сразу его запускаем.
(файл dl_file.asm)
(код отсюда http://kaimi.ru/2011/11/antivirus-trolling/ ,первый исходник)
Реакция антивирей (кроме самых "крутых" вроде Nano, TheHacker) соответствующая - trojan downloader.
https://www.virustotal.com/ru/file/03124c3cace2e00e298f03115e96211a8520dc32c09b6766e401f61aaac7e4a5/analysis/
Вне зависимости от того, что качаем, вердикт одинаков (в данном случае качаем полезную программу). Как именно палят, по именам используемых АПИ, или еще как, не интересно; сильно порадовала Виртуальная Среда VirusTotal на вкладке "поведение" - оно скачало искомый "троян", запустило и установило его :) Т.е. в песочнице теперь - PowerToyImageResizer.

Пишем "обертку" - в теле нашей прогр-ы лежит код загрузчика, создает файл и записывает код в него. Осталось только запустить созданный файл, чтобы он скачал что-то с инет и запустил его, в свою очередь. Запускать не будем.
( wr_file.asm )
(код отсюда http://www.cyberforum.ru/assembler/thread374462.html)
Для того, чтобы поместить в текстовый исходник содержимое бинарника, используем bin2dbex из пакета Масм, и применяем его к dl_file.exe. Полученное копипастим в wr_file.asm.
Чтобы немного усложнить детектирование, применяем к данным обратимую операцию NOT. Т.е. данные в нашем "извлекаторе" лежат битые, перед записью в созданный файл они правятся.
Как это сделать:
шаг1 - конвертим/импортируем dl_file.exe в формат, пригодный для того, чтобы положить его в wr_file.asm. компилируем/запускаем wr_file.exe
шаг2 - wr_file отработал, искаженные NOT данные лежат в FileOut.exe, переименуем его в FileOut.not и конвертим/импортируем его в wr_file.asm. теперь при запуске wr_file будет создавать пригодный для запуска исполнимый файл.
Надеюсь, логика ясна.
Можно использовать операцию XOR (и тоже в 2 шага)
https://www.virustotal.com/ru/file/a116fdf89a9bc1e58e7417f4574297d4685997db24d954611ab04f40958a028b/analysis/1408532161/
Проверяю на ПК с помощью АдАваре.
Детектирует wr_file как trojan dropper. Что интересно, файл FileOut.xor, FileOut.not также детектируются, несмотря на то, что их нельзя запустить без преобразования.
Эта математика порадовала. Оно тупо в цикле перебирает ключ от 0 до 255 и упорно ксорит файл? :)
(на самом деле, есть определенные математические штуки вроде
"если A xor B = C, то (A xor D) xor (B xor D) = C,
где D - неизв. ключ, которым убиты данные, но нам пофиг на его значение",
или подобное этому)
Хорошо, давайте перевернем файл - в теле "извлекатора" он будет вверх ногами, перед записью - приведем в порядок (в 2 шага, как и предыдущие).
https://www.virustotal.com/ru/file/6bf359a96e4ab6f2011d6a94f1a9953cde982173d6efa4cc1fd90bd664a6d462/analysis/1408533100/
В отношении FileOut.inverted - АдАваре успокоилась (еще бы). Но на wr_file.exe продолжает давать предупреждения.
Что же скажет АдАваре на экзешник, который тупо пишет в файл нули? Добавим прыжок:
start:
lea esi, DataBuffer
lea edi, DataBuffer2+2559
jmp @02
mov ecx,2560
@01:
;not byte ptr [esi]
;xor byte ptr [esi],77
mov al,byte ptr [esi]
mov [edi],al
inc esi
dec edi
loop @01
@02:
Продолжает ругаться.
Может проблема в том что создается файл с расширением EXE? Проверяем, нет.
Убрал весь код, формирующий буфер (можно убрать тело программы целиком, оставив только упоминания-заглушки АПИ), АдАваре продолжает ругаться. Палятся тольковызовыимпорты АПИ, до эмуляции дело не доходит.
Проверка VT файла, который создает FileOut с содержимым из 2560 байт нулей:
https://www.virustotal.com/ru/file/16c5bbd264494936db5e3ebcb0768d0a674bab193dc980b52e85d3b67961c8cb/analysis/1408533480/
upd.: код
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
db "CloseHandle"
dd 0
db "CreateFileA"
dd 0
db "WriteFile"
dd 0
.code
start:
push 0
call ExitProcess
end start
и результат, "проснулся" Комодо :)

Такие вот антивирусы.
Используемые файлы - https://yadi.sk/d/eQnF2bBna6usx пароль vir1
Т.е. мы скачиваем некий файл с интернета и сразу его запускаем.
(файл dl_file.asm)
(код отсюда http://kaimi.ru/2011/11/antivirus-trolling/ ,первый исходник)
Реакция антивирей (кроме самых "крутых" вроде Nano, TheHacker) соответствующая - trojan downloader.
https://www.virustotal.com/ru/file/03124c3cace2e00e298f03115e96211a8520dc32c09b6766e401f61aaac7e4a5/analysis/
Вне зависимости от того, что качаем, вердикт одинаков (в данном случае качаем полезную программу). Как именно палят, по именам используемых АПИ, или еще как, не интересно; сильно порадовала Виртуальная Среда VirusTotal на вкладке "поведение" - оно скачало искомый "троян", запустило и установило его :) Т.е. в песочнице теперь - PowerToyImageResizer.

Пишем "обертку" - в теле нашей прогр-ы лежит код загрузчика, создает файл и записывает код в него. Осталось только запустить созданный файл, чтобы он скачал что-то с инет и запустил его, в свою очередь. Запускать не будем.
( wr_file.asm )
(код отсюда http://www.cyberforum.ru/assembler/thread374462.html)
Для того, чтобы поместить в текстовый исходник содержимое бинарника, используем bin2dbex из пакета Масм, и применяем его к dl_file.exe. Полученное копипастим в wr_file.asm.
Чтобы немного усложнить детектирование, применяем к данным обратимую операцию NOT. Т.е. данные в нашем "извлекаторе" лежат битые, перед записью в созданный файл они правятся.
Как это сделать:
шаг1 - конвертим/импортируем dl_file.exe в формат, пригодный для того, чтобы положить его в wr_file.asm. компилируем/запускаем wr_file.exe
шаг2 - wr_file отработал, искаженные NOT данные лежат в FileOut.exe, переименуем его в FileOut.not и конвертим/импортируем его в wr_file.asm. теперь при запуске wr_file будет создавать пригодный для запуска исполнимый файл.
Надеюсь, логика ясна.
Можно использовать операцию XOR (и тоже в 2 шага)
https://www.virustotal.com/ru/file/a116fdf89a9bc1e58e7417f4574297d4685997db24d954611ab04f40958a028b/analysis/1408532161/
Проверяю на ПК с помощью АдАваре.
Детектирует wr_file как trojan dropper. Что интересно, файл FileOut.xor, FileOut.not также детектируются, несмотря на то, что их нельзя запустить без преобразования.
Эта математика порадовала. Оно тупо в цикле перебирает ключ от 0 до 255 и упорно ксорит файл? :)
(на самом деле, есть определенные математические штуки вроде
"если A xor B = C, то (A xor D) xor (B xor D) = C,
где D - неизв. ключ, которым убиты данные, но нам пофиг на его значение",
или подобное этому)
Хорошо, давайте перевернем файл - в теле "извлекатора" он будет вверх ногами, перед записью - приведем в порядок (в 2 шага, как и предыдущие).
https://www.virustotal.com/ru/file/6bf359a96e4ab6f2011d6a94f1a9953cde982173d6efa4cc1fd90bd664a6d462/analysis/1408533100/
В отношении FileOut.inverted - АдАваре успокоилась (еще бы). Но на wr_file.exe продолжает давать предупреждения.
Что же скажет АдАваре на экзешник, который тупо пишет в файл нули? Добавим прыжок:
start:
lea esi, DataBuffer
lea edi, DataBuffer2+2559
jmp @02
mov ecx,2560
@01:
;not byte ptr [esi]
;xor byte ptr [esi],77
mov al,byte ptr [esi]
mov [edi],al
inc esi
dec edi
loop @01
@02:
Продолжает ругаться.
Может проблема в том что создается файл с расширением EXE? Проверяем, нет.
Убрал весь код, формирующий буфер (можно убрать тело программы целиком, оставив только упоминания-заглушки АПИ), АдАваре продолжает ругаться. Палятся только
Проверка VT файла, который создает FileOut с содержимым из 2560 байт нулей:
https://www.virustotal.com/ru/file/16c5bbd264494936db5e3ebcb0768d0a674bab193dc980b52e85d3b67961c8cb/analysis/1408533480/
upd.: код
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
db "CloseHandle"
dd 0
db "CreateFileA"
dd 0
db "WriteFile"
dd 0
.code
start:
push 0
call ExitProcess
end start
и результат, "проснулся" Комодо :)

Такие вот антивирусы.
Используемые файлы - https://yadi.sk/d/eQnF2bBna6usx пароль vir1