12/10/2006
12/09/2006
Firefox et Java
apt-get install sun-java5-jrele plugin qui va avec... Maintenant allez dans le répertoire des plugins de Firefox:
cd ~/.mozilla/pluginset il ne suffit plus que de créer un lien symbolique:
ln -sfn /usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so ./ça y est le tour est joué: amusez vous bien
Freemind sur ma Debian
Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(libgcj.so.7) at java.awt.Window.en fait il ne peut charger le toolkit gnu.java.awt.peer.gtk.GtkToolkit, qu'à cela ne tienne: installons le java de SUN: java-1.5.0-sun (jre) soit:(libgcj.so.7) at java.awt.Frame.(libgcj.so.7) at javax.swing.JFrame.(libgcj.so.7) at freemind.main.FreeMind.(FreeMind.java:68) at freemind.main.FreeMind.main(FreeMind.java:500) Caused by: java.lang.ClassNotFoundException: gnu.java.awt.peer.gtk.GtkToolkit at java.lang.Class.forName(libgcj.so.7) at java.lang.Class.forName(libgcj.so.7) at java.awt.Toolkit.getDefaultToolkit(libgcj.so.7) ...6 more zsh: exit 1 freemind
apt-get install sun-java5-jreRéessayons... Même problème: cela signifie qu'il faut indiquer à Debian où regarder: ajoutons donc ces deux petites lignes:
export PATH=$PATH:/usr/lib/jvm/java-1.5.0-sun/binLa première indique où regarder pour trouver l'application Java, et l'autre où regarder quand on a démarrer Java pour les librairies et autres... Réessayons: ça marche
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/

Tags: java, freemind, sun-java5-jre, carte cognitive, cognitif, debian, export
12/07/2006
Casino Royal
Le dernier James Bond... Je dois avouer, qu'étant trop jeune pour avoir pu apprécier les James Bond de Sean Connery... Je préférais de loin Pierce Brosnan, même s'il était un peu vieillissant... J'étais donc un peu curieux de voir Daniel Craig incarner le célèbre agent secret au service de sa majesté... et je n'ai pas été déçu: il est parfaitement à son aise dans le costume d'un 007 qui vient juste d'être promu double 00. D'ailleurs savez vous ce que signifie 007? Le premier 0 signifie qu'il a le droit de tuer, le second qu'il l'a déjà fait et le 7 est là pour rappeler qu'il est le 7ème agent. Vous verrez donc les premiers meurtres de James Bond... mais contrairement aux James Bond précédants excepté "Meure un autre jour"... Daniel Craig s'en prend plein la figure (pour ne pas citer d'autres parties de son anatomie)... et l'intrigue n'est pas trop plate ;-) Un très très bon divertissement: de l'action mais avec un fond: du très grand James Bond ;-) à aller voir ;-)Petite paranoïa passagère...
- CookieCuller: il vous permet de spécifier quels sont les cookies intéressants et que vous voulez garder... Une fois la sélection terminée, il suffit d'aller dans
Edit > Preferences > Privacy et d'indiquer tous les cookies à la fermeture de Firefox... Ne vous inquiétez pas CookieCuller protège les cookies que vous avez sélectionné: ces dernier seront encore là au prochain démarrage de Firefox. - TrackMeNot: j'aime bien ce nom, qui ressemble un peu au contraire de ForgetMeNot... Cette fois vous aller inonder (à raison d'une requête par minute, par défaut) les grands moteurs de recherches avec des recherches bidons du genre Pamela Anderson, Truck, Irak et j'en passe... Vous pouvez même personnaliser cette liste ;-)
- BlackBox Greasemonkey Extension: cette extension renvoie toutes vos requêtes faites sur Google, Yahoo ou MSN vers le site BlackBoxSearch qui est un proxy sécurisé...
12/06/2006
Métaphore de la virtualisation
Imaginez que vous utilisez Google Earth, que vous zoomez Place de la Concorde à 18H. Vous voyez l'obelisque et plein de voitures... C'est un véritable cauchemar plein d'embouteillage et où on n'avance pas. Vous zoomez encore et vous vous apercevez que dans chaque voiture il n'y a qu'une seule personne... Imaginez maintenant que vous pratiquiez le co-voiturage... dans chaque voiture il y a 5 personnes maintenant: ce qui signifie que sur la place de la Concorde, il y a 5 fois moins de voitures... Le trafic est fluide... Mais encore faut-il que toutes les personnes au sein d'une même voiture veuillent aller dans la même direction... C'est ça les promees et les difficultés de la virtualisation...J'ai adapté un peu parce qu'il ne parlait pas de co-voiturage mais de bus... Ce qui est bien mais qui suppose de changer toutes les machines... ce qui en matière de cout n'est pas vraiment optimal... Surtout que des solutions comme Xen, Qemu ou VmWare sont quasiment multi-plateforme... Je voulais seulement partager avec vous ce petit moment de poésie ;-)
12/05/2006
Vague de spam...
When companies falter or are under-valued they quickly get scooped off of the public markets. So what happens when you extrapolate an estimate based on two measurements of differing certainty? 12/02/2006
Flash Player 9.0 pour Linux
http://www.adobe.com/go/fp9_update_b2_installer_linuxplugin
vous le décompressez et il ne suffit plus que de copier libflashplayer.so dans votre répertoire utilisateur des plugins de votre renard préféré (Firefox), ce doit être quelque chose comme: ~/.mozilla/plugins/ ... ça y est redémarrez le renard et en route pour tous les sites en flash (vous pouvez tester un jeu MacDo) And now enjoy ...
11/30/2006
Les Intel Dual Core vont se trainer
11/29/2006
Un chien obèse...
j'attends la prochaine étape : les parents d'enfants obèses envoyés au tribunal pour avoir trop nourri leurs rejetons ou pour leur avoir laissé manger n'importe quoi... Je sens que les avocats vont bientôt pouvoir se frotter les mains... du moins dans un premier temps aux Etats Unis ;-)11/28/2006
Retina & Nessus
11/27/2006
Les moteurs de recherche coopératifs


