Перейти к содержанию

Recommended Posts

Kira_the_first

Однажды вечером, я решил написать небольшой сигнатурно-ориентированный эвристический анализатор для батников(на бат естественно), и у меня это получилось. 
Создание программы заняло один вечер, и где-то треть или даже половина времени на разработку заняла отладка(глупая недокументированная синтаксическая ошибка, которая никак себя не проявляла).
Язык программы: английский, для солидности что-ли (вдруг на зарубежные залью, хз). Если вы знаете английский на уровне прикладных программ, то сможете увидеть пару фичей и приколов.
 
Ссылка на скачку архива с тестовыми файлами: https://yadi.sk/d/6AIyb05y3LuxdW

Возможно будут ещё версии, так что всех скачавших прошу оставить отзыв о программе, чтобы я мог её улучшить(нужно ИИ создавать как никак, и виртуализировать среду....а хотя, хрена с два я это на бат то сделаю).

Безымянный.png

  • Downvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55

}.BAT
}.BAT.EXE
\OK.BAT
\OK.BAT.EXE
\VK.BAT
\VK.BAT.EXE
BROWSER.BAT
BROWSER.BAT.EXE
BROWSER0.BAT
BROWSER1.BAT
BROWSER2.BAT
BROWSER3.BAT
BROWSER4.BAT
BROWSER5.BAT
BROWSER6.BAT
BROWSER7.BAT
BROWSER8.BAT
BROWSER9.BAT
CHROME.BAT
CHROME.BAT.EXE
FIREFOX.BAT
FIREFOX.BAT.EXE
FIREFOXPORTABLE.BAT
FIREFOXPORTABLE.BAT.EXE
KОMЕTА.BАT
KОMЕTА.BАT.EXE
IEXPLORE.BAT
IEXPLORE.BAT.EXE
LAUNCHER.BAT
LАUNСHЕR.BАT.EXE
OPERA.BAT
OPERA.BAT.EXE
PUNTO.BAT
PUNTO.BAT.EXE

\EULA.BAT
\ROAMING\SVCHOST.BAT
\IЕХPLОRЕ.BАT.EXE
\LАUNСHЕR.BАT.EXE

------------

Ну и левое расположение, доп атрибуты, сама по себе левая программа её директория типа:

\ASK.COM\

\APPDATA\LOCAL\SVSHOST\

( Здесь счёт на сотни, а то и на тысячи записей )

+

Размер:  0 байт.

Файл к нему идёт: Автозапуск

Tasks + Run ( все ключи запуска ) + ярлыки от программ\браузеров, двойное расширение.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Kira_the_first

Это вы продемонстрировали мне технологию "разбивки вируса на составные части" (забыл как термин называется, ну и фиг с ним)? Если да, то сигнатурно "сканировать" файл запуска не имеет смысла, и даже файлы по отдельности (файл запуска не даст ничего, а разбавленные команды не дадут приплюсовываний к общей картине). Сам по себе запуск(start, call и прочее) - не вредоносен, вредоносно то, что он запускает - поэтому сигнатурный детект на запуск быть не должен. Делать исключением файлы с 0 байт и перехватывать(хукать) ключи реестра и директории нерентабельно для эвристика батников(это уже какой-то "антивирус" получиться:)), его цель - выносить вердикт о чистоте файла ещё до его запуска; да и лишний код только место занимать будет: зачем искать в коде предполагаемого вируса ключи автозапуска(которые могут отредактировать/криптануть немного/заюзать другие ключи и т.д.), если можно просто сказать "этот файл редактирует реестр, будьте предельно внимательны")?

И да, этот эвристик создан тестировать только батники, и пример сканируемых файлов(в которых может быть нужный код) приведён в нём же.

Отредактировал Kira_the_first

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55

Вы хотите разработать проект под некую идеальную ситуацию.

т.е.:  Только для .bat файлов... игнорируя все прочие скрипты, расширения.

Только для случаев когда файл ещё не запускался...

Не отслеживая связь файла с записями в реестре - а именно с ключами автозапуска, с назначенными заданиями, не учитывая директории\местоположения файла ( съёмный USB диск, дисковод ), прочие файлы в директории - с которыми .bat файл может взаимодействовать, известные не легитимные\вредоносные продукты и их каталоги, атрибуты ( скрытый, системный, только для чтения )

Например в антивирусной программе Олега Зайцева - AVZ реализован механизм 1+1+1-?=

т.е. само по себе явление не представляет угрозы но в сочетании, это угроза, или же наоборот некий факт перевешивает весь негатив и нейтрализует детектор ( например файл подписан легальной\известной ЭЦП )

Если уж на то пошло, то здесь может быть именно механизм теста.

т.е. пользователь проверив файл получает отчёт - файл делает то-то и то-то... Но в этом тоже мало смысла. Будет в отчёте строка:  Изменение ключа реестра RUN* и ?  Если пользователь продвинут он и сам разберётся, что, к чему. А если у него нет этих компетенций\знаний\умений то ему ваш анализ...

Разве он поймёт ?

