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

vendredi 6 novembre 2009

meme vieux on continue d'apprendre

Je rentre dans ma 65 eme annee et je continue encore d'apprendre de nouvelles choses.. Au cours d'une discussion avec un pote sur "l'intrawebz" (tm) j'ai appris l'existence des register_printf_functions.. comme decrit dans les liens suivants:

Et au passage qqqes docs sur les attributes GCC et des ptits examples:

Edit de poz:

  • on note au passage que dans le premier lien, l'auteur ne sait pas comment virer un warning gênant à la compilation (dû à -Wformat, lui-même inclu dans -Wall) ; pour s'en débarrasser, il suffit de passer l'option -Wno-format à gcc. Ceci dit, il faut faire attention, parce qu'il ne râlera plus quand vous utiliserez le mauvais /specifier/ (genre %s au lieu de %zu), donc méfiance...
  • bon alors bien sûr c'est quand on migre son code que la merde arrive par tombereaux entiers :). Alors, register_printf_function() est deprecated à partir de glibc 2.10, il faut donc utiliser register_printf_specifier() à la place. Un coup de #if __GLIBC_PREREQ(2,10) sous linux devrait faire l'affaire... je mets au conditionnel parce que chez moi le printf() segfault :)

mercredi 13 août 2008

pthread pour les NULL

Je code comme un boulet et en ce moment j ai pleins de blems de "scheduling" et de "concurrence", mon code n'est pas thread safe et je dois jongler avec differentes conditions plus ou moins synchro mais qui sont hyper importantes.

bref comme je galerais un peu, nitrouze m'a montre ce petit reminder sympa pour me rappeler les bases des POSIX threads... y a pas a dire je suis un boulet et y a pas de secret si on pratique pas, ca reste pas..

HTH, ++

jeudi 17 juillet 2008

bon je vais me recycler dans le pressing, un truc facile...

\_0< COIN!

http://piotrbania.com/all/kon-boot/

tout est dit!. (mais ca ressemble tres tres fortement au concept de eeye bootroot/sysrq2)

mercredi 2 juillet 2008

Linux, Cisco, Poils!

C'est peut etre "vieux" (y'en a qui aiment dire ca le plus souvent possible pour bien souligner qu'il sont tres contemporains), en tout cas, moi je connaissais pas et je trouve ca fun, fendart meme, mouahhahah j'en ris :)

uClinux sur du cisco muah!

