image

Unlimited bootcamps + English course forever

80
%OFF
Article image
Claudio André
Claudio André27/07/2025 17:21
Share
Randstad - Análise de DadosRecommended for youRandstad - Análise de Dados

Como hackear o servidor da empresa?

    Neste artigo eu vou demonstrar como obter de forma fraudulenta direitos de root em uma máquina rodando Ubuntu. Não, espere! Leia a seção abaixo antes de ligar para 190.

    Aviso importante

    Eu não vou dar a você o passo a passo para cometer crimes. Na realidade, no artigo eu vou omitir algum código fonte de forma a garantir que ninguém fique tentado a exercitar este experimento nos servidores da empresa onde trabalha.

    De qualquer forma, com este texto eu quero enfatizar a importância de manter os servidores sempre, repito, SEMPRE, vou dizer novamente, SEMPRE, atualizados com os patches de segurança disponíveis.

    Nos créditos e agradecimentos do final, eu cito o nome do pesquisador que encontrou a falha de segurança e a CVE relacionada. Com estes dados em mãos, qualquer pessoa minimamente qualificada é uma ameaça.

    Repito, além de mim qualquer um dos funcionários da empresa que possuir um inglês mediano pode pesquisar sobre o assunto e será capaz de obter direitos de root nos servidores (se estes servidores não estiverem atualizados).

    Vamos começar pela conclusão?

    Iremos comprovar nas próximas seções que um usuário comum consegue acesso de superusuário explorando uma falha de segurança no utilitário sudo. Na realidade, qualquer pessoa com acesso à internet e algum conhecimento técnico é capaz de reproduzir o ataque que eu demonstrarei a seguir.

    Se você não tem certeza sobre a situação das máquinas sob sua responsabilidade, saia do banho agora e vai correndo (pelado mesmo) executar a atualização dos seus servidores e imagens Docker.

    Destaco que após a atualização [2] do sudo para a versão 1.9.15p5-3ubuntu5.24.04.1 eu confirmei que a versão atualizada NÃO é susceptível ao ataque demonstrado neste artigo. Por fim:

    • Todos nós precisamos ser pró-ativos e vigilantes no mundo virtual. E adotar práticas recomendadas, como atualização de patches de segurança, acompanhamento e monitoramento de eventos de segurança e prática contínua de segurança defensiva;
    • Avalie os logs e busque o uso de runchroot= ou CHROOT=;
    • Avalie seu arquivo sudoers.

    Elevação de privilégios com sudo chroot

    O utilitário sudo é uma ferramenta de linha de comando de sistemas Linux que permite que um usuário autorizado execute um comando como superusuário ou como outro usuário, conforme especificado pela política de segurança. É usado em um modelo de privilégios mínimos, delegando tarefas administrativas que exigem privilégios elevados sem compartilhar a senha root.

    As informações sobre a falha de segurança e sobre os métodos de exploração ainda são quentíssimas. Em português, os artigos são todos de Julho de 2025, tageados como Risco Iminente. Nestes artigos somos informados que:

    O CVE-2025-32463 foi introduzido na versão v1.9.14 (junho de 2023) com a atualização do código de tratamento de correspondência de comandos quando o recurso chroot é usado.

    Também:

    O problema afeta as versões do sudo entre 1.9.14 e 1.9.17, e foi confirmado em distribuições como Ubuntu 24.04.1 e Fedora 41 Server.

    Eu mesmo explorei a falha usando Ubuntu 24 LTS.

    normalzinho@maquina:/$ cat /etc/*release*
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=24.04
    DISTRIB_CODENAME=noble
    DISTRIB_DESCRIPTION="Ubuntu 24.04.2 LTS"
    PRETTY_NAME="Ubuntu 24.04.2 LTS"
    NAME="Ubuntu"
    VERSION_ID="24.04"
    VERSION="24.04.2 LTS (Noble Numbat)"
    
    sudo --version
    [...]
    Sudoers I/O plugin version 1.9.15p5
    Sudoers audit plugin version 1.9.15p5
    

    Por que isto é relevante?

    É sério? EU CONSIGO VIRAR O ROOT NO SEU SERVIDOR SE EU TIVER ACESSO AO SHELL DA MÁQUINA!

    Note que meu usuário, o normalzinho, não tem direitos de root. Ele não está no arquivo sudoers, nem nada sofisticado que você possa imaginar:

    normalzinho@maquina:/$ sudo -l
    [sudo] password for normalzinho:
    Sorry, user normalzinho may not run sudo on 3cfd15957d74.
    

    A invasão

    A falha de segurança que estamos explorando recebeu o código CVE-2025-32463. O problema surge ao permitir que um usuário sem privilégios invoque chroot() em um caminho com direitos de escrita sob controle do usuário malicioso (diretório não confiável).

    Este lab consiste na execução de um código PoC em um servidor Ubuntu 24.04.2 LTS com sudo v1.9.15p5, usando um usuário sem privilégios e sem regras sudo definidas que resulta em um shell root fora do ambiente chrooted.

    O que eu fix fou:

    • usando a informação contida na descrição da falha feita pelas pessoas envolvidadas em sua correção;
    • eu criei o meu "Abra Cadabra" que você pode ver em uso abaixo.

    Ele consiste em um pouco de C, um pouco de BASH, mas nada realmente complexo ou difícil de entender. E, adivinha? Ele funciona e é capaz de me dar direitos de root. Direitos que, vou dizer de novo, eu NÃO DEVERIA TER! [1]

    normalzinho@maquina:~$ whoami
    normalzinho
    
    normalzinho@maquina:~$ ./Abra_Cadabra.sh
    boom!
    
    root@maquina:/# whoami
    root
    

    Para você entender melhor o ambiente usado, anexo abaixo o Dockerfile da imagem que foi usada para os testes deste laboratório.

    # ################################################################################
    #  Copyright (c) 2025  Claudio André <portfolio-2025br at claudioandre.slmail.me>
    #              ___                _      ___       _
    #             (  _`\             ( )_  /'___)     (_ )  _
    #             | |_) )  _    _ __ | ,_)| (__   _    | | (_)   _
    #             | ,__/'/'_`\ ( '__)| |  | ,__)/'_`\  | | | | /'_`\
    #             | |   ( (_) )| |   | |_ | |  ( (_) ) | | | |( (_) )
    #             (_)   `\___/'(_)   `\__)(_)  `\___/'(___)(_)`\___/'
    #
    # This program comes with ABSOLUTELY NO WARRANTY; express or implied.
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, as expressed in version 2, seen at
    # https://www.gnu.org/licenses/gpl-2.0.html
    # ################################################################################
    # Dockerfile usado para explorar a CVE-2025-32463
    # More info at https://github.com/portfolio-2025br/sudo-cve-062025
    
    FROM ubuntu:24.04
    
    ENV DEBIAN_FRONTEND=noninteractive
    
    SHELL ["/bin/bash", "-o", "pipefail", "-c"]
    
    # Prepare the environment
    RUN apt-get update -y \
      && apt-get install -y --no-install-recommends \
          gcc=* libc6-dev=* ca-certificates=* libnss3-tools=* \
          sudo=1.9.15p5-3ubuntu5 \
      && mkdir /www
    
    # Clean up
    RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
    
    # ==================================================================
    # Setup
    # ------------------------------------------------------------------
    ARG GID=1001
    ARG UID=1001
    ARG USERNAME=normalzinho
    RUN groupadd -g ${GID} -o "${USERNAME}" \
      && useradd -m -u ${UID} -g ${GID} -o -s /bin/bash -p $(openssl passwd -1 123456) -l "${USERNAME}"
    USER $USERNAME
    
    HEALTHCHECK NONE
    

    Agradecimentos e créditos

    A vulnerabilidade CVE-2025-32463 (Sudo chroot Elevation of Privilege) foi descoberta por Rich Mirch, da Stratascale Cyber Research Unit. A equipe da Stratascale também agradece ao mantenedor do Sudo, Todd Miller, pela parceria.

    Apêndice

    [1] Falha de segurança explorada no Ubuntu 24 LTS

    image

    Um ataque cracker bem sucedido realizado pelo usuário normalzinho. Eu não sei a senha do root desta máquina (lembre-se, é Ubuntu, o root tem uma senha aleatória e/ou a conta root está bloqueada por padrão).

    Se você precisa criar sua própria ferramenta para explorar esta falha, pesquise sobre a CVE e seu descobridor. Leia o material relevante que aparecer. Em poucas horas você irá obter todas as informações para hackear computadores usando esta técnica.

    [2] Mantenha sempre atenção aos detalhes

    Note como os números de versão não são fáceis de distinguir:

    Versão							Situação
    1.9.15p5-3ubuntu5					Vulnerável
    1.9.15p5-3ubuntu5.24.04.1				OK
    
    Share
    Recommended for you
    GFT Start #7 .NET
    GFT Start #7 - Java
    Deal Group - AI Centric .NET
    Comments (0)
    Recommended for youRandstad - Análise de Dados