password – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Le bulletin sécu : https pour 0bin et leak de mots de passe http://sametmax.com/le-bulletin-secu-https-pour-0bin-et-leak-de-mot-de-passe/ http://sametmax.com/le-bulletin-secu-https-pour-0bin-et-leak-de-mot-de-passe/#comments Sun, 10 Jan 2016 12:42:33 +0000 http://sametmax.com/?p=17638 Quand letsencrypt est passé live, on m’a gentiment signalé qu’on avait plus d’excuses pour faire tourner 0bin en clair.

Bon, soit.

J’ai mis en place ça hier à titre de test : https://0bin.net/.

Pour le moment je vais pas faire de redirection car j’attends de voir si le truc tient.

La bonne nouvelle, c’est que comme l’installation est juste nginx + zerobin, il n’y a pas eut grand chose à faire : lancer un script, le laisser nous identifier et installer les dependances pour qu’il génère le certificat et faire pointer le dit certificat par nginx.

La moins bonne nouvelle c’est que notre archi pour sametmax.com et indexerror.net est basé sur client => varnish => nginx => worker => site.

Il faut donc mettre le certif au niveau de varnish.

Mais comme vous vous en doutez bien, il fallait que ça couille : support de https est un truc récent sur varnish et notre version ne le supporte pas. Donc il reste à :

  • Up varnish. Compiler à la main, chercher un mec qui l’a fait, up le serveur ou autre.
  • Ou passer varnish derrière nginx et réécrire tout le VLC.
  • Ou mettre uniquement HTTPS pour les formulaires de connexions. C’est mieux que rien, mais ça laisse le cookie d’identification en clair et ça va demander de faire des règles milimétriaques.
  • Mettre un autre truc en face de varnish juste pour le port 443.

Oh, du boulot en plus, je ne m’y attendais tellement pas…

Merci à tous ceux qui ont proposé et fourni de l’aide néanmoins. C’est cool d’avoir du soutien parmi ses lecteurs.

Pendant ce temps, et ça n’a rien à voir, un lecteur s’est amusé à brute forcer des hashs de mots de passe qu’on avait leakés connement et a trouvé celui de max au bout de quelques jours. Il nous a gentiment envoyé le résultat de ses recherches par mail. Ce n’est pas ironique, hein. J’apprécie que quand quelqu’un trouve que tu es à poil il te le fasse savoir avec précision et honnêteté.

Du coup va falloir aussi changer tous les mots de passe du blog et de indexerror.

Comme ce n’est pas une question de sécurité nationale, je ne suis pas en mode bersek à vouloir faire ça dans la minute, mais sachez-le : changez vos mots de passe à l’occasion. Personne ne va violer votre sœur demain si vous ne le faites pas, mais mieux vaut prévenir que guérir.

Oh, du boulot en plus, je ne m’y attendais tellement pas…

]]>
http://sametmax.com/le-bulletin-secu-https-pour-0bin-et-leak-de-mot-de-passe/feed/ 18 17638
Solution de l’exercice d’hier sur shadow http://sametmax.com/solution-de-lexercice-dhier-sur-shadow/ http://sametmax.com/solution-de-lexercice-dhier-sur-shadow/#comments Wed, 29 Jan 2014 15:25:53 +0000 http://sametmax.com/?p=8917 Ça va de soit, mais ça va mieux en le disant, ceci n’est pas la solution unique de l’exercice d’hier, mais une solution possible parmi d’autres.

On note l’usage de crypt, qui évite de se faire chier à trouver le bon algo de hashing et gère le salt automatiquement. spwd, c’est vraiment pour le grosses larves comme moi qui veulent même pas faire un split.

Et c’est du Python 3, yo dog !

import io
import os
import crypt
import spwd

from urllib.request import FancyURLopener
from zipfile import ZipFile

PASSWORDS_SOURCE = "http://xato.net/files/10k%20most%20common.zip"
PASSWORDS_LIST = '10k most common.txt'

# Le fichier ZIP est derrière cloudflare, qui vous ferme la porte au nez si
# vous n'avez pas de User-Agent. On va donc créer un UrlOpener, un objet qui
# ouvre des ressources en utilisant leurs URLs, qui a un User-Agent 'TA MERE'.
# CloudFlare ne check pas que le UA est valide.
class FFOpener(FancyURLopener):
   version = 'TA MERE'

# Si le dictionnaire de passwords n'est pas là, on le télécharge
# via FFOpener().open(PASSWORDS_SOURCE).read(). C'est verbeux, c'est urllib.
# Normalement je ferais ça avec requests. Ensuite on lui donne une interface
# file-like object avec io.BytesIO pour que ZipFile puisse le traiter en mémoire
# sans avoir à le sauvegarder dans un vrai fichier sur le disque, et on
# extrait le ZIP.
if not os.path.isfile(PASSWORDS_LIST):
    ZipFile(io.BytesIO(FFOpener().open(PASSWORDS_SOURCE).read())).extractall()