Сейчас не 1992 год.  Если анализатор делать для себя - для саморазвития\обучения\самообучения - это одно. А если мы говорим именно о проверке... Есть возможность комплексного анализа.

Это и VirusTotal сканер и Comodo File Verdict Service и аналогичные продукты типа:  herdprotect.com; threatinfo.net; reasoncoresecurity.com  и Crystal Security

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 17.2.8.
    • demkd
    • santy
      demkd, а где сохраняется информация о количестве используемых ядер? в settings.ini? Не увидел там новый параметр при изменения параметра производительности в доп. настройках.
    • demkd
      ---------------------------------------------------------
       4.99.1
      ---------------------------------------------------------
       o Это обновление добавляет поддержку многоядерных процессоров.

       o В меню Настройки->Дополнительные настройки добавлена возможность указать количество рабочих потоков
         для функций:
           o Создание файла сверки                                        (нельзя прервать)
           o Создание образа автозапуска                                  (нельзя прервать)
           o Загрузка производителя [F3]                                  (доступно прерывание функции по ESC)
           o Проверка по базе проверенных файлов [F4]                     (доступно прерывание функции по ESC)
           o Проверка ЭЦП [F6]                                            (доступно прерывание функции по ESC)
           o Проверка по базе критериев [Alt+F7]                          (доступно прерывание функции по ESC)
           o Фильтрация по базе критериев [Ctrl+F7]                       (доступно прерывание функции по ESC)
           o Проверка списка по выбранному критерию                       (доступно прерывание функции по ESC)
           o Проверить весь список на вирусы                              (доступно прерывание функции по ESC)
           o Добавить хэши всех проверенных файлов в базу проверенных     (доступно прерывание функции по ESC)
           o Добавить хэши исполняемых файлов каталога в базу проверенных (доступно прерывание функции по ESC)
         Значение 0 задает количество потоков равным количеству ядер процессора (включая виртуальные), виртуальные ядра
         могут ускорить процесс на лишние 30%.
         Как сказывается использование E-ядер неизвестно, но скорее всего ощутимой разницы с P ядрами не будет,
         поэтому на новых интелах + NVME SSD сокращение времени исполнения функций скорее всего будет огромным.
         При подключении к удаленной системе для серверной части uVS количество потоков всегда равно количеству ядер (включая виртуальные).
         Для клиентской части действует заданное в настройках значение.
         Для системного диска на базе SSD время выполнение функции уменьшается многократно (для 4-х ядерных процессоров вплоть до 4x на SATA SDD),
         для современных конфигов может иметь смысл задание большего числа потоков чем количество ядер у процессора (допустимый максимум - 128).
         Для HDD все гораздо хуже, время проверки немного сокращается (10-20%), однако когда часть файлов находится
         в кэше системы (т.е. в оперативной памяти) разница будет существенной и для HDD.
         Конечно все это верно лишь для процессоров с более чем 1 ядром.
         (!) Прерывание функции по клавише ESC недоступно для удаленных систем.

       o Другие функции, которые можно прервать по ESC:
         o Проверить все НЕПРОВЕРЕННЫЕ файлы на VirusTotal.com
         o Проверить все НЕПРОВЕРЕННЫЕ ИЗВЕСТНЫЕ файлы на VirusTotal.com
         o Проверить НЕПРОВЕРЕННЫЕ файлы в текущей категории на VirusTotal.com (c учетом фильтра)
         o Проверить все НЕПРОВЕРЕННЫЕ файлы на virusscan.Jotti.org
         o Проверить все НЕПРОВЕРЕННЫЕ ИЗВЕСТНЫЕ файлы на virusscan.Jotti.org
         o Проверить НЕПРОВЕРЕННЫЕ файлы в текущей категории на virusscan.Jotti.org (с учетом фильтра)
         o Проверить хэш файла по базе проверенных файлов
         o Добавить в список->Все исполняемые файлы в системных каталогах не старше указанной даты

       o Обновлен функционал окна "История процессов и задач".
         Добавлена информация о текущем состоянии задач зарегистрированных в системном планировщике заданий.
         Добавлена новая кнопка "С момента запуска системы", которая переключает режим отображения истории.
         Если кнопка нажата то история отображается только с момента запуска системы, все что было раньше не попадает в список.
         Если кнопка отжата то отображается вся доступная история процессов и задач,
         что может быть полезно для выявления зловредной активности непосредственно перед перезагрузкой системы.
         Для каждой задачи по двойному щелчку левой кнопки мыши можно просмотреть XML описание задачи.
         Теперь фильтрующий поиск работает на все колонки активного списка одновременно, поддерживается
         фильтрация и списка процессов и списка задач, в зависимости от того какой список активен.
         Фильтрующий поиск применяется на результат работы родительского фильтра.
         Горячая клавиша Backspace больше не влияет на родительский фильтр, для отката уровня родительского
         фильтра используйте клавиши ESC (если строковый фильтр пуст) или Alt+Up (откат со сбросом строкового фильтра).
         (см. подробнее в файле Doc\История процессов и задач.txt)
         (!) Только для Vista и старше.
         (!) Только для активных и удаленных систем.

       o Включение отслеживания процессов и задач теперь увеличивает системный журнал до 50mb,
         отключение возвращает размер по умолчанию.

       o Новая скриптовая команда: deltskname полное_имя_задачи
         Удалить задачу с указанным именем.
         Имя задачи должно начинаться с символа "\", например: \Task
         Допустимо указывать каталоги например: \Microsoft\Задача
         (!) Только для Vista и старше.

       o Возвращено отображение цифровых процентов в заголовке окна, поскольку в некоторых системах графическое отображение
         прогресса выглядит не очень наглядно.

       o В окно выбора каталога/файла добавлен фильтрующий поиск (по обоим спискам одновременно если это выбор файла).
         В окне изменились горячие клавиши:
          o \ - перейти к выбору диска
          o DEL - удалить каталог/файл (с подтверждением)
          o ESC - очистить фильтр, если фильтр пуст то закрыть окно.   
          o Backspace - удалить последний символ фильтра
          o Alt+Вверх - перейти в родительский каталог

       o Функция создания образа автозапуска теперь не использует базы проверенных файлов и все проверенные файлы ДО создания
         образа теряют статус "проверенный". Т.е. в образе статус проверенный имеют лишь файлы прошедшие проверку ЭЦП.

       o Поскольку AutoHotkey используется зловредами то теперь все его актуальные версии выявляются под любым именем по F3 или
         при создании образа автозапуска и получают статус подозрительного файла.
         Соответствующие имени файла скрипты автозапуска добавляются в список автоматически и тоже получают статус подозрительных файлов.
         Содержимое скрипта доступно в окне информации ahk файла.

       o Введены новы лимиты на количество элементов в списке автозапуска для x64 версий в списке может быть до 1 млн. файлов,
         для x86 до 150 тысяч файлов. (Обычно в образе менее 10 тысяч файлов)

       o Оптимизированы функции сортировки, фильтрации и вывода списка.

       o В категории HOSTS добавлен фильтрующий поиск по 2 первым колонкам одновременно.
         Сортировки в этой категории нет, записи представлены в порядке следования в оригинальных файлах.
         Первыми идут записи из HOSTS, что лежит по прописанному в реестре пути, если путь отличается от пути по умолчанию
         то дальше идут записи HOSTS из \Windows\System32\drivers\etc, далее записи из HOSTS.ICS.
         В этой категории теперь работает горячая клавиша DEL.

       o Найдена ошибка в Windows API из-за которой для некоторых файлов не отображался производитель и другая информация о версии файла.
         Сам Windows для таких файлов не отображает случайные параметры на вкладке "Подробно" в свойствах файла.
         Ошибку удалось обойти и теперь в окне информации о файле отображаются все значимые параметры для всех исполняемых файлов.

       o Улучшен альтернативный режим сканирования процессов. (ctrl+p)

       o В контекстное меню окна информации о файле добавлен поиск по имени подписавшего файл.

       o Удалена скриптовая команда EXEC32 за бесполезностью.

       o Из настроек основного списка удален обычный поиск за бесполезностью.

       o Добавлен вывод предупреждения в лог при обнаружении вируса в списке при загрузке производителя и сигнатур про F3.

       o Исправлена и улучшена функция вывода результата исполнения консольных приложений.
         Теперь вывод осуществляется в реальном времени с поддержкой отображения динамического текста в последней строке.
         Проблема с кодировкой для старых систем решена.
         Добавлено время выполнения приложения.

       o Результат выполнения команды gpudpate теперь отображается в логе.

       o Сообщение об отсутствии пользовательского реестра в каталоге "All users"/ProgramData больше не выводится.

       o Немного дополнена документация.

       o Исправлена ошибка из-за которой вместо обычной x64 версии для старых систем запускалась x64v версия.

       o Исправлено ошибочное сообщение в логе при исполнении 44 твика.

       o Исправлена ошибка при сохранении истории задач в образ и при передаче данных из удаленной системы.

       o Исправлена и оптимизирована функция проверки списка по выбранному критерию.

       o Исправлена ошибка с растущим временем отката операции по Ctrl+Z при работе с образом.

       o Исправлена ошибка при определении параметров *OperatingSystemVersion для 64-х битного исполняемого файла.

       o Исправлена ошибка с неправильным откатом операции по HOSTS при работе с образом.

       o Исправлена ошибка подписи образа автозапуска удаленной системы (появилась в v4.15.4)

       o Исправлена функция Добавить в список->Все исполняемые файлы в системных каталогах не старше указанной даты

       o Исправлены мелкие интерфейсные ошибки.
       
    • PR55.RP55
      Предлагаю добавить удаление по критерию поиска. На примере темы: https://forum.kasperskyclub.ru/topic/463829-ne-poluchaetsja-udalit-virus/ т.е. у нас есть переменные и постоянные... данные. На основе постоянных данных создаётся критерий поиска и скрипт по нему отработает. В принципе  можно пользователю кинуть поисковый критерий в виде файла > Прогнать список по поиску > Удалить найденное. Но как это всё объяснять.
×