Jump to content
Sign in to follow this  
Cherubim

Тихий режим

Recommended Posts

Добрый день.

 

Имеется локальная сеть. Есть доменная учетная запись "админ" которая имеет админские права на всех компьютерах.

 

Ситуация:

на компьютере Комп1 имеется подозрение на вирус, которые не детектируется антивирусом.

 

Что делаем в обычном случае:

копируем на Комп1 дистр AVZ. заходим по рдп на компьютер, запускаем AVZ, запускаем скрипт №2 "помощь". В итоге отвлекаем пользователя от работы.

 

Что хотелось бы:

запустить данный скрипт удаленно с компьютера администратора, скопировать лог и никуда не ходить и не отвлекать пользователя. Так сказать "работать в тихом режиме".

 

 

Имеются ли у кого какие нибудь наработки по данной теме?

 

Спасибо.

Share this post


Link to post
Добрый день.

 

Имеется локальная сеть. Есть доменная учетная запись "админ" которая имеет админские права на всех компьютерах.

 

Ситуация:

на компьютере Комп1 имеется подозрение на вирус, которые не детектируется антивирусом.

 

Что делаем в обычном случае:

копируем на Комп1 дистр AVZ. заходим по рдп на компьютер, запускаем AVZ, запускаем скрипт №2 "помощь". В итоге отвлекаем пользователя от работы.

 

Что хотелось бы:

запустить данный скрипт удаленно с компьютера администратора, скопировать лог и никуда не ходить и не отвлекать пользователя. Так сказать "работать в тихом режиме".

Имеются ли у кого какие нибудь наработки по данной теме?

 

Спасибо.

 

Здравствуйте.

Я сам такой сценарий не отрабатывал, однако, на мой взгляд, при использовании KES это сделать можно несколькими методами.

Первое, что необходимо сделать, это сформировать интересующий вас скрипт в avz и понять, как его запустить без отображения окна http://z-oleg.com/secur/avz_doc/index.html..._demo_intro.htm http://z-oleg.com/secur/avz_doc/index.html...andlinespec.htm

 

Дальше в интерфейсе KES нажимаете по интересующему компьютеру ПКМ, выбираем Custom tools - remote diagnostic. Затем в левой части выбираем Start Utility и пишем все интересующие нас параметры запуска. Результат будет сохранен в переменной %klacdt_save_settings%

 

Второй метод (даже, наверное, проще) воспользоваться в KES функционалом удаленной установки пакета с любой программой.

 

Хотя, судя по информации со страницы http://z-oleg.com/secur/avz_doc/index.html...andlinespec.htm дополнительные инструменты не нужны и можно обойтись доменом + параметрами. Остается только непонятным, как лучше всего его запустить? Либо логонскрипт, но нужно ждать или принудительно пользователя отправлять в ребут. Либо нужно как-то другим способом запустить программу на удаленном компьютере немедленно...

Edited by iva666ka

Share this post


Link to post
Что хотелось бы:

запустить данный скрипт удаленно с компьютера администратора, скопировать лог и никуда не ходить и не отвлекать пользователя. Так сказать "работать в тихом режиме".

Имеются ли у кого какие нибудь наработки по данной теме?

Все очень просто:

0. Устанавливаем куда-то в сети FTP сервер. Проще всего прямо на сервер SC (далее по тексту SC - Kaspersky Security Center), так как управляемые им ПК пользователей гарантировано имеют с ним связь и есть IP достижимость. На сервере заводим какого-то юзера, к примеру AVZ. Можно использовать существующий FTP, заведя на нем пользователя. Пользователю назначается каталог по умолчанию и права читать/писать/создавать/удалять в нем.

1. создаем на SC где-то на диске папку, имя скажем SCAN-AVZ. Я обычно делаю каталог Tasks, в нем папки для заданий

2. Копируем туда AVZ (обычный, или в виде единственного EXE - не важно). В корне этой папки будет avz.exe

3. Создаем в этой папке файл avz.txt с скриптом, который выполнит сканирование, сделает исследование и передаст результат по FTP (параметры FTP знаем с шага 0).

4. В SC открываем "Удаленная установка\Инсталляционные пакеты". Там нажимаем "создать инсталляционный пакет", тип пакета - "создать инсталляционный пакет для программы, указанной пользователем". Даем смысловое имя пакету, скажем SCAN-AVZ. Указываем avz.exe в папке с п.п. 2. Ставим птичку "копировать всю папку в инсталляционный пакет" (это очень важно - чтобы в пакет попали базы AVZ и скрипт). В поле "параметры запуска..." пишем HiddenMode=3 Script=avz.txt Priority=-1 - это предпишет запускать AVZ в невидимом режиме, без GUI, с пониженном приоритетом (чтобы не мешать работе юзера) и с автозапуском скрипта из файла avz.txt

 

Скрипт из файла п.п. 3 должен отвечать рекомендациям:

1. Последней операцией должна быть команда ExitAVZ, иначе процесс AVZ останется в памяти и будет зазря потреблять ресурсы

