unix4fun

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

vendredi 16 septembre 2011

SPLONK !

Si, comme moi, vous vous battez continuellement dans vos logs avec grep/sed/awk/cut/tail/paprika (cherchez pas c'est de l'humour), alors vous avez certainement deja entendu parlé de splunk. Pour faire très court, splunk, c'est un peu le Google des logs : c'est ultra pratique (et intuitif) si vous cherchez à faire une recherche dans 45 millions de logs.

Seulement voilà, splunk est payant, et même plutot cher si vous souhaitez l'intégrer dans un environnement de hosting par exemple. Alors le reflexe habituel quand on est un gros radin comme moi, c'est de trouver une alternative gratuite, mais jusqu'à présent, c'etait un peu l'age de pierre chez la concurrence (non je ne citerai personne).

Jusqu'à present :)

Tout a fait par hasard, je suis tombe sur un billet de ce monsieur en chemise a carreaux (kof). Et la.. ce fut l'illumination alors je souhaitais -sous la menace- vous faire partager cette découverte !

lundi 26 avril 2010

ASM reference

En ce moment je bricole des trucs en assembleur x86/x86-64 et MIPS (wouhouu j'ai un loongson 2f!), alors du coup j'ai qqes liens:

Et j'en profite pour dire que pour tester il y a:

Et il y a aussi qqes petits liens classiques:

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 21 août 2009

y a pas de driver, mgrlgmrlb que faire salete de $#@!$#@!

wai toujours pareil, un type (poilu) il s'ennuie et il a un clavier drole, mais qui ne marche que sous win32, alors il se dit bon je vais reverser ce $#@!$#@! de driver win32 et faire un driver open avec... gentil et poilu le monsieur, il explique ce qu il a fait ici:

comme quoi c'est accessible a n'importe qui, meme a des tubbes comme moi... nom de dieu!$#@!$@! :)

mercredi 12 août 2009

Une petite piqûre d'hér... de rappel.

Bon ben je sais pas pour vous, mais j'ai toujours fait des trucs moches genre :


void
sighandler_foo(int nsig)
{
   printf("Signal %d caught.  Exiting.\n", nsig);
   exit(EXIT_SUCCESS);
}

J'ai schématisé, mais l'idée est là. Bah en fait faut surtout pas écrire cette horreur. Là, normalement vous me pointez du doigt en riant très fort, et je deviens rouge de honte. Mais j'ai vaincu ma peur du ridicule, et je le clame : oui ! je suis une bille !

Sinon, pour ceux qui ne savent pas, en fait j'ai appris ça en lisant un post de Solar Designer sur nmap-dev, qui expliquait par le menu pourquoi c'est super crappy :

Après avoir vérifié, rien de tout ça n'est écrit dans signal(2) sur ma machine (Linux), mais c'est très clair dans le man OpenBSD, en revanche.

HTH.

mercredi 13 mai 2009

salade, tomates, oignons, sauce rouge, sauce blanche?!

A l'epoque j'ai fantasme sur un NAS NetBSD a base de HW RAID (ou du RAIDframe) et de cgd le tout en sfs, nfs, cifs etc...

un petit NAS maison, avec du hotplug tout ca, les finances n'etaient pas terribles a l'epoque alors j'ai laisse tomber...

Aujourd'hui je me demande comment refaire le coup, j'ai bien reflechis a Solaris X ou OpenSolaris mais bon niveau empreinte memoire,

je cite: "c'est sympa Solaris, mais qu'est ce que ca suce..." et c'est clair qu'il suce, j'apprends petit a petit a domestiquer le "biniou" (c) et avec ZFS y a quand meme un joli fantasme...

En cherchouillant un peu je suis tombe sur les deux projets suivants:

En gros, des gens (bravo messieurs) qui se sont dit, on va gzip, bzip (ou soyons fou, soyons jeune, soyons mode) xz une installation et son empreinte memoire afin que ca puisse de "runner"sur du "petit" matos.

Ca a l'air sympa, le monsieur arrive a faire tenir un OpenSolaris sur 50 MB avec ZFS/NFS/SAMBA et l'admin qui faut pour runner ca...

Ca m'a fait tout chose, il ne me reste plus qu'a patienter (ou participer pour ceux qui ont du temps libre) pour que ca:

soit enfin stable et puisse encrypter le root pool. a suivre!!

mercredi 22 avril 2009

ca arrive toujours avant de se coucher....

ca arrive toujours avant de se coucher.... eh merde..

putain!

si ca se trouve c'est hyper connu.. je suis juste passe a cote..

bonne nuit..

hint: n'allez pas fouillez les autres sections..

[...]

trop tard...

SXCE tun/tap et quelques champignons s'il vous plait!

J'ai besoin d'openvpn et le tun(7M) c'est pas vraiment ce que je pensais etre un device tun... Alors apres avoir joue avec tun(7M) pour constater que j'avais pas ce que je voulais, j'ai un peu cherche et voila vite fait un ptit resume...

D'abord un "tutorial" etape par etape pour l'installation d'OpenVPN avec OpenSolaris... bon ok faut un driver tuntap "externe", mais bon...

Ensuite on rencontre des tites merdes genre :

# make install
ld -64 -r -o tun tun.o
ld -64 -r -o tap tap.o
/usr/bin/ginstall -c -m 644 -o root -g root if_tun.h /usr/include/net 
/usr/bin/ginstall -c -m 644 -o root -g root tun /usr/kernel/drv/amd64
/usr/bin/ginstall -c -m 644 -o root -g root tap /usr/kernel/drv/amd64
/usr/bin/ginstall -c -m 644 -o root -g root tun.conf /usr/kernel/drv
/usr/bin/ginstall -c -m 644 -o root -g root tap.conf /usr/kernel/drv
/usr/sbin/rem_drv tun >/dev/null 2>&1
/usr/sbin/rem_drv tap >/dev/null 2>&1
/usr/sbin/add_drv tun   
devfsadm: driver failed to attach: tun
Warning: Driver (tun) successfully added to system but failed to attach
/usr/sbin/add_drv tap
devfsadm: driver failed to attach: tap
Warning: Driver (tap) successfully added to system but failed to attach

et GnaGNAGnagnagnaGnaAGnA!!

Apr 22 00:16:45 deep genunix: [ID 370954 kern.notice] symbol tun_ppa: 
Apr 22 00:16:45 deep genunix: [ID 780480 kern.notice] value 0xffffffffc0347950 does not fit
Apr 22 00:16:45 deep genunix: [ID 286029 kern.notice] relocation error: R_AMD64_32: 
Apr 22 00:16:45 deep genunix: [ID 720415 kern.notice] file /usr/kernel/drv/amd64/tap: 
Apr 22 00:16:45 deep genunix: [ID 370954 kern.notice] symbol tun_ppa: 
Apr 22 00:16:45 deep genunix: [ID 780480 kern.notice] value 0xffffffffc0347950 does not fit
Apr 22 00:16:45 deep genunix: [ID 286029 kern.notice] relocation error: R_AMD64_32: 
Apr 22 00:16:45 deep genunix: [ID 720415 kern.notice] file /usr/kernel/drv/amd64/tap: 
Apr 22 00:16:45 deep genunix: [ID 370954 kern.notice] symbol tun_ppa: 
Apr 22 00:16:45 deep genunix: [ID 780480 kern.notice] value 0xffffffffc0347950 does not fit
Apr 22 00:16:45 deep genunix: [ID 399259 kern.notice] do_relocations: /usr/kernel/drv/amd64/tap do_relocate failed
Apr 22 00:16:45 deep genunix: [ID 603676 kern.notice] tap error doing relocations
Apr 22 00:20:52 deep genunix: [ID 286029 kern.notice] relocation error: R_AMD64_32: 
Apr 22 00:20:52 deep genunix: [ID 720415 kern.notice] file /platform/i86pc/kernel/drv/amd64/tun: 
Apr 22 00:20:52 deep genunix: [ID 370954 kern.notice] symbol : 
Apr 22 00:20:52 deep genunix: [ID 780480 kern.notice] value 0xfffffffff82ee590 does not fit
Apr 22 00:20:52 deep genunix: [ID 286029 kern.notice] relocation error: R_AMD64_32: 
Apr 22 00:20:52 deep genunix: [ID 720415 kern.notice] file /platform/i86pc/kernel/drv/amd64/tun: 
Apr 22 00:20:52 deep genunix: [ID 370954 kern.notice] symbol tun_ppa: 

Bon hop hop on prends son cerveau, on tente de l'allumer (il est a peu pres minuit...).. apres etre passe par la, puis la...

j'ai finalement abouti ICI et la houra!

J'ai modifie qqes details dans le Makefile du driver Tun/Tap "externe" vite fait... Makefile:

[...]
CC = cc
LD = ld

DEFS = -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DTUN_VER=\"1.1\ 04/22/2009\"
CFLAGS = $(DEFS) -O2 -D_KERNEL -I. -m64 -xmodel=kernel

ADD_DRV = /usr/sbin/add_drv
REM_DRV = /usr/sbin/rem_drv
DRV_DIR = /usr/kernel/drv/amd64
DRV_CONF_DIR = /usr/kernel/drv
[...]

et on dit merci a -xmodel=kernel..

au passage je suis tombe sur ces deux choses aussi..

Et c'est apres m'etre pris la tete 20 minutes ( alors que je suis une grosse feignasse...) que je vois que qqun avait aussi resolu le 'blem ici

au final on finit par avoir:

Apr 22 00:37:52 deep tun: [ID 654686 kern.notice] Universal TUN/TAP device driver ver 1.1 04/22/2009 (C) 1999-2000 Maxim Krasnyansky
Apr 22 00:37:52 deep pcplusmp: [ID 805372 kern.info] pcplusmp: ide (ata) instance 1 irq 0xf vector 0x44 ioapic 0x8 intin 0xf is bound to cpu 1
Apr 22 00:37:52 deep pseudo: [ID 129642 kern.info] pseudo-device: tun0
Apr 22 00:37:52 deep genunix: [ID 936769 kern.info] tun0 is /pseudo/tun@0
Apr 22 00:37:53 deep tap: [ID 654686 kern.notice] Universal TUN/TAP device driver ver 1.1 04/22/2009 (C) 1999-2000 Maxim Krasnyansky
Apr 22 00:37:53 deep pcplusmp: [ID 805372 kern.info] pcplusmp: ide (ata) instance 1 irq 0xf vector 0x44 ioapic 0x8 intin 0xf is bound to cpu 0
Apr 22 00:37:53 deep pseudo: [ID 129642 kern.info] pseudo-device: tap0
Apr 22 00:37:53 deep genunix: [ID 936769 kern.info] tap0 is /pseudo/tap@0

youpi.

NB: j'utilise le compilo sun.

dimanche 8 février 2009

unbound le resolver DNS aux omega3!

Petite decouverte, moi qui ait toujours ete un habitue de bind (et de ses features et vulns :)) a ma periode BOFH, je viens par hasard de tomber sur unbound, un resolver DNS tout petit et qui semble tout convivial et tout bien fait! et qui en plus supporte DNSSEC...

