Introduction
Avant l’arrivée massive des clés usb, le CD était le support de stockage roi. Simple d’utilisation, relativement robuste, il permet de stocker de manière permanente nos données sans possibilité de modification par la suite (Dans le cas des CD-R). Seulement vous venez de vous rendre compte qu’il vous manque un dossier à votre super backup fait sur votre CD-R, et là.. c’est le drame! Vous devez utiliser un autre CD-R afin de pouvoir regraver une nouvelle fois votre backup, mais cette fois ci complet…
En fait non pas tout à fait, il existe une méthode permettant de graver vos CD-R en plusieurs fois, et donc d’y ajouter des données au fur et mesure, il s’agit de la gravure multi-session.
Comment ca marche?
Concrètement un CD est constitué d’au moins une session. Cette session quand à elle, contiendra au moins une piste. Ainsi lorsque vous gravez votre backup, normalement votre cd est constitué d’une session, contenant une piste de données avec votre backup. Afin qu’on puisse différencier ces différentes sessions qui peuvent se trouver sur un CD, il existe deux zones que l’ont peut qualifier de délimiteurs:
- Le lead-in, c’est la zone qui joue le rôle d’en-tête de la session et qui contient le TOC (« La table des matière »). Le TOC joue le role d’index des pistes contenus dans la session courante, le nombre de piste est limité à 99, on peut l’assimiler grossièrement à une table des partitions sur un disque dur.
- Le lead-out, c’est la zone qui finis la session, il s’agit en fait d’au moins 90secondes de silence
Ce qui va réellement faire la différence, c’est la cloture du CD. Une fois notre CD clôturé, il n’est pas possible d’y ajouter de sessions, et donc de données. Dans le cas d’un CD multi-sessions, après chaque gravure, les sessions nouvellements gravées sont cloturés par le lead-out, mais pas le CD.
Maintenant deux details qui ont de l’importance pour la suite de l’article:
- lorsque vous ajoutez une session à votre CD, vous pouvez garder la/les sessions précédentes en y ajoutant une référence dans le lead-in de la session que vous ajoutez.
- lorsqu’un cd multi-session est lu, c’est le TOC de la dernière session présente sur le CD qui est lu.
Seulement rien ne vous oblige à conserver la référence sur les sessions précédentes, ainsi dans le cas ou vous gravez une session avec des données confidentiels dessus, ces données sont accessible par tous, jusque là tout est ok. Maintenant vous créez une seconde session à la suite du CD, tout en omettant de reprendre la session précédente, mais cette fois vous gravez vos photos de vacances: lorsque vous lirez le CD gravé sur votre ordinateur, ce seront les photos qui apparaitront
Il est donc possible pour nous de dissimuler des données par ce moyen
Petit bémol:
- Il est toujours possible de récupèrer les données des sessions précédentes puisque celles ci ne peuvent être retirer du support (c’est un CD-R)
La récupération de ces données sera traité dans la dernière partie de ce post, pour le moment interressons nous à la dissimulation par la pratique
Dissimulation des données dans une session
Tout d’abord nous allons commencer par créer un fichier iso contenant nos données « sensibles » à graver:
sh4ka@mini-moi:~$ mkisofs -R -o session1.iso article/
sh4ka@mini-moi:~$ isoinfo -f -i session1.iso
/S3CR3T
/S3CR3T/PRIV8.TXT;1
sh4ka@mini-moi:~$
Explications:
- mkisofs créer un fichier iso du nom de « session1.iso » ( -o ) et y place le contenu du dossier « articles/ » de facon récursive ( -R )
- isoinfo nous permet de verifier la validité de notre iso en nous indiquant son contenu ( -f )
- Ici nous avons dans notre iso un dossier S3CR3T, qui contient un fichier PRIV8.TXT
Passons maintenant à la gravure de nos données:
sh4ka@mini-moi:~$ sudo cdrecord -dev=/dev/cdrom -multi -v -speed=4 session1.iso
- -dev=/dev/cdrom il s’agit du périphérique de gravure
- -multi indique a cdrecord que nous créer un cd multisession
- -v active le mode verbeux, peut être pratique dans le cas où vous avez des erreurs
- -speed=4 indique la vitesse de gravure, ici 4x
- session1.iso c’est tout simplement le nom de notre fichier iso à graver
Il est possible de verifier le contenu de notre cd:
sh4ka@mini-moi:~$ sudo mount /dev/cdrom /mnt -t iso9660
sh4ka@mini-moi:~$ ls -R /mnt
/mnt:
s3cr3t
/mnt/s3cr3t:
priv8.txt
Maintenant passons à la création de notre seconde session, tout d’abord il est nécessaire de récupérer quelques informations sur la première session contenu sur le disque:
sh4ka@mini-moi:~$ wodim -dev=/dev/cdrom -msinfo
0,11702
- 0 -> le premier secteur de notre session
- 11702 -> le dernier secteur de notre session , autrement dit le point de départ pour la session 2
Ensuite nous allons de nouveau générer un fichier iso que nous graverons à la suite de notre première session:
sh4ka@mini-moi:~$ mkisofs -o session2.iso -R -C $(wodim -dev=/dev/cdrom -msinfo) article/
- -C prend en argument le premier secteur de la session précédente ainsi que son dernier, afin de positionner nos données après celle ci
- article/ le dossier qui contient nos données (le contenu à changer par rapport à notre première session
)
Cette iso aura la particularité d’être ajouté à la suite de notre première session lors de sa gravure, mais pas d’en reprendre le contenu, si vous souhaitez créer une session qui continue la première vous devrez rajouter l’option « -M /dev/cdrom ».
Maintenant, on grave…:
sh4ka@mini-moi:~$ sudo wodim -dev=/dev/cdrom -speed=4 -multi session2.iso
et voilà
vérification:
sh4ka@mini-moi:~$ sudo mount /dev/cdrom /mnt
sh4ka@mini-moi:~$ ls -R /mnt
/mnt:
wallpaper
/mnt/wallpaper:
le_secret_de_la_vie.jpg
On ne retrouve plus le dossier s3cr3t et son fichier priv8.txt
pourtant il est encore sur le cd, voici la méthode permettant de le récupérer:
Récupération du contenu de toute les sessions
Il est interressant de savoir comment récupérer les données de l’ensemble des sessions sur un cd, rien que pour le domaine forensic. Par exemple, cette technique a été utilisé dans plusieurs cas de dissimulation d’images pedo-pornographique.
Afin de lister l’ensemble des sessions de notre CD précédement créer, et d’afficher leur contenu, nous utiliserons ici CDfs.
Tout d’abord, il faut l’installer:
sh4ka@mini-moi:~$ wget http://users.elis.ugent.be/~mronsse/cdfs/download/cdfs-2.6.27.tar.bz2
sh4ka@mini-moi:~$ bzip2 -d cdfs-2.6.27.tar.bz2
sh4ka@mini-moi:~$ tar xvf cdfs-2.6.27.tar
sh4ka@mini-moi:~$ cd cdfs-2.6.27/
Avant de lancer la compilation, il sera peut être necessaire que vous changiez le contenu de la ligne 85 du fichier cddata.c
.sendfile = generic_file_sendfile
par
.splice_read = generic_file_splice_read
dans le cas où obtenez cette erreur lors du make:
/home/sh4ka/cdfs-2.6.27/cddata.c:85: erreur: unknown field ‘sendfile’ specified in initializer
/home/sh4ka/cdfs-2.6.27/cddata.c:85: erreur: ‘generic_file_sendfile’ undeclared here (not in a function)
sh4ka@mini-moi:~/cdfs-2.6.27$ make
sh4ka@mini-moi:~/cdfs-2.6.27$ sudo make install
sh4ka@mini-moi:~/cdfs-2.6.27$ sudo insmod cdfs.ko
On peut maintenant utiliser cdfs lors de l’appel à la commande mount, afin de lister les sessions:
sh4ka@mini-moi:~$ sudo mount -t cdfs -o ro /dev/cdrom /mnt
sh4ka@mini-moi:~$ ls /mnt
sessions_1-1.iso sessions_1-2.iso
on retrouve deux fichiers iso, correspondant à nos deux sessions. On peut donc dès à présent les mount et en lire le contenu:
sh4ka@mini-moi:~$ sudo mkdir /media/session1
sh4ka@mini-moi:~$ sudo mkdir /media/session2
sh4ka@mini-moi:~$ sudo mount /mnt/sessions_1-1.iso /media/session1 -o loop
sh4ka@mini-moi:~$ sudo mount /mnt/sessions_1-2.iso /media/session2 -o loop
sh4ka@mini-moi:~$ ls -R /media/session1/
/media/session1/:
s3cr3t
/media/session1/s3cr3t:
priv8.txt
sh4ka@mini-moi:~$ ls -R /media/session2/
/media/session2/:
wallpaper
/media/session2/wallpaper:
le_secret_de_la_vie.jpg
sh4ka@mini-moi:~$
game over
Conclusion
C’est une méthode relativement simple à mettre en place, elle est néanmois tout aussi facilement détectable et ne permet donc pas un grand anonymat pour nos données. Elle peut toute fois servir dans pas mal de cas, pour la petite annecdote, certains live cd utilise la technique des multisessions non pas pour dissimuler des données confidentiels de l’user, mais plutot pour sauvegarder les changement fait par l’user
Il est également possible de créer des cd multisession à partir de cd-rw
pensez ensuite à en effacer le contenu avec la commande:
wodim -dev=/dev/cdrom -blank=all

A essayer
Astuce simple mais néanmoins très intéressante. Fallait y penser
Pratique pour cacher des fichiers qui n’ont pas non plus besoin d’avoir le statut « secret défense » et nécessiter des techniques de oufzor.
Plutôt sympa pour un premier billet
Bravo
J’ai bookmarké le wordpress dans l’espoir de voir d’autres billet aussi bon, mais ça bouge plus depuis 10 jours :s.
Donc c’est laissé à l’abandon ou ça va suivre ?
Oui désolé, j’ai eu quelques contre temps avec des projets d’ordre scolaire , mais y’a un voir deux articles qui devraient sortir cette semaine
Désolé pour l’attente ^^
Ok nickel ! Vivement la suite alors =)