Yop

Aller au contenu | Aller au menu | Aller à la recherche

Sécu

Tout ce qui a rapport avec la sécurité informatique

Fil des billets - Fil des commentaires

mardi, 27 novembre 2007

Extensions Firefox Exploit-Me

Sortie ce matin des nouvelles extensions Exploit-Me:

On va regarder cela...

lundi, 23 juillet 2007

Chiffre de Vigenère

  • La théorie

Le Chiffre de Vigenère est un système de chiffrement, publié en 1586 par Blaise de Vigenère.

Ce système de chiffrement fût une petite révolution et resta "incassable" jusqu'en 1854, année où Charles Babbage en réussit la cryptannalyse.
Les travaux de Babbage restèrent secret jusqu'au XXème siècle (en effet il travaillait pour le roi... donc on imagine l'intérêt à ne rien révéler), mais la cryptannalyse avait été également réussie et publiée par Friedrich Wilhem Kasinski en 1863.

Je laisse le lecteur allez lire comment fonctionne le chifffrement et sa cryptannalyse.


  • La pratique - Chiffrer/Déchiffrer

Un des moyens est d'utiliser gcipher qui est utilisable aussi bien en ligne de commande qu'en interface graphique.

sudo apt-get install gcipher

$ gcipher -c Vigenere -k linux
yes yes yo yo
jmf sbd gb sl
$
$ echo jmf sbd gb sl | gcipher -C Vigenere -k linux
yes yes yo yo
$

On peut constater que la "force" du chiffre de Vigenère est qu'une même lettre du texte en clair n'est pas chiffrée par la même lettre.


  • La pratique - Décrypter

Simon Liu à écrit une petite librairie python pour décrypter un texte chiffré en Vigenère. Il est préférable de "deviner" en quelle langue le texte est écrit, et de disposer d'un texte suffisament long pour fournir les répétitions nécessaires...

$ cd /usr/include/python2.5/
$ sudo wget http://smurfoncrack.com/pygenere/pygenere.py
$ python
>>> from pygenere import *

On insert la chaine chiffrée:

>>> encrypted = 'Yfi. 1cf Acg wmabcg cywhqscr si bsbcigcbi jwqpsh ch teojv sc bfdghh.[suite tronquée]

On demande à décrypter le texte (on ne connait pas la clé):

>>> print VigCrack(encrypted).set_language('FR').crack_message()
Art. 1er Les hommes naissent et demeurent libres et egaux en droits.[suite tronquée]

Si on veut afficher la clé:

>>> print VigCrack(encrypted).set_language('FR').crack_codeword()
YOPYOP
>>> print VigCrack(encrypted).set_language('FR').crack_codeword(3)
YOP
>>>

A noter:
- J'ai utilisé dans l'exemple ci-dessus uniquement les 2 premiers articles (4 phrases).

- Même sans préciser la langue (et avec le texte de l'exemple), le texte est correctement décrypté.

- Avec un texte trop court (uniquement le premier article) nous obtenons tout de même:

Led romnes natcseot et dpweusent ltlret et eglex eo droiec.


  • Conclusion

We Esmqftp hp Vkriyetp rp pgfx oopn tls upvgit oi you usfru asfr esmqftpv oeu xidscrid mctw di kw e eowe hp mgxi ceutwee rcid dg 3 dmpcnpw pt npw ceesiccjpw oe epw 3 nraaxzgtltseu aifvgyx pttp wllwpid :) Mgcgt d cgstr hlme l gqjzrv oi oeeccatgc pl cqygwuutsy dg nie atemnlg ;)

mardi, 12 juin 2007

Mot de passe pour GNU Screen

On peut utiliser un mot de passe pour "protéger" l'accès à un Screen. (Par exemple dans l'utilisation d'un serveur maintenu par plusieurs administrateurs...)
La procédure est la suivante:

  • A l'intérieur d'un screen:

Ctrl+a :password

New screen password:
Retype new password:
[ Password moved into copybuffer ]

Maintenant, on "détache", et en "réattachant," le mot de passe sera demandé.

  • Si on veut avoir toujours le même mot de passe (même pour les futures sessions qui n'existent pas encore), il suffit de placer le mot de passe chiffré dans le .screenrc du user.

Pour afficher le mot de passe chiffré:

Ctrl+a :password

New screen password:
Retype new password:
[ Password moved into copybuffer ]

Ctrl+a ]

