SYN, SYN-ACK, ACK …

Steal This Blog

Archives Posts

VMware Server et Virtual Router Redundany Protocol (VRRP)

mars 3rd, 2009 by Corbier

Selon Wikipédia :

Virtual Router Redundancy Protocol (protocole de redondance de routeur virtuel, VRRP) est un protocole non propriétaire redondant décrit dans la RFC 3768 dont le but est d’augmenter la disponibilité de la passerelle par défaut servant les hôtes d’un même sous-réseau.

Le fonctionnement de VRRP est le suivant :

Chaque Routeur Virtuel utilise une adresse mac de l’IANA ces adresses mac sont réversées et vont de 00:00:5e:00:01:00 à 00:00:5e:00:01:ff (on peut donc avoir 256 routeurs virtuels par segment Ethernet)

Les routeurs communiquent entre eux via l’adresse multicast réservée 224.0.0.18 associé à la mac réservé 00:00:5e:00:01:02

Comme l’indique le paquet capturé suivant :

Frame 6 (70 bytes on wire, 70 bytes captured)
Ethernet II, Src: IETF-VRRP-virtual-router-VRID_02 (00:00:5e:00:01:02), Dst: IPv4mcast_00:00:12 (01:00:5e:00:00:12)
Internet Protocol, Src: 192.168.130.160 (192.168.130.160), Dst: 224.0.0.18 (224.0.0.18)
Virtual Router Redundancy Protocol

Afin d’utiliser une IP virtuelle associés a plusieurs routeurs nous utilisons le Common Address Redundancy Protocol ou CARP.

Selon wikipédia :

Common Address Redundancy Protocol ou CARP est un protocole permettant à un groupe d’hôtes sur un même segment réseau de partager une adresse IP.

Dans le cadre de préparation de labs, j’ai voulu émulé l’ensemble de via une solution freebsd (Pfsense) sous VMware Server. Cependant l’adresse virtuel CARP ne pouvait pas être utilisé. Les réponses ARP était bien présente mais le ping et tout les autres services était indisponible.

Le module kernel vmnet drop tout les paquets ethernet que ne sont pas à destination :

  • d’elle même
  • d’une addresse de broadcast FF:FF:FF:FF:FF:FF
  • d’une addresse de multicast

Cependant le bloc de IANA est manquant !!!Les packets sont donc droppés.

Afin de valider et corriger le module noyau, il faut éditer le driver.c contenu dans /usr/lib/vmware/modules/source

Le fichier qui nous intéresse est dans l’archive vmnet.tar. Il faut extraire cette archive.

tar xvf vmnet.tar

cd vmnet-only

Ensuite nous devons localiser la fonction VNetPacketMatch qui est responsable du matching de paquet.

*
*———————————————————————-
*
* VNetPacketMatch –
*
*      Determines whether the packet should be given to the interface.
*
* Results:
*      TRUE if the pasket is OK for this interface, FALSE otherwise.
*
* Side effects:
*      None.
*
*———————————————————————-
*/

Bool
VNetPacketMatch(const uint8   *destAddr, // IN: destination MAC
const uint8   *ifAddr,   // IN: MAC of interface
const uint8   *ladrf,    // IN: multicast filter
uint32   flags)          // IN: filter flags
{
/*
* Return TRUE if promiscuous requested, or unicast destined
* for interface, or broadcast (and broadcast requested), or
* if multicast (and all multicast, or this specific
* multicast MAC, was requested).
*/

return ((flags & IFF_PROMISC) || MAC_EQ(destAddr, ifAddr) ||
((flags & IFF_BROADCAST) && MAC_EQ(destAddr, broadcast)) ||
((destAddr[0] & 0×1) && (flags & IFF_ALLMULTI ||
(flags & IFF_MULTICAST &&
VNetMulticastFilter(destAddr, ladrf)))));
}

Il faut ajouter les lignes suivantes ajoutant le support des paquets de IANA :

((destAddr[0] == 0) && (destAddr[1] == 0) &&
(destAddr[2] == 0x5e) && (destAddr[3] == 0) &&
(destAddr[4] == 1))

Ce qui nous donne la fonction suivante :

return ((flags & IFF_PROMISC) || MAC_EQ(destAddr, ifAddr) ||
((flags & IFF_BROADCAST) && MAC_EQ(destAddr, broadcast)) ||
((destAddr[0] == 0) && (destAddr[1] == 0) &&
(destAddr[2] == 0x5e) && (destAddr[3] == 0) &&
(destAddr[4] == 1)) ||
((destAddr[0] & 0×1) && (flags & IFF_ALLMULTI ||
(flags & IFF_MULTICAST &&
VNetMulticastFilter(destAddr, ladrf)))));

