Эвристик батников на .bat - Безопасность средствами операционной системы - Форумы Anti-Malware.ru Перейти к содержанию

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

 

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


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

  • Сообщения

    • demkd
      "CurrentControlSet" это виртуальный ключ, он указывает на последний рабочий CurrentControlSetXXX, потому копировать там обычно нечего потому что есть лишь CurrentControlSet001, который и есть CurrentControlSet, другое дело когда есть 001 и 002, один из них может быть живым, а может и не быть.
      Но на самом деле не нужно маяться фигней, нужно пользоваться бэкапом и восстановлением реестра, тем более что в uVS есть твик для включения системного бэкапа реестра, так же копии реестра есть в теневых копиях и точках восстановления, где гарантировано можно найти рабочую ветку реестра и восстановить ее либо руками либо через uVS->Реестр->Восстановить из копии ключ SafeBoot
    • PR55.RP55
      " Вот еще в помощь рекомендации от Зайцева Олега:   Цитата Кроме того, есть еще один метод восстановления испорченных ключей. Как известно, в самом реестре есть копии ключа SafeBoot. Они находятся в HKLM\SYSTEM\CurrentControlSet001\Control\SafeBoot и HKLM\SYSTEM\CurrentControlSet002\Control\SafeBoot. Следовательно, можно попробовать следующую операцию:
      1. Экспортировать HKLM\SYSTEM\CurrentControlSet001\Control\SafeBoot
      2. В полученном REG файле заменить "CurrentControlSet001" на "CurrentControlSet" (REG файл текстовый, поэтому заменить несложно)
      3. Импортировать модифицированный файл
      Данная операция может быть успешной сразу после запуска повреждающей ключ реестра вредоносной программы, до перезагрузки. Нарушена загрузка в защищенном режиме (SafeBoot) Изменено 6 часов назад пользователем safety " https://forum.kasperskyclub.ru/topic/466078-privetstvuju-slovil-majner-po-nazvaniem-toolbtcmine2782/page/6/#comments А, что если это будет делать uVS ? т.е. Копировать ключ > модифицировать > производить перезапись.
    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 18.1.10.
    • PR55.RP55
      1) По поводу реестра и восстановления. Некоторые программы при работе создают копию реестра. Например в корне диска от FRST  т.е. предлагаю добавить в uVS поиск таких копий. Единственно проверять копии на соответствие Системе. В образ писать информацию о такой копии и дату её создания. 2) Окно с твиками в будущем разбить на два окна, твики работающие с реестром выделить в отдельное окно. 3) В Doc - добавить  информацию по твику 35 и его возможном применении с виртуализацией. 4) Проверять возможность загрузиться с другого диска\системы и добавлять в Инфо. сведения о возможности загрузиться с другого диска\системы. Это я о том, что возможно у PC были\есть несколько пользователей и человек просто не знает, что на дисках есть другие системы.  
    • demkd
      С виртуализацией можно удалять все, защиты от нее практически нет. Выполнить 45-й твик.

      ---------------------------------------------------------
       4.99.12
      ---------------------------------------------------------
      o При удалении исключений Defender-а теперь не_используется powershell из-за неадекватного
         поведения антивируса Kaspersky Free. Теперь удаление производится через сам Defender без
         посредников.
         (!) Если Defender отключен ИЛИ неисправен ИЛИ у вас установлен и АКТИВЕН другой антивирус
         (!) то удаление исключений возможно лишь при использовании виртуализации реестра
         (!) ИЛИ при приостановке защиты этого антивируса.
         (!) Я рекомендую отключать антивирус перед запуском, он все равно бесполезен
         (!) и лишь существенно замедляет и усложняет процесс лечения.

       o Теперь в лог выводится информация о зарегистрированных в системе антивирусах/фаерволах и их состоянии.
         (Доступно для Windows Vista+)

       o Улучшена функция поиска неизвестных DLL в адресном пространстве uVS, теперь она более устойчива
         к мерам противодействия поиску.

       o Удалено ошибочное сообщение в логе для Windows Vista о блокировке kernelbase.dll,
         которой в этой системе нет.

       o Антисплайсинг: расширен список контролируемых функций.

       
×