TP Cryptographie – César, Vigenère et attaque statistique en PowerShell

Un TP sur la cryptographie en PowerShell, on ne va pas attaquer les choses compliqué aujourd’hui. Seulement les bases de la crypto avec 2 algorithmes connus :

  1. César ; et
  2. Vigenère

Et une attaque qui fonctionne bien sur ce genre de protection : par statistique.

Chiffre de César

Le chiffre de césar est une méthode de chiffrement qui date des romains et du fameux empereur du même nom. Elle consiste à décaler d’un certain nombre dans l’alphabet les caractères de la phrase à chiffrer. Ce nombre est la clé de l’algorithme.

Exemple :

Si je prends la chaîne « abc » avec la clé ‘+1’ :

Ma chaîne chiffrée devient « bcd »

Implémentation :

Cet algorithme est implémenté dans le livre d’Arnaud PETITJEAN : Windows PowerShell – Guide de référence pour l’administration système (v3). Dans le chapitre 8, La Sécurité – p 431 dans la V3.

Comme pour sa fonction de génération de mot de passe, j’ai trouvé que son implémentation n’était pas la plus simple. Aussi, je vous en propose un autre :

<#
.SYNOPSIS
Effectue le chiffre de césar sur une chaîne de caractères
.DESCRIPTION
Chiffre une chaîne de caractère via le chiffre de César avec la 
Lire la suite

ZeroBin, ou comment faire Google Keep sans Google mais avec AES

Je veux vous présenter un outil qu’un collègue anonyme (merci Grégoire) m’a fait découvrir ce matin : ZeroBin.

ZeroBin :

ZeroBin

Ce projet open source propose de vous fournir un Pastebin qui a le bon goût de ne pas analyser tout ce que vous y écrivez pour vous placer de la pub ensuite.

Pourquoi ?

Parce que tout ce que vous y enverrez est chiffré en AES (256), et que le serveur ne sait donc pas ce qu’il stocke, il ne voit que du texte chiffré, du bruit en gros.

Comment ça marche ?

Lors de l’upload votre navigateur chiffre le contenu via une clé *secrète*.
C’est simple d’utilisation, car la clé est placée dans le lien que l’outil vous renvoi après l’upload, comme ci-dessous :

https://zerobin.net/?ca9e881b88da443e#/mubgNofdYrpDu61GikEmsPlZqJGKS0v2RD4IEtvNiE=

Mais si c’est dans l’URL le serveur reçoit bien la clé ?

C’est là que c’est beau, en fait si vous regardez bien le lien en exemple ci-dessus :
On a 3 morceaux :

A. le site,

https://zerobin.net/

Je passe c’est comme d’hab ça.

B. votre “note”,

?ca9e881b88da443e

Ça c’est comme sur n’importe quel site en PHP, ou vous demanderiez l’accès à la ressource `man of stelle` (par exemple). Vous verrez dans l’URL :… Lire la suite

Microsoft Security Compliance Manager et GPO de sécurités

Un rapide post pour vous faire part d’une découverte faite ce jour d’une petite perle de Microsoft :

Microsoft  Security Compliance Manager

Ce « petit » outil a le bon gout de donner l’ensemble des recommandations de Microsoft en matière de politique de sécurité, et ce, produit par produit, et de nous permettre de bien les gérer.

=> Papa, maman et le café, quoi.

C’est un peu gros, mais je prends l’exemple du serveur standard 2008R2 qui a lui seul se prend 234 réglages unique. Pour vous permettre de gérer vos GPOs, on peut aussi définir nos propres « baselines » dans l’outil à partir de celles par défaut proposée. Et comme ils ont pensé à tout et que se taper la comparaison 1 à 1 des 234 settings avec vos GPO maisons peut s’avérer fastidieux.

L’outil propose d’importer des GPO existantes (genre les nôtres en places) et de comparer, corriger, puis fusionner avec celle proposée en standard par Microsoft :

Et une fois qu’on a nos GPOs, celles de Microsoft et nos objets résultat ; on se dit qu’on aimerait bien passer tout ça au mixeur et obtenir une jolie GPO toute belles !
=> Il suffit de demander … Lire la suite

TP PowerShell – Génération de mot de passe pour le livre de A. PETITJEAN

TP autour des aléas en PowerShell, suite à un besoin de génération de mot de passe : on veut générer un mot de passe aléatoire pour la création de compte d’un utilisateur. Pour ça déjà on va se demander comment on génère un aléatoire en PowerShell, bien comme d’hab., il y a une cmd-let pour ça :    

PS C:\> Get-Random     
1493366162     
PS C:\> Get-Random -Minimum 0 -Maximum 26     
7     
PS C:\> Get-Random -Minimum 0 -Maximum 26     
4
PS C:\> Get-Random -Minimum 0 -Maximum 26     
17   
PS C:\> Get-Random -Minimum 0 -Maximum 26     
22     
PS C:\> > Get-Random -Minimum 0 -Maximum 26     
8

À moins que vous n’ayez oublié combien il y a de lettre dans l’alphabet, je pense que vous avez saisi l’idée…

Bon à partir de là, on peut convertir nos nombres en `char`,
D’abord, on doit compter jusqu’au nombre de caractères voulus dans notre chaîne, voir le bouquin d’Arnaud pour plus de détail, on va utiliser cette abréviation :

PS C:\> 1..12     
1     
2     
3         
4     
5     
6     
7     
8     
9     
10     
11     
12

Ensuite, je vous invite à vous munir d’une table ASCII pour comprendre la suite    :

PS C:\> 1..12 | ForEach {$passwd += [char](Get-Random -Minimum 
Lire la suite