un moteur de recherche dédié à la distribution Gentoo/Linux et en Français
11/18/2006
Angry Alien Productions
En parcourant la blogosphère (notamment le blog "Ceci dit...") j'ai découvert ces petits films d'une trentaine de seconde en flash. 30 secondes c'est le temps nécessaire pour vous raconter un film en entier: Pulp Fiction, Massacre à la tronçonneuse, Star Wars, Reservoir Dog, Les aventuriers de l'arche perdu, Titanic, Scream, Rocky... Je suis un fan des Happy Tree Friend, qui sont un peu les Itchy&Scratchy de notre monde alors j'ai beaucoup apprécié ces petites animations beaucoup moins violentes mais extrêmement bien réalisées: bonne scéance
11/17/2006
Un jeu Mc Donald?
je vous ai déjà parlé de Fast Food Nation et de la manière dont ces entreprises s'enrichissent sur le dos des consommateurs en sacrifiant leur santé... Aujourd'hui je vous propose de vous mettre dans la peau de Ronald Mc Donald en jouant à ce petit jeu... Alors prêt à se mettre dans la peau de Ronald McDonald? C'est dur de stabiliser la bourse tout en reussissant à fournir de la viande de qualité à tout le monde...


Burger King et l'homme serpent
11/15/2006
La vente forcée...
11/14/2006
Paris - Londres en deux heures...
Qu'est ce que l'Air Guitar?
vous pouvez pousser le concept encore un peu plus loin : je vous propose de faire du air band comme dans Scrubs...
11/13/2006
Ajax - Blogger - ListURL
- getXMLHTTP() : c'est une fonction générique que j'utilises pour tous mes application Ajax: vous pouvez la copier et la garder bien au chaud dans un coin.
- getlist() : la fonction que j'appelle dans la page html : c'est dans cette fonction qu'on va rechercher l'information...
- displayresponse() : on récupère du XML qu'il faut remettre en forme: c'est justement le but de cette fonction.
<script>
function getXMLHTTP()
{
var xhr = null;
if(window.XMLHttpRequest)
{ // Firefox et autres
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{ // Internet Explorer
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e1)
{
xhr = null;
}
}
}
else
{
alert("Your browser does not support XMLHTTPRequest objects...");
}
return xhr;
}
function getlist() {
var XHR = getXMLHTTP();
XHR.open("GET","http://wolverinex02.googlepages.com/listurl.xml",true);
XHR.onreadystatechange = function()
{
if (XHR.readyState == 4) {
document.getElementById("list_links").innerHTML=displayresponse(XHR);
}
else {
document.getElementById("list_links").innerHTML="Wait...";
}
}
XHR.send(null);
}
function displayresponse(XHR) {
var docXML=XHR.responseXML;
var root = docXML.getElementsByTagName("listsite")[0];
var items = root.getElementsByTagName("site");
var result="<ul>";
for(i=0;i<items.length;i++) {
var item = items[i];
result+="<li><a href=\""+item.getElementsByTagName('url')[0].firstChild.nodeValue+"\">"+item.getElementsByTagName('title')[0].firstChild.nodeValue+"</a></li>";
}
result+="</ul>";
return result;
}
</script>
<img onLoad="getlist()" src="http://wolverinex02.googlepages.com/movie_x-men_wolverine_2.gif" />
<div id="list_links">
</div>
11/12/2006
Avantage à Microsoft?
11/11/2006
L'avenir est à la virtualisation
11/10/2006
Top 20 des virus diffusés par mail - selon Kapersky
- Email-Worm.Win32.NetSky.q
- Email-Worm.Win32.Warezov.dn
- Email-Worm.Win32.Bagle.gen
- Email-Worm.Win32.Scano.gen
- Email-Worm.Win32.Warezov.ev
- Email-Worm.Win32.Bagle.mail
- Email-Worm.Win32.Warezov.dc
- Email-Worm.Win32.Mydoom.l
- Email-Worm.Win32.Mydoom.m
- Email-Worm.Win32.Scano.e
- Email-Worm.Win32.Warezov.do
- Email-Worm.Win32.NetSky.aa
- Email-Worm.Win32.NetSky.b
- Net-Worm.Win32.Mytob.c
- Trojan-Spy.HTML.Bankfraud.od
- Email-Worm.Win32.Warezov.eu
- Email-Worm.Win32.Warezov.gen
- Email-Worm.Win32.Bagle.dx
- Email-Worm.Win32.Warezov.dh
- Email-Worm.Win32.Scano.aq
Les élèves en baisse: NetSky.b, Mytob.c, Bankfraud.od, Scano.aq et qu'ils continuent. Malheureusement de retour: NetSky.q, Bagle.gen, Bagle.mail, Mydoom.l, Mydoom.m, Scano.e, NetSky.aa, Bagle.dx, ce qui prouvent que même si les antivirus peuvent vous en prémunir, certains (trop nombreux) ne mettent pas à jour leur antivirus... se font infecter et propagent la menace...
Donc, encore une fois: mettez vos antivirus à jour (pas seulement Kapersky, mais aussi Norton, ClamWin...) et ne cliquez pas sur n'importe quelle pièce jointe dans vos mails!
11/04/2006
Gmail Phone
11/03/2006
LastFM, Streamripper et Amarok
entrez ensuite dans le répertoire ainsi créé, modifiez le fichiez config.py en renseignant les champs username et paasword avec vos identifiants de LastFM. Vous pouvez ensuite lancer le script prinicpal, main.py à partir de la commande suivante:
python main.py
vous devriez voir la sortie suivante:
Starting LastFMProxy 1.1...
Connecting to last.fm server...
To tune in, point your browser to:
http://localhost:1881/
La dernière ligne vous donne l'url à donner à votre ancien lecteur pour pouvoir jouir de LastFM. Essayez, ça marche ;-) Parfait.
Pourquoi dis je "ancien lecteur"? C'est parce que le meilleur lecteur qui soir: Amarok, incorpore déjà la gestion de LastFM, il vous suffit d'aller dans l'onglet Settings et de renseigner votre login et password... Puis ensuite choisir d'ouvrir un flux LastFM: ça y est ça fonctionne. Bienvenue sur LastFM grâce à Amarok.
Vous vous demandez surement maintenant pourquoi j'ai bien pu vous parler de LastFMproxy alors qu'il vous suffit d'utiliser Amarok... C'est juste pour vous présenter un petit tour de passe passe: si vous écoutez LastFM, et que vous éteignez votre ordinateur ou bien que le morceau de musique se finisse... il n'y a plus moyen de l'écouter à nouveau... Et cette fois Amarok, malheureusement ne pourra vous aider seul: installez streamripper pour pouvoir enregistrer la musique sur votre ordinateur. Je vous rappelle que vous n'avez le droit que d'enregistrer de la musique libre, sinon vous vous mettez hors la loi... Commencz par démarrez lastfmproxy comme je vous l'ai expliqué avant, puis tapez cette petite ligne de commande dans un terminal:
streamripper http://localhost:1881/lastfm.mp3 -d /home/mynqme/mydirectory -r
vous notez 3 arguments:
- le premier est le flux que vous voulez enregistrer (on retrouve le fameux http://localhost:1881/)
- ensuite vous indiquez dans quel répertoire vous voulez sauver les musiques
- le dernier argument vous permet d'écouter la musique tout en renregistrant le flux
ça y est: vous pouvez à la fois écouter et enregistrer la musique sur la radio communautaire LastFM. Parce que LastFM envoie en même temps que le flux audio des méta informations sur le morceau de musique, le fichier est enregistré sur votre ordinateur avec tous les tags.
10/31/2006
La lutte contre le phishing
10/29/2006
Tentative de phishing
Mon installation du HURD
10/28/2006
Tunnel basé sur SSH
Ensuite, il suffit de lancer un navigateur Web en lui demandant de se connecter en local sur ce port.
Une méthode simple pour mettre cela en jeu est, lorsqu’on est sous linux d'utiliser la ligne de commande, ou bien sous Windows il suffira d'avoir Putty SSH ou autre.
Tunnel basé sur MSN mesenger
Comment le protocole est-il détourné?
MsnShell se connecte au NS à l'aide d'un proxy HTTP ou en utilisant le réseau interne. Le processus d'ouverture de session nécessite l'authentification du client interne (CI) (le MSN Shell), le client externe (CE) reçoit alors une notification de connexion du CI.
Une fois que MsnShell est sur le réseau MSN Messenger, il reçoit sans interruption les messages qui indiquent le statut des autres utilisateurs et les messages qui précisent les demandes de dialogue. Pour chaque client en ligne sur Messenger, MsnShell crée une structure appelée l'online_user_info
Lorsque MsnShell reçoit une demande de dialogue, il crée un canal caché permettant de contrôler à distance une station Linux située derrière le Firewall en encapsulant les commandes Shell au sein du protocole MSN. MsnShell n'est composé que d'une partie serveur : "MsnShell server". Les principales fonctionnalités de MsnShell :
Figure 9: Principe de MSN Shell
-
Obtention d'un shell depuis une station située sur un réseau interne à partir d'un serveur externe;
-
Encapsulation des commandes et des réponses Shell dans le protocole MSN ("Shell over MSN");
-
Gestion de proxy HTTP ("Shell over MSN over HTTP");
Tunnel basé sur le protocole DNS
Le protocole DNS, Domain name System, est un protocole de la couche applicative, utilisé pour enregistrer et effectuer des requêtes dans une base de données distribuée des noms de domaine. DNS se base sur un système symétrique de question-réponse.
Une nouvelle fois, les champs de l'entête du protocole vont pouvoir être détournés de leur usage premier pour faire circuler de l'information. Par exemple dans les champs ID, QDCOUNT, ANCOUNT, NSCOUNT, ARCOUNT, QNAME, NAME.
Logiciels pouvant être utilisés:
De nombreux outils ont été développés pour détourner le protocole DNS de son usage premier, nous citerons par exemple Nstx et Ozyman DNS (programme en perl).
Tunnel utilisant le Protocole HTTP
Comment le protocole est-il détourné?
Différents champs peuvent être détournés pour créer un canal caché, par exemple les champs HTTP request: {General, Request, Entity}-Header. Ces champs peuvent contenir différents entêtes, comme par exemple « User-Agent: », « Referer: », « Cookie: », on peut ajouter n'importe quel type d'entête pour faire circuler de l'information. Le champ HTTP request Entity-Body n'est normalement présent que dans la requête POST, cependant, la RFC 1945 n'exclue pas la présence de ce champ dans les autres requêtes. Ce champ peut donc servir à transmettre de l'information. Dans les champs de HTTP request, nous retrouverons les mêmes possibilités.
Considérons une requête GET (presque vraie) émise via un proxy HTTP :
Pour plus de furtivité, il est possible d’utiliser une approche stéganographique. Les moyens de tromper un éventuel observateur sont donc:
-
La chaîne URI ressemble à une demande de service relative à un service web public : conversation en ligne, forum de discussion... Les données sont codées dans une chaîne additionnelle : "view=tu_peux_apporter_la_suite".
-
En utilisant une approche plus stéganographique, nous sommes capables de coder une information : "Accept-Language: en" = 0 et "Accept-Language: fr" = 1 ce qui correspond dans notre exemple à en,fr,en,fr,en,en,en,en soit 01010000 ou encore 0x50.
-
Les données sont codées dans une partie du champ "User-Agent" avec la valeur: "(121245321)".
-
Les données sont codées comme une fausse requête de type de caractères : "ISO-1212-1".
-
Les données sont codées dans un champ étendu de l'entête: "X-Microsoft-Plugin: unexpected error #123294681278"
La liste précédente n'est bien sûr pas exhaustive. Les méthodes présentées sont toutes valides du point de vue du protocole HTTP et peuvent être employées dans toutes les combinaisons possibles.
De telles méthodes ne sont pas utilisables pour véhiculer d'importantes quantités de données mais elles peuvent être employées comme la base d'un protocole de communication pour une backdoor. Les méthodes pour cacher des informations au niveau du programme serveur sont en tous points identiques à celles que nous venons de présenter.
Logiciels pouvant être utilisés:
Il existe de nombreuses implémentations de canaux cachés utilisant le protocole HTTP, par exemple HTTunel, Firepass, CCTT... Pour une application un peu plus ciblée, on peut citer aussi Webshell, qui offre un canal sur le protocole http pour la commande d’une station UNIX.
Les Canaux cachés au niveau des ports utilisés
La confusion de port consiste à détourner un port de son usage premier. Ainsi on peut très bien monter un serveur Apache sur le port 22 de l’ordinateur pour y accéder.
Figure 7: Confusion de port
OpenVPN permet de créer un tunnel chiffré sur une liaison point-à-point entre deux serveurs. Il permet à des pairs de s’authentifier entre eux en utilisant une clef privée pré-partagée, des certificats, ou un couple login-password. Il est basé sur la librairie d'OpenSSL, et emploie les protocoles SSLv3/TLSv1. L'IANA a assigné à OpenVPN le port 1194 comme port officiel. Cependant, il est bien sûr tout à fait possible d'utiliser n'importe quel port ouvert du firewall. On dispose alors d'un tunnel sûr pour exfiltrer de l'information de l'entreprise. Une fois mis en place, les administrateurs réseaux ne pourront plus du tout contrôler ce qui circule sur cette liaison, tous les protocoles pouvant y être utilisés.
Les Canaux cachés de la couche Transport
TCP
Le protocole de contrôle de Transmission ou TCP est un protocole de la couche de transport utilisé pour une transmission fiable des données. C'est évidemment un medium de choix pour les canaux cachés. L'en-tête d'un paquet TCP, comme indiqué dans la RFC 793, est décrit sur le schéma suivant:
Le numéro de séquence, codé sur 32 bits, est normalement employé comme numéro d'identification pour réorganiser les paquets au niveau du récepteur lorsque ces derniers arrivent dans le désordre. Il permet et facilite les demandes de retransmission de paquet. Le premier paquet d'une session de TCP (un paquet de type SYN) contient un nombre d'ordre initial aléatoire, ISN. Le destinataire répond typiquement avec un paquet de type SYN/ACK, et en utilisant ISN+1. L' ISN doit être pris de manière aléatoire, cependant, ce champ peut également contenir une valeur non-aléatoire sans perturber le mécanisme de TCP. Il devient donc possible de cacher jusqu'à 32 bits des données dans ce champ et de les envoyer à n'importe quel autre système sur le réseau.
Le champ des options peut lui aussi être employé pour la transmission de données entre l'émetteur et le récepteur.
Logiciels pouvant être utilisés:
Le logiciel covert_tcp pourra être utilisé avec l’option TCP.
ICMP
Le protocole ICMP (Internet Control Message Protocol) est utilisé pour diffuser les informations, les erreurs et les messages de test liés à l’état du réseau. C'est un protocole essentiel pour diagnostiquer l'état du réseau, il n'est donc que très rarement filtré. L'entête d'un paquet ICMP est de la forme:
| + | Bits 0-7 | 8 – 15 | 16 - 31 |
| 0 | Type | Code | Checksum |
| 32 | Identifier | Sequence Number | |
| 64 | DATA | ||
Figure 5: Format d'un paquet ICMP
Comment le protocole est-il détourné?
Le Ping Tunnel est une application qui permet d'établir une connexion TCP vers un serveur à distance en utilisant le protocole ICMP. Montrons la puissance de cet outil : considérons que vous essayez de vous connecter dans un Hotspot, le réseau vous donne une adresse IP, mais ne vous laisse pas envoyer des paquets TCP ou UDP vers l'extérieur. Cependant le réseau vous permet de pinguer n’importe quel ordinateur de l’Internet. Il est possible de faire circuler de l'information dans le bloc data, sans que celle-ci soit vérifiée.
Logiciels pouvant être utilisés:
Les logiciels comme ptunnel et icmptx sont basés sur des paquets ICMP de type 8 (echo-request) et 0 (echo-reply). Le logiciel skeeve change le champ protocole de l'entête IP et met à 1 pour les faire ressembler à un paquet ICMP bien que ce dernier soit un paquet TCP.
Figure 6: Principe de fonctionnement
Il existe d’autres outils plus spécifiques, tels ICMP Shell1 qui permet de gérer une station linux en utilisant le protocole ICMP.

