Une des forces majeures de FreeBSD c’est la possibilité de compartimenter des processus et leurs enfants. Typiquement les jails BSD rappellent le chroot,
mais elles offrent une plus grande sécurité et plus d’options.
Construire une prison
Le processus de création d’une jail est extrêmement simple, vous aurez juste besoin d’un bon magasine pour patienter durant la compilation !
123
root@bsd9> mkdir -p /usr/home/jails/my_freebsd9_jail
root@bsd9> cd /usr/src
root@bsd9> make world DESTDIR=/usr/home/jails/my_freebsd9_jail/
Make va mouliner pendant un petit moment. Il faut compter environ 10 à 20 minutes suivant la puissance de votre machine. Une fois terminé, passons à la deuxième étape.
12
root@bsd9> cd etc
root@bsd9> make distribution DESTDIR=/usr/home/jails/my_freebsd9_jail/
On ne fait jamais attention à l’encodage des caractères en informatique. L’encodage peut n’avoir aucune incidence quand on utilise la langue de Shakespeare mais peut en avoir dès que l’on écrit dans une langue comportant des accents ou quand nous utilisons des caractères issus de la table étendue ASCII. Putty ne déroge pas à la règle, si l’encodage n’est pas correcte, vous vous retrouverez avec un affichage bâtard (voir 1 de l’image ci-dessous).
Pour éviter toutes surprises, vous pouvez configurer Putty pour qu’il affiche correctement tous les caractères. Pour cela, rendez-vous dans la partie “Configuration” puis dans la section “Window”. Dans “Translation”, cochez l’option “Treat CJK ambiguous characters as wide” et sélectionnez UTF-8 pour l’option “Remote character set”.
Suite à des soucis de DNS sur les serveurs du travail, j’ai découvert un outils super pratique: mtr (My Traceroute). Il s’agit d’un traceroute amélioré qui combine les fonctionnalités de traceroute et de ping. Il permet de savoir ou se trouve les pertes de paquets entre votre machine et la destination finale.
Vous rencontrez des problèmes pour lire de la musique ou des vidéos via HTTPS sous VLC ?
Les logs VLC vous disent que le fichier ca-certificates.crt est introuvable malgré que le package
ca-certificates.rpm soit installé ?
1234
[0x83916dc] gnutls tls client error: TLS session: access denied
[0x83916dc] gnutls tls client error: Certificate could not be verified
[0x83916dc] gnutls tls client error: Certificate's signer was not found
[0x83916dc] main tls client error: TLS client session handshake error
C’est juste un problème de nom de fichier: sous Fedora le fichier se nomme ca-bundle.crt, un
simple lien symbolique résoudra tout.
SABnzbd est un lecteur de newsgroup multiplateforme développé en Python. Il a l’avantage de proposer par défaut une interface web (webUI), ce qui permet d’installer facilement cette petite application directement sur votre serveur dédié. Ils gèrent le nzb et réparent et décompressent automatiquement les fichiers rar. Il est même possible d’être averti par email quand une tàche est terminée ou qu’il n’y a plus d’espace de stockage.
Si vous souhaitez tester SABnzbd, rendez-vous sur son site officiel: www.sabnzbd.org
Malgré que les paquets Fedora ne soit plus générés par Spotify, il est très facilement possible d’installer tout de même Spotify sur votre distribution Linux préférée.
Pour commencer, il faut récupérer à les paquets Debian (.deb) sur le dépôt officiel qui se trouve à l’url :
Après Redis, Cassandra à aussi droit à son “MyAdmin”. Grâce à cet outil, vous pourrez configurer et gérer le contenu de vos BdD Cassandra rapidement. Si vous avez une armée de Cassandra et que vous souhaitez administrer les nodes sans vous prendre la tête, CassandraMyAdmin est fait pour vous !
Cette petite merveille se trouve ici: https://github.com/sebgiroux/Cassandra-Cluster-Admin/
Il est intéressant de vouloir affecter une IP publique à une de vos machines virtuelles tournantes sur votre VMware ESX flambant neuf. Puisqu’ ESX ne propose pas de NAT (allez savoir pourquoi chez VMware les produit payant ont moins de fonctionnalité que les gratuits), créer une “appliance” qui aura pour seul but de fournir de l’internet à toutes les autres n’est pas idiot. Voyons comment procéder pour que votre machine virtuelle puisse dialoguer avec le monde.
De base chez OVH, vous aurez droit à 3 IP de type “Fail-Over” gratuitement que vous pouvez utiliser. Il est également possible d’acheter des blocs d’IP RIPE, mais il faut passer en abonnement pro (15 euros/mois). Pour cette partie je vous laisse procéder comme vous le souhaitez.
Une fois que vous avez pris possession de vos IP, rendez-vous dans la section “MAC virtuelle pour VPS” qui se trouve dans la catégorie “Services”. Le but est de demander à OVH de vous générer des adresses MAC compatible VMware pour chacune de vos IP publiques que vous souhaitez attribuer à vos machines virtuelles. Si vous avez plusieurs MAC à générer, prenez votre mal en patience car OVH impose une attente de 5 minutes entre chaque génération.
A ce stade, vous avez donc XX couple(s) MAC virtuelle ? IP publique. Rendez-vous dans le client vSphere puis :
Choisissez “Editer la configuration” sur la machine virtuelle qui va recevoir une IP Publique.
Editez la carte réseau puis attribuez-lui l’adresse MAC virtuelle fournie par OVH.
Lancez votre VM
Sous Linux, éditez le fichier /etc/network/interfaces pour modifier la configuration :
Quoi de plus rageant que de se retrouver avec un entier quand on à besoin d’une chaine de caractères? Et c’est encore plus vrai quand il s’agit d’un define qui est utiliser pour des fichiers .log.
Heureusement, les macros peuvent vous éviter une conversion lourde. Dans notre cas, il s’agit du préprocesseur __LINE__ qui indique le numéro de la ligne actuelle dans le fichier source, bref, exactement le type de valeur utile dans un fichier .log en cas de crash. Malheureusement, celle-ci est sous forme d’entier… Mais pas pour longtemps :
L’un de derniers projets réalisé l’année dernière concerne un élément important de la sécurité informatique : les Root-Kit ! Durant ce projet, nous avons vu comment mettre en place un root-kit sous Windows affin que celui-ci masque la présence de processus dans l’arborescence des processus lancés (tasklist) en utilisant la méthode DKOM (Direct Kernel Object Manipulation).
Pour ce faire, la première chose à réaliser est de télécharger les outils nécessaires WinDDK (http://msdn.microsoft.com/fr-fr/windows/hardware/gg487428/) et un bon éditeur de texte pour coder. Maintenant que vous avez les outils adéquats, place à la théorie !
Squelette du driver
Au final notre root-kit sera un magnifique driver (fichier .sys) avec lequel on dialoguera via IOCTL. Pourquoi un driver? Tout simplement car le driver n’est pas assujetti aux règles de sécurité une fois qu’il est exécuté : il pourra allez et venir comme il le souhaite dans des processus qui ne sont pas à lui. Bien, le template d’un tel projet et relativement simple, il est composé d’un fichier SOURCES (équivalent du Makefile Linux) et d’au moins 1 fichier .c.
Voici un exemple de fichier SOURCES utilisé par le projet :
Voilà, maintenant, il reste plus qu’à définir quelques fonction de votre driver histoire qu’il soit “compliant” avec l’OS (si le driver n’implémente pas un minimum de fonctions (Major Function), il risque de crasher/freezer votre machine à son chargement). Parmi ces fonctions obligatoires, on trouve Read/Write/Open et Close.
Structures des processus dans la mémoire
En Kernel Land, il est possible d’obtenir la liste des processus lancés depuis n’importe qu’elle application (Ben oui, on a tous les droits xD). Donc autant le faire simple, on va demander son propre processus avec la fonction :
1
PEPROCESSIoGetCurrentProcess(void);
Comme le montre ce diagramme, EPROCESS contient un élément nommé LIST_ENTRY qui donne accès à une liste doublement chainées qui permet de se promener de processus en processus et donc de pouvoir rechercher le processus que l’on souhaite masquer. Pour effectuer se masquage, il suffit de le retirer de la liste doublement chainée.
Attention : Vous vous apercevrez très rapidement que suivant l’OS sur lequel vous êtes, les offsets pour passer de l’EPROCESS à la LIST_ENTRY changent. Vous pourrez les retrouver en utilisant WinDBG.
Pour finir
Par manque de temps, je n’ai pas encore implémenté le spinlock pour éviter des petits soucis quand mon driver modifie cette liste de processus.
Si vous souhaitez tester ce projet, rendez-vous sur la page GitHub suivante : http://0xbaadf00d.github.com/deadlands-windows-dkom/