Fail2ban, xmlrpc et nginx – Créer sa règle fail2ban maison

Fail2ban xmlrpc et nginx

Salut à tous, je vous propose un nouveau TP sur fail2ban, xmlrpc & nginx. Ceux qui n’ont pas suivi ou qui débutent avec fail2ban sur WordPress devraient commencer par lire cet article qui fait parfaitement le boulot contre 99% des attaques. Néanmoins, ma supervision Splunk m’a permis de repérer une IP qui arrivait à contourner mes protections en créant des codes d’erreurs 499 sur le serveur web via des requêtes foireuses.

Vu que la fonctionnalité XMLRPC est désactivée sur le site, il y a peu de chance que celui-ci arrive à faire quoi que ce soit. Ce n’est pas une raison pour le laisser faire en saturant le serveur de requêtes inutiles…

Pour ceux qui ont lu mon article sur Splunk et Nginx, la requête Splunk qui m’a permis de générer le graphique pour cet article est la suivante :

index=nginx xmlrpc  | timechart count by src

Fail2ban, xmlrpc et nginx

Pour votre culture, les protections en place ne fonctionnaient pas puisque la requête HTTP en code 499 n’arrivait jamais jusqu’à WordPress qui n’avait donc pas la chance d’écrire une ligne de log sur le sujet. Seul le serveur Web traitait la requête, pour rien donc.

Alors j’aurai pu … Lire la suite

PowerRSA, implémentation de RSA en PowerShell

RSA en PowerShell

Salut à tous, une brève pour aujourd’hui avec RSA en PowerShell.. Je ne sais pas si vous vous rappelez, mais il y a quelques temps j’avais proposé sur le site quelques implémentations d’algorithmes de chiffrement en mode « tuto débutant » : César, Vigenère, et Enigma et sa cryptanalyse, et on avait été, jusqu’à DES. Aujourd’hui je vais vous pointer une implémentation home-made dans la droite lignée de ces articles : PowerRSA.

En effet, il y a quelques temps de cela, est sortie sur le technet cet article Implementing the RSA algorithm (PowerRSA) qui propose une implémentation de RSA en PowerShell… Et voilà, je ne sais pas pourquoi vous pourriez avoir besoin de ça, mais pourquoi pas ?

Cela peut être intéressant, par exemple, si vous avez besoin de décortiquer le fonctionnement de RSA pour un papier ou une présentation. PowerShell restant un langage interprété et facilement lisible ce qui permet de détricoter l’algorithme tranquillement.

Un petit exemple d’usage de PowerRSA :

> .\PowerRSA.ps1 -Method GenKeys 
Keys generating…
Keys saved in C:\Users\titi\Desktop\PowerRSA\20190212193137
> .\PowerRSA.ps1 -Method Enc -Exponent .\20190212193137\PublicKey -Modulus .\20190212093137\Modulus
Enter message to encrypt: trolololololololoo
Data saved in C:\Users\titi\Desktop\PowerRSA\20190212193444
> Get-Content .\20190212093444\Data
42950C7C3C8996C3C45FC8CB57B1AE3E6965BF00E582CCAFF77340911FA19539937D087B084379142FD546[...]
> .\PowerRSA.ps1 -Method Dec
Lire la suite

Copier-coller bloqué, ou comment désactiver une fonction Javascript

Aujourd’hui, un p’tit hack rapide que je vous présente aujourd’hui pour contourner des soi-disant « sécurités » de copier-coller bloqué sur certains formulaires web, exemple.

C’est très désagréable pour l’utilisateur, et ça ne sert absolument à rien contre un attaquant qui veut bruteforcer votre formulaire puisqu’il attaquera directement via le flux HTTP (avec un proxy d’attaque type BURP ou ZAP, voir avec CURL en scripting).

S’il s’agit d’une fonctionnalité pour éviter les erreurs de saisie : j’aimerais qu’on m’explique à quel moment on contrôle une adresse e-mail comme ça ? et pas avec un mail de validation au hasard. De même, pour les champs de mots de passe, à part empêcher d’utiliser un gestionnaire de mot de passe, ça incitera juste l’utilisateur à utiliser un secret simple pour ne pas s’emmerder à saisir un truc compliqué deux fois.

Et comme il s’agit d’une protection qui bloque le copier/coller dans le navigateur, elle ne peut être exécutée que du côté de votre poste. C’est-à-dire en JavaScript, et on peut donc agir dessus très facilement. Et sans la moindre « attaque » du site internet puisque qu’on ne modifie que des éléments sur notre poste. Le serveur se contentant de recevoir … Lire la suite

Atom Editor et quelques modules pour le développement

Atom Editor

Bonjour à tous, aujourd’hui un tutoriel rapide sur l’installation d’Atom Editor sur une Ubuntu 16.04 et y ajouter quelque modules de développement sympas ciblé sur Python. Vous ne connaissez pas Atom Editor ? Je vous invite vraiment à jeter un coup d’œil, pour moi c’est vraiment l’équivalent libre de sublime text ou notepad++ (selon votre religion). Le slogan d’Atom c’est « A hackable text editor, for the 21st Century » et je trouve qu’il le porte plutôt bien, vu que vous trouvez des modules pour faire plus ou moins n’importe quoi et pour tous les usages, du bloc note de Mme Michu à votre environnement de développement customisé pour un langage de programmation exotique.

Installer Atom Editor

Sans transition, Atom s’installe très simplement, commencez par aller ici :

https://atom.io/

et télécharger le dernier package d’Atom, par exemple :

curl -O https://atom-installer.github.com/v1.22.1/atom-amd64.deb

Puis enfin pour installer Atom :

sudo dpkg -i atom-amd64.deb && sudo apt-get install -f

Quelques packages d’extensions utiles

Je trouve qu’Atom Editor est un notepad très agréable à utiliser, mais il prend tout son ampleur quand vous commencer à y ajouter des packages.

Linter for Atom

Linter est un outils d’analyse statique de code issue de lint,  … Lire la suite