Как выполнить скрипт AVZ по сети

Переводчик Google

Chinaski

Ассоциация VN
Сообщения
2,083
Решения
1
Реакции
372
Добрый день! Возникла необходимость регулярно собирать логи с компьютеров в сети. Решено было автоматизировать процесс следующим образом:
На сервере лежит AVZ, папка расшарена для общего доступа (как на чтение так и на запись), на целевой компьютер вытащен ярлык на AVZ со следующей командной строкой
\\name_server\avz4\avz.exe HiddenMode=0 NQ=Y MiniLog=Y Script=std2
рабочая папка
\\name_server\avz4\
HiddenMode в данном случае временно указан со значением 0, дабы наблюдать за процессом, предполагается 3.

Содержимое скрипта
begin
ExecuteStdScr(2);
end.

То есть задача сводится к минимуму, выполнить скрипт №2.
Скрипт начинает выполняться, но процесс останавливается через какое-то время, и больше ничего не происходит.

Код:
Функция NtAlertResumeThread (0C) перехвачена (805D4BDC->8A61A208), перехватчик не определен
Функция NtAlertThread (0D) перехвачена (805D4B8C->8A78AC18), перехватчик не определен
Функция NtAllocateVirtualMemory (11) перехвачена (805A8AC2->8A60B3F0), перехватчик не определен
Функция NtCreateKey (29) перехвачена (80624160->B1848130), перехватчик C:\WINDOWS\system32\Drivers\SYMEVENT.SYS, драйвер опознан как безопасный
Функция NtCreateMutant (2B) перехвачена (80617718->8A655260), перехватчик не определен
Функция NtCreateThread (35) перехвачена (805D1038->8A675158), перехватчик не определен
Функция NtDeleteKey (3F) перехвачена (806245FC->B18483B0), перехватчик C:\WINDOWS\system32\Drivers\SYMEVENT.SYS, драйвер опознан как безопасный
Функция NtDeleteValueKey (41) перехвачена (806247CC->B1848910), перехватчик C:\WINDOWS\system32\Drivers\SYMEVENT.SYS, драйвер опознан как безопасный
Функция NtFreeVirtualMemory (53) перехвачена (805B2FBA->8A67C1B0), перехватчик не определен
Функция NtImpersonateAnonymousToken (59) перехвачена (805F9258->8A5ED510), перехватчик не определен
Функция NtImpersonateThread (5B) перехвачена (805D7860->8A603CF0), перехватчик не определен
Функция NtMapViewOfSection (6C) перехвачена (805B2042->8A5FF3B8), перехватчик не определен
Функция NtOpenEvent (72) перехвачена (8060F0D6->8A8AE958), перехватчик не определен
Функция NtOpenProcessToken (7B) перехвачена (805EDF26->8A6066D0), перехватчик не определен
Функция NtOpenThreadToken (81) перехвачена (805EDF44->8A609E28), перехватчик не определен
Функция NtResumeThread (CE) перехвачена (805D4A18->8A61F3F0), перехватчик не определен
Функция NtSetContextThread (D5) перехвачена (805D2C1A->8A935828), перехватчик не определен
Функция NtSetInformationProcess (E4) перехвачена (805CDEA0->8A5F25F0), перехватчик не определен
Функция NtSetInformationThread (E5) перехвачена (805CC124->8A5E6240), перехватчик не определен
Функция NtSetValueKey (F7) перехвачена (806226D2->B1848B60), перехватчик C:\WINDOWS\system32\Drivers\SYMEVENT.SYS, драйвер опознан как безопасный
Функция NtSuspendProcess (FD) перехвачена (805D4AE0->8A603950), перехватчик не определен
Функция NtSuspendThread (FE) перехвачена (805D4952->8A655748), перехватчик не определен
Функция NtTerminateProcess (101) перехвачена (805D22D8->8A729E88), перехватчик не определен
Функция NtTerminateThread (102) перехвачена (805D24D2->8A605C20), перехватчик не определен
Функция NtUnmapViewOfSection (10B) перехвачена (805B2E50->8A603A50), перехватчик не определен
Функция NtWriteVirtualMemory (115) перехвачена (805B43D4->8A662B30), перехватчик не определен
C:\Program Files\Common Files\Spigot\Search Settings\wth160.dll --> Подозрение на Keylogger или троянскую DLL
C:\Program Files\Common Files\Spigot\Search Settings\wth160.dll>>> Поведенческий анализ 
  1. Реагирует на события: клавиатура, все события
C:\Program Files\Common Files\Spigot\Search Settings\wth160.dll>>> Нейросеть: файл с вероятностью 0.00% похож на типовой перехватчик событий клавиатуры/мыши

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

Подскажите пожалуйста в чем может быть причина, и если кто сталкивался с задачей организации сбора логов с компьютера в сети как это лучше организовать? :confused:
 
Решение
Проблема с записью скрипта устранена =) дело оказалось в том, что в сети находился компьютер с таким же именем и ярлыке на сетевую папку обращение шло по имени компьютера. Когда переписал на IP адрес все заработало!