Sauvegardez et recompilez le module :

make vmnet.ko

Il nous reste à copié le nouveau module au bon endroit

cp vmnet.ko  /lib/modules/`uname -r`/misc/vmnet.ko

/etc/init.d/vmware restart

Nous avons désormais un VMware Server fonctionnelle.

Archives Posts

Nuit du Hack 2009

février 20th, 2009 by Corbier

La sécurité informatique et le hacking

Le développement des nouvelles technologies à donné naissance à un nouveau type de danger, aussi bien pour les entreprises que pour le consommateur final : le piratage des systèmes privés. Il s’agit dans la majorité des cas d’une intrusion sur le système même de la victime. Le pirate est alors en mesure d’utiliser l’ordinateur visé comme s’il en était propriétaire, mais sans en avoir les autorisations. Les conséquences peuvent être dramatiques aussi bien à une échelle commerciale qu’individuelle.

La sécurité informatique regroupe l’ensemble des techniques, compétences et méthodologies destinées à garantir l’intégrité des systèmes d’informations automatisés de tout type, et à les protéger contre cette menace de piratage.

Le Hacking peut se définir comme la passion de la recherche de jeunes esprits dynamiques, souvent amateurs, dans la recherche de bugs (cause de piratage) des programmes couramment utilisés, afin de trouver des solutions adaptées pour prévenir les utilisateurs de ces dangers. C’est aussi une volonté du partage de l’information avec le grand public, destinée à offrir à chacun la possibilité de comprendre, d’apprendre et de participer à son tour au développement de nouvelles technologies de sécurité.

Qu’est-ce que la Nuit du Hack?

Autour de conférences et de challenges informatiques, la Nuit du Hack a pour objectif de réunir passionnés et professionnels du monde de la sécurité informatique. Ils pourront découvrir les dernières avancées techniques dans ce domaine et évaluer leurs compétences.

A ne pas manquer, rendez vous a Paris le 13 juin. Au programmes conférences, challenges et autres joyeusetées.

Nous sommes actuellement a la recherche de conférenciers, si cela vous intéresse veuillez envoyer un mail indiquant le thème de celle ci et une explication de ce que vous allez aborder. Nous contacter.

Pour plus d’information rendez vous : http://www.nuitduhack.com

Les inscriptions seront bientôt ouvertes. Toute communauté du monde libre est également bienvenue. Le libre étant très proche de l’éthique que nous défendons de par son développement et sa rapidité d’évolution.

N’hésitez pas à venir nous voir sur le chan #hzv sur irc.worldnet.net.

Filed under Non classé having 1 Comment »

Archives Posts

IP-FailOver Ovh Vmware Server

janvier 23rd, 2009 by Corbier

Lorsque l’on a un serveur dédié on peut être tenté de faire de la virtualisation sur son serveur. Plus OS, facilité des backups etc… Cependant, pour éviter que ce soit trop le bazar sur leur réseau, Ovh a limiter les mac adresse par rapport au port des commutateurs.

Il est donc impossible de communiquer avec un machine qui serait bridger sur l’interface de la machine hôte. Pour pallier à ça il est possible de mettre ses machines virtuelles en mode HostOnly. Il suffit ensuite d’activer le routage et le snat sur le linux .

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Mais cela pose problème si l’on souhaite utiliser des ip public. Il faut donc feinter.

Tout d’abord ovh propose d’utiliser des IpFailOver afin de faire « pointer » plusieurs ip public sur le même serveur. Comme les mac adresses sont bloquées par port, il faut utiliser le proxy_arp de linux afin de réussir cette configuration.

L’idée est donc d’utiliser des ips public que l’on a acheter à ovh pour des machines virtuelles. Il faut donc configurer une interface réseau vmware en hostonly. Dans ma configuration c’est vmnet1. Activons maintenant le proxy_arp sur l’interface vmware.

echo 1 > /proc/sys/net/ipv4/conf/vmnet1/proxy_arp

Je vous laisse consulter la page suivante pour avoir plus d’information sur le fonctionnement d’un proxy arp.

Ensuite il faut ajouter une route à destination de ip_suplémentaire pour que la machine hote puisse savoir à quel interface envoyer le paquet.