sympa a suivre...

vendredi 30 janvier 2009

OpenSolaris c'est bon comme une cucaracha! (c) bibi

Alors j'ai hallucine, je cherche des infos a la noix pour faire une operation triviale sous OpenSolaris (genre un dd if=, etc...) et pouf en cherchant je tombe sur ce post sur un blog delire avec une idee que j'ai trouve marrante, celle de faire un USB Live qui runne un hyperviseur capable de runner toute ta smala d'OS a la noix, j'ai trouve ca interessant et ca m'a donne des idees du coup :)

mercredi 14 janvier 2009

Dtrace le seul tool qui transforme tes testicules en boule a facettes! (c) bibi

J'ai decouvert Dtrace, alors pour partager mon bonheur et commencer avec dtrace, je conseille THE GUIDE, simple, rapide, clair, didactique, etanche! j'en suis au chapitre 12!!

Pour ceux qui sont curieux ou on envie de tester/voir/gratouiller et avoir une vision full poilue!

DTRACE la TORAH

Bonne lecture!!.


[...]

bordel... qu'est ce que... elfsign(1) ?!?!?!

$ elfsign 
elfsign: invalid number of arguments
usage:
        elfsign sign [-a] [-v] [-e <elf_object>] -c <certificate_file>
                [-F <format>] -k <private_key_file> [elf_object]...
        elfsign sign [-a] [-v] [-e <elf_object>] -c <certificate_file>
                [-F <format>] -T <token_label> [-P <pin_file>] [elf_object]...
