Déploiement agent Tactical RMM et commandes de management

modifié le : 23 septembre 2022,
par Julien Louis
 

Introduction

Cet article fait suite à mon précédent article concernant la présentation et l'installation de Tactical RMM.

Je vais vous présenter les différentes méthodes de déploiement de l'agent Tactical RMM ainsi que différentes commandes de management possibles.

A savoir

  • Pour l'instant seul un agent Windows est pleinement fonctionnel. Les versions Linux et macOS sont en cours de développement.

  • Afin d'éviter la détection de l'agent par l'antivirus, 2 solutions :

    • Agent avec code signé par Microsoft.

      Un don mensuel de 50$ est demandé afin d'avoir accès à l'agent avec le code signé Microsoft. Le statut Sponsor est alors attribué au sein du projet Tactical RMM.

    • Agent sans code signé par Microsoft.

      Le setup généré dynamiquement de l'agent (explications plus bas) sans code signé peut provoquer une alerte virale sur votre système. L'utilisation de l'agent générique (via script, gpo) ne provoque pas d'alerte virale.

  • Penser à vérifier vos exclusions antivirus une fois l'agent Windows déployé :

  • Lors du déploiement de l'agent, les exclusions sont automatiquement créées dans Windows Defender.

  • Par défaut les mises à jour Windows sont désactivées automatiquement après l'installation de l'agent.

Déploiement agent

L'exécution de l'installation des agents doit être effectué sur les hôtes à surveiller.

Déploiement manuel

install_agent

  • Vérifier que le Client et le Site soient corrects.
  • Définir le type de machine (Server / Workstation) à qui s'adresse l'agent.
  • Définir le temps de validité de l'agent (Token expiration).
  • Définir les options appliqués par l'agent (Enable RDP, Enable Ping, Disable sleep/hibernate).
  • Sélectionner la méthode d'installation souhaitée :
    • Agent généré dynamiquement.

agent_dynamic

Attention à l'antivirus si le code de l'agent est non signé par Microsoft. Voir la section A lire au début de cet article.

  • Powershell : Génération d'un script Powershell. L'agent est générique et le scripts contient tous les paramètres de l'agent.
    • Autoriser l'exécution du script Powershell :
PS C:\> Set-ExecutionPolicy Unrestricted`
  • Manuel : L'agent est générique. Le script d'exécution est afficher à l'écran. Cette méthode est préconisée pour l'intégration dans des scripts et/ou des GPOs.

agent_manual

Attention à la durée du token si cette méthode est choisie pour une utilisation dans des scripts et/ou GPOs. Mettre une valeur très importante si besoin d'une validité permanente

Lien de déploiement

link_deploy

Astuce : Créer un client/site default avec un lien de déploiement (token avec une longue expiration) pour avoir une URL générique. Puis déplacer l'agent dans le client / site souhaité.

  • L'agent téléchargé à travers ce lien est de type dynamique. Il est potentiellement détectable par les antivirus (si code non signé). Se référer à la section A lire en début de cet article.

starwars_link_agent

Déploiement par GPO

La GPO de déploiement de l'agent doit être appliquée au niveau ordinateur afin que l'installation de l'agent se déroule sous un compte Local System ayant les droits nécessaires.

  • Récupérer le script d'installation de l'installation manuelle (voir plus haut) ainsi que l'exécutable de l'agent générique.
  • Stocker le script et l'agent.exe dans un dossier partager du contrôleur de domaine (exemple: C:\agent_rmm\).
  • Sur le domaine Windows, ouvrir la console MMC des GPOs :
gpmc.msc
  • Créer une nouvelle GPO ciblant une OU contenant des Ordinateurs.

gpo_oucpu

  • Editer cette GPO. Trois étapes sont nécessaire pour que celle-ci fonctionne parfaitement.
    • La création d'un dossier sur le poste client.

gpo_dir

  • La copie du script et de l'agent.exe sur le poste client.

gpo_fic

  • L'exécution d'un script au démarrage du poste client :

gpo_start

  • Patienter ou forcer l'application de la nouvelle GPO :

    gpupdate /force
  • Un modèle de GPO importable dans un domaine est disponible : GPO-Deploiement_agent_TacticalRMM

Arguments optionnels

  • Quelques arguments qui peuvent être utilisés dans des scripts :
    • log debug : Affiche un log verbeux lors de l'installation de l'agent
    • silent : Aucun message durant l'installation de l'agent
    • proxy "http://proxyserver:port" : Pour utiliser un proxy
    • meshdir "C:\Mesh Agent": Spécifier le chemin contenant meshagent.exe
    • nomesh : N'installe pas l'agent meshcentral. Pas de take control, remote terminal, file browser

Les commandes de management

Environnement virtuel Python

  • Se connecter en SSH au serveur Tactical RMM.
  • Lancer l'environnement virtuel python :
cd /rmm/api/tacticalrmm
source ../env/bin/activate

Les commandes

  • Reset a user's password :
python manage.py reset_password USERNAME
  • Reset a user's 2fa token :
python manage.py reset_2fa USERNAME
  • Find all agents that have X software installed :
python manage.py find_software "adobe"
  • Show outdated online agents :
python manage.py show_outdated_agents
  • Log out all active web sessions :
python manage.py delete_tokens
  • Check for orphaned tasks on all agents and remove them :
python manage.py remove_orphaned_tasks
  • Create a MeshCentral agent invite link :
python manage.py get_mesh_exe_url
  • Bulk update agent offline/overdue time :

    • Change offline time on all agents to 5 minutes :
      python manage.py bulk_change_checkin --offline --all 5
  • Change offline time on all agents in site named Example Site to 2 minutes :

python manage.py bulk_change_checkin --offline --site "Example Site" 2
  • Change offline time on all agents in client named Example Client to 12 minutes :
python manage.py bulk_change_checkin --offline --client "Example Client" 12
  • Change overdue time on all agents to 10 minutes :
python manage.py bulk_change_checkin --overdue --all 10
  • Change overdue time on all agents in site named Example Site to 4 minutes :
python manage.py bulk_change_checkin --overdue --site "Example Site" 4
  • Change overdue time on all agents in client named Example Client to 14 minutes :
python manage.py bulk_change_checkin --overdue --client "Example Client" 14