Docker et Portainer part 1 – Les conteneurs pour les nuls

Bonjour à tous, aujourd’hui je commence la série de post sur Docker et Portainer suite à la migration du site sur le nouveau serveur. Et pour me faciliter les futures migrations, je me suis enfin décidé à « dockerisé » les applis que j’ai sur la machine… et comme ça je serai pas seul à être confiné dans cette histoire.

Pour votre culture le changement de serveur fait suite à la panne sur le dernier que j’ai décrit ici. Du coup, j’ai en profité pour faire le passage au SSD, ipv6 en natif via l’hébergeur, passage à Debian 10 et j’ai rapatrié le serveur en France aussi tant qu’a y être.

Rappel des articles de la série « Docker et Portainer » :

Lire la suite

Edito : panne serveur !

Ça y est ! J’aurais fini par vous faire le coup de la panne… ceux qui se connectent régulièrement auront remarqué que depuis le 11 mars 2020 et jusqu’à hier soir le site était « down ». Alors c’est ni le COVID-19, ni ma faute (pour une fois) : en effet le serveur précédent a eu une panne. Je vous laisse admirer ce mémorable échange avec l’assistance de chez online.net.

Bon au final après quelques investigations, il s’avère que c’était en fait lié à cet incident chez eux et que l’ancien serveur est retombé en marche un peu après. Mais à ce moment là, moi j’avais déjà démarré mon PRA sur une nouvelle machine. Alors pourquoi ça m’a pris 9 jours à revernir alors me direz vous ? plusieurs raisons :

  1. D’abord, la loi de l’emmerdement maximale est une vraie constante de l’univers… Mercredi dernier (le 11/03 donc et à peu en même temps que l’arrêt serveur), je me suis retrouvé embarqué dans l’équipe « d’urgence » VPN-COVID-19 au boulot… Et j’ai passer les 7 jours suivant à bosser comme un âne pour que tout le monde puisse restez chez soit pendant cette période surréaliste.
  2. Et j’en ai profité pour
Lire la suite

Extraire un champs en JSON dans Splunk pour Gophish

Bonjour à tous, aujourd’hui j’ai du réaliser un rapport d’une campagne de phishing réalisée avec Gophish. Vous me connaissez, je suis pas du genre à aimer bosser dans Excel, du coup j’ai mis les résultats directement dans Splunk. Gophish est un super outil mais il a un format de log chelou a base de CSV avec du Json dedans. Du coup, on regarder rapidement comment extraire un champs en JSON dans Splunk. Alors je ne parle pas de log en format entièrement en JSON, hein, je parle bien d’évènements de « normaux » (syslog, CSV, texte, etc) avec un champs en JSON au milieu. Par exemple, un log raw de Gophish ressemble à ça :

7,jean.dupont@geekeries.org,2020-11-03T14:36:52Z,Clicked Link,"{""payload"":{""rid"":[""fKteVMb""]},""browser"":{""address"":""12.34.56.78"",""user-agent"":""Mozilla/5.0 (Linux; U; Android 11; fr-fr; Mi MIX 2S Build/QKQ1.191828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3579.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/12.42.1-g""}}"

On voit bien ici que le dernier élément du CSV (colonne « details » d’un export raw de Gophish) est un bon gros JSON des familles. Du coup c’est pas idéal à extraire en field extraction classique avec le source type et transform dans Splunk puisque le Json change fortement en fonction du type d’évènement. Bref, c’est un peu relou. Par contre, en search … Lire la suite

Key=Value en regex, extraction en PowerShell

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