[RESOLU] Paquet Trend Micro Apex One Security Agent update 6 (build 11564)

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

03 févr. 2022 - 08:56

:!: Mise à jour du 08/03/2023 :!: : Nouvelle version du paquet, nouvelle utilisation du paquet msi créé avec le ClientPackager. (source)

:!: Le fichier msi est généré avec le ClientPackager du serveur Apex One :!:

Le code du paquet :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_name = "TrendMicroSecurityAgent.msi"
properties = {
    'MyServer':'"myserver:8080|4343"',
    'MyDomain':'"Workgroup\Subdomain"',
    }

def install():
    # Initializing variables
    package_version = control.get_software_version()

    # Installing the package
    for to_update in installed_softwares('Trend Micro Apex One Security Agent'):
        if Version(to_update["version"]) < Version(package_version) or force:
            print(r"Upgrading: %s (%s)" % (bin_name, package_version))
            run(r'msiexec /fov "%s"' % bin_name) # If Agent already installed, upgrade.
    else:
        install_msi_if_needed(bin_name,properties=properties) # If Agent not installed, install.
Pour que la désinstallation fonctionne, il suffit de désactiver le mot de passe de désinstallation depuis la console serveur.
Dernière modification par olaplanche le 08 mars 2023 - 10:44, modifié 7 fois.
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1368
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

03 févr. 2022 - 10:38

merci pour ce partage :-)
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
gly
Messages : 24
Inscription : 30 mai 2019 - 11:45

03 févr. 2022 - 11:02

Super merci par contre une question, comment tu gères le fait que les agents Trend vont se mettre à jour seuls et que pour le coup le jour où tu va mettre à jour ton paquet WAPT, il voudra se mettre à jour sur les postes ?
J'ai testé et le problème c'est les paquets WAPT remontent en erreur car version déjà à jour.
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

03 févr. 2022 - 11:19

Je ne mets pas à jour le programme de l'agent via le serveur Apex One (configurable dans le serveur, gestion des agents, privilèges et autres paramètres).
Lorsque qu'il y a une nouvelle version du programme de l'agent, il faut générer un nouveau package msi avec le ClientPackager du serveur et mettre à jour le paquet WAPT ;)

EDIT : Si l'agent se met à jour seul de son côté, que tu mets à jour ton paquet plus tard. Au déploiement du nouveau paquet il détectera que la même version est déjà installée et ne la réinstallera pas sans erreur dans la console WAPT :
installing wapt-trend-micro-apex-one-security-agent
MSI TrendMicroSecurityAgent.msi already installed. Skipping msiexec
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
gly
Messages : 24
Inscription : 30 mai 2019 - 11:45

03 févr. 2022 - 15:22

EDIT : Si l'agent se met à jour seul de son côté, que tu mets à jour ton paquet plus tard. Au déploiement du nouveau paquet il détectera que la même version est déjà installée et ne la réinstallera pas sans erreur dans la console WAPT :
T'es sur de toi? Je me souviens que j'avais des erreurs moi
gly
Messages : 24
Inscription : 30 mai 2019 - 11:45

03 févr. 2022 - 16:15

En effet il ne réinstalle pas si déjà installé.

Par contre je ne trouve par ton parametre sur les clés de registre, est-ce parce qu'il faut désactiver le mot de passe à la désinstallation? Ou différence de version de console, je suis à l build 10064.

Merci
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

04 févr. 2022 - 09:09

Bonjour,

Non il n'est pas nécessaire de désactiver le mot de passe à la désinstallation dans la console serveur.
Je suis sur un build plus ancien (9167), pas encore pris le temps de m'occuper de le mettre à jour...

L'option se trouve dans ce menu :

Image

EDIT : le lien vers la doc officielle : https://docs.trendmicro.com/en-us/enter ... l_002.aspx
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

24 mai 2022 - 13:25

ok j'ai fait la mise jour du serveur build 10101 et les options d'autoprotection de l'agent ont effectivement disparu.
C'est une volonté de Trend Micro... source
Security Agent self-protection


