retornar retornar
Descodificação de ameaças cibernéticas  para 2023

POR:
Cesar Neira
Serviços profissionais

COMPARTILHAR

Twitter Facebook Linkedin
Referências
  •  • So Many Ways to Own Dell EMC Networker
    (https://quentinkaiser.be/security..)

  •  • DSA-2021-193: Dell EMC NetWorker
    and Dell EMC NetWorker vProxy Security
    Update for Multiple Vulnerabilities
    (https://www.dell.com/support/kbdoc/es-pe/..)

  •  • CVE-2021-36311
    (https://cve.mitre.org/cgi-bin/cvename..)
  • Netwoker: Outra maneira de explorar o Nerworker

    O título deste artigo refere-se a “Tantas maneiras de possuir o Dell EMC Networker”. Durante um pentest, esse artigo foi muito útil para nós. Muito obrigado! Recomendamos lê-lo antes de continuar. Em nosso pentest, descobrimos muitas instalações do Networker Client na rede interna. Alguns nos permitiram executar comandos do Networker remotamente. Então tentamos explorar a injeção de comando em “nsrdump”. No entanto, esse comando não foi instalado. Felizmente, “nsr_render_log” estava lá e nos permitiu obter os hashes dos usuários, mas não conseguimos quebrá-los. A exploração via Erlang também não foi possível porque os hosts não estavam executando esse serviço. Portanto, decidimos tentar outros comandos do Networker.

    ⦁ nsrrcopy arbitrary file upload

    Começamos listando os comandos do Networker disponíveis em uma instalação padrão. Um que nos chamou a atenção foi “nsrrcopy”. Talvez porque soe como “Cópia Remota”.



    O arquivo “nsrrcopy” é na verdade um script Bash. Em seu código podemos ver que ele executa outro programa chamado “uasm” passando-lhe alguns parâmetros controlados por nós.



    Na documentação do “uasm” vemos que sua função é “salvar” e “recuperar” dados do sistema de arquivos. Além disso, diz que pode ser usado de forma semelhante ao comando “tar”.



    Por exemplo, para salvar o arquivo “/etc/passwd”, usamos a opção “-s”. Isso cria um fluxo de bytes que é enviado para a saída padrão e redirecionado para o arquivo “stream”.



    E, para restaurar o arquivo “/etc/passwd”, usamos a opção “-r”. Isto lê o fluxo de bytes criado anteriormente pela entrada padrão e reconstrói os arquivos. O parâmetro “-iY” serve para sobrescrever arquivos sem aviso prévio.



    Em “nsrrcopy” vemos que “uasm” é executado no modo de restauração e sobrescreve os arquivos sem aviso prévio. Adicionalmente vemos que recebe um parâmetro “$1”. Esse parâmetro é opcional e deve ser uma rota. Quando presente, evita que arquivos sejam gravados fora desse caminho. Felizmente, nós o controlamos e se colocarmos “/” podemos escrever em todo o sistema de arquivos.



    A ideia é executar “nsrrcopy” de “nsrexec” para fazer upload de arquivos arbitrários para a máquina remota. Mas é claro, “nsrrcopy” (uasm) lê o fluxo de bytes da entrada padrão. Como podemos controlar a entrada padrão do programa remoto? Felizmente, “nsrexec” suporta uma variável de ambiente “STDIN” que permite especificar os dados que serão passados como entrada padrão para o programa remoto.



    A dificuldade é que o fluxo de bytes gerado com “uasm” contém muitos bytes nulos e não podemos colocá-lo diretamente em uma variável de ambiente porque seria truncado.



    Uma maneira de resolver este problema é usar “netsed” e substituir o valor STDIN diretamente no pacote de rede que é enviado ao host remoto.



    Outra forma seria programar um script que fale o protocolo Networker e envie nossa carga diretamente para ele.

    ⦁ Exploração passo a passo

    Criamos nosso script malicioso em “/usr/sbin/nsrwoot”



    E damos permissões de execução



    Nós empacotamos com “uasm”



    Codificamos o fluxo de bytes para passá-lo para “netsed”



    Obtemos o seguinte:



    Geramos um padrão “AAA…” com o mesmo comprimento de bytes



    Configuramos o encaminhamento de porta com socat



    Configuramos o redirecionamento e substituição de bytes com netsed



    Atribuímos STDIN com o padrão “AAA…”



    Executamos “nsrrcopy” no host remoto



    Ao final do comando anterior, o script “nsrwoot” terá sido criado no host remoto e podemos executá-lo com “nsrexec”.



    ⦁ Cronograma de divulgação

    • 12-JUL-2021: BASE4 Security realiza el reporte inicial
    • 13-JUL-2021: Dell confirma la de recepción del reporte
    • 05-AGO-2021: Dell confirma la vulnerabilidad
    • 09-SEP-2021: Dell informa que el Security Advisory se publicará a mediados de octubre
    • 05-OCT-2021: Dell informa que la publicación del Security Advisory será el 11-OCT-2021.
    • 11-OCT-2021: Dell informa que la publicación se retrasará.
    • 12-OCT-2021: Dell publica el Security Advisory DSA-2021-193. BASE4 Security publica el presente artículo con los detalles de la vulnerabilidad.
    • EP-2021: Dell informa que la solución se publicará a mediados de octubre