ํด๋น ํ์ด์ฌ ํจ์๋ก ์๋์ ๊ฐ์ด ์ต๊ณ ๊ถํ์ ํ๋ก๊ทธ๋จ ์คํ์ ํ ์ ์๋ค.
os.system(f'SCHTASKS /Create /TN {SVC_NAME} /SC ONLOGON /TR {SVC_PROG_PATH} /RL HIGHEST')
๋๋ ์ผ๋ฐ ๋ช ๋ น์ด๋ก
SCHTASKS /Create /TN "Go" /SC ONSTART /TR "C:\Users\AidenLee\Downloads\go.exe" /RL HIGHEST /RU "SYSTEM"
์์ฉ
os.system()์ ์ฌ์ฉํ์ฌ Windows์์ ๊ถํ ์์น์ ์์ฒญํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ ์์
์ค์ผ์ค๋ฌ(Task Scheduler)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด๋ฏธ ์ฌ์ฉํ๊ณ ๊ณ์ SCHTASKS ๋ช
๋ น์ ์ด ๋ฐฉ๋ฒ ์ค ํ๋์
๋๋ค. ์๋๋ ๋ค๋ฅธ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
runas ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํํฉ๋๋ค.
import os
program_path = "path_to_your_program.exe"
os.system(f"runas /user:Administrator {program_path}")
ctypes ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ฌ ํ๋ก๊ทธ๋จ ์์ฒด๋ฅผ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํํฉ๋๋ค.
import ctypes
import sys
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
# ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ ์ค์ผ ๋ ์ํํ ์์
pass
else:
# ํ์ฌ ํ๋ก๊ทธ๋จ ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ค์ ์คํ
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
์์ ์ฝ๋๋ ํ์ด์ฌ ์คํฌ๋ฆฝํธ๊ฐ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ๋๊ณ ์๋์ง ํ์ธํ ํ, ๊ทธ๋ ์ง ์๋ค๋ฉด ์คํฌ๋ฆฝํธ๋ฅผ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ค์ ์คํํฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ฌ ์คํฌ๋ฆฝํธ์์ Windows ๊ถํ ์์น์ ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ฐฉ๋ฒ๋ค์ ์ฌ์ฉ์๊ฐ UAC(User Account Control) ์ฐฝ์์ ์น์ธ์ ์๊ตฌํ ์ ์์ผ๋ฉฐ, ์์คํ
๋ณด์ ์ ์ฑ
์ ๋ฐ๋ผ ๋์ํ์ง ์์ ์๋ ์์ต๋๋ค. ๊ถํ ์์น์ด ๋ฐ๋์ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๊ณ , ๋ณด์์ ์ฃผ์ํ์ฌ ์ฌ์ฉํ์ธ์.
'๐ค์ ๋ณด๋ณด์ > โค๏ธ๋ ๋ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด] ํด์ (0) | 2023.06.27 |
---|---|
[์ ๋ณด] http ๊ณต๊ฒฉ ์คํฌ (0) | 2023.06.27 |
[์ ๋ณด] DLL Injection ํ์ด์ฌ ์ฝ๋ (0) | 2023.03.15 |
[ํ์ด์ฌ] ๊ถํ ์์น ์์ฒญ ์ฝ๋(2022 ์ต์ ) (0) | 2022.07.01 |
[ํ์ด์ฌ] WebGoat Brute Force ํ์ด์ฌ ์ฝ๋ (0) | 2019.04.28 |