ЧАВО по программе AVZ

  • Автор темы Автор темы edde
  • Дата начала Дата начала
  • Теги Теги
    avz

edde

Ассоциация VN/VIP
VIP
Сообщения
1,649
Реакции
914
Будет заполняться преподавателями по мере часто возникающих вопросов у студентов
Заполняется по форме один вопрос\ответ - один пост
Вопрос.........
_______________________
Ответ...........
 
Вопрос.........
Что будет если поменять команды в скрипте (располложить их не по шаблону)?
И зачем вообще нужен шаблон этот?
_______________________
Ответ...........
Шаблон создан специально для того что бы легко запомнить очередность команд, легко отследить ошибки при составлении студентами скриптов, кроме этого у некоторых команд есть исключительное место в скрипте и расположение их вне очередности сделает скрипт нерабочим. Учитывайте это при составлении ваших скриптов и во время прохождения обучения и после:).
 
Вопрос.........
Как удалить файл в имени которого встречается одинарная кавычка? Например:
Код:
D:\TrAncE[COLOR="Red"][B][SIZE="3"]'[/SIZE][/B][/COLOR]s\Pragma\ptsup5.exe
_______________________
Ответ...........
Достаточно разбить строку на две части, до и после одинарной кавычки, а одинарную кавычку присутствующую в имени пути, заменить на её эквивалент ANSII-код, по таблице. Использовав функци Chr указав в параметре функции код одинарной кавычки. Как видим по таблице, одинарной кавычке соответствует Dec-значение равное 39
Код:
DeleteFile('D:\TrAncE'[COLOR="red"] + [B]Chr(39)[/B] + [/COLOR]'s\Pragma\ptsup5.exe');
 
Последнее редактирование модератором:
P.S. Краткая предыстория вопроса. Мне в личку пришло около десятка сообщений за некоторое время. Студенты задают вопрос об определении зловредности файлов. Общие черты у этого вопроса, если оставить сухой остаток, будет такой.

Вопрос.........
Есть ли какие-нибудь 100%-ные признаки вредоносности файлов по которым можно было бы ориентироваться и удалять файл без проверки?
_______________________
Ответ...........
Такие критерии у файлов есть. Перечислю некоторые "узкие" места.
  1. Файл имеет имя, идентичное системному, но находится в директории отличной от оригинального системного файла.
    [*] У файла расширение .tmp и он запускается службой или висит в автозагрузке, вообще, в 90% если это не временный файл, то вирь.
    [*] В реестре, в ветке
    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
    Есть ключи Userinit и Shell. Стандартные значения у первого ключа равно
    Код:
    Userinit = C:\WINDOWS\SYSTEM32\Userinit.exe,
    У второго ключа значение равно
    Код:
    Shell = Explorer.exe
    Вирусы имеют свойство подменять эти значения или дописывать к существующим, свои пути к исполнимым файлам. Поэтому, всё что не равно настоящим значениям, можно смело удалять. В логе AVZ значения этих ключей можно увидеть в секции Автозапуск. Приведу скриншот, как это выглядит в логе. Красными линиями подчёркнуты пути ветки реестра. В этом случае рассмотрен параметр Userinit





    Поскольку файлы, в именах которых содержатся латинские символы верхнего\нижнего регистров и цифры, являются руткитами,(их не увидишь просто так), то AVZ не все их корректно отображает в логе. В этом случае, руководствуйтесь записью из лога HiJackThis, для добавления недостающих
    Код:
    ...
    F2 - REG:system.ini: UserInit=C:\WINDOWS\system32\userinit.exe,C:\WINDOWS\sorry.exe,\\?\globalroot\systemroot\system32\8ib4c4N.exe,\\?\globalroot\systemroot\system32\SJnAKHh.exe,
    ...

    Теперь рассмотрим параметр Shell. Как мы уже помним, стандартное значение этого ключа равно Explorer.exe. Когда значение изменено, вот так это выглядит в логе AVZ



    А вот так мы видим это в логе HiJackThis
    Код:
    ...
    F2 - REG:system.ini: Shell=Explorer.exe C:\WINDOWS\TEMP\start.bat
    ...
    В обеих случаях, нужно удалять те файлы, которые не являются стандартными для этих ключей.
    В той же ветке реестра, есть ещё один ключ - AppInit_DLLs. Но тут не всё просто, значения этого параметра могут отсутствовать или здесь могут быть легальные .dll'ки от антивирусника или файервола, но вирусы также иногда берут в свои загребущие руки этот параметр. Тут достаточно удалить файл.

    [*] Ещё можно определять вирусы по тому признаку, что ни один системный файл не будет запускаться из места, которое совершенно не предназначено для этого. Перечислю излюбленные места запуска некоторых вирусов:
    %WinDir%\fonts\
    %WinDir%\help\
    X:\recycler\
    \restore\
    X:\system volume information\
    %WinDir%\temp\ или %userproriles%\temp\
    %userproriles%\cookies\
    %userproriles%\Local Settings\temporary internet files\

    [*] Вирус TDSS можно определять по его маске. У него она, маска, равна части имени службы и файлам.
 