# On extrait les mots de passe de la liste sous forme de tuple car c'est rapide
# à lire. Un petit rstrip vire les sauts de ligne.
passwords = tuple(l.rstrip() for l in open(PASSWORDS_LIST))

# spwd.getspall() nous évite de parser le fichier shadow à la main.
for entry in spwd.getspall():
    print('Processing password for user "%s": ' % entry.sp_nam, end='')

    # Pas de hash ? On gagne du temps avec 'continue'
    if not '$' in entry.sp_pwd:
        print('no password hash to process.')
        continue

    # On teste chaque password avec la fonction crypt, qui accepte en deuxième
    # paramètre le hash du mot de passe complet. Pas besoin de se faire chier
    # à le spliter, il va analyser les '$' et se démerder avec ça. On a juste
    # à comparer le résultat avec le hash d'origine.
    for pwd in passwords:
        if crypt.crypt(pwd, entry.sp_pwd) == entry.sp_pwd:
            print('password is "%s".' % pwd)
            # On break pour gagner quelques tours de boucles, et pouvoir
            # utiliser la condition 'else'.
            break
    else:
        print('fail to break password.')

Télécharger le code.

]]>
http://sametmax.com/solution-de-lexercice-dhier-sur-shadow/feed/ 9 8917
C’est l’heure de faire de l’exercice http://sametmax.com/cest-lheure-de-faire-de-lexercice/ http://sametmax.com/cest-lheure-de-faire-de-lexercice/#comments Tue, 28 Jan 2014 16:19:48 +0000 http://sametmax.com/?p=8910 Le dernier exercice avait bien été apprécié, alors je remet ça.

Consigne :


Créer un script de brute force de passwords Unix par dictionnaire.

Puisqu’on est pas non plus des Kevin Mitnick en puissance, on va supposer que vous êtes connectés sur la machine, que vous avez les droits root dessus et que vous avez localisé les mots de passe comme étant dans “/etc/shadow”.

Votre script va vérifier si il possède un dictionnaire de mots de passe. Si ce n’est pas le cas, il va télécharger celui-ci et le décompresser : http://xato.net/files/10k%20most%20common.zip.

Ensuite vous parcourez le fichier shadow, et vous essayez de trouver quel mot de passe se cache derrière chaque hash. Si il n’y a pas de hash, vous pouvez ignorer l’utilisateur.

Exemple de sortie:

Processing password for user "root": no password hash to process.
Processing password for user "daemon": no password hash to process.
Processing password for user "bin": no password hash to process.
Processing password for user "sys": no password hash to process.
Processing password for user "www-data": no password hash to process.
Processing password for user "sam": fail to break password.
Processing password for user "test": password is "cheese".
Processing password for user "messagebus": no password hash to process.
Processing password for user "avahi-autoipd": no password hash to process.
Processing password for user "avahi": no password hash to process.
...

Afin de simplifier l’exercice, il n’est pas demandé de gestion d’erreur ou de passage en a paramètre du script.

Comme d’habitude, il n’y a pas de solution ultimate de la mort qui tue, c’est juste pour le fun.

La soluce demain.

]]>
http://sametmax.com/cest-lheure-de-faire-de-lexercice/feed/ 28 8910
Éviter d’avoir la queue à l’air en publique avec TrueCrypt http://sametmax.com/eviter-davoir-la-queue-a-lair-en-publique-avec-truecrypt/ http://sametmax.com/eviter-davoir-la-queue-a-lair-en-publique-avec-truecrypt/#comments Thu, 28 Jun 2012 11:26:38 +0000 http://sametmax.com/?p=1001 On cite toujours des raisons sécuritaires pour justifier l’usage de la cryptographie, mais comme vous n’êtes pas un espion, il est peu probable que vous vous sentiez concernés. Je vais vous en donner une bonne raison de chiffrer certains dossiers sur votre disque dur: pour ne pas vous retrouver à oualpé devant des inconnus.

Attaché à un lit

Sortir avec une vraie cochonne ne veut pas dire qu’elle va faire tout le boulot. Or Max et moi sommes tout à fait ouvert à l’expérimentation, même si ce n’est probablement pas pour les mêmes choses. Ainsi je me suis un jour retrouvé menotté à un lit avec divers accessoires et résidus de nourritures sur des parties variées de mon anatomie, quand quelque chose s’est mal passé.

