mercredi 29 juillet 2009

Chiffrement en chaine asynchrone -autokey cipher-



Et hop, un nouvel article de cryptographie basique :

Le chiffrement en chaine est une méthode permettante
d'engendrer une séquence de clefs z=z1z2z3 ... et de
s'en servir pour chiffrer la chaine x=x1x2x3...

Dans le chiffrement autokey cypher c'est le texte
clair qui sert à génerer la séquence de chiffrement.

Le systême n'est donc pas trés sur mais reste tout
de même interessant.

On peut définir l'autokey cipher comme suit :
Rc : Regle de chiffrement
Rd : Regle de déchiffrement

Soit z1=C et zi = xi-1 pour tout i >= 2 et o<=z<=25
Rc(x)=(x+z)mod 26
Rd(y)=(y-z)mod 26

Exemple :
Td : ditmoicequetupense
et C=7

-->correspondance lettres/nombres :
3.8.19.12.14.8.2.4.16.20.4.19.20.15.4.13.18.4

On définit ensuite la séquence de clef:
7.3.8.19.12.14.8.2.4.16.20.4.19.20.15.4.13.18.4

Puis on aditionne Td à la séquence de clef (mod 26).
10.11.1.5.0.22.10.6.20.10.24.23.13.9.19.17.5.22

On retranscrit ensuite en faisant la correspondance
nombres/lettres, on obtient ainsi le texte chiffré :
KLBFAWKGUKYXNJTRFW

Pour déchiffrer il suffit d'appliquer Rd.
Soit ici :
x1=(10-7)mod26=3
x2=(11-3)mod26=8

et ainsi de suite ...

lundi 27 juillet 2009

[Anti-Sec, suite et fin]

Comme prévu la faille OpenSSH c'était du bluff.
Plus d'infos :
http://fz-corp.net/?p=176

dimanche 26 juillet 2009

Attaques détournées II

Attaques détournées II

L'autre matin, alors que Mr Lambda allez ramasser
son courier, il croisa Mr Béta qui le regarda avec
un sourir en coin.

Se doutant que quelque chose ne tourne pas rond, il
décide d'augmenter la sécurité de son journal intime
:p

Sachant que la plupart des attaques vu précedement
sont basées sur l'analyse des signaux du clavier,
mr Lambda peut duper ce chere Béta de la manière suivante :
Lorsqu'il rentre ses mdp il lui suffit de taper certaines
lettres puis avec la souris de revenir la ou il en à
oublier. You get it ?

exemple :

le mdp est : protection
Alors il tape un truc du genre : ptctio
puis avec son curseur il clique aprés le p
et tape : ro
ensuite aprés le t : e
puis aprés le o : n.

Ainsi béta pensera que le mdp est : ptctioroen

^^.

si il est un peu malin, béta testera un bruteforcing
avec seulement ces lettres, mais ceci est une autre histoire.


Maintenant pour ce qui est de se protéger des émisions d'ondes
électromagnétiques comprométantes il devra se construire une
cage de faraday.

Et pour le dump mémoire, il peut toujours essayer de renforcer
l'ouverture de son ordinateur afin que Béta perde du temps et
ainsi des données.

Alors, Béta contre Lambda, qui gagne ?

mercredi 22 juillet 2009

Attaques détournées.

Rare sont les articles décrivant les
méthodes d'attaques contournées contre les
systêmes de sécurité logiciels, et pourtant elles sont
légions.
Peut être simplement trop extravagentes pour le
commun des mortels.

Imaginons un individu Lambda du type paranoïaque.
Cet homme craignant pour la sécurité de ses activités
informatiques à opté pour des mesures maximales de
protection : Son ordinateur n'est jamais connecté à
internet, et son disque dur est crypté à la volée.

Seulement tout prés de lui vit l'individu Béta qui lui
est assez curieux de nature.

Alors qu'elles solutions ce chere Beta à t'il ?

Ne se connectant jamais à internet et ne disposant pas du
mot de passe de session, Béta ne peut pas adopter une
solution software directement appliqué sur le pc de Lambda.

