Noções básicas sobre sudo e possível exploração

1

Eu estou fazendo algumas mãos no teste da caneta e seguindo alguns guias para obter uma compreensão das ferramentas do comércio. Estou acompanhando o guia aqui e entendo tudo, exceto a última página.

Eu preciso de ajuda para entender sudo -l abaixo. Eu sei que isso detalha o que o usuário atual pode fazer. No entanto, o que significa a saída abaixo?

Ecomosobreocomandoabaixo(excluindotoque)?Émeioquemeconfundeporquedepoisdeexecutaressecomando(exploit?),Euconseguifazerroot.

Do meu entendimento, a linha está dizendo para executar o comando como root ou elevate to root, compactar o arquivo chamado exploit e colocá-lo em tmp / exploit. Eu acredito que estou errado, mas é aí que meu entendimento dessa linha pára.

Eu estou confuso sobre como eu tenho raiz com esse comando e o que essa linha está fazendo.

    
por Aspire27 08.11.2018 / 22:47

2 respostas

6

Para sua primeira pergunta, as linhas indicadas de saída informam que você tem permissão para executar /bin/tar e /usr/bin/zip via sudo como o usuário raiz sem nem precisar fornecer a senha de zico . / p>

Para sua segunda pergunta, obtemos a resposta da página de manual de zip :

   --unzip-command cmd
          Use command cmd instead of 'unzip -tqq' to test an archive when the -T option is used.

Portanto, como você tem o privilégio de executar zip como o usuário root em sudo , a exploração está simplesmente dizendo zip "hey, quando você estiver testando esse arquivo, use o comando sh -c /bin/bash para teste, você faria? " e é útil fazê-lo, dando a você um shell de root.

O arquivo exploit está lá apenas para fornecer zip algo para compactar, para que haja algo para "testar". Ele nunca está sendo executado ou nada e, na verdade, em sua demonstração é simplesmente um arquivo vazio.

$ sudo -u root zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

está instruindo sudo para, como usuário root, executar este comando:

$ zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

Este comando pegará o arquivo /tmp/exploit e o colocará em um novo arquivo, /tmp/exploit.zip . A opção -T informa zip a T est a integridade do arquivo, e a opção --unzip-command informa a zip como testar o arquivo. Essa última coisa é a exploração real: porque zip está sendo executado como root, executar sh -c /bin/bash fornece um shell como o usuário root.

    
por 08.11.2018 / 22:53
1

Mesmo sem zip , o comando tar pode ser usado para quebrar as coisas. Tudo o que você precisa é de um arquivo tar com o programa raiz setuid dentro e, em seguida, tar xfp it.

Por exemplo, se eu posso criar um tarball com ksh93 com root setuid, então eu posso obter privilégios de root

$ tar tvf ../foo.tar
-rwsr-xr-x root/root   1519024 2018-11-08 21:32 ksh93
$ sudo tar xvfp ../foo.tar 
ksh93
$ ./ksh93 -c id
uid=500(sweh) gid=500(sweh) euid=0(root) groups=500(sweh),10(wheel),13(news)
$ 

Identifique o euid .. Eu tenho raiz eficaz.

    
por 09.11.2018 / 03:37