2. В начале скрипта рекомендую поместить ActivateWatchDog(20*60); - это включит сторожевой таймер, и в случае глюка через 20 минут работы (время можно поставить любое разумное более 10 минут) работа AVZ будет прервана. Это защитит на случай сбоев в работе AVZ и гарантирует, что он будет завершен

3. Не использовать антикейлоггер посредством SetupAVZ('KeyloggerSearch=N'). Это важно, так как антикейлоггер "дразнит" потенциальные клавиатурные хуки, имитируя клавиатурный ввод. Так как окно AVZ невидимо, этот ввод может произойти в текущее окно пользователя и напугать его хуже вируса :)

4. Если на ПК пользователей есть выход в интернет, то включение команды ExecuteAVUpdate в начало скрипта обновит базы

5. При передаче файлов на FTP в имя файла включить дату-время и имя ПК (первое нужно, чтобы файлы не перетирали друг друга в случае повторных сканирований, второе позволдит понять, откуда пришел лог)

 

Пример такого скрипта:

var                                                 
WorkPath  : string;
LogTimeStamp : string;
FFtpServer, FFtpLogin, FFtpPasswd, FFtpPath : string; // Параметры подключения к серверу
     
// Передача файла
procedure FSendFile(AFileName, ASaveName : string);
begin
FTPSendFile(AFileName, FFtpServer, FFtpPath,  ASaveName,  false, FFtpLogin, FFtpPasswd);
end;

begin      
// Параметры связи с сервером
FFtpServer := '1.2.3.4';
FFtpLogin  := 'avz';
FFtpPasswd := 'avz'; 
FFtpPath   := '/';
// Формирование отметки времени
LogTimeStamp := FormatDateTime('YYYYMMDDHHNNSS', Now);
// Рабочий каталог 
WorkPath := NormalDir('%Tmp%\AVZSCAN\');

// Создание рабочего каталога в временной папке
CreateDirectory(WorkPath);

// Очистка карантинов (чтобы избавиться от того, что могло там быть от прошлого запуска)
ClearQuarantineEx(true);

// Настройка
SetupAVZ('QuarantineBaseFolder='+WorkPath); // Карантин размещать в папке Temp (важно на случай запуска из сетевой папки, при запуске заданием SC не важно)
SetupAVZ('UseQuarantine=Y'); // Включить карантин подозрительных файлов
SetupAVZ('Priority=-1');     // Пониженный приоритет
SetupAVZ('EvLevel=3');       // Эвристика на максимум
SetupAVZ('ExtEvCheck=Y');    // Расширенный анализ включен
SetupAVZ('QrOnlyEXE=Y');     // Карантин только исполняемых файлов (важно для исключения карантина документов, если не критимно - убрать)
SetupAVZ('HiddenMode=3');    // GUI блокирован
SetupAVZ('KeyloggerSearch=N');    // Антикейлоггер блокирован
SetupAVZ('SaveIPToLog=Y');    // Запись IP в XML протокол

                           
// Активирование сторожевого таймера на 15 минут
ActivateWatchDog(60 * 25); 
// Запуск сканирования (предварительно снимаем перехваты UserMode)
SearchRootkit(true, false);
RunScan;
// Автокарантин
ExecuteAutoQuarantine;         
// Создание архива с карантином
CreateQurantineArchive(WorkPath + 'qr.zip');
// Выполнение исследования системы
ExecuteSysCheckEX(WorkPath + 'log.htm', $FFFFFFFF, true, 1+4+8+16+64);
// Отправка архива с логами на сервер
FSendFile(WorkPath + 'log.zip', GetComputerName+'_'+LogTimeStamp+'_log.zip'); 
// Отправка архива с карантином на сервер
FSendFile(WorkPath + 'qr.zip',  GetComputerName+'_'+LogTimeStamp+'_qr.zip');
// Очистка карантина и архива с ним (после отправки они не нужны)
ClearQuarantineEx(true);       
// Удаление архивов
DeleteFile(WorkPath + 'qr_log.zip');
DeleteFile(WorkPath + 'qr.zip');
// Чистка следов от AVZ в реестре
ExecuteStdScr(6);
// Выход из AVZ
ExitAVZ;
end.

 

Далее остается запустить установку этого пакета на заданных ПК (можно на одном, на группе, на выбранном ПК ...) и изучить собранные на FTP логи и карантины. Запуск можно делать вручную, можно настроить в SC расписание. Собираемый таким образом карантин совместим с http://virusinfo.info/content.php?r=290-virus-detector/ (можно загрузить карантин напрямую в http://virusinfo.info/virusdetector/uploadform.php и посмотреть результат, там по каждому файле есть возможность посмотреть отчет на портале Kaspersky Application Advisor). Если карантин не нужен, из скрипта нужно исключить FSendFile(WorkPath + 'qr.zip', GetComputerName+'_'+LogTimeStamp+'_qr.zip'); и ExecuteAutoQuarantine.

 

Если ПК не управляются SC, то с произвольным запуском будет хуже, но решений много. Если есть SCCM, то запуск при помощи SCCM очень похож на запуск посредством SC - ничего не меняется, кроме того, что задание установки делается в SCCM, описаний этого процесса много, вот например - http://www.oszone.net/9442/software_distribution

 

Если SCCM тоже нет, алгоритм меняется:

1. создаем на любой доступной всем на чтение сетевой шаре папку, имя скажем SCAN-AVZ. Важно, что пользователи не должны иметь прав на запись в этот каталог)

