저는 몇 가지 펜 테스트를 수행하고 몇 가지 가이드를 따라 작업 도구에 대해 알아보고 있습니다. 나는 여행 가이드를 따른다여기마지막 페이지 빼고 다 받았어요.
sudo -l
다음 내용을 이해하는 데 도움이 필요합니다 . 현재 사용자가 무엇을 할 수 있는지 자세히 알고 있습니다. 그러나 다음 출력은 무엇을 의미합니까?
다음 명령(터치 제외)은 어떻습니까? 명령을 실행한 후(exploit?) 루트 권한을 얻을 수 있었기 때문에 약간 혼란스러웠습니다.
내가 이해한 바에 따르면 명령을 루트로 실행하거나 루트로 승격하고,exploit이라는 파일을 압축하여 tmp/exploit에 넣으라는 줄이 있습니다. 나는 내가 틀렸다고 믿습니다. 그러나 그것이 그 선에 대한 나의 이해가 끝나는 곳입니다.
이 명령을 사용하여 루트 권한을 얻는 방법과 이 줄이 수행하는 작업이 혼란스럽습니다.
답변1
첫 번째 질문의 경우, 지정된 출력 행은 제공된 비밀번호 없이도 루트 /bin/tar
및 /usr/bin/zip
via 로 실행할 수 있음을 알려줍니다.sudo
zico
zip
두 번째 질문에 대해서는 매뉴얼 페이지에서 답변을 얻습니다.
--unzip-command cmd
Use command cmd instead of 'unzip -tqq' to test an archive when the -T option is used.
따라서 zip
루트로 실행할 수 있는 권한이 있으므로 이 익스플로잇은 "이 아카이브를 테스트할 때 이 명령을 사용하여 테스트하세요. 루트 쉘을 제공하면 도움이 될 것입니다."라고 sudo
알려줍니다 .zip
sh -c /bin/bash
파일은 exploit
단지 zip
"테스트"할 수 있도록 압축할 내용을 제공합니다. 그런 적이 없었어달리기또는 실제로는 데모의 빈 파일일 뿐입니다.
$ sudo -u root zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"
sudo
루트 사용자로 다음 명령을 실행하기 위한 지침 :
$ zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"
이 명령 은 파일을 가져와 /tmp/exploit
새 아카이브에 넣 습니다 /tmp/exploit.zip
.-T
zip
시간아카이브 무결성 테스트 중 --unzip-command
스위치가 우리에게 알려주는 것zip
어떻게테스트 아카이브. 마지막으로 실제 공격은 zip
루트로 실행되기 때문에 이를 실행하면 sh -c /bin/bash
루트 쉘이 제공됩니다.
답변2
그렇지 않더라도 zip
이 tar
명령을 사용하여 문제를 해결할 수 있습니다. 필요한 것은 setuid 루트 프로그램이 포함된 tar 파일뿐이면 됩니다 tar xfp
.
예를 들어 ksh93 및 setuid 루트를 사용하여 tarball을 만들 수 있으면 루트 권한을 얻을 수 있습니다.
$ 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)
$
euid를 찾았습니다.. 유효한 루트가 있습니다.