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.