...
*COMMUNICATION COUPEE*

samedi 13 septembre 2008

A mon stage chez l'agence tout risque, j'ai appris a bricoler des clotures...

Mac OS X ne possede pas pthread_barrier_t et j'ai vu d'autres problemes avec d'autres "unix", donc j'ai fait mes "barriers" "maisons", on verra bien quand je devrais porter sous win32...

c'est ICI, comments are welcome...

have fun!.

dimanche 24 août 2008

NetBSD, openvpn et les 42 passphrases...

J'ai un blem j'utilise assez souvent openvpn et en fonction de l'endroit ou je vais j'ai besoin de tel ou tel access VPN sur telles ou telles resources plus ou moins en meme temps etc.. bref j'ai besoin de plusieurs "profils" utilisateur.

Depuis des mois, je me tape l'edition du /etc/rc.conf et apres je tape la passphrase 2 ou 3 fois vu que j ai 2 ou 3 necessaires... enfin bref, j'en ai eu marre alors j 'ai fait un "hack" tout bete et tout simple en qqes etapes.

le plan:

  • un fichier encrypted avec ma clef pub qui contient la passphrase.
  • un script qui mets a la disposition d'openvpn cette passphrase
  • qqes hack dans les scripts de demarrage et les fichiers de conf.

1 . le fichier: key.asc
il contient la clef utilise pour unlocker le cert utilise pour l'auth, il doit donc rester prive!

