Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ScheduleRunner — Un outil C# offrant plus de flexibilité pour personnaliser les tâches planifiées, à la fois pour la persistance et le mouvement latéral lors d'opérations d'équipe rouge. | Kitploit
Outils/GitHubGitHub/netero1010/schedulerunner
Mécanismes de PersistanceÉvasion IDS/IPSMouvement LatéralPost-ExploitationRed Teaming
GitHubnetero1010/schedulerunner

ScheduleRunner

Un outil C# offrant plus de flexibilité pour personnaliser les tâches planifiées, à la fois pour la persistance et le mouvement latéral lors d'opérations d'équipe rouge.

Voir le dépôt
34748il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ScheduleRunner - Un outil C# offrant plus de flexibilité pour personnaliser les tâches planifiées, à la fois pour la persistance et le mouvement latéral lors d'opérations Red Team


La tâche planifiée est l'une des techniques d'attaque les plus populaires de la dernière décennie et elle est encore couramment utilisée par les hackers/red teamers pour la persistance et le mouvement latéral.

Un certain nombre d'outils C# ont déjà été développés pour simuler l'attaque à l'aide de tâches planifiées. J'ai expérimenté certains d'entre eux, mais chacun présente ses propres limites en matière de personnalisation de la tâche planifiée. Par conséquent, ce projet vise à fournir un outil C# (compatible avec l'exécution d'assemblys de CobaltStrike) qui inclut les fonctionnalités dont j'ai besoin et offre suffisamment de flexibilité pour personnaliser la tâche planifiée.

Capture d'écran :

Comment faire

Méthodes (/method) :

MéthodeFonction
createCréer une nouvelle tâche planifiée
deleteSupprimer une tâche planifiée existante
runExécuter une tâche planifiée existante
queryInterroger les détails d'une tâche planifiée ou de toutes les tâches planifiées sous un dossier
queryfoldersInterroger tous les sous-dossiers dans les tâches planifiées
moveEffectuer un mouvement latéral à l'aide d'une tâche planifiée (création, exécution et suppression automatiques)

Options pour la création d'une tâche planifiée (/method:create) :

[*] sont des champs obligatoires.

Options pour la suppression d'une tâche planifiée (/method:delete) :

[*] sont des champs obligatoires.

Options pour l'exécution d'une tâche planifiée (/method:run) :

MéthodeFonction
[*] /tasknameSpécifier le nom de la tâche planifiée
/folderSpécifier le dossier où la tâche planifiée est stockée (par défaut : \)
/remoteserverSpécifier le nom d'hôte ou l'adresse IP d'un ordinateur distant

[*] sont des champs obligatoires.

Options pour l'interrogation d'une tâche planifiée (/method:query) :

MéthodeFonction
/tasknameSpécifier le nom de la tâche planifiée
/folderSpécifier le dossier où la tâche planifiée est stockée (par défaut : \)
/remoteserverSpécifier le nom d'hôte ou l'adresse IP d'un ordinateur distant

[*] sont des champs obligatoires.

Options pour le mouvement latéral via tâche planifiée (/method:move) :

[*] sont des champs obligatoires.

Exemple

Créer une tâche planifiée appelée "Cleanup" qui sera exécutée tous les jours à 23h30.

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /author:netero1010

Créer une tâche planifiée appelée "Cleanup" qui sera exécutée toutes les 4 heures sur un serveur distant

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:hourly /modifier:4 /program:rundll32.exe /argument:c:\temp\payload.dll /remoteserver:TARGET-PC01

Supprimer une tâche planifiée appelée "Cleanup"

ScheduleRunner.exe /method:delete /taskname:Cleanup

Exécuter une tâche planifiée appelée "Cleanup"

ScheduleRunner.exe /method:run /taskname:Cleanup

Interroger les détails d'une tâche planifiée appelée "Cleanup" sous le dossier "\Microsoft\Windows\CertificateServicesClient" sur un serveur distant

ScheduleRunner.exe /method:query /taskname:Cleanup /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01

Interroger toutes les tâches planifiées sous un dossier spécifique "\Microsoft\Windows\CertificateServicesClient" sur un serveur distant

ScheduleRunner.exe /method:query /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01

Interroger tous les sous-dossiers dans les tâches planifiées

ScheduleRunner.exe /method:queryfolders

Effectuer un mouvement latéral à l'aide d'une tâche planifiée vers un serveur distant en utilisant un compte utilisateur spécifique

ScheduleRunner.exe /method:move /taskname:Demo /remoteserver:TARGET-PC01 /program:rundll32.exe /argument:c:\temp\payload.dll /user:netero1010

Créer une tâche planifiée appelée "Cleanup" en utilisant la technique de masquage de tâche planifiée :

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /author:netero1010 /technique:hide

Supprimer une tâche planifiée appelée "Cleanup" ayant utilisé la technique de masquage de tâche planifiée :

