Tuesday 24 January 2012

Nicolas Bareil (p2008)

Linux security in 2011, or my LKML’s yearly digest

Linux security in 2011, or LKML’s yearly digest

<aside>

Disclaimer: I have nothing to do with the following, all credits go to their respective authors. I'm just publishing my 2011's bookmarks about Linux kernel security with a one line summary based on my (possibly wrong) understanding
Do not hesitate to correct me (gently if possible :)) in comments or mail.

</aside>
  • False boundaries of (certain) capabilities: Brad Spengler describes 19 capabilities (of 35) which can be used to regain full privileges. Coincidentally, Vasily Kulikov discovered a “funny” behavior of CAP_NET_ADMIN which permit to load any modules available in /lib/modules/ instead of limiting to network related modules only, AFAIK, this vulnerability was closed but the fix got reverted some weeks later because of some userspace breakages.
  • PaX team introduced a new range of stuff using the new GCC plugin infrastructure. At compile-time, pro-active code is automatically added to potentially dangerous paths:
    • constify_plugin.c enforces read-onlintroduces new constraints (__do_const and __no_const) enforcing read-only permissions at compilation-time and run-time. PaX then makes usage of theses new constraints by patching most of the “ops structures”. The plugin also automatically protects structures where all members are function pointers, this patching on-the-fly is required because patching directly the source kernel would never be integrated upstream.
    • stackleak_plugin.c adds instrumentation code before alloca() calls. This code checks that stack-frame size does not overlap with kernel task size. It circumvents techniques described in "Large memory management vulnerabilities" by Gaël Delalleau (2005) and "The stack is back" by Jon Oberheide (2012).
    • GCC 4.6 introduced named address spaces. It was initially specified for embedded processors but PaX team uses this feature to represent user and kernel space. checker_plugin.c thus introduces __user, __kernel and __iomem namespaces to spot non-legit flows between address spaces.
    • kallocstat_plugin.c produces statistics about the size given in parameter to various memory allocation functions
    • kernexec_plugin.c enforces non-executable pages like the KERNEXEC PaX feature, but without huge performance impact on AMD64.
  • pagexec also managed to compile Linux Kernel with clang by patching both Linux and clang. Now that gcc integrated plugins, it is less interesting  but llvm was the solely compiler with easy access to its internal structure, allowing external applications to perform static analysis...
  • A user space interface to kernel Crypto-API was submitted to kernel developers, an interesting use-case was to offer a way to deport key material between processes. Imagine process A in possession of private keys and another one, B, actually performing encryption / decryption stuff part. The idea was to initialize a “crypto socket” in A and pass this file descriptor to B (via a classic ancillary message).
  • Pseudo-files in /proc/<pid>/ have a different security model than “normal” files because of its ephemeral nature: checks need to happen during each system call and not at open() time because permissions can change at anytime. Halfdog discovered (and Kees Cook reported it to LKML) that not all files were protected accordingly. If a program opens /proc/self/auxv and keeps this file descriptor opened. Then, even after a execve() of a setuid binary, the file descriptor would still be available, leaking information! Fixing this vulnerability has been a long road and a pretty solution came up with the introduction of revoke(), a new syscall invalidating file descriptors. Unfortunately, the thread didn’t survive and ideas were lost... (by the way, it is funny that this kind of problem resuscitated in CVE-2012-0056 lately...)
  • As one goes along, execve() became almost magical, it had to support Set-User-Id, capabilities, and file capabilities. Each feature added complexity and different legacy behaviors to maintain. Instead of dropping these POSIX features, OpenWall 3.0 took a different approach by removing Suid binaries from its base install, thus preventing execve’s voodoo. This change is just a line in Owl’s changelog but is in fact a major achievement: it required them to re-architecture important softwares like crontab or user management tools.
    /bin/ping is setuid-root because it opens a raw socket and injects its packet on the wire directly. A new socket type, PROT_ICMP, was developed by Openwall team, it makes possible to send ICMP Echo messages without special privileges (caller’s GID has to be included in a range stored in a sysctl key). It is interesting to note that only replies (based on ICMP identifier field) are sent to userspace, not the whole ICMP traffic like in Mac OS X.
  • TCP Initial Sequence number is now a 32-bits random number using MD5. ISN was previously the concatenation of 24 random bits (MD4 of TCP end points with a secret rekeyed every 5 minutes) and an 8 bits counter (number of times secret key was regenerated)
  • Vasilily tried to push upstream additional checks for copy_{to,from}_user() (by checking if requested size fits boundaries fixed at compile time), this patch was a cut down version of PAX_USERCOPY but was NACKed by Linus asking him for more “balance and sanity”. However, he didn’t reject the idea itself, saying that a cleaner version might be accepted...