Coté hardware en revanche des possibilités s'ouvrent.
Un classique du genre sera le keylogger physique. Simple
et efficace. Le cryptage mis en place ne servira à rien,
une fois le mdp obtenu, bingo.

Tout en restant dans le classique, la caméra pointée sur
le clavier ou bien sur l'écran. (mwai bof :/)

Pour rester sur l'espionnage du clavier, Béta pour
egalement se tourner vers une solution de prise d'empreintes
audio des touches clavier, une sorte d'empreinte sonnore
propre à chaque touche. Un petit micro placé à proximité et
un logiciel d'analyse audio avec un petit soft de comparaison
et le tour est joué.
http://www.berkeley.edu/news/media/releases/2005/09/14_key.shtml



Il ne faudrait pas non plus oublier TEMPEST. Il consiste à
reproduire l'image s'affichant sur l'écran de monsieur Lambda
en captant les ondes électromagnétiques qu'il génere.
(Aujourd'hui un peu dépassé par l'avenement des écrans plats.)
http://www.tscm.com/TSCM101tempest.html

Toujours dans le coté électrique de la chose, Beta pour
également récupérer des informations sur le systême de Mr Lambda
par l'analyse des prises électriques, la masse des claviers
étant directement relié :
http://news.bbc.co.uk/2/hi/technology/8147534.stm

Des informations pouront également être fournient en lançant
une attaque timing (timing attack). Cette attaque
consiste à analyser les indicateurs systêmes (tel les temps de
réponses ..) afin de fournir des informations sur la taille des
mdp. Ma foi, cela peut être utile.
http://en.wikipedia.org/wiki/Timing_attack

Et enfin pour finir la bête, Béta pour faire un dump mémoire et
ainsi accéder à des données en clair.
http://citp.princeton.edu/memory/

Ah, ce chère lambda ... peut être pas assez paranoîaque finalement
car sans qu'il le sache, Béta à pu lire son journal intîme ;)


Et un petit bonus pour la route :


http://www.berkeley.edu/news/media/releases/2005/09/14_key.shtml

mardi 21 juillet 2009

Petite Maj sur la faille dans Openssh

Apparement une faille serait bien présente dans openssh,
et anti-sec annonce la dévoiler dans moins de 48 Heures
(ils vont vers le full-discolsure maintenant :D)

http://isc.sans.org/diary.html?storyid=6742


http://seclists.org/fulldisclosure/2009/Jul/0279.html

http://www.drastic-securite.com/news/openssh-exploit-une-rumeur-qui-prend-de

Si c'est le cas, ça risque de foutre un sacré bordel sur
la toile.
Allez les kiddies, allez vous connecter à la liste full
disclosure, c'est bientot ;)

Info ou intox ? ...

lundi 20 juillet 2009

Anti-sec, WTF ?

Beaucoup de bruits autour de l'anti-sec mouvement
ces derniers temps. Pour ceux qui ne connaissent pas
ce qu'est l'anti-sec mouvement, un petit rappel des
faits :
L'apparition de l'anti-sec date de 2000, peut être
un peu plus tot, bref il est pas tout récent.
Il commence avec le projet mayhem derrière cela se
trouve en fait des groupes s'opposants fermement au
full-disclosure. Le mouvement à réelement était actif
que quelques années puis est tombé dans l'oubli.
Jusqu'a ce qu'il réapparaisse plein d'entrains, avec soit
disant des failles 0-days dans openSSH, apache, bref plein
de trucs quoi. Ils défacent ImagesHack, rm des forums de
hacks, et font beaucoup de comms.

La revendication du deface d'imageshack :
http://seclists.org/fulldisclosure/2009/Jul/0095.html
Celle de Blackhatforums :
http://seclists.org/fulldisclosure/2009/Jul/0208.html

