[Soci SLIP] binfmt_misc (pericolosissimo? utilissimo?)

llcfree llcfree a gmail.com
Mar 27 Mar 2012 22:09:37 CEST


Qualcuno sa cosa sia binfmt? Scoperto perche' mi hanno dato una
chiavetta usb con problemi non meglio identificati con windows.

Una volta inserita, viene riconosciuta e montata come:

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc
(rw,noexec,nosuid,nodev)

I files che contiene la chiavetta hanno zero bytes, ma se uno ci guarda
dentro non sono affatto vuoti:

  ls -l /proc/sys/fs/binfmt_misc/
-rw-r--r-- 1 root root 0 Mar 27 08:42 cli
-rw-r--r-- 1 root root 0 Mar 27 08:42 jar
-rw-r--r-- 1 root root 0 Mar 27 08:42 python2.6
--w------- 1 root root 0 Mar 27 08:42 register
-rw-r--r-- 1 root root 0 Mar 27 08:42 status

  cat cli
enabled
interpreter /usr/share/binfmt-support/run-detectors
flags:
offset 0
magic 4d5a

 cat jar
enabled
interpreter /usr/bin/jexec
flags:
offset 0
magic 504b0304

  cat python2.6
enabled
interpreter /usr/bin/python2.6
flags:
offset 0
magic d1f20d0a

ma cat register da' read error, anche dopo aver cambiato le file
permissions per aggiongere quella in lettura

  cat status
enabled

Leggendo qui:
http://en.wikipedia.org/wiki/Binfmt_misc

e qui:
http://git.kernel.org/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/binfmt_misc.txt;hb=HEAD

si direbbe un qualcosa di molto utile e ancor piu' pericoloso:

This Kernel feature allows you to invoke almost (for restrictions see
below) every program by simply typing its name in the shell.
This includes for example compiled Java(TM), Python or Emacs programs.

"Questa caratteristica del kernel permette di richiamare praticamente
qualsiasi programma semplicemente scrivendo il nome del programma in una
shell. Questo include, per esempio, java compilato, python o programmi
emacs."  

Quali interpreti siano richiamabili sta scritto con una sintassi
speciale in questo file register che pero' non si legge con gli
strumenti normali della bash. 

Ho tolto la chiavetta, che mi ricorda tanto un rootkit, e non ho
intenzione di rimetterla. Ma vorrei saperne di piu'. 

Qualche idea? Questa cosa sembra potenzialmente molto utile. 

Posso fidarmi che sia stata montata davvero noexec, nosuid, nodev?

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc
(rw,noexec,nosuid,nodev)

O devo cominciare a preoccuparmi?

Loredana




Maggiori informazioni sulla lista Soci