par Nicolas Bareil (noreply@blogger.com) le 24 January 2012 à 15:16

How system calls work on recent Linux x86 glibc

This post explains how system calls are implemented on recent Linux system. It covers only the x86_32 platform, on a recent Linux kernel and GNU Libc (where recent means "released after 2005").

Processor facility for making syscall

On x86, userspace processes run in ring 3, while the kernel is in ring 0. Only the kernel can do the interface between the resources and the processes.
A resource can be an access to a hardware device, a kernel object or any kind of IPC. In other words, each time it is needed to do such action, the userspace application has to make a request to the kernel; this is what we call a system call (syscall), basically, this is the transition from a ring to another one.
Historically, on Linux and x86, the best known method for performing a syscall is to generate an interruption (the classic int $0x80 instruction) which is trapped by the kernel and then processed.
It was the most efficient way until the Pentium 4 where it became the slowest mechanism available. The best method became the sysenter/sysexit instructions on x86_32 which is usable the same way than with the interrupt. For instance, here is a simple call to _exit(42):
mov $1, %eax   ;; __NR_exit = 1
mov $42, %ebx  ;; status = 42
sysenter       ;; perform the syscall!
On AMD64, a similar mechanism exists: syscall=/=sysret which is, by the way, known to be a better interface and more performant than its Intel equivalent. Anyway.
Usually, except shellcodes, syscalls are generated by the libc and, depending on the processor, using one solution or another can have strong impact on performances : if the libc keeps using int $0x80 even on modern CPU, the performances will be bad.
The problem is that, usually, Linux distributions provide only one compiled version of the libc: it has to run equally well on all CPU versions (486, 586 or 686). Thus, there was a need for an abstraction layer called by the libc which would choose the best mechanism at runtime.
This is done by the kernel: it is compiled with all syscalls mechanisms and selects the best one at boot time. Once a method is chosen, it exposes a function to userspace calling directly the selected methods. This way of exposing page is called a Virtual Dynamical Shared Object, or VDSO.
From the other side, in the libc, making a system call is just a matter of calling a VDSO's function, without knowing if a historical interrupt will be done or a sysenter.
If we rewrite our previous snippet and make it use the vdso:
movl $1, %eax   ;; __NR_exit = 1
movl $42, %ebx   ;; status   = 42
call *%gs:0x10  ;; Here, the offset (0x10) is platform-dependent
                ;; The memory page %gs:0x10 is located in the VDSO

Virtual Dynamic Shared Object

