Запускать себя или другую программу как sudo, когда мой скрипт на Python знает пароль?
Я исследовал защиту Linux и обнаружил, что сценарий может перейти в root, как только узнает пароль sudo пользователя.
Я хочу сделать POC.
Как сценарий Python может самостоятельно превратиться в пользователя root, если он знает sudo
password
? Я предполагаю, что мне придется использовать subprocesses
,
Я не спрашиваю о получении пароля. Вы должны предположить, что мой сценарий уже имеет пароль с помощью любого из методов, упомянутых здесь /questions/14413393/obedinit-dva-podschityivayuschih-zaprosa-v-odin-logicheskij-zapros/14413408#14413408
1 ответ
Если вы идете вниз subprocess
маршрут, то вы можете использовать -S
флаг на sudo
чтобы вы могли передать пароль через stdin
:
p = subprocess.Popen(['sudo', '-S', 'python', 'my_script.py'], stdin=subprocess.PIPE)
p.communicate(b'thesudopassword\n')
Однако, насколько я знаю, невозможно повысить UID запущенного в настоящий момент процесса до уровня root. Вероятно, было бы намного проще просто запустить новый Python или другой процесс с правами root, как в примере.