Avec le recul, c’était marrant. D’ailleurs, la miss qui avait les clés a trouvé ça tellement poilant qu’elle a pensé à prendre une photo AVANT de me détacher. J’ai voulu une copie du cliché, parce qu’il y a des performances qui méritent un souvenir, et le transfert a eu lieu par clé USB.

Quand la dite clé a été utilisée par la demoiselle pour faire passer un Power Point à un collègue de travail, elle a pu comprendre toute l’utilité des thumbnails de preview automatique des fichiers JPEG sur les OS récents.

Les olympiades de la salle de bains

Dans un de mes appartements précédents, j’avais une salle de bain avec un petit muret et un grand miroir. On pouvait y faire toute sorte de choses à deux, que j’ai pris en photos avec mon portable pour faire passer les moments de solitude pendant les voyages.

J’ai supprimé les clichés du téléphone pour les mettre sur mon ordinateur. Machine que j’ai perdu lors d’un voyage. Je me demande encore aujourd’hui si celui qui a trouvé mon sac a reformaté la machine. A-t-il la main sur les photos de mes acrobaties en tandem ? Les a-t-il mis en ligne ?

Truecrypt, la fin du voyeurisme inopiné…

Honnêtement, je ne suis pas très pudique, sinon je n’écrirais pas ce blog. Sauf que non seulement ce genre de situation est dangereux pour sa propre crédibilité, mais en plus je ne suis pas seul sur ces images. Et généralement, la gente féminine accepte beaucoup moins bien ce genre de pub.

Truecrypt est un logiciel libre qui fonctionne sous Windows, Mac et Linux. Il permet de créer un fichier de taille personnalisable (plusieurs Go si besoin) chiffré, qui peut être monté comme une partition. Sans le mot de passe, le fichier ressemble à une soupe de bits (sans jeu de mot). Une fois monté avec le mot de passe, il devient une partition ordinaire, et on peut l’utiliser comme telle de manière parfaitement transparente: créer des dossiers et des fichiers, copier, coller, etc.

Inutile de dire que je met maintenant systématiquement tout matériel d’ordre intime sur cette partition. En cas de fuite, je sais qu’une personne non autorisée aura bien du mal à lire son contenu. Cela ne me dispense pas de faire la chasse aux restes sur les supports amovibles, et ça ne me libère pas de l’idée que les copies en la possession de mes ex partenaires ne sont pas aussi bien protégées. Mais c’est un bon début.

… et le début du multimédia vraiment privé

Voilà un vrai argument pour l’usage de TrueCrypt: pas l’attaque des chinois du FBI ou votre soudaine reconversion en terroriste suicidaire, mais l’existence même du cul.

Car on peut faire bien plus que ça: copiez par exemple le dossier .mozilla, .thunderbird et .purple sur la partition puis faites un lien dans le dossier utilisateur. Et hop, voilà votre historique de navigateur, vos fichiers mails et vos traces de chats chiffrés. Votre historique qui contient des URL de sites douteux, vos alertes mails de “Adopte un mec” non désactivées alors que vous êtes en couple depuis 6 mois et les archives de la création de nouveaux smileys hyper novateurs avec votre maîtresse sur Gtalk: ils sont maintenant protégés. Si en plus vous utilisez OTR et GPG, vous gagnez 2 de TAC0 en back stab.

Et le double effet kisscool, c’est que faire un backup de toutes ces données précieuses ne prend qu’un copier/coller du fichier TrueCrypt (vous faites des sauvegardes, hein ?). Backup qui par nature est lui aussi protégé. Tous ces bénefs sans ralentir votre ordinateur, puisque seules des données très précises sont chiffrées, pas toute votre partition utilisateur (ce qui en plus est le plus sur moyen de tout perdre si votre ordi grille). Bon ok, peut être que l’affichage du browser en cas d’usage du cache prend 0.1 ms de plus.

Au passage j’ai aussi mon dossier .ssh et .bitcoin dedans, ça ne mange pas de pain. Le prix à payer est seulement d’entrer son mot de passe (que vous avez choisi bien long et compliqué) quand on désire utiliser un logiciel qui lit ou écrit dans ces dossiers.

Certes, ont peut toujours vous baiser en installant un keylogger, un rootkit bien vicieux ou avec une clé à molette. Mais c’est tellement mieux que d’avoir les données en clair sur le disque.

]]>
http://sametmax.com/eviter-davoir-la-queue-a-lair-en-publique-avec-truecrypt/feed/ 8 1001
Choisir un mot de passe facile à retenir http://sametmax.com/un-mot-de-passe-facile-a-retenir/ http://sametmax.com/un-mot-de-passe-facile-a-retenir/#comments Fri, 22 Jun 2012 19:08:51 +0000 http://sametmax.com/?p=975 Last pass est génial, mais tout le monde n’a pas forcément envie de l’installer, et parfois on a juste pas l’occasion de l’utiliser (machine d’entreprise sur intranet mais pas sur internet par exemple).

