Некоторые исследователи безопасности Обнаружить, создано Исправлять запланированные реестр задачи, заодно удалив файл запланированного задания,может полностьюскрывать Запланированные задачу, и на выполнение это не влияет
Если вы хотите узнать о связанных технологиях, вы можете прочитать следующие статьи. https://mp.weixin.qq.com/s/ktGug1VbSpmzh9CEGKbbdw https://mp.weixin.qq.com/s/aS5MRwnYR5pqE1PmKiH24w https://payloads.cn/2021/0805/advanced-windows-scheduled-tasks.html
Тестовая среда для этой статьи:Windows Server 2016
Я думаю, что слово «планировщик задач» сложно произнести, поэтому в этой статье я использую его.
Создать запланированную задачу test1
Установите калькулятор так, чтобы он открывался каждую минуту и продолжался бесконечно
В основном включает в себя следующие регистрационные формы
Запланированные задачииз Id、Index、SD В этом положении набор
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
Исправлятьтребуется регистрация SYSTEM
Разрешения переданы здесь PsExec64.exe
получить SYSTEM
Разрешения на редактирование реестра
PsExec64.exe
даSysinternalsSuite
Один инструмент в комплекте https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
PsExec64.exe -i -s regedit
Вы можете увидеть это здесь Id、Index、SD
, согласно описанию статьи, Исправлять Index
и SD
Все можно сделать закрывая
попытаться Index
изценитьнастраиватьнабордля 0
Обновление в программе запланированных задач
Откройте для себя запланированные задачи test1
исчезнувший
файл запланированного задания Бит по умолчаниюнабор
C:\Windows\System32\Tasks
удалить test1
Запланированные задачи выполняются нормально
Я только что проверил, но больше не вижу.
schtasks /query /fo LIST /v | findstr "test1"
Невозможно найти
Если мы знаем путь и имя Запланированные задачи, попробуйте запросить
schtasks /query /tn "\test1" /V /FO LIST
Таким образом, вы можете запросить
Но логика да не имеет смысла,По умолчанию мы не видим Запланированные задачи,нет причин знать Запланированные имя задачи и путь
Get-ScheduledTask | findstr "test1"
Autoruns да SysinternalsSuite
Один инструмент в в комплекте, вы можете легко просмотреть в том числе Запланированные задача Подождите, чтобы начать устранение неполадок элемента
https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
Прямо сейчас мы запишем запланированного заданиеудалить, можем посмотреть, Запланированные задача выполнялась несколько раз назад, чтобы увидеть, сгенерированы ли новые файлы
Нет, с угла напильника этого не видно.
включать Журнал запланированных задач
Ожидаем следующего выполнения назад, зайдите проверить Журнал запланированных задач
Откройте менеджер журналов
eventvwr
приложение Служитьбревно -> Microsoft
-> Windows
-> TaskScheduler
фильтр Задача выполнена
то есть событиеID 102
проходить Журнал запланированных задачу можно найти в закрытии Запланированные Выполнение задачи
Сотрудничать вот так schtasks
Вы можете получить подробную информацию о запланированных задачах
Вот несколько советов для братьев, которые осуществляют длительный контроль.,Добавьте тест, включено ли бревно,Вы можете рассмотреть возможность удаления, связанного с этим, бревно.
мной в Windows Server 2016
Я попробовал это в прошлый раз и узнал Index
изценитьтолькода 0
скрывающий эффект достигается только тогда, когда
Так что можешь пройти Устранение неполадок запланированных Реестр задач, узнать все Index
для 0
Вот и все
Это значительно облегчит проверку.,Но да, Запланированные задачи находятся в очень глубоком каталоге.,Ручная проверка по-прежнему затруднена,Придется все это делать в Скрипте
Вот powershell
Скрипт
# Поиск в реестре Index ценитьдля 0 запланированные набор имени задачи и ее местоположения в реестре
$taskRegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
$tasks = Get-ChildItem -Path $taskRegistryPath -Recurse | ForEach-Object {
$taskName = $_.PSChildName
$indexValue = (Get-ItemProperty -Path $_.PSPath).Index
if ($indexValue -eq 0) {
[PSCustomObject]@{
TaskName = $taskName
RegistryPath = $_.PSPath -replace "Microsoft.PowerShell.Core\\Registry::"
}
}
}
# Распечатать Запланированные набор имени задачи и ее местоположения в реестре
$tasks | Select-Object TaskName, RegistryPath
Здесь я с удивлением обнаружил, что по умолчанию их так много Index
для 0
запланированные задачи
Конечно, здесь также печатаются наши скрытия Запланированные. задачи test1
Здесь будет Windows Server 2016
по умолчаниюзапланированные задачисередина Index
для 0
Запишите подробный контент, чтобы все могли его сравнить. Конечно, вы также можете написать программу для его сохранения.
Сначала напишите программу на основе Id
ценить获取 Actions
Бар
$taskCacheTreePath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
$taskCacheTasksPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks"
# Поиск в реестре Index ценитьдля 0 запланированные набор имени задачи и ее местоположения в реестре
$tasks = Get-ChildItem -Path $taskRegistryPath -Recurse | ForEach-Object {
$taskName = $_.PSChildName
$indexValue = (Get-ItemProperty -Path $_.PSPath).Index
if ($indexValue -eq 0) {
$taskId = (Get-ItemProperty -Path $_.PSPath).Id
$actionPath = $taskCacheTasksPath + "\" + $taskId
if(Test-Path -Path $actionPath) {
$taskActions = (Get-ItemProperty -Path $actionPath).Actions
} else {
$taskActions = «Нет записи»
}
[PSCustomObject]@{
TaskName = $taskName
RegistryPath = $_.PSPath -replace "Microsoft.PowerShell.Core\\Registry::"
Actions = $taskActions
}
}
}
# Распечатать Запланированные имя задачи, набор местоположения реестра и Actions
$tasks | Select-Object TaskName, RegistryPath, Actions
После расследования выяснилось, что Index
для 0
запланированные задачи Практически нет Actions
,существовать Tasks
В реестре соответствующего нет. Id
предметы
Если на сервере установлен Microsoft Edge Браузер, программа обновления браузера Index Будет меняться динамически, иногда да 0
Таким образом, вам не придется ничего сохранять.
Непосредственно через реестр Index
ценить,тогда пройди Запланированные задачи программыпросто удалить
Попробуйте использовать здесь schtasks
руководитьудалить
schtasks /Delete /TN "TaskName" /F
успехудалить
Попробуй на этот раз удалить SD Осознайте, что скрываетесь
удалить test1
,создать новыйзапланированные задачи test2
В основном включает в себя следующие регистрационные формы
Запланированные задачииз Id、Index、SD В этом положении набор
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
Исправлятьтребуется регистрация SYSTEM
Разрешения переданы здесь PsExec64.exe
получить SYSTEM
Разрешения на редактирование реестра
PsExec64.exe
даSysinternalsSuite
Один инструмент в комплекте https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
PsExec64.exe -i -s regedit
直接удалить SD
элемент
Обновить программу запланированных задач
Конечно же, снова исчезнувший
файл запланированного задания Бит по умолчаниюнабор
C:\Windows\System32\Tasks
Запланированные задачи выполняются нормально
Я только что проверил, но больше не вижу.
schtasks /query /fo LIST /v | findstr "test2"
Невозможно найти
Если мы знаем путь и имя Запланированные задачи, попробуйте запросить
schtasks /query /tn "\test2" /V /FO LIST
на этот раз это круто,schtasks
также Невозможно найти Понятно
Get-ScheduledTask | findstr "test2"
Autoruns да SysinternalsSuite
Один инструмент в в комплекте, вы можете легко просмотреть в том числе Запланированные задача Подождите, чтобы начать устранение неполадок элемента
https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
Прямо сейчас мы запишем запланированного заданиеудалить, можем посмотреть, Запланированные задача выполнялась несколько раз назад, чтобы увидеть, сгенерированы ли новые файлы
Нет, с угла напильника этого не видно.
включать Журнал запланированных задач
Ожидаем следующего выполнения назад, зайдите проверить Журнал запланированных задач
Откройте менеджер журналов
eventvwr
приложение Служитьбревно -> Microsoft
-> Windows
-> TaskScheduler
фильтр Задача выполнена
то есть событиеID 102
проходить Журнал запланированных задачу можно найти в закрытии Запланированные Выполнение задачи
мной в Windows Server 2016
Я попробовал это в прошлый раз и узналпо сути Запланированные в задаче есть все SD
, так что пока запрос не SD
Вы можете найти это
Вот powershell
Скрипт
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
# Определите функцию для рекурсивного получения подэлемента и не печатайте ни одного "SD" Адрес реестра дочернего элемента элемента.
function Get-SubKeysWithoutSD($path) {
$subKeys = Get-ChildItem -Path $path -ErrorAction SilentlyContinue
foreach ($subKey in $subKeys) {
$subKeyPath = Join-Path -Path $path -ChildPath $subKey.PSChildName
$sdValue = Get-ItemProperty -Path $subKeyPath -Name "SD" -ErrorAction SilentlyContinue
if ($null -eq $sdValue) {
Write-Output $subKeyPath
}
Get-SubKeysWithoutSD -Path $subKeyPath
}
}
# Вызовите функцию, чтобы начать рекурсивное получение дочернего элемента.
Get-SubKeysWithoutSD -Path $registryPath
можно найти напрямуюскрыватьзапланированные задачи
попытаться пройти schtasks
руководитьудалить,Наверное, не хорошо,В конце концов, я не смог найти его, когда искал только что.
schtasks /Delete /TN "TaskName" /F
Запланированная задача не найдена
попытаться пройти Реестр给скрыватьзапланированные давай придумаем один SD
ценить,Изназадвзглянида Может ли это быть в Запланированные задачипрограммасерединаудалить
Напишите что-нибудь вскользь, например два 00
Обновить программу запланированных задач
Это еще не отображается, но я нашел powershell
Кажется, это уже можно обнаружить
Get-ScheduledTask -TaskName "test2"
Попробуйте использовать powershell
удалить Запланированные задачи
Unregister-ScheduledTask -TaskName "test2"
Проверьте реестр еще раз в это время
успехудалить Запланированные задачи
当然также可以попытатьсядругой Запланированные задачииз SD
копировать отдайте его, чтобы вы могли находиться в Запланированные Это показано в задачах программы, можно сразу удалить
Дайте прямые выводы Бар
SD
назад powershell
Я не могу, мне все еще нужно Исправлять Index
ценитьВ основном включает в себя следующие регистрационные формы
Запланированные задачииз Id、Index、SD В этом положении набор
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
Исправлятьтребуется регистрация SYSTEM
Разрешения переданы здесь PsExec64.exe
получить SYSTEM
Разрешения на редактирование реестра
PsExec64.exe
даSysinternalsSuite
Один инструмент в комплекте https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
PsExec64.exe -i -s regedit
尝试удалить SD
серединаиз一部分,Напримерудалить结尾из一个 00
Обновить программу запланированных задач
никакого воздействия,Кажется, удаления не хватает,Попробуйте удалить половину
Обновить программу запланированных задач
Конечно же, снова исчезнувший
файл запланированного задания Бит по умолчаниюнабор
C:\Windows\System32\Tasks
Запланированные задачи выполняются нормально
Эта деталь не была написана в предыдущей статье, и это та часть, которая вызывает головную боль у персонала.
Я только что проверил, но больше не вижу.
schtasks /query /fo LIST /v | findstr "test4"
schtasks /query /tn "\test4" /V /FO LIST
Невозможно найти, вот деталь, на которую стоит обратить внимание каждому. Обращайтесь по имени. test4
Если отображается да, доступ запрещен и запрос не существует. test5
дане могу найти указанный файл
Если вы не обратите внимания на детали в процессе тестирования, вы можете упустить некоторые открытия.
Get-ScheduledTask | findstr "test4"
В этом случае powershell
да можно увидеть напрямую
Get-ScheduledTask -TaskName "test4" | Format-List *
так Исправлять SD
ХОРОШО schtasks
и Запланированные задачипрограммаскрывать,верно powershell
Нет закрывающего эффекта
Отображается вот так Actions
Не очень понятно, проверьте по заказу ниже
(Get-ScheduledTask -TaskName "test4").Actions
Autoruns да SysinternalsSuite
Один инструмент в в комплекте, вы можете легко просмотреть в том числе Запланированные задача Подождите, чтобы начать устранение неполадок элемента
https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
Autoruns
Все еще нет
Прямо сейчас мы запишем запланированного заданиеудалить, можем посмотреть, Запланированные задача выполнялась несколько раз назад, чтобы увидеть, сгенерированы ли новые файлы
Нет, с угла напильника этого не видно
включать Журнал запланированных задач
Ожидаем следующего выполнения назад, зайдите проверить Журнал запланированных задач
Откройте менеджер журналов
eventvwr
приложение Служитьбревно -> Microsoft
-> Windows
-> TaskScheduler
фильтр Задача выполнена
то есть событиеID 102
проходить Журнал запланированных задачу можно найти в закрытии Запланированные Выполнение задачи
На этот раз нет хорошего способа просмотреть реестр, но да может быть одним из помощников для
Если имя этой запланированной задачи и
Actions
Все выглядит нормально, запланированные задача почти такая же, тогда хоть и пройдетpowershell
查到Понятно一堆信息,Получить его из Обнаружить непросто, тем более, что он находится в относительно глубоком каталоге.,powershell
Результаты для и Запланированные Объем работы по сравнению результатов выполнения задач программы один за другим будет относительно большим, и с ним нелегко справиться.
Вышеуказанные два вида закрытия,существовать Запланированные задача Служить перезагрузкой назад, будет ли это еще эффективно?
Я не буду это здесь демонстрировать, я сразу дам вам вывод.
Перезапуск службы запланированных задач не повлияет на пропуск. Index Осознайте, что скрываетесьзапланированные Выполнение задачи,Запланированные задача, дела как обычно
не будет созданфайл запланированного задания
Перезапуск службы запланированных задач не повлияет на пропуск.удалить SD Осознайте, что скрываетесьзапланированные Выполнение задачи,Запланированные задача, дела как обычно
не будет созданфайл запланированного задания
Перезапуск службы запланированных задач не повлияет на пропуск.удалить SD Осознайте, что скрываетесьзапланированные Выполнение задачи,Запланированные задача, дела как обычно
не будет созданфайл запланированного задания
скрытие Эффект остается прежним,Перезапуск службы запланированных задач не повлияет на пропуск.удалить Запланированные Выполнение задачи,Запланированные задача, дела как обычно
не будет созданфайл запланированного задания
для Что я должен здесь неоднократно упомянуть, нужно ли создавать файл запланированного А что насчет задания? На самом деле здесь есть маленькая деталь если Запланированные задачу отключить, а потом включить, по сути да будет перегенерировать файл по реестру запланированного задания если Запланированные задачи属性руководить Понятно Исправлять,Например调整Понятно
Actions
,Он также будет регенерирован в соответствии с новой ситуацией. Но да,Перезапуск Запланированные задача Служить не будет регенерировать файл запланированного задания
Только Исправлять SD
Вместо даудалить следует рассмотреть несколько направлений (конечно, в этом случае первые два Скрипта должны были быть выполнены, и никаких скрытозапланированных не обнаружено) задачи)
powershell
Сравните результаты с результатами других программschtasks
Заменить все запланированные в реестре Выполните задачу один раз и найдите ошибкуВот демонстрация использования третьего метода Бар.
пройти напрямую powershell
Скрипт для завершения
$start = Get-Date
$basePath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
# Получить все Запланированные задачи
$tasks = Get-ChildItem -Path $basePath -Recurse
# Создайте пустой массив для хранения найденных запланированных информация о задаче
$taskInfo = @()
# Траверс Запланированные задачу и покажи путь и имя
foreach ($task in $tasks) {
$taskPath = $task.PSPath.Replace("Microsoft.PowerShell.Core\Registry::", "")
$taskName = $task.Name.Replace("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree", "")
$exePath = "schtasks.exe"
$arguments = "/query /tn ""$taskName"""
# Запустить исполняемый файл
$process = Start-Process -FilePath $exePath -ArgumentList $arguments -NoNewWindow -PassThru -RedirectStandardOutput "stdout.txt" -RedirectStandardError "stderr.txt" -Wait
# Чтение результатов выполнения
$exitCode = $process.ExitCode
# $stdout = Get-Content "stdout.txt"
$stderr = Get-Content "stderr.txt"
if ($stderr -and $stderr.Contains("Ошибка: доступ запрещен. ")) {
$taskInfo += [PSCustomObject]@{
"TaskName" = $taskName
"RegistryPath" = $basePath + $taskName
}
}
}
# Воля Запланированные информация о задача отображается в виде таблицы
$table = $taskInfo | Format-Table -AutoSize | Out-String -Width 500
Write-Host $table
$end = Get-Date
Write-Host -ForegroundColor Red ('Total Runtime: ' + ($end - $start).TotalSeconds)
Скрипт выполняется медленно и генерируется в текущем каталоге. stderr.txt
и stdout.txt
用来середина转,Если текущий каталог уже содержит эти два файла,Рекомендуется создать новый,и выполнить в нем,Чтобы избежать перезаписи обычных файлов
пройти напрямую powershell
удаление хорошо, если одновременно используется и этот метод Index
набор 0
, вы можете рассмотреть Исправлять из реестра Index
для非 0
ценить, тогда пройди powershell
удалить
Unregister-ScheduledTask -TaskName "test4"
успехудалить Запланированные задачи
папка testdir
Запланированные задачи test5
у папки тоже есть такой SD
ценить, или только один SD
ценить
Сначала сохраните ценить, чтобы завершить эксперимент за один раз.
Сохранить назадудалить половину
Обновить программу запланированных задач
и Нет закрывающего эффекта
Обновить программу запланированных задач
Сообщено об ошибке,Пишет, что папка не найдена,обновить еще раз
папка и файлы пропали
Запланированные задачи Эффект нормальный
Запланированные задачи выполняются нормально
Запланированные задачи выполняются нормально
Его до сих пор можно увидеть в Журнале запланированных задач.
Не могу видеть это по-другому
Идея состоит в том, чтобы получить все субтитры реестра и удалить их все. SD
Чтобы узнать элемент, используйте Запланированные напрямую задачиудалить SD
Скрипт, используемый, когда
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree"
# Определите функцию для рекурсивного получения подэлемента и не печатайте ни одного "SD" Адрес реестра дочернего элемента элемента.
function Get-SubKeysWithoutSD($path) {
$subKeys = Get-ChildItem -Path $path -ErrorAction SilentlyContinue
foreach ($subKey in $subKeys) {
$subKeyPath = Join-Path -Path $path -ChildPath $subKey.PSChildName
$sdValue = Get-ItemProperty -Path $subKeyPath -Name "SD" -ErrorAction SilentlyContinue
if ($null -eq $sdValue) {
Write-Output $subKeyPath
}
Get-SubKeysWithoutSD -Path $subKeyPath
}
}
# Вызовите функцию, чтобы начать рекурсивное получение дочернего элемента.
Get-SubKeysWithoutSD -Path $registryPath
Таким образом вы сможете найти реестр этого закрывающегося
Перезапуск Запланированные задачиназад,Запланированные задача все еще закрывается, новых файлов не создано запланированного задания,Запланированные задача все еще актуальна
Вышеупомянутое можно проверить, существует оно или нет. SD
элементизпапка,Если бы нападавший был более извращенным,Непосредственно измените всю папку в реестре, чтобы удалить,Что произойдет?
Не спешите и сразу становитесь извращенцем. Начнем с преступников. задачиtest5
удалить Терять
без задержки Запланированные выполнение задачи
Начав извращаться, удаление выпало testdir
без задержки Запланированные выполнение задачи
На этот раз не могу узнать, конечно в Журнале запланированных задач они есть.
Перезапускназад Запланированные задачи就没Понятно
Друзья, прочитавшие предыдущую статью, обязательно знают, что это за дадля. 《Запланированные Кто решает выполнение задачи | Windows Экстренное реагирование》
Интересное противостояние
Этот тип закрытия обычно классифицируется следующим образом:
Index
для 0
скрывать
Слабость такого рода закрытия также да. Index
для 0
。Перезапуск Запланированные задачи Служить Запланированные задача продолжить выполнение без промедленияSD
элемент
Слабость такого рода закрытия также да.Запланированные задачиэлемент Нет SD
элемент,Перезапуск Запланированные задачи Служить Запланированные задача продолжить выполнение без промедленияSD
элемент
Основной слабостью этого вида закрытия является то, что его можно powershell
Обнаружить, schtasks
Для такого несуществующего реестра, показывающего различия, вы можете перечислить и перезапустить Запланированные. задачи Служить Запланированные задача продолжить выполнение без промедленияSD
элемент
Слабость такого рода закрытия также да.Запланированные нет папки с задачами SD
элемент,Перезапуск Запланированные задачи Служить Запланированные задача продолжить выполнение без промедленияСтатья немного длиннее,для гарантирует внешний вид,для大家准备Понятно PDF
Версия
https://pan.baidu.com/s/14nbBw-nXFnjF8xmllMu7bg?pwd=yjxy Код извлечения: yjxy
Вставьте один
flag
, если злоумышленник спросит Запланированные задачу выполняет бревно и регулярно пишет кучу несуществующего журнала запланированных задача Что произойдет? ? Я действительно встретил тебя, надеюсь, ты несерьезный человек~