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.