route add ip_supplémentaire dev vmnet1

Il ne vous reste plus qu’a configurer votre machine virtuelle avec l’adresse suplémentaire. Avec un masque de sous réseau 255.255.255.255 pour pouvoir communiquer avec les machines de votre subnet.

Cependant attention le trafic à destination de votre machine virtuel passe par la table filter-forward d’iptables il vous faut évidement configurer les protocoles que vous souhaiter router.

Filed under Non classé having No Comments »

Archives Posts

HZV Magazine #01

novembre 3rd, 2008 by Corbier

On l’attendais depuis un petit moment et il est arrivé:

Après plusieurs mois d’attente, le team HZV est heureux de vous présenter le premier numéro du magazine HZV ! Nous vous invitons à poster vos commentaire sur le forum afin d’améliorer le prochain numéro. Je tiens à remercier tous les gens qui on cru à ce projet et ceux qui on activement participé à l’élaboration de ce premier numéro. Et encore toutes nos excuses pour le retard engendré par le maquetage du journal qui je l’espère sera à la hauteur de vos attentes ;)

Cordialement CrashFr

Voici le sommaire :

CODAGE DE DONNÉES
BOF : EXPLOITATION AVANCÉE
REDIRECTION DE FLUX
STACKS OVERFLOWS
LA TOILE À NUE FACE AU RENARD
NDS : LE WIFI ULTRA-PORTABLE
PRISE D’EMPREINTE DE SERVEUR
DÉMYSTIFICATION    DE L’EXPOIT WEB
LES RÉSEAUX DE ROBOTS
STÉGANOGRAPHIE
La BD : FUTURE EXPOSED
LA NUIT DU HACK 2008
CYBERFLASH
LES PTITS CONSEILS ENTRE AMIS
A L’HONNEUR
HOW TO CONTRIBUTE

Bonne lecture :p

Filed under Non classé having No Comments »

Archives Posts

DimDim Script

juillet 24th, 2008 by Corbier

Dimdim est une application intranet-internet de réunion à distance, à l’instar de logiciels comme Netmeeting ou Ekiga. Ainsi, il est possible de diffuser la voix de trois personnes au maximum sur tous les clients, ou de voir la caméra du maître de conférence. Ce dernier peut choisir, en outre, d’afficher :
- son écran
- un document au format PDF
- un document au format Word
- un document au format Excel
- un document au format PowerPoint

Dimdim ne se trouve pas sous forme de logiciel, mais s’intègre à un site Internet déjà existant. L’éxécutable installera un serveur apache, Tomcat. Dès lors, l’intérêt devient énorme quand on pense aux plateformes d’apprentissage en ligne, où les étudiants pourront avoir des cours en direct.

Dimdim semble à terme avoir un gros potentiel, d’autant plus que des paquetages d’installation existent pour différents LCMS (Learning Content Management System) : Claroline, Moodle et SugarCRM et s’installent facilement, comme des modules.

Beaucoup de personnes sur les forums n’arrivent pas à le faire fonctionner sous Ubuntu. Voici un script qui permet le téléchargement et l’installation des paquets nécessaire afin de le faire fonctionner sous Ubuntu.

Install_dimdim.sh

#######ChangeLOG##################
#Createur : Maussion Frederic
#Contact : Fmaussion@starxpert.fr
#Date de creation : 16/05/08
###################################

#Installation des paquets necessaire a dimdim
apt-get update && apt-get -qy install lighttpd openoffice.org sun-java6-jre wget python-setuptools

#On stop lighttpd pour plus tard
/etc/init.d/lighttpd stop

#Telechargement de Dimdim
cd /usr/src/
wget http://surfnet.dl.sourceforge.net/sourceforge/dimdim/Dimdim_Linux_Native_Install_v3.5.tar.gz

#Decompression de dimdim
tar xzvf Dimdim_Linux_Native_Install_v3.5.tar.gz
mv dimdim/ /usr/local/

#Telechargement et installation de cherrypy
wget http://download.cherrypy.org/cherrypy/3.0.3/CherryPy-3.0.3.tar.gz
tar xzvf CherryPy-3.0.3.tar.gz
cd CherryPy-3.0.3
chmod +x *
python setup.py install
cd /usr/src
rm -rf CherryPy-3.0.3/
rm -rf CherryPy-3.0.3.tar.gz

