unix4fun

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 31 décembre 2009

Vas-y, montre moi tes doigts ?!

Tu aimes Netfilter mais voilà, tu voudrais bien aussi faire... de l'OS fingerprinting ? C'est possible depuis la version 2.6.31, grâce au module xt_osf qui a été inclu officiellement. Donc voilà comment ça marche, un petit exemple :

  1. insmod ./xt_osf.ko
  2. ./nfnl_osf -f ./pf.os
  3. iptables -I INPUT -j ACCEPT -p tcp -m osf log 0 ttl 2

Tout d'abord un commentaire sur pf.os, c'est le fichier utilisé par packet filter, donc le fichier de définition de p0f, le tool de mister Zalewski. Ensuite on fait un test de connexion, et on voit dans les logs :

Windows 2000:SP4 : 192.168.028.131:2007 -> 192.168.028.124:22 hops=0

L'archive pour le programme userland (nfnl_osf) et les infos sont sur le bleurg de l'auteur du patch initial : http://ioremap.net/projects/osf

mercredi 30 septembre 2009

TCP/IP for dummies

Je ne sais pas pour vous, mais le réseau, je trouve ça assez intéressant. Comment fonctionnent les protocoles, leurs implémentations, etc. Alors voici un petit lien, présentant une implémentation de TCP/IP très légère, mais assez intéressante d'un point de vue didactique. Il s'agit de lwIP (light-weight IP), une stack TCP/IP ne faisant pas de copie de buffer afin de ne pas perdre trop en performances (mais avec une abstraction manquante, car chaque layer peut taper dans la couche sous-jacente), et où les principaux comportements attendus sont implémentés : silly window avoidance, demultiplexage, contrôle de checksum, retransmission rapide, calcul de RTT, contrôle de congestion, etc. La pile propose même une API BSD compliant :) Bon, il s'agit d'un PoC d'universitaire, hein, c'est pas ça qui va remplacer les piles des OS, mais encore une fois, ça se comprend vite et bien.

Ah, oui, le code (C, oeuf corse) tient en moins de 2600 lignes, et le code objet produit pèse 13.5 KiB.

PS : Dernière chose, il n'y a pas de support IPv6. Haaan, la grosse honte.

mercredi 2 septembre 2009

Piccolo-SAN!!!

On m'a pose une question ce matin et je me suis rappele que j'avais ecris un tools a la noix pour l'iSCSI, mais du coup j ai vite cherche 2-3 trucs divers sur "l'intarwebs" ( (c) unpote ) a propos des autres trucs sur les SANs, et j'ai trouve qqes autres trucs marrant a lire:

bref c'est pas nouveau, mais ca fait du bien a relire et ca me donne presque envie de bidouiller 2,3 ameliorations a mon bidule, si je le retrouve grbmlmblmb..

enjoy!

jeudi 27 août 2009

Oh oui, montre-moi ton gros paquet !

Je vais probablement enfoncer des portes ouvertes mais c'est pas grave. Récemment j'ai écouté le trafic d'une machine qui streamait du son via le protocole DAAP (le truc de iTunes) sous un linux (donc une approximation de DAAP en fait, car les specs ne sont pas releasées). Bref, le linux envoie de la musique sur un LAN via le soft rhythmbox. Ça passe par un LAN, et arrive au client. En faisant un coup de tcpdump sur le serveur, je m'aperçois que les datagrammes IP font régulièrement plus de 1500 bytes. Souvent 5 ou 7 KB. Curieux... Je me demande d'où ça vient. Qui plus est, le checksum TCP est incorrect. Vraiment chelou, ça.

$ ip link ls eth0
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:12:3f:71:57:a1 brd ff:ff:ff:ff:ff:ff

La MTU est bien à 1500. Si j'écoute sur le client, je vois bien des paquets fragmentés. Bizarre bizarre. Le switch ferait ça ? Je mirror les ports et j'écoute : paquets fragmentés. Boooon, après avoir cherché à droite à gauche, je tombe sur ces liens :

