Aug. 20th, 2014

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

.. )

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

facepalm

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

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

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 04:01 am
Powered by Dreamwidth Studios