Осталось сделать грамотно скрипт, что бы лог сохранялся в папку с именем компьютера, а лучше с IP адресом и желательно с текущей датой =)
Выложил такую же папку на обычную рабочую станцию в сети, скрипт отработал и протокол был создан... Странно, все делается с правами админа. Буду разбираться с правами.
 
Проблема с записью скрипта устранена =) дело оказалось в том, что в сети находился компьютер с таким же именем и ярлыке на сетевую папку обращение шло по имени компьютера. Когда переписал на IP адрес все заработало!

Осталось сделать грамотно скрипт, что бы лог сохранялся в папку с именем компьютера, а лучше с IP адресом и желательно с текущей датой =)
 
http://z-oleg.com/secur/avz_doc/script_getcomputername.htm

Добавлено через 3 минуты 41 секунду
по второй части вопроса, текущую дату удалось получить такой командой
Код:
AddToLog(FormatDateTime('dd.mm.yyyy',now));

осталось только подставить эти переменные в этот скрипт

Добавлено через 2 минуты 19 секунд
а лучше с IP адресом
может лучше хеш ? http://z-oleg.com/secur/avz_doc/script_getcomputerhash.htm
 
Написал вот так

Код:
var
AVZLogDir : string;
Begin
CreateDirectory('\\name_server\avz4\log\'+GetComputerName);
AVZLogDir := ('\\name_server\avz4\log\'+GetComputerName);
ExecuteStdScr(2);
end.

В папке LOG создается папка с именем компьютера, но в папке с именем компьютера лог не записывается, не подскажете в чем может быть причина?
 
В папке LOG создается папка с именем компьютера, но в папке с именем компьютера лог не записывается, не подскажете в чем может быть причина?
потому что сделали винегрет, смешав куски кода из однотипных скриптов, в каждом из которых указывается свой путь к папке.
осталось только подставить эти переменные в этот скрипт
подставьте название папки в этот скрипт и проверяйте.

Добавлено через 5 минут 5 секунд
стандартный №2 вызывать уже не надо, этим скриптом вы получите полностью идентичный лог.
 
Последнее редактирование:
потому что сделали винегрет, смешав куски кода из однотипных скриптов, в каждом из которых указывается свой путь к папке.
Не понимаю вот этого. Что значит винегрет? В обеих строчках указывается одинаковый путь.

подставьте название папки в этот скрипт и проверяйте.

Сделал так

Код:
var
 AVZLogDir : string;
begin
 // Формирование имени рабочей папки
 AVZLogDir := ('\\name_server\avz4\log\'+GetComputerName);
 CreateDirectory(AVZLogDir);
 // Настройка AVZ
 SetupAVZ('EvLevel=3'); // Эвристика на максимум
 SetupAVZ('ExtEvCheck=Y'); // Расширенный анализ включен
  AddToLog('Запуск сканирования');
 // Запуск сканирования
 RunScan;
 AddToLog('RunScan прошло успешно');
 // Выполнение исследования системы
 ExecuteSysCheck(AVZLogDir+'virusinfo_syscheck.htm');
 AddToLog('ExecuteSysCheck прошло успешно');
end.

В папку LOG лог пишется, с таким именем computername_virusinfo_syscheck.htm. В целом цель достигнута но мне бы хотелось что бы в папке с логом создавалась папка с именем компьютера а туда уже писался лог.
 
В папку LOG лог пишется, с таким именем computername_virusinfo_syscheck.htm. В целом цель достигнута но мне бы хотелось что бы в папке с логом создавалась папка с именем компьютера а туда уже писался лог.
а папка с именем компьютера создаётся ?
Выполните скрипт
Код:
var
 AVZLogDir : string;
begin
 // Формирование имени рабочей папки
 AVZLogDir := ('\\name_server\avz4\log\'+GetComputerName);
 CreateDirectory(AVZLogDir);
end.

папка уже должна быть создана, если не создастся проверьте ещё такой скрипт

Код:
var
 AVZLogDir : string;
begin
 // Формирование имени рабочей папки
 AVZLogDir := (GetAVZDirectory+'\log\'+GetComputerName);
 CreateDirectory(AVZLogDir);
end.

Добавлено через 51 минуту 44 секунды
Понял, где ошибка. Выполняйте такой скрипт

Код:
var
 AVZLogDir : string;
begin
 // Формирование имени рабочей папки
 AVZLogDir := ('\\name_server\avz4\log\'+GetComputerName);
 CreateDirectory(AVZLogDir);
 // Настройка AVZ
 SetupAVZ('EvLevel=3'); // Эвристика на максимум
 SetupAVZ('ExtEvCheck=Y'); // Расширенный анализ включен
 // Запуск сканирования
 RunScan;
 // Выполнение исследования системы
 ExecuteSysCheck(AVZLogDir+'\virusinfo_syscheck.htm');
end.

при желание можно и дату в название вставить.
 
Да последний скрипт сделал все как надо. Отлично, большое спасибо!

P.S. Только мне осталось непонятно почему ExecuteStdScr(2) не сохранял в переменную AVZLogDir? Там в самом скрипте что ли путь прописан?
 
Некропостинг, но задача в общем-то типовая. Вот аналогичное решение задачи от Олега Зайцева Запуск AVZ удаленно
Может кому-нибудь пригодится.
 
Назад
Сверху Снизу