Y a des gens qui commencent des trucs sexy, je suis sur qu'il y a ou va y avoir une suite c'est pas possible! ca date de 2001! (je faisais des avions en papier en disant que j'etais trop fort a cet epoque).

Et puis y a ca aussi.

have fun..

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!

vendredi 23 mai 2008

Sexy Ksplice (girls ?)

Booon, alors je suis tombé sur un petit truc rigolo. Un petit soft, qui fait la modification de code à runtime dans le noyau linux, c'est persistant, qui plus est ! Au prochain reboot ça restera en place. Idéal par exemple pour faire des patches de sécurité sans engendrer un reboot. Les esprits vifs (et pervers ?) feront tout de suite des remarques du genre "haaaan, et pis comme ça c'est plus propre que d'écrire dans /dev/kmem", euh, certes, certes. Petits canaillous.

Le lien, par ici (sponsorisé par le MIT).

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.

lundi 26 novembre 2007

TPM, TCPA et pleins d'acronymes comme ca!

C'est vaguement lie au post precedent, le Filesystem cryptographique est capable d'interagir avec l'architecture TCPA bla

le project TPM implemente une TCG Software stack (Trusted Computing Group Software Stack), ca vous permet (quand ca marche) d'utiliser votre chipset TCPA , via une API ouverte et documentee et donc de "potentiellement-avec-un-sacrifice-de-poulet" faire des application qui serait "potentiellement-blablabla" "trusted" (hanlanannaa le raccourci!!) :

enfin en gros c'est un driver et une API pour TCPA.

le project enforcer est une sorte de veriexec(4) qui utiliserait TPM/TCPA avec qqes features en plus :

OpenTC est une tentative de federation avec pour but d'arriver a un "framework" unifie et open source (soit disant, on verra avec le temps..)

en passant j'ai decouvert ca :

En prime la spec TSS

encore un filesystem chiffre

Je ne le connaissais pas, eCryptfs utilise FIST et se veut "solide" (je ne sais pas vraiment ce qu'il en est), il rajoute des meta-data au files du FS pour que chaque fichier soit stockes avec ses params d'encryption etc.. enfin voyez par vous meme, je n'ai pas teste..

http://ecryptfs.sourceforge.net/

vendredi 14 septembre 2007

Week-end food #4

Hey un peu de retard pour le quick post des week-end food :

  1. How To Write Shared Libraries by Ulrich Drepper
  2. Object Oriented Programming with ANSI-C by Axel Tobias Schreiner

Hopla boum bon app', la semaine prochaine ça n'est plus moi mais Mr ppr qui devrait être de retour avec de la stuff !

Enjoy your week-end!

vendredi 7 septembre 2007

ubuntu jacky security

Un p'tit truc fait sympa et utile :

http://kernelsec.cr0.org/

Hope it helps.

vendredi 31 août 2007

le ps est en déroute

Alors là je suis fier de mon jeu de mot. Vraiment, hein..

Bon bah juste une petite news de rien : on remarque souvent qu'avec ps on a des résultats un peu chelous, voire parfois carrément aberrants, en terme d'utilisation de la mémoire. Y'a plusieurs raisons à ça. On regarde l'occupation mémoire d'un process via ps puis pmap :

$ ps -FC Thunar
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
poz       5426  5414  0  3409  4720   0 Aug26 ?        00:00:00 Thunar --sm-client-id 117f000101000118510838300000138390002 --daemon

Soit en gros 4M de RAM utilisée

$ pmap -d `pidof Thunar`
Address   Kbytes Mode  Offset           Device    Mapping
08048000     480 r-x-- 0000000000000000 008:00002 Thunar
080c0000       8 rw--- 0000000000077000 008:00002 Thunar
080c2000     260 rw--- 00000000080c2000 000:00000   [ anon ]
b727d000      64 r---- 0000000000000000 008:00002 Thunar.mo
b728d000      28 r---- 0000000000000000 008:00002 libexo-0.3.mo
[...]
b7eed000     100 r-x-- 0000000000000000 008:00001 ld-2.5.so
b7f06000       8 rw--- 0000000000019000 008:00001 ld-2.5.so
bff52000      84 rw--- 00000000bff52000 000:00000   [ stack ]
ffffe000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 13640K    writeable/private: 792K    shared: 84K
$

On remarque que des segments de code sont comptés plusieurs fois (un segment pour la lecture, un pour l'exec, avec recouvrement). Bref, ça confirme juste ce qu'on sait déjà : ps se contente paresseusement d'afficher la quantité théorique maximale de mémoire utilisée (avec certains bouts de code en double, qui plus est), alors que les libs partagées sont pas exclusivement réservées à ce process... Bref, la "vraie" mémoire est indiquée en bas de l'output, "writeable/private: 792K".

$ cat > ~/bin/mem.sh
#!/bin/bash

function usage()
{
        echo "Usage: $(basename $0) PROCESS..."
        echo "display the (real) memory usage of processes"
}

if [ "$#" = "0" ]
then    usage
        exit 0
fi

OUT=
echo "memory usage:"

for i in $*
do
        OUT=$(pidof $i | cut -d' ' -f1)
        if [ "$OUT" = "" ]
        then    echo "[-] process '$i' does not exist"
        else    OUT2=$(pmap -d $OUT | grep private | awk '{print $4}')
                echo "[+] ${i} (pid ${OUT}): $OUT2"
        fi
done
^D
$ chmod +x ~/bin/mem.sh
$ shebang.sh ~/bin/mem.sh
$ mem.sh X firefox-bin ssh prout
memory usage:
[+] X (pid 4965): 415736K
[+] firefox-bin (pid 5582): 295068K
[+] ssh (pid 5580): 796K
[-] process 'prout' does not exist
$

Pour shebang.sh, cf. un commentaire ailleurs :)

Je sais pas trop sur les *BSD si pmap est dispo... feedback ? Pfff, 3:05 du mat', je vais être frais au taff, encore.

mardi 28 août 2007

Chiffrer sa box entièrement et proprement

Bon mes disques ont partiellement crashé. Du coup j'ai dû backuper ce que je pouvais, je me suis mis à tout refaire après avoir changé le disque qui se chiait dessus et pour le plaisir je me suis dit que j'allais être un peu parano.

Hein, vu que je cache les sources de ls(1) et objdump(1) fallait bien encrypter tout ça au cas ou l'OpenSouce (c)(tm)(r) devienne une propagande illégale en Europe, un danger pour l'informatique propriétaire et ses nobles destriers (et leurs piscines en argent massif, bon ok c'est de la provoc' a 2frc, mais c'est relou j'ai pas encore de piscine :/)

Alors j'ai lu ça :

http://gentoo-wiki.com/SECURITY_System_Encryption_DM-Crypt_with_LUKS

Et now je boot sur une jolie clef USB avec une random key encrypted. C'est bien convi, je prépare la même chose sur mon laptop Linux, à voir si c'est possible avec une clef USB et un NetBSD, ce qui serait bien classieux, huhuhu :)

Bref je foutrai des updates si j'ai le temps de faire/tester une version NetBSD, sinon c'est que j'ai été trop fainéant alors voilà...