2. le script de demarrage /usr/pkg/etc/rc.d/openvpn:

la ligne suivante a ete modifie:

openvpn_start()
{
    : ${openvpn_cfg="*.conf"}
[...]
  for f in $openvpn_cfg; do
      doit="$command --askpass `/bin/cat /home/user/.openvpn` 
$command_args --config $f"
      if ! eval $doit; then
[...]
}

3. le fichier /etc/rc.conf, legerement modifie:

[...]
openvpn=YES
. /etc/openvpn_current
[...]

4. le script moisi, ovpn.sh

ce script va choisir/preparer mon "profil" et demarrer les instances openvpn en utilisant la cle temporairement accessible.

#!/bin/sh
#
#
# I sick of typing my password for all VPN instances 
# all the time... $#@!$#@!$#@! :(
#
# there is probably some potential races
#

export TMPDIR=/home/user

MKTEMPCMD=/usr/bin/mktemp
GPGCMD=/usr/pkg/bin/gpg
VPNCMD=/usr/pkg/etc/rc.d/openvpn
RMCMD=/bin/rm
TOUCHCMD=/usr/bin/touch
CHMODCMD=/bin/chmod
CHOWNCMD=/usr/sbin/chown


TMPPREFIX=".openvpn"
VPNCIPHR=/home/user/.local/key.asc
VPNPLAIN=/home/user/.openvpn

VPNCMD_STOP=stop
VPNCMD_RESTART=restart

# OPENVPN PRECONFIG
CURR_CFG=/etc/openvpn_current
HOME_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf\""
LABS_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf\""
OUTR_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf client_vpn5.conf\""


TMPFILE=`${MKTEMPCMD} -t ${TMPPREFIX}`
#echo "[+] using ${TMPFILE}"

ovpn_start()
{
        ${TOUCHCMD} ${VPNPLAIN}
        ${CHOWNCMD} root:wheel ${VPNPLAIN}
        ${CHMODCMD} 600 ${VPNPLAIN}
        echo "$TMPFILE" > ${VPNPLAIN}
        ${GPGCMD} -d ${VPNCIPHR} > ${TMPFILE}
        ${VPNCMD} start
        ${RMCMD} -fP ${VPNPLAIN}
        ${RMCMD} -fP ${TMPFILE}
}

ovpn_stop()
{
        ${VPNCMD} stop
}

CMD=$1
CNF=$2