Il suffit juste de lire pour vite comprendre que ces
personnes ont un sérieux problèmes d'égo et de reconnaissance.
Ils ont besoin de se montrer, qu'on les admires, assez
étonnant pour la philosophie qu'ils pronnent derrière.
D'une part ils critiquent les crews qui publient leurs
exploits en mettant leur noms, et d'un autre coté ils
vont tout faire pour qu'on parlent d'eux.
Ils veulent que l'on sache que eux savent trouver des 0-days
C'est d'ailleurs
le but d'avoir pirater imageshack. Se faire médiatiser !
Cependant si ils avaient voulu vraiment faire passer un
message à tout les gens travaillant dans la sécu ils
auraient peut être du s'attaquer à une boite de sécurité.
C'est vrai quoi, avec une faille 0-days marchant sur tout
les serveux apaches, les cibles sont multiples.


On attend toujours le hack de hf.net et milw0rm.
(str0ke va être content, lui qui voulait arréter :))

La conclusion de tout ça : Du bluf, même si ils ont des
compétences techniques indéniables, ces gars n'ont pas de
réels croyances en ce mouvement, et comme d'habitude ont
revient à un problême d'égo.

mardi 14 juillet 2009

Il était une fois ... le mbr



Il était une fois le ... MBR

So, let's go..
Alors les enfants, aujourd'hui nous allons
explorer les méandres de vos disques durs et
plus particulièrement le Master Boot Record.

Le MBR est le tout premier secteur du disque
dur, il contient un programme en assembleur
(d'une taille de 446 octets) et une structure
de données appelée table de partition. (4x16 octets)
C'est à partir de la que les partitions vont
être lus. La table de partition va contenir
l'"adresse" physique de chacune des partitions.
(début et fin sur le HD), la taille de la partition
exprimée en nombre de secteurs, le type de partition
et une indication pour dire qu'une partition est
active ou pas active.

On va maintenant allez voir à quoi le MBR ressemble
et les infos qu'on peut en tirer :

Afin de pouvoir bosser dessus on va d'abort en faire
une copie.

Dans une console on va se servir de ddrescue pour faire
une sauvegarde de notre HD.

dd if=/dev/hda of=mbr_copie.bkp bs=512 count=1

if : Input File
of : Output File
bs : Block Size
count : Nombre de block

Une fois ça fait, on ouvre le fichier obtenue dans un
éditeur hexadécimale :


Les 446 octets du programme (bootloader) sont en bleu,
vient ensuite la table des partitions qui est comme
mentionné plus haut de 4x16 octets, et vient ensuite
la signature du MBR (les deux derniers octets).


La table des partitions :

Chaque table d'entrée des partitions est de 16 octets.

leurs signification est la suivante :



Petit exemple appliqué à la capture d'écran plus haut :
On peut observer que sur les 4 entrées possibles dans la
table des partitions la deuxième est active, on va
donc se concentrer sur celle la :

Octet 0 : 0x80 -> Partition active

Octet 1 : 0x00 -> Valeur 0 en base 10 -> La partition
commence sur la tête 0.

Octets 2 et 3 : 0x01, 0x00 -> Numéros du cylindre et du
secteur du début de la partition. Sur ces 16 bits, 10 bits
codent le numéro de cylindre (avec les bits 6 et 7 comme
bits de poids forts) et les 6 autres le numéro de secteur.
Sur certains type de proc les octets peuvent être lus
d'une autre manière.

Octet 4 : 0X83 -> Type de partition, ici Linux, systême de
fichiers. (la liste de tout les types est trouvable un peu
partour sur internet).

Octet 5 : 0xFE -> Valeur 254 en base 10, la partition se
termine sur la tête 254.

Octets 6 et 7 : 0x3F, 0x0C -> Même mode de calcul que pour
l'octet 2 et 3. Ils codent les numéros de fin de partition
du cylindre et du secteur.

Octets 8, 9, 10 et 11 : 0x3F, 0x00,0x00 0x00 -> Distance
en nombre de secteur entre la mbr et le secteur de boot
de la première partition, rien de bien interessant ici.
On obtien 63 secteurs.

Octets 12, 13, 14, 15 : 0x8E, 0x2F, 0x03, 0x00 -> Nombre
total de secteurs dans la partition.


Voila, c'est l'essentiel de ce qu'il faut savoir sur
la table des partitions.

Maintenant, avec les informations fournis par l'octet 4
ainsi que par le code du bootloader ont peut assez
rapidement définir le type d'OS utilisé.