ScheduleRunner.exe /method:delete /taskname:Cleanup /technique:hide

Technique de masquage de tâche planifiée

Cette technique a été utilisée par l'acteur malveillant HAFNIUM et découverte récemment par Microsoft. Elle vise à rendre la tâche planifiée non interrogeable par les outils et invisible dans le Planificateur de tâches.

Pour utiliser cette technique, vous devez disposer de "NT AUTHORITY/SYSTEM" et ScheduleRunner effectuera les opérations suivantes :

  1. Supprimer la valeur "SD" de "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree[task name]"
  2. Supprimer le fichier XML de la tâche planifiée "C:\Windows\System32\Tasks[task name]"

Pour supprimer une tâche planifiée créée avec cette technique, il faut ajouter "/technique:hide" dans la méthode de suppression pour la supprimer correctement.

Inconvénient de cette technique :

La tâche continuera de s'exécuter jusqu'au prochain redémarrage du système, même si elle est supprimée via le registre. Par conséquent, il est préférable de ne pas utiliser cette technique sur un serveur pour vos opérations.

Démo

Comment faire

Bibliothèque et référence utilisées :

BibliothèqueLien
TaskSchedulerhttps://github.com/dahall/TaskScheduler
RéférenceLien
SharpPersisthttps://github.com/mandiant/SharPersist
Technique de masquage de tâche planifiéehttps://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
Télécharger l’outil
MéthodeFonction
[*] /tasknameSpécifier le nom de la tâche planifiée
[*] /programSpécifier le programme exécuté par la tâche
[*] /triggerSpécifier le type de planification. Les valeurs valides sont : "minute", "hourly", "daily", "weekly", "onstart", "onlogon" et "onidle"
/modifierSpécifier la fréquence d'exécution de la tâche dans son type de planification. Applicable uniquement pour les types de planification tels que "minute" (ex : 1-1439 minutes), "hourly" (ex : 1-23 heures) et "weekly" (ex : lun, sam, dim)
/starttimeSpécifier l'heure de début pour le type de planification quotidienne (ex : 23:30)
/argumentSpécifier l'argument de ligne de commande pour le programme
/folderSpécifier le dossier où la tâche planifiée est stockée (par défaut : \)
/workingdirSpécifier le répertoire de travail dans lequel la tâche planifiée sera exécutée
/authorSpécifier l'auteur de la tâche planifiée
/descriptionSpécifier la description de la tâche planifiée
/remoteserverSpécifier le nom d'hôte ou l'adresse IP d'un ordinateur distant
/userExécuter la tâche avec un compte utilisateur spécifié
/techniqueSpécifier la technique d'évasion :
- "hide" : Une technique utilisée par le malware HAFNIUM qui masque la tâche planifiée des requêtes de tâches

[!] https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
[!] Cette technique ne prend pas en charge l'exécution à distance en raison des privilèges sur le registre distant. Elle nécessite "NT AUTHORITY\SYSTEM" et la tâche continuera de s'exécuter jusqu'au redémarrage du système même après sa suppression
MéthodeFonction
[*] /tasknameSpécifier le nom de la tâche planifiée
/folderSpécifier le dossier où la tâche planifiée est stockée (par défaut : \)
/remoteserverSpécifier le nom d'hôte ou l'adresse IP d'un ordinateur distant
/techniqueSpécifier si la tâche planifiée a été créée à l'aide d'une technique d'évasion :
- "hide" : Supprimer la tâche planifiée ayant utilisé la technique de "masquage de tâche planifiée"

[!] La suppression nécessite "NT AUTHORITY\SYSTEM" et la tâche continuera de s'exécuter jusqu'au redémarrage du système même après sa suppression
MéthodeFonction
[*] /tasknameSpécifier le nom de la tâche planifiée
[*] /programSpécifier le programme exécuté par la tâche
[*] /remoteserverSpécifier le nom d'hôte ou l'adresse IP d'un ordinateur distant
/triggerSpécifier le type de planification. Les valeurs valides sont : "minute", "hourly", "daily", "weekly", "onstart", "onlogon" et "onidle"
/modifierSpécifier la fréquence d'exécution de la tâche dans son type de planification. Applicable uniquement pour les types de planification tels que "minute" (ex : 1-1439 minutes), "hourly" (ex : 1-23 heures) et "weekly" (ex : lun, sam, dim)
/starttimeSpécifier l'heure de début pour le type de planification quotidienne (ex : 23:30)
/argumentSpécifier l'argument de ligne de commande pour le programme
/folderSpécifier le dossier où la tâche planifiée est stockée (par défaut : \)
/workingdirSpécifier le répertoire de travail dans lequel la tâche planifiée sera exécutée
/authorSpécifier l'auteur de la tâche planifiée
/descriptionSpécifier la description de la tâche planifiée
/userExécuter la tâche avec un compte utilisateur spécifié