2. Копируем туда AVZ (обычный, или в виде единственного EXE - не важно). В корне этой папки будет avz.exe

3. Создаем в этой папке файл avz.txt с скриптом, который выполнит сканирование, сделает исследование и передаст результат по FTP (параметры FTP знаем с шага 0).

 

Далее запуск ведется:

1. при помощи rexec

2. Посредством Logon Script (минус - нельзя запустить произвольно в нужный момент)

3. При помощи планировщика задач (задание планировщика несложно организовать доменной политикой)

Во всех случаях указывается полный путь к AVZ в сетевой шаре, и задаются параметры HiddenMode=3 Script=avz.txt Priority=-1

Share this post


Link to post

в локальной сети можно через psexec, например

psexec \\pcname -n 3 -s -d \\путь_до_AVZ\avz.exe Priority=-1 nq=Y HiddenMode=3 Script=\\путь_до_скрипта AVZ\скриптAVZ

, а уже в скрипте и логи именовать и пр., например у Меня так:

Var

pcpathlog:string;

// Скрипт сбора логов с компьютеров сети

begin

 

// Пауза на 50 сек, чтобы не мешать автозагрузке

//Sleep(50);

 

// Настройка AVZ

SetupAVZ('UseQuarantine=Y'); // Включить карантин

SetupAVZ('EvLevel=3'); // Эвристика на максимум

SetupAVZ('ExtEvCheck=Y'); // Расширенный анализ включен

 

// Активирование сторожевого таймера на 15 минут

ActivateWatchDog(60 * 15);

 

// Выполнить исследование системы

ExecuteStdScr(2);

 

// Путь к папке логов по имени компьютера

pcpathlog:=GetAVZDirectory+'\Log\'+GetComputerName;

 

// Переносим логи в папки с именем компьютера

if not(DirectoryExists(pcpathlog)) then

CreateDirectory(pcpathlog);

 

// Удаляем предидущие логи и карантин в папках по имени компьютера

DeleteFileMask(GetAVZDirectory+'\Log\'+GetComputerName, '*.*', true);

DeleteFileMask(GetAVZDirectory+'\Quarantine\'+GetComputerName, '*.*', true);

 

if FileExists(GetAVZDirectory+'\Log\virusinfo_syscheck.htm') then

RenameFile(GetAVZDirectory+'\Log\virusinfo_syscheck.htm', pcpathlog+'\virusinfo_syscheck.htm');

 

// Выполнить сбор подозрительных файлов

ExecuteStdScr(4);

if FileExists(GetAVZDirectory+'\Log\virusinfo_files_'+GetComputerName+'.zip') then

RenameFile(GetAVZDirectory+'\Log\virusinfo_files_'+GetComputerName+'.zip', pcpathlog+'\virusinfo_files_'+GetComputerName+'.zip');

 

// Удаляем *.xml из папки Log

DeleteFileMask(GetAVZDirectory+'\Log\', '*.xml', false);

 

// Удаляем *.zip из папки Log

DeleteFileMask(GetAVZDirectory+'\Log\', '*.zip', false);

 

// Добавление данных о имени ПК и сохранение протокола

AddToLog('---------------');

AddToLog('Протокол с компьютера '+GetComputerName);

AddToLog('Путь к AVZ = ' + GetAVZDirectory);

SaveLog(pcpathlog+'.log');

 

if FileExists(pcpathlog+'.log') then

RenameFile(pcpathlog+'.log', pcpathlog+'\'+GetComputerName+'.log');

 

// Завершение работы AVZ

ExitAVZ;

 

end.

Share this post


Link to post

Всем большое спасибо. Начитался, поумнел и сделал следующее:

Берем avz.exe и папку Base. создаем рядом (например) script2.txt.

Содержание script2.txt:

begin
//Обновляем базы
ExecuteAVUpdate;
//Стандартный скрипт №2
ExecuteStdScr(2);
// Отправка письма
SendEmailMessage('имя_почтового_сервера', 'AVZ', 'ваша_почта',
                ''+GetComputerName+'',
                '',
                false, '', '',
                'log\virusinfo_syscheck.zip',
                '',
                ''
                );
// Завершение работы AVZ 
ExitAVZ;
end.

 

Создаем пакет в KAV. выбираем avz.exe. Ставим галочку копировать всю папку и ставим параметры HiddenMode=3 Script=script2.txt Priority=-1.

 

Итог:

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

Edited by Cherubim

Share this post


Link to post
Sign in to follow this  

×
×
  • Create New...

Important Information

We use cookies to make your experience of our websites better. By using and further navigating this website you accept this. Detailed information about the use of cookies on this website is available by clicking on more information.