2008-09 Archives

22-09-2008 11:26:45

[Security] Les dangers de MSN en entreprise

MSN est une messagerie certes tres jolie et tres kikoolol pour l'utilisateur lambda mais qui représente un grand danger lors d'une utilisation en entreprise. Pourquoi ? Car tous les messages circulent en clair, sans aucun chiffrage. Quand on le dit au gens, ils ne le prennent généralement pas au sérieux.

Solution : Faites leur une démo.

Pour cela, nous allons avoir besoin de 2 logiciels :
-Ettercap : un outil permettant une attaque Man In The Middle (MITM) tres simplement
-Wireshark : un outil de sniffing réseau

Le principe consiste a se faire passer pour la passerelle pour que la machine victime nous envoie tous les paquets que nous redirigerons ensuite nous meme vers la vraie passerelle et de meme nous allons empoisonner la passerelle pour qu'elle nous réponde.

Tout d'abord nous allons activer le forwarding sur notre machine pour permettre cette redirection de paquets.
Sous FreeBSD nous taperons :

sysctl net.inet.ip.forwarding=1
Sous Linux cela donnera :
echo 1> /proc/sys/net/ipv4/ip_forward

Ensuite nous allons lancer Ettercap (en root) avec la commande
ettercap -G
La il faut aller dans Sniff et choisir Unified Sniffing. Puis dans on, on choisira Scan for hosts puis Hosts List pour voir la liste d'host disponible sur le réseau. On met en surbrillance l'ip de la passerelle et on choisi "Add to Target 1". On choisi ensuite l'ip de la machine que l'on veut écouter et on clic sur "Add to Target 2".

Tout est pret, il ne reste plus qu'a lancer l'attaque en allant sur le menu MITM et en choisissant ARP Poisoning. Si l'on va sur la machine attaquée attaquée que l'on tape arp -a , la passerelle possède notre adresse MAC.

Maintenant on ouvre Wireshark (en root) pour sniffer le réseau :
wireshark
On va dans Capture > Interfaces et la on appuie sur Start de notre interface réseau. Maintenant pour filter les messages MSN, on va dans le champs filter et on écrit :
msnms contains "text/plain"
On appuie sur Entrée et il ne reste plus qu'a attendre :)

Cette manipulation tres simple peut s'appliquer pour écouter n'importe quel protocole non chiffré. Il montre le danger de ceux ci en entreprise et la maniere dont les employés utilisent la messagerie instantanée pour communiquer des informations importantes. On se rend compte donc de l'importance de mettre en place des actions la dessus qui peuvent etre :
-supprimer le protocole MSN (il faut penser aux serveur web offrant ce service)
-mettre en place des clients avec des modules chiffrés (GAIM)
-utiliser une messagerie interne chiffrée : JABBER
-former les employés sur l'importance de sécuriser leurs conversations (messagerie instantanée, mails...)

Il peut également etre interessant de mettre en place un IDS comme Snort pour vérifier que quelqu'un n'est pas une activité malveillante d'écoute sur le réseau ou d'utiliser Ettercap qui permet de détecter d'autres Ettercap sur le réseau.


Posté par cloud | permalien | dans : Security

18-09-2008 13:42:27

[Article] Utilisation de Scapy

Scapy est un outil ecrit en python vital pour tout pen tester ou pour quelqu'un faisant du reseau de maniere avancer car permet de forger ses propres paquets ainsi que scanner, sniffer, fuzzer et bien d'autres actions. Il permet en plus de creer des graphiques afin de visualiser au mieux les resultats. J'ai donc ecrit un article expliquant son utilisation.

How to Scapy


Posté par cloud | permalien | dans : OpenSource, Security, Coding

16-09-2008 16:43:07

[Script] Sauvegarde fichiers / MySQL

Voici un petit script de sauvegarde que j'ai developpé pour les besoins actuels d'un serveur FreeBSD mais qui fonctionnera bien sur sous Linux. Il consiste a créer un fichier contenant la liste des répertoire que l'on veut sauvegarder ainsi que des données MySQL. Ensuite ca compresse le tout et envoi ca sur un serveur distant via SCP. Bien sur il faudra avoir configuré SSH par clé autorisées.
Voila le code :

#!/usr/local/bin/bash

#Repertoire de temp en local
REPBACKUP='/home/cloud/backup/kimsufi/files'
REPBACKUPDB='/home/cloud/backup/kimsufi/db'

#Liste des fichier et des DB
FILEBACK='/home/cloud/Coding/Bash/listeRep'
FILEMYSQL='/home/cloud/Coding/Bash/listeBase'
FILENB='/home/cloud/Coding/Bash/NB'

#Serv distant de sauvegarde
SERVDIST='root@mon-site.com'

echo "-- Script BACKUP systeme --"
echo "-- author: Remi LAURENT --"
echo "-- date: 16/09/08 --"
echo ""

