vamos, tienen acceao a una inyeccion sql como root, desde ahi pueden hacer lo que quieran, yo no lo he probado porque no he estado en mi casa. Tienen privilegios escribiendo archivos con into out file? han intentado sobreescribir binarios con permisos de root? o tendra permisos propios?
han revisado el directorio /home/ por si hay binarios con instrucciones para escalar privilegios?
han revisado el directorio /home/ por si hay binarios con instrucciones para escalar privilegios?
Código:
mysql 4586 0.1 2.6 785948 27600 ? Ssl Jul30 3:46 /usr/sbin/mysqld
No creo que sea root del sistema, solo del DBMS. El proceso está pegado al usuario MySQL. No hay nada en home.
Hay un proceso de apache corriendo como root:
Código:
root 6893 0.0 0.3 313920 3284 ? Ss Jul30 0:16 /usr/sbin/apache2 -k start
Me imagino que es el que hace el spawn de los servers y no creo que puedas suplantar esos privilegios. Estaba pensando que quizás haya algún modulo de apache que pudiera ayudar a suplantar la identidad del root pero lo más probable es que termine ejecutando con los procesos que spawnea el root como www-data.
Yo he tratado un monton de exploits y nada. Ubuntu 13.10 salío hace como 9 meses y la mayoría de los exploits que me he encontrado son viejos del 2010 y así... Yo diría que ya los han parchado pero no puedo estar seguro hasta compilarlos en una maquina igual o en el host.
Cosas que he probado,
Crontab está corriendo como root y aquí están los archivos que utiliza:
Código:
$ ls -la /etc/cron*
-rw-r--r-- 1 root root 719 Jul 30 13:15 /etc/crontab
/etc/cron.d:
total 20
drwxr-xr-x 2 root root 4096 Jul 30 22:56 .
drwxr-xr-x 89 root root 4096 Jul 30 23:01 ..
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rw-r--r-- 1 root root 510 Jul 7 13:08 php5
-rw-r--r-- 1 root root 2321 Jul 30 13:15 sendmail
/etc/cron.daily:
total 84
drwxr-xr-x 2 root root 4096 Jul 30 23:00 .
drwxr-xr-x 89 root root 4096 Jul 30 23:01 ..
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rwxr-xr-x 1 root root 633 Mar 19 16:57 apache2
-rw-r--r-- 1 root root 15488 Sep 11 2013 apt
-rwxr-xr-x 1 root root 77 Sep 2 2013 apt-show-versions
-rwxr-xr-x 1 root root 314 Sep 23 2013 aptitude
-rw-r--r-- 1 root root 355 Jun 4 2013 bsdmainutils
-rw-r--r-- 1 root root 384 May 29 2013 cracklib-runtime
-rw-r--r-- 1 root root 256 Oct 4 2013 dpkg
-rwxr-xr-x 1 root root 372 Nov 30 2012 logrotate
-rw-r--r-- 1 root root 1365 Jun 28 2013 man-db
-rw-r--r-- 1 root root 435 Jun 20 2013 mlocate
-rw-r--r-- 1 root root 249 Jul 26 2013 passwd
-rw-r--r-- 1 root root 349 Dec 27 2012 quota
-rw-r--r-- 1 root root 3285 Sep 10 2013 sendmail
-rwxr-xr-x 1 root root 1309 Nov 17 2012 sysklogd
-rwxr-xr-x 1 root root 214 Nov 13 2013 update-notifier-common
/etc/cron.hourly:
total 12
drwxr-xr-x 2 root root 4096 Dec 18 2013 .
drwxr-xr-x 89 root root 4096 Jul 30 23:01 ..
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
/etc/cron.monthly:
total 12
drwxr-xr-x 2 root root 4096 Dec 18 2013 .
drwxr-xr-x 89 root root 4096 Jul 30 23:01 ..
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
/etc/cron.weekly:
total 28
drwxr-xr-x 2 root root 4096 Dec 26 2013 .
drwxr-xr-x 89 root root 4096 Jul 30 23:01 ..
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rwxr-xr-x 1 root root 730 Sep 18 2013 apt-xapian-index
-rw-r--r-- 1 root root 907 Jun 28 2013 man-db
-rw-r--r-- 1 root root 1220 Nov 17 2012 sysklogd
-rwxr-xr-x 1 root root 211 Nov 13 2013 update-notifier-common
Me llamo la atención el de PHP5:
Código:
$ cat /etc/cron.d/php5
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)
Si maxlifetime hubiese sido un archivo para escribir, creo que se hubiera podido escribir un archivo con el SUID pero nada... ni sessionclean, ni php5, ni maxlifetime.
El archivo de sendmail no tiene cron jobs activos que haya visto y no hay nada escribible en las carpetas cron ni en sus respectivos scripts. Ni siquiera el crontab que ejecuta los scripts en daily, weekly, monthly, etc.
Asi que descarto cron para ganar privilegios de root.
Lo único que se me ocurrio después es tratar de vulnerar otros servicios tipo root, parece que webmin está corriendo como root bajo perl. Entonces, quizás puedo vulnerar Webmin? Da la casualidad que mucho de los archivos en /usr/share/webmin tienen permisos de ejecución en others (o+x) y puedo correrlos. Hay uno que me llamo la atención:
Código:
$ stat changepass.pl
File: 'changepass.pl'
Size: 2220 Blocks: 8 IO Block: 4096 regular file
Device: 1eh/30d Inode: 17306810 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-08-01 15:08:10.797120681 -0400
Modify: 2014-05-22 12:47:39.000000000 -0400
Change: 2014-07-30 23:01:13.898815137 -0400
Birth: -
Lo leo y dice esto:
Código:
$ head changepass.pl
#!/usr/bin/perl
# changepass.pl
# Script for the user to change their webmin password
# Check command line arguments
usage() if (@ARGV != 3);
($config, $user, $pass) = @ARGV;
Puedo correrlo ok, no tengo permisos de root en el archivo como es de suponerse (xD)
Código:
$ perl changepass.pl /etc/webmin root derp
Failed to open /etc/webmin/miniserv.conf : Permission denied
Maybe /etc/webmin is not the Webmin config directory.
Nada...
Hay muchos archivos que se pueden ejecutar en el webmin pero dudo mucho que sirvan de algo si no estás de root.
Por cierto, carpetas asociadas con webmin:
Código:
/var/webmin <-Logs
/etc/webmin <-Configuracion
/usr/share/webmin <-Archivos del Webmin
Estuve viendo la configuración del SSH y usan los logins del sistema me parece, no vi nada de disallow root login así que me imagino que es posible loguearse como root en SSH. Por cierto usan PAM y tambien le he dado una vista a /etc/pam.d y bueno no encontre nada que me ayudara ahí.
Archivos con el Sticky bit del root
Código:
-rwsr-xr-x 1 root 44176 May 16 2013 /bin/ping
-rwsr-xr-x 1 root 94792 Jun 12 2013 /bin/mount
-rwsr-xr-x 1 root 44688 May 16 2013 /bin/ping6
-rwsr-xr-x 1 root 36936 Jul 26 2013 /bin/su
-rwsr-xr-x 1 root 69120 Jun 12 2013 /bin/umount
-rwxr-sr-x 1 shadow 35536 May 18 2013 /sbin/unix_chkpwd
-rwsr-xr-x 1 root 121112 Mar 11 08:24 /usr/bin/sudo
-rwsr-xr-x 1 root 32464 Jul 26 2013 /usr/bin/newgrp
-rwxr-sr-x 1 ssh 129120 Apr 29 19:54 /usr/bin/ssh-agent
-rwsr-sr-x 1 mail 89216 Jun 8 2012 /usr/bin/procmail
-rwsr-xr-x 1 root 23104 May 16 2013 /usr/bin/traceroute6.iputils
-rwxr-sr-x 1 shadow 23360 Jul 26 2013 /usr/bin/expiry
-rwsr-xr-x 1 root 68152 Jul 26 2013 /usr/bin/gpasswd
-rwxr-sr-x 1 tty 19024 Jun 12 2013 /usr/bin/wall
-rwxr-sr-x 1 shadow 54968 Jul 26 2013 /usr/bin/chage
-rwsr-xr-x 1 root 41336 Jul 26 2013 /usr/bin/chsh
-rwxr-sr-x 1 mail 18672 Jun 8 2012 /usr/bin/lockfile
-rwxr-sr-x 1 crontab 35984 Feb 9 2013 /usr/bin/crontab
-rwsr-xr-x 1 root 47032 Jul 26 2013 /usr/bin/passwd
-rwsr-xr-x 1 root 18928 May 16 2013 /usr/bin/arping
-rwxr-sr-x 1 tty 14688 Jun 4 2013 /usr/bin/bsd-write
-rwsr-xr-x 1 root 46424 Jul 26 2013 /usr/bin/chfn
-rwxr-sr-x 1 utmp 380088 Aug 19 2013 /usr/bin/screen
-rwxr-sr-x 1 mlocate 39520 Jun 20 2013 /usr/bin/mlocate
-rwxr-sr-x 1 mail 14848 Jun 5 2013 /usr/bin/dotlockfile
-rwsr-xr-x 1 root 10208 Sep 10 2013 /usr/sbin/sensible-mda
-rwxr-sr-x 1 smmsp 82816 Sep 10 2013 /usr/lib/sm.bin/mailstats
-rwxr-sr-x 1 smmsp 851840 Sep 10 2013 /usr/lib/sm.bin/sendmail
-rwsr-xr-x 1 root 249704 Apr 29 19:54 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root 10368 Oct 12 2013 /usr/lib/pt_chown
Intente agregarme al group de root con gpasswd pero no me dejo xD, lo más obvio pero bueno, debe haber algun otro fichero que nos permita hacer algo valioso con el root. Y parece que instalaron GCC pero lo borraron o no se.
Código:
$ whereis gcc
gcc: /usr/lib/gcc
No hay nada en la carpeta xD.