case ${CMD} in
        start)
                case ${CNF} in
                        home)
                                echo ${HOME_CFG} > ${CURR_CFG}
                        ;;
                        lab)
                                echo ${LABS_CFG} > ${CURR_CFG}
                        ;;
                        out)
                                echo ${OUTR_CFG} > ${CURR_CFG}
                        ;;
                esac
                ovpn_start
        ;;
        stop)
                ovpn_stop
        ;;
        restart)
                $0 stop
                $0 start ${CNF}
        ;;
        *)
                echo "$0 <start|stop|restart> [<home|lab|out>]"
                echo "home: home configuration"
                echo "lab : lab configuration"
                echo "out : untrusted out configuration"
        ;;

esac

5. L'explication,
le fichier rc.conf inclus un fichier qui est genere dynamiquement (/etc/openvpn_current) a chaque demande d'un nouveau "profil" celui ci donne a openvpn les fichier de conf a utiliser pour demarrer les differents VPN.

Le script de demarrage du package openvpn lance openvpn avec un nouveau parametre supplementaire " --askpass file " qui donnera la passphrase pour unlocker le certificat d'authentification.

Le script utilisateur ovpn.sh lui s'occupe simplement de cree le /etc/openvpn_current, il gpg -d le fichier de clef key.asc le rajoute dans un fichier temporaire, demarre openvpn et efface ce fichier immediatement apres.

La derniere mouture qui tourne chez moi est tres legerement different en cela que je ne stocke pas la passphrase de mon cert dans un fichier encrypted en gpg, je "read" directement du tty et je feed immediatement le fichier temporaire.

Voila c'etait tout con mais maintenant pour demarrer mes 4-5 vpns en tapant juste ma passphrase gpg, je fais en sudo :

# ovpn.sh start home
You need a passphrase to unlock the secret key for
user: "..."
1024-bit ELG-E key, ID XXXXXXXX, created 2004-05-27 
(main key ID XXXXXXXX)

Enter passphrase:

Et voila! En esperant que ca en inspire d'autres, commentaires are welcome! :)

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)

lundi 25 février 2008

sunstudio, gcc, dwarf, sparc et petits nains de jardins...

Des p'tites infos et projets interessants au cours de mon joujou avec ma sunblade 1500.

Deja je me suis fait chier avec SunStudio mais en fait j'ai decouvert ca (trop tard!): http://cooltools.sunsource.net/gcc/

Pour les petits documents utiles :

Sinon j'imagine que comme d'hab je suis le dernier a decouvrir ca mais y a pleins de trucs convi a lire :

http://wikis.sun.com/dashboard.action

mercredi 30 janvier 2008

au royaume de suede on aime les trucs coupes en tranches, comme par exemple : le saumon!

Y a des gens qui comme moise (toute ressemblance serait purement fortuite) qui arrivent a separer la mer en deux pour faire passer des trucs, parait que moise c'etait pour faire passer des gens (eh oui moise est un passeur, mais il avait rendu le passage industriel avant meme qu'on y pense!)

Alors la y a Kristaps Džonsons qui fait pareil avec du code, il matte le code, hope ca se separe en deux, meme en trois, attendez.. c'est quoi ces histoires !?!?!?

(en gros il a pris un NetBSD et il a fait un truc qui sent les "zone" de solaris ou jail chez freebsd ( oui oui c'est pas implemente pareil, la granularite est pas pareil, c'est pas le meme systeme tout ca tout ca, mais je parle de concepts...))

sinon y a des projets "un peu" similaire ou related genre : ca ou ca

mercredi 23 janvier 2008

oula ca se reveille!

He beh, apres des tas de POST, de papers, de coding practice dans tout les sens, le CERT nous sort ca :

secure C coding practice

Je suis en train de parcourir toutes ces choses

D'ailleurs concernant les memory management stuff... j'avais lu un truc la

hope it helps.

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

vendredi 5 octobre 2007

Week-end food #7

Eh oui, déjà le week-end (ou presque), et il se fait faim, crénondiou !

Alors je vais ouvrir les hostilités directement, et je ne me présente même pas, enfin plus tard. En attendant, le bienveillant Ulrich Drepper (le leader de la GNU libc) a pondu un petit papier de 100 pages pour toi, le programmeur qui n'a pas de mémoire. Bon, vu qu'il sait qu'on est tous à la bourre, il a découpé son pavé en petits morceaux et va te faire une assiette tous les week-ends pour le mois à venir (si t'es sage et que tu as retenu ta leçon).

Alors tu restes à table encore un peu et tu manges la tête (avec les yeux) :