ewoke: (Default)
[personal profile] ewoke
Берем программу примитивного загрузчика, содержащий 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.

vt


Пишем "обертку" - в теле нашей прогр-ы лежит код загрузчика, создает файл и записывает код в него. Осталось только запустить созданный файл, чтобы он скачал что-то с инет и запустил его, в свою очередь. Запускать не будем.

( 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


и результат, "проснулся" Комодо :)

facepalm

Такие вот антивирусы.

Используемые файлы - https://yadi.sk/d/eQnF2bBna6usx пароль vir1
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

ewoke: (Default)
ewoke

October 2025

S M T W T F S
   1234
5 67891011
121314 15161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 21st, 2026 08:54 am
Powered by Dreamwidth Studios