A Virtual Dynamic Shared Object (VDSO) is a page maintained by the kernel and exposed to userspace by mapping this page into its address space. For instance:
$ cat /proc/self/maps
08048000-08051000 r-xp 00000000 fd:01 14450888   /bin/cat
08051000-08052000 rw-p 00009000 fd:01 14450888   /bin/cat
083d7000-083f8000 rw-p 00000000 00:00 0          [heap]
b7475000-b7633000 r--p 00000000 fd:01 592041     /usr/lib/locale/locale-archive
b7633000-b7634000 rw-p 00000000 00:00 0 
b7634000-b7775000 r-xp 00000000 fd:01 5769153    /lib/i686/cmov/libc-2.10.2.so
b7775000-b7777000 r--p 00141000 fd:01 5769153    /lib/i686/cmov/libc-2.10.2.so
b7777000-b7778000 rw-p 00143000 fd:01 5769153    /lib/i686/cmov/libc-2.10.2.so
b7778000-b777b000 rw-p 00000000 00:00 0 
b7794000-b7796000 rw-p 00000000 00:00 0 
b7796000-b7797000 r-xp 00000000 00:00 0          [vdso]
b7797000-b77b3000 r-xp 00000000 fd:01 2818106    /lib/ld-2.10.2.so
b77b3000-b77b4000 r--p 0001b000 fd:01 2818106    /lib/ld-2.10.2.so
b77b4000-b77b5000 rw-p 0001c000 fd:01 2818106    /lib/ld-2.10.2.so
bfafd000-bfb12000 rw-p 00000000 00:00 0          [stack]
Here, the VDSO is one page long (4096 bytes). It contains the syscall abstraction interface, but also some shared variables (low level information like rdtsc counter, real-time timer, stack canary, etc.)
The selection of the right syscall method is done by the Linux kernel in arch/x86/vdso/vdso32-setup.c in the sysenter_setup function (which is called very early at kernel initialization by identify_boot_cpu()).
int __init sysenter_setup(void)
{
    void *syscall_page = (void *)get_zeroed_page(GFP_ATOMIC);
    const void *vsyscall;
    size_t vsyscall_len;

    vdso32_pages[0] = virt_to_page(syscall_page);

#ifdef CONFIG_X86_32
    gate_vma_init();
#endif

    if (vdso32_syscall()) {
        vsyscall = &vdso32_syscall_start;
        vsyscall_len = &vdso32_syscall_end - &vdso32_syscall_start;
    } else if (vdso32_sysenter()){
        vsyscall = &vdso32_sysenter_start;
        vsyscall_len = &vdso32_sysenter_end - &vdso32_sysenter_start;
    } else {
        vsyscall = &vdso32_int80_start;
        vsyscall_len = &vdso32_int80_end - &vdso32_int80_start;
    }

    memcpy(syscall_page, vsyscall, vsyscall_len);
    relocate_vdso(syscall_page);

    return 0;
}
The implementation of the sysenter method is in arch/x86/vdso/vdso32/sysenter.S. The routine called by the libc (with the call *%gs:0x10) is named __kernel_vsyscall:
  __kernel_vsyscall:
  .LSTART_vsyscall:
      push %ecx
  .Lpush_ecx:
      push %edx
  .Lpush_edx:
      push %ebp
  .Lenter_kernel:
      movl %esp,%ebp
      sysenter
    /* 7: align return point with nop's to make disassembly easier */
    .space 7,0x90

    /* 14: System call restart point is here! (SYSENTER_RETURN-2) */
    jmp .Lenter_kernel
    /* 16: System call normal return point is here! */
VDSO32_SYSENTER_RETURN: /* Symbol used by sysenter.c via vdso32-syms.h */
    pop %ebp
.Lpop_ebp:
    pop %edx
.Lpop_edx:
    pop %ecx
.Lpop_ecx:
    ret
Linus Torvalds is the proud owner of this code because he managed to handle the system call restarting thanks to a CPU particularity: when the kernel is done with a system call and want to give the control back to the process, it just have to perform the sysexit instruction.
Prior to that, the kernel specified to the CPU that at sysexit, it has to jump to a specific static address. This address is the VDSO32_SYSENTER_RETURN label saw in the previous routine.

par Nicolas Bareil (noreply@blogger.com) le 24 January 2012 à 14:25

Friday 23 December 2011

Site du club robotique - Krabi

L'ancien local n'est plus