Self-protection settings are automatically enabled and not configurable. Previous dependencies for the self-protection features have been removed to allow all Security Agents to be protected at all times.
Retour à la case départ :(
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

01 juin 2022 - 09:34

Premièrement pour que l'installation et la mise à jour de l'agent fonctionne alors qu'un mot de passe de désinstallation est configuré, il ne faut pas utiliser le package msi (installation OK, mise à jour KO le mot de passe de protection de l'agent est demandé...).

Il faut créer un package exe d'installation depuis le serveur qui fonctionnera pour l'installation et la mise à jour sans demander le mot de passe :
Image

Le code du paquet wapt adapté :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['{1841AFE1-4BA7-44D4-8700-6ACF860A8ED1}']

def install():
    # Initializing variables
    package_version = control.get_software_version()

    # Vérification de la version pour gestion d'erreur
    for to_install in installed_softwares('Trend Micro Apex One Security Agent'):
        if Version(to_install["version"]) < Version(package_version) or force:
            print ('installing %s' % control.package)
            install_exe_if_needed('TrendMicroSecurityAgent.exe')
        else:
            print ('%s already installed' % control.package)
    uninstallkey.remove('{1841AFE1-4BA7-44D4-8700-6ACF860A8ED1}')
Pour la désinstallation, je vous propose deux solutions que j'ai pu tester :

Solution 1 :

Désactiver la mot de passe de désinstallation depuis la console serveur, cela aura pour effet de passer la clé de registre "Allow Uninstall" à 1 sur les agents. Désinstallation possible avec le code suivant :

Code : Tout sélectionner

def uninstall():
    print ('uninstalling %s' % control.package)
    run(r'"msiexec.exe" /x {1841AFE1-4BA7-44D4-8700-6ACF860A8ED1} /qn')
Solution 2 :

Désinstallation possible avec le code suivant sans désactiver le mot de passe dans la console admin (le mot de passe sera en clair dans le paquet) :

Code : Tout sélectionner

def uninstall():
    print ('uninstalling %s' % control.package)
    run(r'"%s\Trend Micro\Security Agent\pccntmon.exe" -m <uninstall_password>' % programfiles32)
source

Quelques pistes qui n'ont pas abouties :

La création du package exe depuis le client packager s'appuie sur le fichier de conf ofcscan.ini du server, en éditant ce fichier on retrouve les options d'auto protection de l'agent :
[INI_CLIENT_SECTION]
SP_EnableFileProtection = 1
SP_EnableRegistryKeyProtection = 1
SP_EnableProcessProtection = 1
Malheureusement les mettre à 0 ne semble pas fonctionner...

Par contre dans la base de registre de l'agent suivante on retrouve bien les clés des options d'auto protection :
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TrendMicro\PC-cillinNTCorp\CurrentVersion\AEGIS
En passant la clé "SP_EnableRegistryKeyProtection" à 0, le protection de la base de registre est bien désactivée, on peut donc à nouveau modifier la clé "Allow Uninstall" depuis un paquet wapt sans désactiver le mot de passe de l'agent. Le problème, c'est qu'il n'est pas possible de modifier la clé "SP_EnableRegistryKeyProtection" tant que l'agent est lancé... Il faut d'abord fermer l'agent qui demande alors le mot de passe... bref je ne vois pas comment automatiser la désinstallation à 100% dans un paquet wapt.
- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
olaplanche
Messages : 173
Inscription : 26 janv. 2017 - 11:11

08 mars 2023 - 10:43

Bonjour,

Nouvelle version du paquet en première page.

J'ajoute ici le code d'un paquet que j'ai eu besoin pour migrer un agent d'un serveur à un autre dans le cas d'une migration (source).

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
server_name = "myserver.contoso.local"
client_port = "25840"
agent_password = "uninstall_password"

def install():
    # Initializing variables

    # Installing the package
    print("Moving Apex One Security Agent to server : %s" % server_name)
    run(r'"IpXfer\IpXfer_x64.exe" -s %s -p 8080 -sp 4343 -c %s -e "IpXfer\OfcNTCer.dat" -pwd %s' % (server_name,client_port,agent_password))


- Version de WAPT installée : 2.3.0.13516 Enterprise
- OS du serveur : Linux / Debian Buster
- OS de la machine d'administration/création des paquets : Windows 10
Verrouillé