Exemple de .screenrc:

password MNp4qLZor0YJw


  • Par contre c'est la fonction crypt() qui est utilisée ...donc attention au mot de passe...

$ time john -format:DES file
Loaded 1 password (Standard DES [48/64 4K])
toto (user)
guesses: 1 time: 0:00:00:01 (3) c/s: 148654 trying: timp2 - maga

real 0m1.158s
user 0m1.068s
sys 0m0.020s
$

jeudi, 15 mars 2007

dns2tcp - Encapsulation dans des requêtes DNS

  • Introduction

dns2tcp est un outils permettant d'encapsuler du trafic dans des requêtes DNS.

La partie serveur simule un serveur DNS (donc doit écouter sur le port 53) et est par exemple à installer sur sa ligne Adsl perso. Le client encapsule les données dans des requêtes DNS qui sont envoyées au serveur interne spécifié. Ce serveur DNS qui lui à le plus souvent accès au port 53 vers Internet (ou en tous cas de résoudre des domaines externes), transmet à notre faux serveur DNS les données qui sont ensuite décapsulées. Le retour des paquets ce fait de la même manière.

  • Coté DNS

Il est nécessaire d'ajouter une entrée dans les DNS exemple:

dns2tcp.example.org NS 1.2.3.4

C'est en essayant de résoudre des sous domaines de ce nom que les paquets arriveront jusqu'au faux serveur DNS.

  • Coté serveur

cat /etc/dns2tcpd.conf
listen = 0.0.0.0
port = 53
user=nobody
chroot = /var/empty/dns2tcp/
domain = dns2tcp.example.org
ressources = sshYop:127.0.0.1:22

Ici nous indiquons qu'une connexion vers le port 22 du même serveur sera accessible sous le nom arbitraire sshYop

Lancement du server (ici en mode debug...)

sudo dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf

  • Coté client

Lister les "connexions disponibles"

dns2tcpc -z dns2tcp.example.org 192.168.1.1

Les paramètres étant le nom de domaine et le serveur DNS accessible (dans l'exemple 192.168.1.1).

La réponse doit être:

Available connection(s) :
sshYop

Pour monter la connexion "DNS":

dns2tcpc -c -r sshYop -l 4430 -z dns2tcp.example.org 192.168.1.1

Les paquets envoyés vers le port 4430 local seront donc envoyés dans l'exemple au port 22 de la machine dns2tcp.example.org (mais tout ceci uniquement avec des requêtes DNS).

Pour monter la connexion SSH:

ssh -p 4430 127.0.0.1

Du browsing est par exemple possible avec la partie Socks de Ssh:

ssh -D 3333 -p 4430 127.0.0.1

  • Résumé en image

  • Conclusion

Ce programme permet donc d'accéder à Internet quand on a seulement le droit d'accéder à un serveur DNS "interne".
Les "voyageurs" verront tout de suite l'utilité ;)

Merci Modu ;)

lundi, 12 février 2007

DBAN - Pour effacer de manière sécurisée un disque dur

J'avais besoin d'effacer le manière "sécurisée" tout un disque dur... Qui dit disque entier, dit utilisation d'autre chose qu'un "shred" ou un "wipe" qui sont plutôt orientés effacement de fichiers.

Le temps de trouver un "vrai" soft, j'ai lançé un simple "dd" depuis un LiveCD:

dd if=/dev/zero of=/dev/hda

Cela à pris 14 minutes (disque de 20 Go) ce qui m'a laissé le temps de trouver la solution qui semble être la plus "reconnue", j'ai nommé DBAN

DBAN se présente sous la forme d'un media bootable (CD par exemple), on boot dessus, il trouve le ou les disques durs puis les "efface" de manière sécurisée...

On ne peut jamais être sûr à 100% que des données ne seront pas récupérables, mais cela semble être une des solutions les plus sûres en dehors d'une destruction physique.

Q: Are you absolutely sure that DBAN works properly?
A: No.
[...]DBAN is "good enough" for "most people".

Plusieurs "normes" d'effacement sont possibles:
- Canadian RCMP TSSIT OPS-II Standard Wipe
- American DoD 5220-22.M Standard Wipe
- Gutmann Wipe
- PRNG Stream Wipe

Screenshot du site officiel:

Compter environ 1heure pour un disque de 20Go avec l'option par défaut "Autonuke" (3 passes).

- page 2 de 7 -