Оборудование        24.06.2019   

Управление заданиями планировщика на локальных и удаленных системах.

Чтобы запустить «Планировщик заданий», нажмите на кнопку «Пуск», находящуюся в левой нижней части рабочего стола. Далее в поисковую строку введите слово «планировщик» и нажмите кнопку «Enter» (В английской версии Windows вместо слова вводится команда tasksch.msc). Программу можно открыть и другим способом – нажатием по «Пуск», затем «Панель управления» (расширенный вид), далее «Администрирование» – «Планировщик заданий».

Теперь отыщите на правой стороне окна программы меню «Действия». На выбор в списке можно выбрать несколько способов создания задачи. Самыми распространенными являются «Создать задачу» и «Создать простую задачу». После этого в окне создания задачи введите описание и название новой задачи. Имеется также возможность активировать функцию «Выполнить с наивысшими правами», если конечно для запуска нужны права администратора.

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

Перейдя на вкладку «Действия», чтобы создать задачу, нажмите кнопку «Создать». Для того, чтобы программа выполнялась по выбранному расписанию, в раскрывшемся списке «Действие» выберите пункт «Запуск программы». Далее нажмите на кнопку «Обзор» и укажите путь до исполняемого файла. С файлами на этом все.

Запланированная отправка почты

Для запланированной отправки электронной почты в раскрывающемся списке «Действие» выберите пункт «Отправка электронной почты». Заполните стандартные поля: адрес и имя электронной почты, имя и адрес получателя, заголовок письма, текст сообщения. Кнопкой «Обзор» укажите местоположение отправляемого файла, если это необходимо. В поле «Сервер smtp» вставьте smtp-сервер своей электронной почты и затем нажмите на кнопку «Ок».

Вывод на экран запланированного сообщения

Чтобы вывести на экран запланированное по расписанию сообщение, в списке «Действие» выберите пункт «Вывод сообщения». Обязательны для заполнения поля «Сообщение» и «Заголовок». Здесь пользователя останавливает лишь фантазия. Это может быть напоминание покормить кошку, выключить , посетить какой-нибудь сайт в интернете. Имеется возможность установить условия выполнения поставленной задачи, для этого нажмите кнопку «Условия». Дополнительные настройки можно регулировать и на вкладке «Параметры».

Чтобы окончательно создать задачу, надо завершить все действия и нажать кнопку «Ок». Созданное задание можно изменить, для этого выделите задачу в списке, в правом меню нажмите кнопку «Свойства». Нажатием на кнопку «Ок» внесенные изменения сохраняются.

Удаление задачи и автозапуск планировщика

Для удаления запланированного задания надо открыть «Планировщик заданий», из списка выделить необходимую задачу, в правом меню нажать кнопку «Удалить». Чтобы при запуске Windows планировщик тоже запускался, в «Панели управления» выбирается «Администрирование», затем «Службы». В списке открыть «Планировщик заданий», двойной клик по нему, на вкладке «Общие» установить типа запуска «Авто», для применения изменений нажать «Ок».

В предыдущих статьях мы учились проводить глобальный поиск по Сети на предмет уязвимых серверов, а также писать простые скрипты на BASH и Perl для выполнения различных исследовательских задач. А совсем свежее руководство было посвящено сканированию серверов на поиск уязвимости для Heartbleed.

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

К счастью Linux имеет встроенную функцию, которая позволяет выполнять такие задания по расписанию. Она называется cron или crond для демона, который запускает эти службы (демон - это просто процесс, работающий в фоновом режиме).

Как работает Cron в Linux

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

Демон cron запускается вместе с системой и продолжает работать до тех пор, пока работает сама система. Он читает файл или файлы конфигурации, описывающие его задания, т.е. те задачи, которые должны быть выполнены, и по какому расписанию запланировано их выполнение. Почти все, что мы можем делать при помощи командной строки, можно запланировать в обычном расписании с помощью cron.

Давайте посмотрим, как это работает и как это можно использовать для хакерских задач.

Шаг 1. Находим Crontab

Cron - это одна из тех функций, которая почти идентична для всех дистрибутивов Linux, поэтому то, что вы узнаете здесь, можно будет использовать в Ubuntu, Red Hat, Suse, Mint, Slackware, CentOS и других. Cron является частью семейства Linux/UNIX еще с 70-х годов, поэтому он проверен, широко используется и считается надежным инструментом, поскольку на деле доказал свою ценность.