Вопрос.........
Если нет информации в инете как определять, что это вредная служба, например wmgcnt.sys?
_______________________
Ответ...........
Если о файле нет никакой информации, то с уверенностью 99% можно полагать что это зараза, так как имя файла сгенерировано произвольно, поэтому никакой информации по нему быть не может.
 
Продолжая тему определения зловредности файлов. В предыдущем ответ мы использовали пассивный поиск, основаный на некоторых характеристиках\возможностях вирусов. Сейчас мы применим активный поиск вредоносов. Сразу оговорюсь, не все вирусы можно вычислить по описуемому методу, но большинство новых, и даже не известных - точно.

Вопрос.........
Есть ли какие-нибудь 100%-ные признаки вредоносности файлов по которым можно было бы ориентироваться и удалять файл без проверки?
_______________________
Ответ...........
Многие из вас знают, что вредоносные файлы в своей работе обычно "любят" использовать системные процессы, такие как services.exe, svchost.exe, explorer.exe. Как вам известно, у процессов есть свой PID - PID -это(сокращение от англ. Process ID) — идентификатор процесса, уникальный номер, который система класса назначает каждому активному процессу. Он не постоянен и при перезагрузки у процесса уже может быть другой PID. Мы используем это себе в помощь. Представим себе обычную картину, есть логи в которых некоторые зловреды используют один из перечисленных процессов, возьмём, например процесс explorer.exe, как наиболее универсальный. Открыв лог в секции Процессы мы ищем такой процесс как explorer.exe, на скриншоте мы видим этот процесс, что он прошёл по базе безопасных, тем не менее вирусы его используют. Посмотрим PID проводника, его PID = 1776. Запомним его крепко - 1776.




Запомним несколько ключевых моментов, по которым мы будем определять зловредность файлов.

Проблемный файл имеет следующие признаки:
  1. Использует тот же самый PID, что у Explorer.exe.
  2. У такого файла колонка Copyrigth пустая, проще, отсутствует копирайт.
  3. У такого файла колонка Описание также пустая.
  4. Также может использовать PID своих "собратьев"-вирусов.
  5. Количество используемых PID, может варьироваться от 1 до 12 и больше.
Листаем лог до секции Используемых DLL, названия у секции нет, но она идёт сразу за секцией Процессы. Как видим на скриншоте, пять файлов, попадают под перечисленные критерии (в списке перечислений используемых PID, один из них равен PID'у процесса Explorer.exe. Количество используемых PID больше одного. У этих файлов отсутствует описание файла и копирайт).



В этом не трудно убедиться, проверив файлы по MD5:

1. C279395C.DLL
2. HBASKTAO.dll
3. sysmxd.dll

P.S. Некоторые файлы я не включил в проверку по MD5, потому что проверки этих файлов нет, но это тоже вирусы. :)

P.P.S. Не все файлы можно вот так вычислить, так как некоторые вирусы, могут содержать мало-мальски приемлемое описание и копирайт, от 1-3 символов, до полнолегальной строки
© Microsoft Corporation. All rights reserved
Связано это с тем, что вирусы попросту копируют такие копирайты для себя. Пример такого использования, тот же скриншот и файл с именем System.exe. Но пусть вас этот момент не смущает.
 
Последнее редактирование:
Вопрос.........
Встречаю в логе AVZ в секции Модули расширения системы печати (мониторы печати, провайдеры) записи вида:



Вредоносна ли эта запись и если да, то как правильно её удалить?
_______________________
Ответ...........
Файл находящийся в этой секции не является легитимным. Если в этой секции мы видим запись вида esp****.tmp, можно смело применять дополнительный скрипт. Отдельно. Вместо звёздочек **** могут быть символы латиницы и цифры.
Код:
Begin
RegSearch('HKLM', '', 'esp[COLOR="red"][B]***[/B][/COLOR]');
SaveLog(GetAVZDirectory + 'avz00.log');
RegSearch('HKLM', '', 'esp[COLOR="Red"][B]***[/B][/COLOR]');
SaveLog(GetAVZDirectory + 'avz01.log');
end.
Применять такой скрипт лучше отдельно и столько отдельных скриптов, сколько записей в этой секции будет esp****.tmp, имя лога тоже меняйте avz00.log, avz01.log и т.д.

После чего пользователь или у вас в логах должны появиться приблизительно следующие строки:
Код:
Выполняется исследование системы
Исследование системы завершено
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\ControlSet001\Control\Print\Providers\9A841C42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\esp34AB.tmp"
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\ControlSet002\Control\Print\Providers\9A841C42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\esp34AB.tmp"
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Print\Providers\9A841C42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\esp34AB.tmp"
Код:
Выполняется исследование системы
Исследование системы завершено
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\ControlSet001\Control\Print\Providers\9A841B42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\espEB99.tmp"
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\ControlSet002\Control\Print\Providers\9A841B42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\espEB99.tmp"
[RegSearch]: HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Print\Providers\9A841B42 Name="C:\DOCUME~1\Admin\LOCALS~1\Temp\espEB99.tmp"