L'ancien local du club a été définitivement rendu à la MaisEl. Nous avons, ce samedi, rangé pour la dernière fois notre grand local du I6. Après avoir découvert de nombreuses reliques du passé, nous avons vidé tous ce que nous ne pouvions pas garder dans les grandes bennes de la déchetterie.

Quelques reliques :

Voici les dernières traces du local :

par Xmar le 23 December 2011 à 21:00

Saturday 03 December 2011

Site du club robotique - Krabi

Installation dans notre nouveau local (temporaire)

Après quelques péripéties en début d'année, nous avons enfin récupéré un nouveau local. Il est plus petit que l'ancien mais devrait suffire pour attendre l'arrivée du FabLab (laboratoire de fabrication moderne).

Ainsi, les activités pratiques du club peuvent serieusement commencer, avec une nouvelle équipe très motivée pour (enfin ?) gagner la coupe de France de robotique 2012 !

par Xmar le 03 December 2011 à 14:26

Le règlement de la coupe de France 2012

Le règlement a mis un peu de temps à tomber cette année mais le voilà enfin.

Nous serons des pirates envahissant une île afin de récupérer le plus de pièces et de lingots d'or possible et les déposer dans la cale de notre bateau. Cette année, particularité, nous avons le droit d'utiliser un robot secondaire afin d'accomplir cette tâche. Nous pouvons aussi gagner des points en découvrant une carte cachée par un voile et en lançant des bouteilles à la mer.

Pour plus d'informations, le règlement est présent ici : http://www.planete-sciences.org/robot/index.php?section=pages&pageid=108

par Xmar le 03 December 2011 à 14:24

Tuesday 29 November 2011

Pierre-Yves Cladière (p2010)

Petite amélioration de Deezer

Bon j'ai la flemme de faire un article long sur le sujet, mais pour accéder aux musiques de deezer de façon illimitée, sans pub et gratuite, il suffit juste de modifier une variable JavaScript. Il suffit d'assigner la valeur True à la variable DZPS.
Pour ce faire, (au moins) deux solutions:
  1. Utiliser Firebug et rentrer la variable à la main lors de chaque utilisation (pas très pratique)
  2. Installer GreaseMonkey et y activer ce mini-script
La deuxième solution présente l'avantage d'être automatique et de modifier la variable avant que le JavaScript de la page soit exécuté, permettant ainsi l'accès à quelques autres gadgets (du genre la pseudo table de mixage).
Il y a quelques autres options à trifouiller pour ceux que ça intéresserait, mais ce n'est pas aussi utile.
Bonne écoute

par Py le 29 November 2011 à 15:25

Friday 25 November 2011

Site du club robotique - Krabi

La fête de la science

Comme chaque année, nous avons participé à la Fête de la science, qui s'est déroulé dans la ville de Brest à l'UBO (Université de Bretagne Occidentale).

Nous avons présenté plusieurs robots plus ou moins complexe. Tout d'abord, le fameux, le célèbre, le brave Krabi ! Fidèlement à lui même, il a rendu l'âme au bout d'une journée. Ensuite, un petit nouveau : le robot conçu par un premier année, Victor Dubois. Il s'agit d'un magnifique spécimen attrapant les boîtes de springles à votre place. Comme d'habitude, les hémissons étaient présents à l'appel. Ce sont de petits robots pré-programmables, très simple à faire fonctionner pour les débutants en robotique, que nous prête l'école. Enfin, le robot Lego, qui a beaucoup passionné les enfants.

Les photos de nos vedettes :

Krabi 2012

Voila Krabi 2011. C'était sa dernière apparition en publique, il reposa maintenant dans les abîmes de notre local.

Robot_scarabi

Le robot Lego. Il fera un adversaire de taille pour notre futur robot !

Robot_hemissons

Les hemissons, qui s'amusent à gribouiller sur un morceau de feuille, à l'aide d'un feutre. Classique et efficace, cela amusait beaucoup les enfants.

Robot victor

Le nouveau robot ! Il attrape une boite grâce à ses pinces.