L'explication est que la fragmentation est réalisée par la carte réseau, hypothèse que j'avais exclue d'emblée, parce que ça me semblait overkill. Et pourtant ! Un patch avec des benches envoyés sur la ml netdev du noyau linux montre que ça améliore significativement les performances (dans le cas où le firmware permet de le faire, bien sûr), et ça semble intégré depuis le 2.6.18.

C'est tout. Je voulais juste poster ça pour éviter aux ignares comme moi de chercher pendant des plombes le pourquoi du comment. Enfin... encore faut-il qu'ils connaissent ce site. :-)

PS : pour le checksum erroné, c'est visiblement parce que la stack TCP/IP sait que le device va regragmenter, et donc invalider le checksum calculé (et en mettre un autre à la place). Donc pas la peine de se fatiguer à le calculer. C'est mon hypothèse, il faudrait que je regarde les sources.

mardi 30 juin 2009

de paquets pour jouer et des tools pour faker

Tel un agent du FB^WWW, tu as en ta possession des informations critiques à ne pas divulger sur tes machines scellées au niveau -42.

Cependant, pour tes analyses à postériori, tu dois mettre à disposition les traces des connexions que tu as relevé. Mais tu sais pertinemment que dans ces traces se trouvent des infos hautement sensibles.

Tu te tournes alors vers l'anonymisation des traces afin de transmettre tes journaux sans aucune anxièté. Et pour cela, tu as à ta disposition les outils

Limite, ca te fait kiffer alors tu joues de plus en plus et même tu te documentes

samedi 21 février 2009

Il etait une fois BGP... et BGP c'est drole!

Une histoire que j ai trouve interessante (subjectif) meme si elle est n'est pas "neuve", le cas est marrant a lire et a comprendre.

L'annonce BGP de Pakistan Telecom qui a annonce un subnet plus specifique de youtube en Fevrier 2008 sur une bonne partie de l' internet poilu avec des choses marrantes a comprendre comme:

comment hijacker proprement pour que (par exemple) Pakistan Telecom puisse rerouter correctement vers youtube si necessaire en evitant que son "path" vers youtube soit pollue par ses annonces illegitimes.

Update!!
un paper qui fourni des infos completes, merci au monsieur anonyme qui a laisse le commentaire
/Update!!

have fun! :)

mardi 13 janvier 2009

C'est dans les vieux pots...

Bon, pour le boulot, je dois coder pas mal de trucs relatifs aux réseaux. Et c'est suite à mes pérégrinations sur le web que je suis tombé sur ce lien. Un vieuuuux lien, de plus de 10 ans d'âge, mais mis à jour, et très intéressant. Il parle notamment des mesures de la qualité d'un réseau, des méthodes à employer, et renvoie vers plein d'autres documentations. Je me régale, personnellement.

Je mets le tag "code", parce que ça file plein d'idées de trucs à coder :-)

Youpla, c'est par ici

mercredi 26 novembre 2008

I had a dream!

Ca semble fortement sympathique et base sur des concepts assez sexy, c'est fait par des gens poilus, ca semble egalement assez fou au niveau de certains choix qui peuvent avoir l'air bizarre mais semblent murement reflechis..

A suivre: http://netifera.com/

lundi 10 novembre 2008

Comment c'est beau Anycast!

Je me suis pose des questions transcendentales ce matin a propos d'Anycast, alors j'ai matte Wikipedia et j'ai trouve une doc toute simple concernant Anycast qui a repondu a mes questions...

Si vous avez des questions a propos d'anycast...

mardi 4 novembre 2008

Fait *wizwiz* avec ton rezal

En étant tombé sur ce truc il y a déjà un ptit moment, je trouvais sympa le visuel. Le problème est que INAV ne gère pas le format netflow. Alors quand on a déjà son archi sous netflow, on peut être intéressé par nvis, dont vous remarquerez (ou pas) la ressemblance.

En creusant un ptit peu plus, on tombe sur la thèse d'un bonhomme qui en parle (entre autre) et nous renvoie sur le toolkit du projet.

Enfin, après vous avoir fait baver, sachez que les sources de ce truc sont introuvables, donc si quelqu'un les a vu passer !@#?

