hacktricks/linux-hardening/privilege-escalation/selinux.md

3.8 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %} {% endhint %}

SELinux em Contêineres

Introdução e exemplo da documentação da redhat

SELinux é um sistema de rotulagem. Cada processo e cada objeto do sistema de arquivos tem um rótulo. As políticas do SELinux definem regras sobre o que um rótulo de processo pode fazer com todos os outros rótulos no sistema.

Os mecanismos de contêiner lançam processos de contêiner com um único rótulo SELinux confinado, geralmente container_t, e então definem o contêiner dentro do contêiner para ser rotulado como container_file_t. As regras da política SELinux basicamente dizem que os processos container_t só podem ler/gravar/executar arquivos rotulados como container_file_t. Se um processo de contêiner escapar do contêiner e tentar gravar conteúdo no host, o kernel Linux nega o acesso e permite apenas que o processo de contêiner escreva em conteúdo rotulado como container_file_t.

$ podman run -d fedora sleep 100
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
$ podman top -l label
LABEL
system_u:system_r:container_t:s0:c647,c780

Usuários SELinux

Existem usuários SELinux além dos usuários Linux regulares. Os usuários SELinux fazem parte de uma política SELinux. Cada usuário Linux é mapeado para um usuário SELinux como parte da política. Isso permite que os usuários Linux herdem as restrições e regras de segurança e mecanismos impostos aos usuários SELinux.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %} {% endhint %}