Quelques photos de l'événement

Fête_science_1

Gaëtan Fayon, un premier année qui a intégré le club robotique, présente le stand à une personne qui semble intéressée.

Fête_science_2

Samuel Barraud, encore un premier année, en train de présenter les Hemissons.

Fête_science_3

Victor Dubois, créateur du robot_qui_attrape_les_boites_de_pringles (faudrait vraiment lui donner un nom !), très sérieusement en train de travailler. Non, en faite, il regarde le Télécomusical :).

Pour conclure, cette fête de la science s'est bien passé, nous avons pu expliquer notre passion à des personnes en s'adonnant à un exercice qui n'est pas si simple en pratique : la vulgarisation de nos connaissances. De plus, Le stand a rencontré un certain succès, surtout auprès d'un publique relativement jeune.

par Xmar le 25 November 2011 à 18:30

Monday 07 November 2011

Site des élèves

Soirée des Clubs (Telecom Game Show) - Mercredi 9 Novembre - 22h30

Une soirée où les clubs s'affronteront au travers de jeux (Le Maillon Faible, un Club en Or, Burger Quizz) pour gagner un budget. Equipes à constituer et à envoyer à fanny.cohen@tb avant mardi 22h00.

JPEG - 1 Mo

par Adrien Germond le 07 November 2011 à 14:30

Wednesday 02 November 2011

Nicolas Bareil (p2008)

ld-linux.so ELF hooker

TL;DR
Stéphane and myself are releasing a new tool injecting code at runtime, just between the ELF loader and target binary. It is an alternative to LD_PRELOAD, just a little bit more intrusive but 100% reliable :)



When a binary is execve(), the kernel extracts from the ELF headers the interpreter to be launched, usually  /lib/ld-linux.so.2The kernel creates a new process and prepares the environment (arguments and auxiliary data). The target ELF entry point is set in auxiliary vector of type "ENTRY".


Then the kernel opens the requested interpreter, maps the memory regions and start its execution at ld's ELF entry point. Then the loader analyzes the target ELF file, performs its loader work and sets EIP to target ELF entry point (extracted from auxv). At this point, main()'s program is eventually executed.


Our goal was to permit the execution of code for abitrary dynamically linked binary without patching each of them. So our interest moved on the loader, the common point between most executables. Thus, we decided to patch a normal ld in order to inject code. My awesome colleague, Stéphane Duverger (the ramooflax author!) and myself wrote ld-shatnerIts task is to patch ld-linux.so file accordingly:

  1. After ELF header, we shift "ELF program header" a few pages away
  2. In this new section, we inject a "loader routine" (hooked.s) and embedded code to be executed at runtime
  3. After having been saved in our section, ld's ELF entry point is overwritten to jump directly on our routine. This routine extracts from auxiliary vectors the target ELF entry point and overwrites it with a pointer to our embedded code (func() in the payload).
  4. Original ld's entry point is called and ld works as usual
  5. Eventually, it calls entry point set in auxiliary vector (which was replaced by a pointer to our payload)
  6. Embdded code runs
  7. It returns to our routine which finally jumps on original target entry point
Some pictures before/after ld-shatner voodoo:

ld-shatner voodo

Screenshot

$ make clean all
$ cp /lib/ld-linux.so.2 /bin/ls .
$ ./ld-shatner ld-linux.so.2 obj.elf
$ sudo cp ld-hook.so /lib/
$ ./interpatch ls
$ ./ls 
ld-hook <---------------------- output of obj.elf
[...]

(Ok, we cheat for the moment because we have to patch ls binary but we will not have to do that eventually)

So what?

My ultimate goal for ld-shatner is to use this method for starting applications in my sandbox project, seccomp-nurse. For the moment, I rely on LD_PRELOAD feature but this approach is... hackish and I have to work around some bugs because of this special context...



par Nicolas Bareil (noreply@blogger.com) le 02 November 2011 à 15:30