Seb a une proposition assez sympas pour créer des mots de passe pour chaque service en ligne qui soient robustes et faciles à retenir. Mais je n’arrive pas à m’y faire: c’est un système qui me demande de trop réfléchir. De plus ça ne fonctionne pas aussi bien quand on a pas de site Web sur lequel appliquer le principe.

XKCD propose une autre approche. Ca marche niquel, mais choisir 4 mots au hasard ne me parle pas.

Voici deux autres approches que j’utilise, l’important étant d’en offrir une variété pour rendre le piratage plus délicat.

Les pages roses du dictionnaire

Si vous ouvrez le Larousse, vous verrez qu’en son centre il y a des pages roses qui correspondent à une liste de proverbes et de locutions latines ou étrangères. En les parcourant vous vous apercevrez qu’il y en a plein que vous connaissez par cœur, car elles sont ancrées dans notre culture.

Il suffit tout simplement d’utiliser une de ces phrases comme mot de passe, en incluant la ponctuation.

Par exemple:

Qui vole un oeuf, vole un boeuf.

Ce mot de passe est très facile à retenir, mais il contient 29 caractères, parmi lesquels 5 espaces, 2 caractères spéciaux et une majuscule. C’est naturellement difficile à cracker, mais facile à retenir, et assez rapide à taper une fois qu’on l’a rentré une dizaine de de fois.

Bien sûr un attaquant pourrait bruteforcer le mot de passe en utilisant toutes les locutions les plus connues, mais qui va savoir que vous utilisez une locution ?

Quand bien même, on peut très facilement pimenter le mot de passe:

Qui vole un oeuf, vole un boeuf, bordel de merde !

Et voilà un mot de passe solide comme un roc, et léger comme une plume pour votre cerveau. Cela marche aussi avec une citation célèbre (Life is hard and then you die.), un extrait de chanson (Petit frère veut grandir trop vite…), ou la réplique d’un personnage dans un film (Cours Forrest, cours !).

Mot de passe ex nihilo

Si vous n’êtes pas du genre culturé, ou que vous avez comme moi un humour bizarre, il existe une autre technique.

  1. Choisir une personne
  2. Choisir un animal
  3. Choisir un smiley
  4. Mélanger le tout dans un ordre aléatoire

Ex: José Bové vache \o/

21 caractères dont 2 majuscules, 2 caractères non ASCII, 3 espaces et 2 caractères spéciaux. Et en plus vous allez vous poiler à chaque saisie. Le plus beau, c’est qu’il suffit de saisir le mot de passe une seule fois pour s’en souvenir tellement c’est débile.

Sachant que le personnage et l’animal peuvent être imaginaires, je vous laisse imaginer les combinaisons possibles.

  • Gaston Lagaffe ornithorynque O_o
  • Brontosaure :-* Charly Chaplin
  • ;-) Licorne Sam et Max !

 

]]>
http://sametmax.com/un-mot-de-passe-facile-a-retenir/feed/ 29 975
jQuery Visual Password: créer hash un visuel d’un password en cours de frappe http://sametmax.com/jquery-visual-password-creer-hash-un-visuel-dun-password-en-cours-de-frappe/ http://sametmax.com/jquery-visual-password-creer-hash-un-visuel-dun-password-en-cours-de-frappe/#comments Sat, 05 May 2012 01:40:57 +0000 http://sametmax.com/?p=547 Comment s’assurer que l’on a pas fait une faute de frappe quand la page de login se bloque après trois essais infructeux ? Comme être certains que le password choisi à la création d’un compte est bien ce lui que l’on veut ?

jQuery Visual Password est un plugin jQuery qui répond à cette question sans avoir à mettre le mot de passe en clair : il créé une image unique depuis le mot de passe, puis l’affiche. L’image se met à jour au fil de la frappe.

Impossible de se tromper, l’image change radicalement si on change le moindre caractère. Et pour cause, ça utilise VizHash.js :-)

Essayez :

On me sussure à l’oreille que ça peut être pratique pour les mails aussi, car c’est plus facile de voir si une image est changée que de chercher une faute de frappe.

On pourrait imaginer la même chose pour un champ d’adresse bitcoin, ou une signature PGP, un clé SSH, un hash de commit Git, etc.

]]>
http://sametmax.com/jquery-visual-password-creer-hash-un-visuel-dun-password-en-cours-de-frappe/feed/ 3 547