rm $REPBACKUP/*
rm $REPBACKUPDB/*

for LINE in `cat $FILENB`; do
	NB=$LINE
done

#Rep distants de sauvegarde
DISTBACKUP='/root/sauvegarde/'$NB'/files/'
DISTBACKUPDB='/root/sauvegarde/'$NB'/db/'

echo "-- Dump des fichiers ..."
for LINE in `cat $FILEBACK`; do
	NOMFICHIER=`basename $LINE`
	tar jcvf $REPBACKUP/$NOMFICHIER.tar.bz2 $LINE
done

echo "-- Dump MySQL ..."
for LINE in `cat $FILEMYSQL`; do
	dbhost=`echo $LINE | cut -d: -f1`
	dbuser=`echo $LINE | cut -d: -f2`
	dbpass=`echo $LINE | cut -d: -f3`
	dbbase=`echo $LINE | cut -d: -f4`
	mysqldump -h $dbhost  -u$dbuser --password='$dbpass' --complete-insert '$dbbase' > $REPBACKUPDB/$dbbase
	tar jcvf $REPBACKUPDB/$dbbase.tar.bz2 $REPBACKUPDB/$dbbase
	rm $REPBACKUPDB/$dbbase
done

echo "-- Envoi distant ..."
for FILE in `ls $REPBACKUP`; do
	scp $REPBACKUP/$FILE $SERVDIST:$DISTBACKUP
done

for FILE in `ls $REPBACKUPDB`; do
	scp $REPBACKUPDB/$FILE $SERVDIST:$DISTBACKUPDB
done

#On indiquer a quelle version on en est
if (( $NB == 7 )); then
	NB='1'
else
	NB=$(( $NB + 1 ))
fi

echo $NB > $FILENB
echo "Backup termine."
Ensuite on va créer un fichier ListeRep contenant les répertoires a sauvegarder :
/usr/local/www/apache22
/home/cloud/Artzainak
De la meme maniere on va créer un fichier ListeBase contenant les informations des bases de données MySQL a sauvegarder sous cette forme :
host:user:password:nom_base
host2:user2:password2:nom_base2
On crée un dernier fichier NB contenant le nombre 1.

Sur le serveur distant ou seront stockées les sauvegardes, on crée le repertoire /root/sauvegarde/ et dans ce repertoire, on crée 7 répertoire nommés 1 2 3 4 5 6 7 dans lesquels on créera un répertoire files/ et un db/ pour chacun.

Il ne reste plus qu'a faire un cron executant le script tous les jours et les sauvegardes se feront la ou il faut :)


Posté par cloud | permalien | dans : FreeBSD, OpenSource, Security, Coding

10-09-2008 16:18:23

[How To] Portail captif avec PFSense

Le but de se How to est d'installer et de configurer PFSense afin de l'utiliser en portail captif. Voici un dessin de l'architecture :

INTERNET ---------- PFSense -------- Point d'acces -------- PC Wifi
Notre PFSense a donc 2 cartes réseaux. On procede donc a l'installation qui est plutot simple. Pour le réseaux, j'ai réparti comme cela :
Patte WAN de PFSense (coté Internet) : fxp0 en 192.168.0.148/24
Patte LAN de PFSense (coté Point d'acces) : xl0 en 10.0.0.1/24
Le point d'acces est en DHCP
Ma route par defaut est 192.168.0.1

On va donc commencer par aller dans la partie DNS Server. La on va activer celui ci sur la patte LAN . On lui adressera un spool d'adresse de 10.0.0.100 a 10.0.0.200. Surtout ne pas donner d'adresse de serveur DNS. La gateway n'est pas nécessaire non plus car il utilisera la route par défaut fourni auparant.

Ensuite on va aller dans DNS Forwarder et activer celui ci.

Enfin on va dans Captive Portal et on configure comme il se doit. On l'active sur la patte LAN, on met une redirection d'URL, on coche le systeme d'authentification (j'utilise le local manager) et on pensera a ajouter des utilisateurs pour se logger dans l'onglet File Manager.

Il ne reste plus qu'a se connecter depuis un poste Wifi et si tout s'est bien passé, on est redirigé sur notre beau portail captif :D


Posté par cloud | permalien | dans : FreeBSD, OpenSource, Security

03-09-2008 18:56:14

Test de Google Chrome Beta

Hier est sorti la version tres attendu de Google Chrome. Je l'ai donc installé pour voir ce nouveau navigateur.

L'installation se fait rapidement et la apparait une interface tres épurée et fort agréable a regarder. Je test quelques pages et la direct, WoW c'est rapide ! Le nouveau moteur de javascript V8 cartonne dur. L'ouverture de nombreux onglets ne semble pas consommer beaucoup de ressources. La barre intelligente (soi disant) est pas mal mais certaines adresses comme quand je travaille en locale ne revienne qu'en tapant l'ip entiere... Pas tres tres pratique.
Petit test Flash. Ah perso ca consomme plus de ressource que sous FF et ca rame. Test d'un applet... ah ben JAVA n'est pas reconnu :). Je continu a l'utiliser toute la journée car dans l'ensemble il va vraiment vite. Bon j'ai eu droit a 2 plantage complet du PC lors de visualisation de pages Google Groups, chose qui ne m'était jamais arrivé... Hasard ?... Pas sur.

Pour voir les news, je vais voir comme d'hab milw0rm et la déja une faille pour Google Chrome. Bon c'est juste un DDoS, il y a plus méchant.2h apres une faille d'inclusion de n'importe quelle fichier dans une iframe permet son téléchargement! Ouch, une faille digne de Internet Explorer il y a 5 ou 6 ans...

En conclusion de ce 1er test, Google Chrome est tres agréable a utiliser, rapide et a peu pret ergonomique mais loin d'etre parfait. Déja de jolies failles qui montre quand meme que le code est loin d'etre parfait car assez importante. Une instabilité du système et le manque de certain plugins le rendent inutilisable a 100% au quotidien mais c'est normal pour une version Beta. Cela reste un projet tres prometteur !


Posté par cloud | permalien | dans : OpenSource, Security