hacktricks/linux-hardening/privilege-escalation/docker-security/weaponizing-distroless.md

27 lines
1.6 KiB
Markdown
Raw Normal View History

2023-06-06 18:56:34 +00:00
# Armando Distroless
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
Um contêiner distroless é um tipo de contêiner que contém apenas as dependências necessárias para executar um aplicativo específico, sem nenhum software ou ferramenta adicional que não seja necessário. Esses contêineres são projetados para serem o mais leves e seguros possível e visam minimizar a superfície de ataque removendo quaisquer componentes desnecessários.
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
Os contêineres distroless são frequentemente usados em ambientes de produção onde a segurança e a confiabilidade são primordiais.
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
Alguns exemplos de contêineres distroless são:
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
* Fornecido pelo Google: [https://console.cloud.google.com/gcr/images/distroless/GLOBAL](https://console.cloud.google.com/gcr/images/distroless/GLOBAL)
* Fornecido pela Chainguard: [https://github.com/chainguard-images/images/tree/main/images](https://github.com/chainguard-images/images/tree/main/images)
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
## Armando Distroless
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
O objetivo de armar um contêiner distroless é ser capaz de executar binários e payloads arbitrários, mesmo com as limitações impostas pelo distroless (falta de binários comuns no sistema) e também proteções comumente encontradas em contêineres, como somente leitura ou sem execução em `/dev/shm`.
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
### Através da memória
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
Chegando em algum momento de 2023...
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
### Via binários existentes
2023-03-05 14:36:26 +00:00
#### openssl
2023-06-06 18:56:34 +00:00
Neste post, é explicado que o binário `openssl` é frequentemente encontrado nesses contêineres, potencialmente porque é necessário pelo software que será executado dentro do contêiner.
2023-03-05 14:36:26 +00:00
2023-06-06 18:56:34 +00:00
Abusando do binário `openssl`, é possível executar coisas arbitrárias.