Файл и найденые ветки реестра нужно обязательно удалить. Удаление одного файла безрезультаное деяние, в новых логах он появится снова. Скрипт на удаление составляется как и обычное удаление файлов и веток реестра:
Код:
begin
SearchRootkit(true, true);
SetAVZGuardStatus(True);
QuarantineFile('C:\DOCUME~1\Admin\LOCALS~1\Temp\esp34AB.tmp','');
QuarantineFile('C:\DOCUME~1\Admin\LOCALS~1\Temp\espEB99.tmp','');
DeleteFile('C:\DOCUME~1\Admin\LOCALS~1\Temp\espEB99.tmp');
DeleteFile('C:\DOCUME~1\Admin\LOCALS~1\Temp\esp34AB.tmp');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Control\Print\Providers\9A841C42');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet002\Control\Print\Providers\9A841C42');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Print\Providers\9A841C42');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Control\Print\Providers\9A841B42');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\ControlSet002\Control\Print\Providers\9A841B42');
RegKeyDel('HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Print\Providers\9A841B42');
BC_ImportAll;
ExecuteSysClean;
BC_Activate;
RebootWindows(true);
end.

Естественно, значения в командах DeleteFile и RegKeyDel должны быть теми которые видны по логам.
 
Вопрос.........
Осветите, пожалуйста, в ЧАВО по AVZ такую тему, как проверка скрипта на предмет ошибок и что значат цифры, если есть ошибки? Первая- это номер строчки, а вторая?
_______________________
Ответ...........
Первая- это номер строчки, а вторая - порядковый номер знака в строке
Но:
Код:
begin
 SearchRootkit(true, true);
 SetA[COLOR="Red"]x[/COLOR]VZGuardStatus(true);
 RebootWindows(true);
end.
напишет
Undeclared Identifier SetAxVZGuardStatus
3:20 обозначит - неизвестный идентификатор и найдет не порядковую ошибку в слове команды, а опознает как неправильную команду и ошибкой считает всё слово.
и
Код:
begin
QuarantineFile'C:\WINDOWS\system32\72.exe','');    
end.
найдет ошибку в строке ' '', ' expected 2:15
 
Последнее редактирование:
Вопрос.........
Осветите, пожалуйста, в ЧАВО по AVZ такую тему, как проверка скрипта на предмет ошибок и что значат цифры, если есть ошибки? Первая- это номер строчки, а вторая?
_______________________
Ответ...........
Первая- это номер строчки, а вторая - порядковый номер знака в строке
можно добавить что второе значение может показывать на знак где начало, но конца программа не увидела, например
Код:
QuarantineFile('C:\Program Files\Common Files\*************\int302979.exe
','');
покажет ошибку в позиции5/16 видит что скобка открыта и не видит что закрыта так как перенос строки, (он может возникнуть при копипасте в другой документ, например ответ.txt)
 
Вопрос.........
После выполнения скрипта восстановления\ удаления веток реестра что-то не работает, еще и выполненный скрипт потерял :unknw:
_______________________
Ответ...........
Не отчаивайтесь, на все выполенные действия авз делает резервные копии для возможности всё вернуть назад. Найдите в папке авз папку backup, восстановите с помощью reg файлов неверно удаленные параметры.
 
standalone

Можно ли удалить CLSID без последствий если строковые значения модуля пусты?
 
Можно ли удалить CLSID без последствий если строковые значения модуля пусты?
Просто по этому критерию нельзя. Надо смотреть кому этот CLSID принадлежит, среди них часто и системные бывают.
 
Просто по этому критерию нельзя. Надо смотреть кому этот CLSID принадлежит, среди них часто и системные бывают.
Спасибо)) но по своей наивности и по совету одного здесь господина, сообщение которого я уже здесь не вижу, удалил CLSID..., но к счастью это не совсем системные CLSID, это были модули поисковика(browser)..., теперь будем знать куда обращаться если понадобиться совет!
 
Так это вы нас должны просветить по этому вопросу.
Найдите отличия, если они есть и покажите нам.
Подсказка №1:
- выпишите все параметры характеризующие тот или иной файл
- сверьте их по совпадению\отличию этих признаков
Подсказка №2:
- https://safezone.cc/threads/kratkoe-posobie-po-rabote-dlja-studentov.4918/
 
Ура!!! Вот вы и познакомились с еще одним способом маскировки малвари..., т.е. название файла верное, а вот его расположение НЕ верное.
Чувствуете разницу?

п.с.
Я думаю, что вы реабилитировались.
Удачи!
Спасибо, надеюсь что дойду до финала обучения)почему CLSID установочного файла не определяется в базе?
standalone
 
Срезал обсуждение в "Ответы"
 
и по совету одного здесь господина
О-о-о.., сейчас только заметил, что вы ко мне обращаетесь.., да я написал и сейчас это могу повторить, но это относится только к выделенному вами на скрине CLSID'у и не более того.
 
Назад
Сверху Снизу