#Telechargement et installation de flup
wget http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz
tar xzvf flup-1.0.tar.gz
cd flup-1.0
chmod +x *
python setup.py install
cd /usr/src/
rm -rf flup-1.0
rm -rf flup-1.0.tar.gz

#Telechargement et installation de zdeamon
wget http://pypi.python.org/packages/source/z/zdaemon/zdaemon-2.0.2.tar.gz
tar xzvf zdaemon-2.0.2.tar.gz
cd zdaemon-2.0.2
python setup.py install
cd /usr/src/
rm -rf zdaemon-2.0.2
rm -rf zdaemon-2.0.2.tar.gz

#On backup les fichiers de configuration que l’on va modificer
cp /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf.bak
cp /usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py /usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh.bak
cp /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh.bak

#On indique ou se situe le fichier dans une variable
wrapper=/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf
osconfig=/usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py
java=/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/jvm.cfg
startdimdim=/usr/bin/startDimdim

#On remplace la commande « source » par un point
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_status.sh
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_start.sh
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_stop.sh
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_watcher.sh
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_daemon_checker.sh
sed -e ‘s#source#.#’ -i /usr/local/dimdim/DTP3/Deployment/Reflector/reflector_check.sh
#Dans le fichier de configuration on remplace le root de java par le notre
sed -e ‘s#wrapper.java.command=DIMDIM_JAVA_HOME/bin/java#wrapper.java.command=/usr/lib/jvm/java-6-sun-1.6.0.06/bin/java#’ -i $wrapper

#Dans le fichier de configuration on remplace le root de OOo par le notre
sed -e ‘s#/opt/openoffice.org2.3/program/#/usr/lib/openoffice/program/#’ -i $osconfig

#Dans le fichier de configuration de java on indique a java qu’il n’agisse pas en temps que client regle des pb dans openvz
sed -e ‘s#-client IF_SERVER_CLASS -server#-client KNOWN#’ -i $java

#Changement de l’executable de lighthttpd
sed -e ‘s#/usr/local/dimdim/lighty/sbin/lighttpd#/usr/sbin/lighttpd#’ -i $startdimdim

#On creer les dossiers
mkdir /usr/local/share/swftools

#Copie des fichiers necessaire a dimdim
cp /usr/local/dimdim/swftools/pdf2swf /usr/bin
cp /usr/local/dimdim/swftools/swfextract /usr/bin
cp /usr/local/dimdim/swftools/swfdump /usr/bin
cp /usr/local/dimdim/swftools/libs/* /usr/lib
cp -r /usr/local/dimdim/swftools/swffonts/fonts /usr/local/share/swftools/
cp -r /usr/local/dimdim/swftools/swffonts/swfs /usr/local/share/swftools/

#Export du home de java dans le .bashrc
echo « JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.06/ » >> /root/.bashrc
echo « export JAVA_HOME » >> /root/.bashrc
echo « PATH=$JAVA_HOME/bin:$PATH » >> /root/.bashrc
echo « export PATH » >> /root/.bashrc

#Creation de lien symobilques
ln -s /usr/lib/openoffice/program/soffice.bin /usr/bin/soffice.bin
ln -s /usr/local/dimdim/startDimdim.pl /usr/bin/startDimdim
ln -s /usr/local/dimdim/stopDimdim.pl /usr/bin/stopDimdim
ln -s /usr/lib/libpcre.so.0 /usr/lib/libpcre.so.3
#pour wrapper
ln -s /bin/ps /usr/bin/ps

#On applique les permissions aux differents dossier
chmod +x /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/*
chmod +x /usr/local/dimdim/red5/*
chmod +x /usr/local/dimdim/red5/conf/*
chmod +x /usr/local/dimdim/nginx/sbin/*
chmod +x /usr/local/dimdim/DTP3/Deployment/Reflector/*
chmod +x /usr/local/dimdim/Mediaserver/mods/*
chmod +x /usr/local/dimdim/Mediaserver/www/pages/*
chmod +x /usr/local/dimdim/swftools/*
chmod +x /usr/bin/*
chmod +x /usr/lib/*
chmod +x /usr/local/share/*

#/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/jvm.cfg

#Lancement de dimdim
startDimdim

Si vous avez des soucis vous pouvez me contacter sur l’adresse suivante : fmaussion (at) starxpert.fr

Télécharger le script Install_Dimdim.sh

Références :

http://www.dimdim.fr

http://www.dimdim.com

Filed under Linux, scripting having No Comments »

« Previous Entries