Tuesday 01 November 2011

Site des élèves

TEB (tournoi des écoles bretonnes) - Week-end du 19 et 20 Novembre

Le célèbre tournoi des écoles bretonnes où 15 écoles s'affrontent à travers différents sports durant un week-end. Le Samedi Soir a lieu une soirée Mousse regroupant plus de 700 personnes.

Pour en savoir plus : http://teb.asso.resel.fr/

JPEG - 1 Mo

par Adrien Germond le 01 November 2011 à 16:06

Thursday 27 October 2011

TELECOM Durable

Challenge Inter-bâtiments

Le challenge inter-bâtiments est organisé conjointement par la Maisel et par Telecom Durable du 1er novembre 2011 au 31 janvier 2012 !

Comme vous pourrez le voir sur les différentes affiches disséminées sur le campus , le principe est simple : chaque bâtiment doit réduire sa consommation d'eau par rapport à sa moyenne mensuelle, quels que soient les moyens utilisés : passer moins de temps sous la douche, cuisiner avec de l'eau de pluie ou encore, aller se doucher dans les autres bâtiments...

Des cadeaux sont au rendez-vous pour les locataires du bâtiment qui aura le plus économisé d'eau. Quant au reste de l'argent*, le Gros l'eau, il sera investi dans un bien pour le Foy' selon la somme économisée : cela va du poisson rouge au flipper, en passant par la Wii ,etc...Vous avez des idées ? Vous pourrez les exposer le jour de la remise des prix aux habitants du bâtiment vainqueur !

Chaque mètre cube économisé représente 3.5 euros. Par exemple, sachant qu'il y a 56 habitants dans le I7 (la patrie des beaux gosses), économiser 150 euros en 1 mois reviendrait à ce que chaque habitant économise 0,765 mètres cubes par mois, soit 15 douches ! Et 150 euros * 3 mois * 10 bâtiments = 4500 euros seront alors à disposition pour acheter les cad'eaux.

Alors peuchère à vos compteurs et que les plus éco-l'eau gagnent !

 

*Si il y a une réelle économie d'eau, la Maisel mettra à disposition une certaine somme d'argent en fonction de l'importance de la réduction de la consommation d'eau.


par dany (dany.beauvais@telecom-bretagne.eu) le 27 October 2011 à 12:33

Plan climat de Bmo

Bmo (Brest métropole océane) s’engage à lutter contre le changement climatique. Elle a déjà entrepris des actions via, par exemple, la prochaine mise en service du tramway ou encore la promotion des Vélocibus. S

