Faire un package d’installation avec WinRar

Avec tout le brouhaha à propos d’une «  » »faille » » » dans le logiciel WinRar (Voir article : WinRar : Une grosse faille qui n’en est pas vraiment une ?), j’ai pensé vous partager comment j’utilise WinRar pour créer des archives auto extractibles (SFX).

Ce n’est pas nouveau, WinRar permet de générer un exécutable qui extrait automatiquement le contenu de l’archive, ce qui est plutôt pratique, car le destinataire n’a pas besoin d’avoir le logiciel pour extraire les fichiers.  Par contre, pour des raisons de sécurité, il est assez rare que l’on veuille envoyer un fichier exécutable.

Par contre, du point de vue sysadmin, la possibilité de créer des exécutables pouvant extraire plusieurs fichiers est très intéressante.  D’autant plus qu’il est également possible de lancer l’exécution de commandes ou de scripts, que ce soit avant ou après l’extraction.

Voici un exemple permettant d’installer GreenShot et de copier le fichier de langue pour le français.

image

image

image

image

image

image

Si la variable %programfiles% pointe sur “Program Files (x86)” à l’exécution, vous devrez peut-être indiquer le chemin complet comme suit pour la version 64 bits :

XCOPY /Y language-fr-FR.xml c:\Programmes\GreenShot\

Vous voilà avec un exécutable qui installe automatiquement GreenShot de manière silencieuse (mise à part l’ouverture forcé d’Internet explorer par GreenShot ).

 

Extraire les pièces jointes d’un fichier EML

Voici un tout petit script Python que j’utilise régulièrement pour extraire les pièces jointes dans un fichier EML.

Très utile si vous avez un pare-feu qui vous met des courriels en quarantaine et vous permet de les récupérer en fichier EML.  Vous placez vos courriels suspects dans un dossier, puis vous exécutez le script.  Les pièces jointes seront extraites dans ce même dossier.  Vous aurez alors vos pièces jointes à analyser.

Je vous prépare pour bientôt un article sur mes outils d’analyses de malware favoris.

 import email
 import os

 path = './'
 listing = os.listdir(path)

 for fle in listing:
     if str.lower(fle[-3:])=="eml":
         msg = email.message_from_file(open(fle))
         attachments=msg.get_payload()
         for attachment in attachments:
              try:
                  fnam=attachment.get_filename()
                  f=open(fnam, 'wb').write(attachment.get_payload(decode=True,))
                  f.close()
               except Exception as detail:
                   #print detail
                   pass

The 4sysops PowerShell tutorial

Une petite mine d’or de scripts et de tutoriel sur le PowerShell.

Voici ma sélection personnelle parmi les scripts proposés par 4sysops :

System administration with PowerShell

Pour la liste complète, visitez 4sysops.com :
https://4sysops.com/archives/announcing-the-4sysops-powershell-tutorial/

Page de code/code page dans les scripts

Vous aurez remarqué que dans vos commandes en ligne ou dans vos scripts, si vous exportez la sortie dans un fichier, vos caractères accentués ne seront plus compréhensibles.

Par exemple, si vous exécutez simplement la commande “tasklist > process.txt”, vous obtiendrez un fichier texte contenant la liste des processus en cours qui ressemble à ceci :

Nom de l'image                 PID Nom de la sessio Num‚ro de s Utilisation 
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0        24 Ko
System                           4 Services                   0     1ÿ452 Ko
smss.exe                       404 Services                   0     1ÿ204 Ko
csrss.exe                      680 Services                   0     5ÿ312 Ko
wininit.exe                    752 Services                   0     4ÿ932 Ko
csrss.exe                      772 Console                    1   112ÿ936 Ko
services.exe                   808 Services                   0    16ÿ504 Ko
lsass.exe                      824 Services                   0    21ÿ088 Ko
lsm.exe                        832 Services                   0     6ÿ816 Ko

 

En effet, la console Windows utilise encore la vieille page de code du DOS, soit le code de page 850 (CP850).  La solution consiste à toujours définir la bonne page de code avant d’exécuter des commandes dans une console ou dans un script.

Pour ce faire, tapez ou écrivez la commande suivante : “chcp 1252”.  Cette commande modifie la page de code en cours pour utiliser CP1252 (Windows-1252).  Les caractères s’affichent alors correctement :

Nom de l’image                 PID Nom de la sessio Numéro de s Utilisation 
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0        24 Ko
System                           4 Services                   0     1 472 Ko
smss.exe                       404 Services                   0     1 204 Ko
csrss.exe                      680 Services                   0     5 316 Ko
wininit.exe                    752 Services                   0     4 932 Ko
csrss.exe                      772 Console                    1   118 112 Ko
services.exe                   808 Services                   0    16 552 Ko
lsass.exe                      824 Services                   0    21 096 Ko
lsm.exe                        832 Services                   0     6 820 Ko
svchost.exe                    944 Services                   0    11 504 Ko

 

Si vous avez des fichiers textes existants que vous aimeriez afficher correctement ou même modifier en conservant l’encodage CP850, vous pouvez utiliser un éditeur de texte plus avancé que Notepad.  Personnellement, j’aime bien Textpad qui me simplifie grandement la vie.  Vous pouvez alors simplement sélectionner le code à l’ouverture ou à l’enregistrement d’un fichier.

image

De plus, vous pouvez rapidement convertir le texte d’un format à l’autre à l’aide d’un simple copier-coller.