PS : pour ceux qui trouvent que netflow sent pas bon du genou, il y a ce cher sflow, jdis ca comme ca.

vendredi 17 octobre 2008

Détection rapide de protocole layer7

Alors dans le cadre de mon job je suis tombé sur un article qui m'intéresse. Peut-être que ça sera le cas pour toi aussi, ami lecteur. La problématique est la suivante : sur des gros liens (Gbps typiquement), comment reconnaître les applications utilisées ? Ça peut être pour un admin, qui cherche à identifier les flux qui circulent sur son réseau, ou autre.

La technique "de base" consiste à inspecter les payloads à la recherche d'une signature applicative (à la snort, ou qosmos en propriétaire et plus exhaustif). Le "hic", c'est que sur des liens chargés, ça rame sa mère. Ou alors faut se payer la super solution corporate pouic pouic de Qosmos à 50KEUR, avec une bécane de 32 procs, des cartes DAG (Endace) d'acquisition et tout le bousin.

Mais nous, chez Unix4fun, on est pauvres, et on pense à la plèble, alors on écarte cette solution. Durant ma visite du Web je suis donc tombé sur un article pas mal, qui explique comment en 4 ou 5 paquets TCP (hors établissement de la connexion, SYN, SYN/ACK, ACK), on peut taguer un flux comme étant telle ou telle application, avec un taux d'erreur acceptable (de l'ordre de 5%). L'idée est évidemment d'utiliser des mécanismes d'apprentissage statistique (chaînes de Markov, etc) ; mais avec ça on n'est pas avancé, le problème étant de mesurer et d'apprendre sur les bonnes métriques. Ici, on s'inquiète uniquement de la taille des payloads, et du "sens" du paquet (client -> serveur, ou serveur -> client), qui est un facteur discriminant supplémentaire, et indépendant du contexte (type de réseau, type d'appli, besoin de performance, etc).

Bref, c'est ma pause déjeuner au bureau, je vais pas m'attarder.

L'article Early Application Identification

La thèse sur le sujet (même auteur principal) : Classification temps réel d'applications sur l'Internet. Elle se lit vite, et la dernière partie est en français, pour madame Michu, mais sans les formules et un peu allégée.

mardi 12 août 2008

DNS vuln

Maintenant que notre soufflet s'est un peu degonfle concernant la "ouuUUuuUU-mechante-incroyable-youpi-fear-tout-ca" attaque DNS, y a un monsieur sympathique et qui documente toujours super bien ses posts, qui a fait ca.

allez hop on va lire et on se code un tools tranquillou!

mercredi 25 juin 2008

TCP on steroids et encore d'autres trucs

Si toi aussi tu fais du code reseau en ce moment et que tu cherches toute sortes d'idees, tips et ce genre de choses Il n'y a pas longtemps la grande, la celebre USENIX conference a eu lieu avec son lots d'idees a reflechir-o-pompaz.

Peut etre que tu trouvera ce trucs interessant:

http://www.usenix.org/events/usenix08/tech/full_papers/menon/menon_html/index.html

Sinon y a ca qui traine aussi...

enjoy!

mardi 13 mai 2008

Le gros débit du long bidon du débit d'eau de Bobby.

Alors eau et moi là, on bosse tous les deux sur de la capture de paquets, et suite à une n-ième et instructive conversation sur LSF/BPF/Prout/Whatever, je suis tombé sur un site intéressant, pour la comparaison de performances pour les gros, GROS trafics (de l'ordre du Gigabit).

On y trouve une comparaison entre FreeBSD et Linux, un patch (douteux ?) de libpcap, des benches quant au processeur utilisé (apparemment AMD Opteron > Intel Xeon), et même un .config tout fait. Il y a également des articles intéressants sur ce sujet, soumis à des confs.

Pour voir tout ça, il faut jeter un oeil par ici.

jeudi 8 mai 2008

IPv6 et ses quelques petits details insignifiants...

Quand on se fait chier et qu'on sait rien faire, on s'occupe comme on peut, pour une raison hyper ultra secrete (i.e. je me fais chier), je mattais les differences entre IPv4 et IPv6 au niveau du header, je me demande bien ce qu on peut obtenir comme informations d'un header IPv4 hein!? imaginez IPv6, pfff y a des fous qui disent qu'on peut utiliser ca pour decouvrir des trucs... pfff tous des mythos...!

D'ailleurs pour concretiser la mythomanie :

Et Un p'tit resume par un grand vendor mechant, toujours utile..

Oulaaa mais il est tard, il est temps d'aller prendre un bain de vibe avec messieurs Francois K, Danny Krivit, Joe Claussel pour un Body & Soul qui apparait pour la premiere fois en Europe aux nuits sonores de Lyon, voila la pub est faite!!!

samedi 3 mai 2008

OpenBSD, PF, PHP, etc...

Un blog avec un projet sympa linked, des experiences a la noix d'installation d'OpenBSD dans des conditions plus ou moins relou, des idees et un projet potentiellement utile..

bref marrant et a lire..

samedi 5 avril 2008

*click* *click* *click* ohhh un routeur..!

ca sera encore un autre post "mou", je larve comme une merde chez moi en bidouillant mes trucs, bref... tout le monde (c) connait dynamips et les projets qui le suivent, tout comme dynagen, y a aussi pemu, bref tout ce qu'il faut pour simuler du cisco avec des firmwares originaux...

en zonant le net, j'ai trouve ca et ca a l air marrant et bien larve-certified!

jeudi 27 mars 2008

IPv6 et algoflash, comment utiliser de l'engrai a fougere sur mon code merdique...

Alors ca fait qqes temps que je codouille en v6 etc... j'ai qqes soucis mais globalement c'est assez simple de faire du code clean et dual stack en C, j'ai pas encore teste en python.

J'ai une question a tout les gurus-ultra-leet-v6 tout ca.. je cherche une solution au moyen de faire des filtres pcap avance en ipv6, et ca ne semble pas possible, cf tcpdump(8) :

[...]
  Proto is one of ether, fddi, tr, wlan, ppp,  slip,  link,
  ip,  arp,  rarp, tcp, udp, icmp or ip6, and indicates the
  protocol layer for the index  operation.   (ether,  fddi,
  wlan,  tr,  ppp,  slip  and  link  all  refer to the link
  layer.) Note that tcp, udp and other upper-layer  proto-
  col  types  only  apply  to  IPv4, not IPv6 (this will be
  fixed in the future)
[...]

donc si qqun a une idee...

Voila la ptite doc sympa ipv6 prog tout ca :

* http://www.euchinagrid.org/IPv6/IPv6_presentation/Introduction_to_IPv6_programming.pdf

Qu'on va mirrorer gentillement paske c'est bien utile quand meme :

* introduction_to_v6_prog.pdf

samedi 2 février 2008

BPF, LSF, DLPI, et bla!

Des ptits links parfois utiles pour tenter de faire du SOCK_RAW, voir du link level et de maniere optimal, de maniere portable il y a libpcap (mais ce n'est pas toujours le plus efficace), j'ai appris a propos de LSF (qui est l'equivalent de BPF pour linux), et a propos d'autres... etc.. etc.. solaris bla

Si ca peut en aider d'autres :

http://www.faqs.org/faqs/internet/t...

http://www.tcpdump.org/papers/bpf-u...

http://www.linuxjournal.com/article...

http://www.opensolaris.org/os/proje...

http://www.opensolaris.org/os/proje...

Shazam!!!

Update 03/02/2008:

un autre paper sur une precedente alternative au device polling. (merci poz pour le rappel)

vendredi 21 décembre 2007

oye oye oye de retour!

Hola,

apres une grosse absence, il me semble qu'il est bon de revenir un peu, les fetes approchent, du coup, alors comme c'est noel j'offre que dalle...

par contre apres mes galeres avec pylibpcap et le threading, je suis passe a ca ca marche sans sourciller..

je posterai un ptit exemple rapidement j'espere...

aussi le week end food du retour arrive!!! one-two checking the microphone - check this out incoming week end food soon... (1 jour)

- page 1 de 2