Key=Value en regex, extraction en PowerShell

Key=Value en Regex

Salut à tous, aujourd’hui je vous propose un focus sur la capture de structures répétées type Key=Value en Regex (ou expression régulières). C’est pas bien compliqué mais il semble qu’il y en ai quelques uns qui ne soit pas au courant du comment faire (et pour ceux qui savent même pas les comment/quoi des regex c’est par ici).

Comme un bon exemple est toujours plus parlant voici le genre de structure qu’on veut extraire :

key1="valueA" key2="valueB" key3="valueC"

Celui qui débute avec les regex aura surement envie d’écrire une regex de ce type:

(key1=\".*\") (key2=\".*\") (key3=\".*\")

Sauf que cette expression de capture des Key=Value en Regex, en plus d’être peu optimisée, n’est pas généralisable. J’entends que si le texte à analyser ne contient pas toujours les mêmes clés et pas forcément le même nombre entre plusieurs lignes. Exemple où cela ne fonctionne plus :

key1="valueA" key2="valueB" key3="valueC"
key1="valueA" key3="valueB" key5="valueC" key0="valueC"
key2="valueB" key52="valueC"

Du coup, là, on va commencer à devoir faire de vraies expressions régulières.

Première optimisation

Déjà, il est souhaitable ne pas utiliser

(.*) # "n'importe quoi plusieurs fois"

mais lui préférer :

([^=]+)= #"Tout jusqu'à un caractère spécifique"

Deuxième optimisation

Plutôt que simplement des groupes de … Lire la suite

Get-Date en "locals" US – PowerShell

Get-Date en "locals" US

Salut à tous, aujourd’hui une brève astuce dont on a eu besoin au boulot : comment sortir un Get-Date en « locals » US (ou une autre timezone, hein). En tout cas un local différent de celui de votre console. Exemple, si je saisi dans ma console :

(Get-Date).tostring("MMM d HH:mm:ss")
déc. 12 15:17:04

Je me retrouve avec un bel accent bien français sur « é » de « décembre ».

Sauf que parfois souvent, on a besoin que le format de sortie soit homogène entre différentes machines sur tout un parc. Par exemple, quand toutes ces machines parlent à un unique SIEM (au hasard… Splunk ?). C’est beaucoup plus simple si le timestamp arrive dans le même pattern quelque soient les sources.

Et donc, comment qu’on fait pour sortir un Get-Date en « locals » US ? Tout simplement, comme ça :

$LocaleUS = New-Object System.Globalization.CultureInfo("en-US")
(Get-Date).tostring("MMM d HH:mm:ss",$LocaleUS)
Dec 12 15:22:22 

Vous la voulez en UTC votre date, en plus ? Histoire que tout le monde parle dans le même référentiel ? Rien de plus simple :

$Timestamp = ((Get-Date).ToUniversalTime()).tostring("MMM d HH:mm:ss",$LocaleUS)
Dec 2 14:24:46

Et voilà, c’est tout bête, mais c’est bien pratique dès que vos scripts … Lire la suite

Idées de cadeaux de noël Geek pour 2019 !

Idées de cadeaux de Noël geek 2021

Salut à tous, c’est presque noël, vous avez déjà du acheter vos cadeaux et donc je ne risque pas de vous influencer…^^ C’est donc le bon moment pour moi de vous donner ma petite sélection de cadeaux de noël Geek pour 2019, qui me viennent à l’esprit. Je suis sur que vous (n’)attentiez (pas) tous ça (du tout) ! Et comme d’hab : pas sponso, hein…

Idée cadeau 1 : un livre

How-To de Randall_Munroe, sorti en septembre et qu’on a déjà offert pour mon anniversaire. Dans la droite ligne de WhatIf et ThingsExplainer. C’est inutile, drôle, bien écrit et avec des jolis dessins, comme dans xkcd. Donc parfaitement indispensable !

Idée cadeau 2 : des écouteurs

Les Bose Headphone 700, et oui je sais : ils sont pas donnés… (Pour le coup, je les ai eu moins cher, coup de pot). Mais en contrepartie, ce sont vraiment de supers écouteurs. Je les utilise depuis un peu plus d’un mois et ils m’ont changé la vie dans les transports en commun.

  • Bon rendu sonore.
  • Isolation active efficace.
  • gestion de plusieurs connexions Bluetooth simultanées.
  • Isolation efficace de votre voie dans les conversations téléphoniques, y compris en
Lire la suite

CVE-2019-12757, on fait le point…

CVE-2019-12757

Salut à tous, aujourd’hui je vous redirige vers une lecture intéressante sur la dernière grosse CVE du client Symantec, poétiquement nommée CVE-2019-12757.

Je vous la fait courte c’est un bon gros « local to root » basé sur une mauvaise affectation des droits sur dans une clé de registre utilisé par SEP pour lancer un programme. Au final un utilisateur peut modifier cette clé et faire exécuter en SYSTEM un programme arbitraire par SEP.

Et du coup, c’est specterops qui à découvert et documenté la vuln et c’est par ici que ça se passe pour le détail :

https://posts.specterops.io/cve-2019-12757-local-privilege-escalation-in-symantec-endpoint-protection-1f7fd5c859c6

Et le code de l’exploit est lui ici :

https://gist.github.com/enigma0x3/5dbb9a72b592992b27dd703edb4c20b1

Pour ceux qui auront été voir, C’est pas bien compliqué a exploiter (mais beaucoup plus à trouver). Du coup, je vous incite vivement à mettre à jour les clients SEP (de vos parcs d’entreprises ?) si nécessaire. Et si vous n’avez pas peur des méchants pirates, craignez au moins vos utilisateurs qui vont y trouver enfin un moyen facile de passer admins local sur leur poste « sécurisé ».

Voilà, j’ai pas grand chose de plus à vous dire sur la CVE-2019-12757. Aller voir les deux liens c’est de la … Lire la suite