Как и многие другие вещи в Linux, функция cron управляется конфигурационным файлом, который представляет собой обычный текстовый файл. В многопользовательской среде каждый пользователь имеет свой собственный конфигурационный файл для cron, но здесь мы сосредоточимся только на пользователе root в Kali.

Конфигурационный файл cron называется crontab или «cron table» («таблица cron»). Чтобы найти файл crontab, введите в консоли:

Locate crontab

На скриншоте выше видно, что он находится в директории /etc, впрочем, как любой другой конфигурационный файл в Linux (есть исключения, конечно).

Шаг 2. Открываем crontab

Давайте откроем его и посмотрим что же у него внутри. Это делается с помощью любого текстового редактора, но в этой статье мы будем использовать графический текстовый редактор, устанавливаемый в Kali по умолчанию - Leafpad. Введите в консоли:

Leafpad /etc/crontab

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

Шаг 3: Анатомия Crontab

Давайте разложим crontab на части. Как видно на скриншоте выше, crontab начинается с пяти прокомментированных строк, которые начинаются с символа решетки (#). Эти строки - просто объяснения и примечания, они не читаются и не выполняются самой системой.

После этих строк вы видите такую пару строк:

Первая из них определяет ту оболочку (shell), которая будет использована для запуска заданий. В нашем случае мы назначаем оболочку BASH командой, указанной после знака равенства. Если вы хотите использовать другую оболочку, вы можете определить ее явно в этой строке:

SHELL=/bin/sh

Вторая строка задает переменную PATH. Переменная PATH является переменной среды (в Windows тоже такое есть), которая сообщает системе, где ей искать команды, используемые в задании cron. Как правило, это файлы в директориях bin и sbin (бинарные, т.е. исполняемые файлы), которые содержат системные команды, используемые в Linux (ls, echo, ps, cd и другие).

Здесь значением по умолчанию является такая строка:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Это значит, что демон cron будет искать в этих директориях те команды, которые ему нужны для выполнения запланированных вами заданий. Если вы используете команду или файл, которой нет в этих директориях, то просто отредактируйте эту строку и добавьте нужную директорию после ввода двоеточия (:). Например:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/newdir

Шаг 4. Определение задач по расписанию

Теперь идет самое «мясо» файла crontab. В третьем разделе мы как раз и планируем выполнение тех заданий, которые нужно запускать.

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

Поля файла crontab следующие:

  • Minute - определенная минута, когда команда или задание будет запущено (0-59)
  • Hour - определенный час выполнения команды или задания (0-23)
  • Day of the Month - день месяца, когда будет запущена команда или задание (1-31)
  • Month - месяц выполнения команды или задания (1-12)
  • Day of the week - день недели выполнения команды или задания (0-6, воскресенье = 0)
  • User - пользователь, который разрешает выполнение этой команды или задания
  • Command - команда или задание, которое вы хотите запускать по расписанию

Звездочка (*) представляет собой слово «любой», поэтому это может быть любой день, час или минута.

Использование Cron для поиска уязвимых серверов

Теперь давайте представим, что мы хотим просканировать весь Земной шар на предмет IP-адресов, уязвимых для Heartbleed.

Сообщается, есть больше 300 000 серверов, которые по-прежнему не пропатчены от этой уязвимости. Это очень большое число, при более чем 2 миллиардов IP-адресов по всей планете. Это количество означает, что уязвимым к этой атаке будет только 1 из 10 000 IP-адресов. Это также значит, что нам нужно настроить сканер таким образом, чтобы он повторял поиск по тысячам IP-адресов, для того, чтобы найти хотя бы один уязвимый сервер.

Это идеальная задача для работы с cron!

Шаг 5. Определение расписания для нашего Heartbleed сканера

Мы можем запланировать сканирование, чтобы оно выполнялось каждую ночь, пока мы спим, в надежде на то, что каждое утро, проснувшись, узнаем о новой потенциальной жертве!

Давайте снова откроем crontab в любом текстовом редакторе.

Теперь нам нужно добавить только одну строку, чтобы запускать наш nmap-сканер каждую неделю в 2:05 ночи. Просто добавьте эту строку в ваш файл crontab:

05 2 * * 1,2,3,4,5 root nmap -sV --script=ssl-heartbleed 68.76.0.0/16

Существует множество программ и гаджетов разной функциональности для этого, но в этой статье я покажу как можно выключить, перезагрузить и отправить компьютер в режим сна с помощью стандартных средств Windows.
Этот способ проверялся на Windows XP, Windows 7 и Windows 8.

Для осуществления нам нужен "Планировщик заданий" (или Задач). В разных версия Windows Он расположен немного по разному.

В Windows XP :

Пуск - Панель управления - ярлык "Назначенные задания"


либо

Пуск - Все программы - Стандартные - Служебные - Назначенные задания

В Windows 7 :

Пуск - Панель управления - Администрирование - Расписание выполнения задач


либо

Пуск - Все программы - Стандартные - Служебные - Планировщик заданий

В Windows 8 достаточно ввести на начальном экране «Расписание выполнения задач» и кликнуть по плитке в результатах поиска параметров.

Перед тем, как настраивать Планировщик, нужно посмотреть включена ли его служба. Для этого нажимаем win +r (Пуск - ) и вводим services.msc .
В этом окне ищем "Планировщик заданий" и смотрим на его состояние. Оно должно быть "Работает". Если нет, то щелкаем на нем ПКМ и выбираем Запустить

Теперь приступим непосредственно к настройке Планировщика заданий .

Для Windows XP:

Запускаем, кликаем на "Добавить задание"


Появится Мастер планирования заданий в котором выбираем нужную задачу из списка, или же ищем её через Обзор...


Затем проводим всякие настройки с помощью Мастера. Ничего сложного.
В конце всех действий нужно будет ввести имя пользователя и пароль.
Имя можно узнать в Свойстве компьютера, а если пароля нет, то оставьте поле пустым.

Для Windows 7 и Windows 8:

Запускаем мастер, нажав на Создать простую задачу...


указываем имя и описание. Затем выбираем триггер. Иначе выражаясь - периодичность запуска задачи


для этого триггера можно указать дату и время задачи


выбираем действие. В данном случае выбираем "Запустить программу"


ну а теперь начинается самое интересное. В принципе можете указать как в и Windows XP - нажав на кнопку Обзор.. указав путь к исполняемому файлу программы. Но так же хочу обратить Ваше внимание на строку "Добавить аргументы". Об этом я напишу ниже.


Затем появится окно со всеми введенными данными, где нужно все проверить ещё раз и согласиться, нажав Готово .

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

За выключение компьютера, отвечает специальная служебная программа, которая находится на системном диске в папке \WINDOWS\system32\ и называется shutdown.exe (можете прямо сейчас её найти там и запустить. Только не удивляетесь если комп выведет сообщение о выключении).
За режим сна и гибернации отвечает программка rundll32.exe , которая находится там же.

Так вот. Можно либо создать файл для запуска этих программ с нужными нам параметрами, либо прописать их в Планировщик.

Вот только XP не поддерживает аргументы и параметры. Поэтому для него нужно создать файл.

1 вариант - указываем аргументы для программы на выключение, перезагрузку, сон и гибернацию .

Выключение компьютера

программа:
аргумент: –r

Режим гибернации

программа:
аргумент: powrprof.dll,SetSuspendState 0,1,0

Режим сна

программа: C:\Windows\System32\rundll32.exe
аргумент: powrprof.dll,SetSuspendState

Показываю скрин для "Выключение компьютера" на примере Windows 7:

Вот небольшой список аргументов, которые можно использовать в ОС Windows:

- ? – вывод справки по использованию (либо без ключа)

I – отображение графического интерфейса (при использовании этот ключ ставится впереди всех);

L – выход из системы (несовместима с ключом –m);

– отмена выполнения перезагрузки/выключения;

M – применение операции к удаленному компьютеру с именем;

T N – таймер выполнения операции в N секунд;

C “комментарий” – комментарий к операции (при использовании в окне будет отображен «комментарий», в командной строке обязательно заключать его в двойные кавычки, комментарий не должен быть длиннее 127 знаков);

F – принудительное завершение работы приложений без предварительного предупреждения;

D [u] [p]:xx:yy – код причины;

u – пользовательский код;

p – запланированное завершение;

xx – основной код причины (1-255);

yy – дополнительный код причины (1-65535).

2 вариант - создаем файл с аргументами на выключение, перезагрузку, сон и гибернацию .

Тут всё довольно просто.
Создаем новый документ в Блокноте, пишем туда команду и аргумент (например я хочу перезагрузку с таймером в 16 секунд и чтобы система предварительно меня предупредила о закрытии приложений), который будет выглядеть так:


Затем сохраняем его (Файл - Сохранить как), в поле "Тип файла" выберите "Все файлы". Имя указываете любое, а должно быть bat


Ну а дальше - нам нужно обратиться именно к этому файлу при выборе программы в Планировщике (помните, где выбирали с помощью кнопки Обзор... ).

Кстати, с помощью этого Планировщика можно сделать некое подобие будильника - просто указав в качестве файла путь к музыке, а потом указать время включения на 8 утра например.

Разумеется чтобы включить компьютер, нужно его не выключать, а отправить в Сон или Гибернацию, а затем (например для будильника) во вкладке «Параметры» в его свойствах включить опцию "Разбудить компьютер для запуска этого задания" - это для Windows XP.


Для Windows 7 нужно 2 раза щелкнуть по заданию в списке и на вкладке «Условия» выбрать "Пробуждать компьютер для выполнения задачи".

С помощью скриптов R можно быстро и бесплатно собирать данные из API различных сервисов или рекламных площадок и записывать их в базу данных. Но если вы регулярно пользуетесь скриптами, то есть ли смысл каждый раз запускать их вручную?

Я расскажу, как настроить запуск скриптов R с определенным интервалом в операционной системе Windows.

1. Как добавить путь к R-консоли в переменную окружения PATH?

PATH — переменная окружения Unix-подобных операционных систем, DOS, OS/2 и Microsoft Windows, представляющая собой набор директорий, в которых расположены исполняемые файлы. В основном, каждый выполняемый процесс или сеанс пользователя имеет собственную переменную PATH.

Эта инструкция относится к операционным системам Windows 8 и 10, но вы без проблем можете подробные руководства и для любой другой версии Windows.
1.1. В строке «Поиск» найдите «Система (Панель управления)» и нажмите на ссылку «Дополнительные параметры системы».

1.2. В окне свойств системы нажмите на кнопку «Переменные среды...».

1.3. В разделе «Переменные среды» кликните на переменную PATH и нажмите «Изменить». Если переменной PATH не существует, нажмите «Создать».

1.4. Добавьте в переменную путь к папке с файлом «R.exe ».

Bat-файл, по сути, похож на файл с расширением exe, но его код более простой и состоит из некоторых командных строк.

Создать bat-файл довольно просто. Можно записать команду запуска в обычный текстовый файл с расширением TXT, сохранить его и поменять расширение на «.bat ». Я опишу другой способ — создание bat-файла с помощью бесплатного блокнота Notepad++.

2.1. Откройте Notepad++ (скачать его можете по ссылке).

2.2. Введите следующую команду:

@echo off R CMD BATCH C:\R\myscript.R

Команда «@echo off » отключает вывод сообщений в командной строке при работе скрипта, вы можете изменить эту команду на «@echo on » и наблюдать за выполнением скрипта в ходе его работы.

Команда «R CMD BATCH » запускает выполнение R скрипта.

Во второй строке вместо «C:\R\myscript.R» пропишите путь к вашему файлу со скриптом R.

В результате файл будет выглядеть так:

2.3. Сохраните созданный текстовый файл с расширением BAT. Для этого в меню Notepad++ выберите пункт «Файл» — «Сохранить как» — «Batch file (bat, cmd, nt)».

Если вы не хотите, чтобы при автозапуске R-скрипта на экране появлялось окно командной строки, то скомпилируйте ваш bat-файла в exe — в таком случае скрипт будет работать в фоновом режиме и не будет вам мешать.

3.1. Скачайте бесплатную утилиту «Bat To Exe Converter» по ссылке .

3.2. Укажите bat-файл, который необходимо скомпилировать, а также путь и название будущего exe-файла.

3.3. В области «Видимость приложения» установите переключатель в положение «Невидимое приложение».

3.4. При желании установите иконку для вашего файла.

Чтобы установить иконку, перейдите на вкладку «Информация о версии» и с помощью кнопки «...» выберите нужную иконку в поле «Файл значка».

В качестве иконки можете использовать любое изображение в формате ICO или же нарисовать самостоятельно в бесплатном онлайн-редакторе .

Нажмите кнопку «Компилировать».

4. Настройте планировщик задач Windows

Заключительный этап настройки — добавить задачу в планировщик задач Windows.

Планировщик задач Windows — встроенная утилита (аналог линуксового CRON), с помощью которой можно запланировать в определенное время с заданными условиями:

  • запуск любой программы;
  • отправку электронной почты;
  • вывод на экран определенного сообщения.

4.1. Чтобы открыть планировщик задач, скопируйте в адресную строку открытой папки путь «%windir%\system32\taskschd.msc /s ».

4.2. В правой части планировщика выберите пункт «Создать задачу...».

4.3. На вкладке «Общие» в диалоговом окне «Создание задачи» введите название и при необходимости краткое описание.

4.4. На вкладке «Триггеры» настройте расписание запуска скрипта: нажмите «Создать» и установите, к примеру, повтор запуска скрипта каждый понедельник в 12:45.

На этом процесс настройки запуска R скриптов по расписанию закончен. Если вы все сделали правильно, в списке появится новая задача.

Вывод

С этим руководством настройка автозапуска займет не более десяти минут, и поможет сэкономить время в будущем.

Алгоритм действий:

  1. В переменной окружения PATH пропишите путь к консоли R.
  2. Создайте скрипт R, который будет выполнять нужные действия (например, сохранять результат в файл формата CSV или записывать в базу данных).
  3. Создайте bat-файл, в котором будет прописан путь к скрипту R.
  4. Скомпилируйте ваш bat-файла в exe, чтобы он запускался в фоновом режиме и не отвлекал от работы.
  5. В планировщике задач Windows добавьте повторяющееся задание на запуск bat-файла и установите определенный интервал времени.

Обрабатывать огромные массивы данных, агрегировать и передавать их в любые базы — просто и быстро, если вы правильно организовали свою работу.

Как администратору, вам, вероятно, приходится выполнять одни и те же или похожие задачи практически каждый день. Возможно, вы даже вынуждены приходить на работу раньше или оставаться допоздна, чтобы выполнять эти задачи в нера­бочее время. Такими задачами могут быть рутинные операции обслуживания, например, удаление временных файлов, чтобы избежать переполнения дисков, или резервное копирование важных данных. Среди этих задач встречаются процессы и по­сложнее, в частности просмотр журналов событий на всех биз­нес-серверах для выявления проблем, требующих решения. Хорошая новость в том, что если вы можете разбить эти зада­чи на этапы, есть шанс их автоматизировать. Microsoft Win­dows предоставляет для этого несколько способов, включая:

  • Schtasks - «продвинутая» утилита командной строки для запуска команд, сценариев и программ па основе расписа­ния. Задания могут быть назначены для запуска однократ­но, поминутно, через определенный интервал (например ежечасно, ежедневно или ежемесячно), при загрузке систе­мы, при входе в систему или во время простоя системы ;
  • Task Scheduler (Планировщик заданий) - GUI-утилита для запуска команд, сценариев и программ на основе рас­писания. Task Scheduler выполняет те же операции, что и утилита командной строки Schtasks, что позволяет исполь­зовать их совместно и управлять заданиями, созданными в любой из этих утилит при помощи любого инструмента.

Планирование заданий на локальных и удаленных системах

Расписание можно настроить для всего, что можно запустить в командной строке, включая утилиты командной строки, сце­нарии, приложения, ярлыки и документы. Также можно ука­зывать аргументы командной строки. Иногда задания назна­чаются для компьютера, с которым вы работаете в данный мо­мент (т. е. для локальной системы). Однако чаще при плани­ровании заданий вы делаете это для удаленных систем через сеть со своего локального компьютера (т. е, для удаленных компьютеров).

Событийно-управляемые задания заслуживают особого вни­мания, поскольку не всегда работают, как ожидается; к ним относятся задания, инициируемые при следующих событиях.

  • Запуске системы - если вы настраиваете задание на запуск при старте системы, планировщик заданий запускает его как неинтерактивный процесс. Задание выполняется до пол­ной обработки, принудительного завершения или до вык­лючения системы. Помните, что завершить выполняемые задания может только их владелец или администратор.
  • Входе в систему - если вы настраиваете задание на запуск при входе пользователя в систему, планировщик заданий запускает его, когда кто-то входит в систему. Задание выпол­няется до полной обработки, принудительного завершения или до выхода пользователя из системы. В зависимости от настройки задания, запускаемые при входе (logon tasks), мо­гут выполняться интерактивно или неинтерактивно.
  • Простое системы - если вы настраиваете задание на за­пуск в простое системы, планировщик заданий запускает его при отсутствии действий пользователя за указанное вре­мя. Например, можно создать задание, которое запускает­ся, если система простаивает пять минут. Но помните, что дальнейшие действия пользователя не завершат задание. Оно будет выполняться либо до конца, либо до принуди­тельного завершения.