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

Interroger une base PostGreSQL en PowerShell

Bonjour à tous, aujourd’hui on va intéresser aux bases SQL et PowerShell. Et plus exactement comment interroger une base PostGreSQL en PowerShell. Pour cela on va devoir s’y connecter, faire une requête, lire nos résultats en PowerShell et clore la connexion.

Je choisit volontairement PostGreSQL car (j’ai eu besoin de le faire a boulot, déjà) il nécessite que l’on installe au préalable le driver ODBC pour se connecter à la base. En effet si vous utiliser un serveur MSSQL, les dépendances nécessaires sont (en général) déjà livrées avec Windows.

Pour obtenir ce pilote vous pouvez vous connecter sur le site de PostGreSQL ici, télécharger puis installer le fichier MSI. Vous pouvez vérifier que celui ci est bien déployé en allant dans le panneau de configuration-Outils d’administration-Sources de données ODBC (32 ou 64 bits). Les connecteurs PostgreSQL UNICODE et ANSI devrait être présent.

A partir de là, on peut démarrer le code de notre module PowerShell. La première étape consiste à établir la connexion à la base. Et pour cela j’ai développé la Cmd-Let Get-PSSQLDBConnexion ci dessous :

Function Get-PSSQLDBConnexion{
    param(
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Server,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Port,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $DBName,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Username,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [SecureString] $Password
    )
    
Lire la suite

KeePass et Yubikey multiplateforme, article MISC 103

KeePass et YubiKey
MISC n°103, p66 :KeePass et YubiKey

Salut à tous, vous vous rappelez fin avril que j’avais sorti un article dans MISC sur KeePass et Yubikey ? Comme pour ma précédente publication chez eux, j’ai repris une licence de « type B », c’est à dire : une cession de droits temporaire, suivi d’une publication sous licence « Creative Commons BY-NC-ND » (détails).

Ce qui me permet de vous partager cet article sur KeePass et YubiKey sur le blog désormais. J’espère que ça vous intéressera, pour ceux qui ne l’ont pas déjà lu, et que ça permettra aux autres d’y accéder facilement. Je rappel aussi que ce papier est aussi la version « complète » du billet KeePass2 et la synchronisation SSH/SFTP entre Windows, Linux et Android sur le site (article qui génère une proportion non-négligeable de vues sur le site d’ailleurs).

Enfin si vous n’êtes pas déjà abonné à MISC, je ne peux vous conseiller de le faire ! (même si je ne touche rien sur les ventes, 😉 ) !

Sur ce, bonne lecture à tous et @+… 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