urtout, Bmo élabore son Plan Climat Energie Territorial (cf http://www.brest.fr/cadre-de-vie-deplacements/plan-climat-de-brest-metropole-oceane.html). Il s'agit d'un programme d’actions déclinées à l’échelle de l’agglomération et qui se fixe, à l’horizon 2020, des objectifs de réduction de consommation d’énergie (- 20%), de réduction des émissions de gaz à effet de serre (- 20%) et de développement des énergies renouvelables dans sa consommation globale (23%). Ces objectifs de réduction des émissions de gaz à effet de serre sont fixés par l’Europe et le protocole de Kyoto de 1997. D’ici 2050, la France devra diviser par 4 ces émissions.

Pour que ce Plan Climat soit efficace, Bmo fait appel à ses habitants, c'est-à-dire nous, pour recueillir des avis, des idées sur la manière de réduire les émissions liées aux transports, au logement et, globalement, à notre mode de vie.

Ainsi, vous êtes conviés à une conférence-débat :

le mercredi 9 novembre à 20h30 au petit amphi de Télécom bretagne.

La conférence (d'une durée de 30 minutes maximum) permettra de vous présenter en détails les enjeux du changement climatique, la situation climatique du territoire brestois et les clés de ce qui constitue un plan climat. Présentée par M. Bruno Rebelle (ancien n°2 de Greenpeace International), cette conférence sera suivie d'un débat avec des représentants de BMO et vous donnera notamment l'occasion de proposer des actions permettant de diminuer les émissions de gaz à effet de serre.

Vous pouvez d'ores et déjà poster des messages ou des interrogations sur le forum internet dédié à ce sujet (http://www.brest.fr/forum-du-plan-climat.html).

par dany (dany.beauvais@telecom-bretagne.eu) le 27 October 2011 à 12:08

Wednesday 26 October 2011

Clément Storck (p2011)

Monitorer l’état de sa télé avec HomeSeer via script linux

La plupart des nouveaux modèles de télé ont une interface Ethernet pour les relier au réseau informatique. J’ai remarqué que cette interface est active uniquement lorsque la télévision est allumée. Du coup, il devient possible de connaitre l’état de celle-ci et d’exécuter des scénarios en fonction.
Pour cela, je me base sur un simple script Bash qui lance un ping toutes les 10 secondes et en fonction de la réponse, informe HomeSeer de l’état de la TV.

Script Bash :

#!/bin/bash
# Simple SHELL script for ping monitoring with linux
# http://clement.storck.me
 
# Host to monitor (TV_Clem)
HOST="192.168.10.36"
 
# Status host
HOST_STATUS="down"
 
# nb ping request
COUNT=3
 
while :
do
  count=$(ping -c $COUNT $HOST | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
  if [ $count -eq 0 ]; then
    # Host is down
    echo "Host : $HOST is down (ping failed) at $(date)"
    if [ "$HOST_STATUS" == up ]; then
      HOST_STATUS="down"
      curl -d "scriptcmd=hs.ExecX10%20%22Y9%22%2c%20%22off%22%2c%200%2c%200&runscript=Execute%20Command&ref_page=ctrl" http://192.168.10.10
    fi
  else
    # Host is up
    echo "Host : $HOST is up (ping OK) at $(date)"
    if [ "$HOST_STATUS" == "down" ]; then
      HOST_STATUS="up"
      curl -d "scriptcmd=hs.ExecX10%20%22Y9%22%2c%20%22on%22%2c%200%2c%200&runscript=Execute%20Command&ref_page=ctrl" http://192.168.10.10
    fi
  fi
  echo "$HOST_STATUS"
  sleep 8
done

Création d’un daemon pour lancer le script en arrière-plan :

cp /home/ping_TV_Clem /usr/sbin/ping_TV_Clem
cp /etc/init.d/skeleton /etc/init.d/ping_TV_Clem
nano /etc/init.d/ping_TV_Clem

Modifiez /etc/init.d/ping_TV_Clem comme ceci :

PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="Supervision TV"
NAME=ping_TV_Clem
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

puis :

update-rc.d ping_TV_Clem defaults
chmod +x /etc/init.d/ping_TV_Clem
etc/init.d/ping_TV_Clem start

Enfin, un petit « ps aux | grep ping* » pour vérifier que le script est bien lancé.

Ainsi, lorsque j’allume la télé, HomeSeer en est informé dans les 10 secondes. Puis, avec un Event, s’il fait nuit et que la télé est allumée (et inversement), alors les lumières d’ambiance s’allument automatiquement.
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/mCzY8gDX2eM" width="560"></iframe>

par Clément le 26 October 2011 à 17:27

Site des élèves

Soirée GER Wall Steet Night - Mercredi 26 Octobre - 22h00

Mercredi soir à partir de 22h au foyer aura lieu la soirée organisée par le GER, j'ai nommé la *Wall Street Night*. Au programme : Roulette, 421, Black Jack et Poker, ainsi que variations sur les prix des consommations au bar et Open Soft pour ceux qui ne prennent pas d'alcool. Sans oublier un dancefloor où nos DJs se feront un plaisir de vous en mettre plein les oreilles !

N'hésitez pas à venir nous rejoindre, car les deux plus gros flambeurs se verront récompensés.

A bientôt,

Vincent, pour le GER.

JPEG - 1 Mo

par Adrien Germond le 26 October 2011 à 14:35

Wednesday 19 October 2011

Yohann Lepage (p2012)

DNS XSS & SQL Injection with RR TXT just for fun

XSS vulnerabilities are common on websites. Indeed, the POST or GET parameters are not properly checked. This vulnerability is known to all and there are frameworks for automating the vulnerability of Internet sites.

However, developers do not think necessarily verify all data (not just POST & GET parameters). The following is obvious with the use of another vector : DNS.

Many [...]

19 October 2011 à 07:00

Monday 17 October 2011

Site des élèves

Classement Pouce d'or

Voici le premier classement. Ce dernier n'est pas définitif. En effet le jury attend de récolter les preuves nécessaires à la confirmation de ce classement. La prochaine étape sera l'amphi de clôture où les récits des chaque équipe seront racontés en images.

  • 1Er Arrouy et Bolanos Grenoble 1100 km
  • 2Em PA et Trinh Lezignan 1008 km
  • 3em Fanny et Beuh Toulouse 881km
  • 4em Edouard et Hector Bayonne 833 km
  • 5em Maxime et Geoffroy Lille 761 km
  • 6em Barthemy Rigouta Bordeaux 644 km
  • 6em Anne et Julien Bordeaux 644 km
  • 7em Augustin et Soukaina Paris 593 km
  • 8em Diane et Cincent Le Mans 397 km
  • 9em Vilette et Gablier Nantes 296 km
  • 9em Berger et Storme Nantes 296 km
  • 10em Pj et Felix Nantes 296 km
  • 11em Corto et Antonin Rennes 231 km

Auxquels je rajoute un bonus de 50 km pour avoir fait le trajet le plus... inattendu de la compétition.

par Adrien Germond le 17 October 2011 à 20:07

Soirée Koh Lanta - Mercredi 19 Octobre - 22h30

Un territoire hostile : le foy'. Des équipes de teubreux devant survivre à de nombreux pièges et à la férocité de leur environnement. Des jeux d'une difficulté extrême. Un seul gagnant...

Soirée Koh Lanta, dès 22h30 Mercredi 19 Octobre.

JPEG - 920 ko

par Adrien Germond le 17 October 2011 à 15:55

Monday 10 October 2011

Site des élèves

Election des délégués

Le 7 Novembre, venez nombreux pour voter pour les nouveaux délégués des élèves. Les délégués représentent les élèves lors des conseils d'enseignement. Ils soutiennent leurs camarades en difficulté et peuvent argumenter en leur faveur lors des passages dans l'année supérieure.

JPEG - 576.9 ko

par Adrien Germond le 10 October 2011 à 14:58

Pouce d'or

Vous avez toujours rêvé de vous rendre quelque part dans le monde et ceci pour 0euros ? Cela est rendu possible grâce au pouce d'or, un week-end où le but est d'aller le plus loin possible en stop depuis télécom bretagne et de revenir. Départ vendredi 14 à 18h00, retour au plus tard le lundi 17 à 8h00. Et tout ceci se fait par deux.

Le règlement exact sera prochainement publié sur cette page.

Pour toute inscription, contacter fanny.cohen@telecom-bretagne.eu en indiquant vos noms de binômes.

JPEG - 1.8 Mo

par Adrien Germond le 10 October 2011 à 14:54

Sunday 02 October 2011

Site des élèves

Soirée Join the Army Now

Vous avez toujours rêvé de vous rouler dans la boue et de vous faire crier dessus par des sergents instructeurs ? Vous voulez découvrir ce que c'est que de suivre une formation militaire à Télécom Bretagne ? Alors rendez-vous Mercredi 5 Octobre à 22h30 au foyer pour une soirée Join the Army Now !

JPEG - 825.8 ko

par Adrien Germond le 02 October 2011 à 22:43