From e9c7de88870990c25f819c6d1594335c28bb5bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Fri, 27 Jan 2023 01:32:05 +0900 Subject: [PATCH] add pyproject MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- .gitignore | 2 + pyproject.toml | 19 ++++++ main.py => winpwnage/__main__.py | 102 +++++++++++++++---------------- 3 files changed, 72 insertions(+), 51 deletions(-) create mode 100644 .gitignore create mode 100644 pyproject.toml rename main.py => winpwnage/__main__.py (97%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b0f2192f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +.venv \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..d13807fc --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,19 @@ +[tool.poetry] +name = "winpwnage" +version = "0.0.0" +description = "UAC bypass, Elevate, Persistence methods" +authors = ["rootm0s"] +license = "Proprietary" +readme = "README.md" +repository = "https://github.com/rootm0s/WinPwnage" + +[tool.poetry.dependencies] +python = "^3.9" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +winpwnage = 'winpwnage.__main__:main' \ No newline at end of file diff --git a/main.py b/winpwnage/__main__.py similarity index 97% rename from main.py rename to winpwnage/__main__.py index fc0c8a0c..036d677f 100644 --- a/main.py +++ b/winpwnage/__main__.py @@ -1,52 +1,52 @@ -from winpwnage.core.prints import print_info -from winpwnage.core.scanner import scanner, function -from winpwnage.core.utils import * -import argparse -import sys - -print(""" - _ - _ _ _|_|___ ___ _ _ _ ___ ___ ___ ___ - | | | | | | . | | | | | .'| . | -_| - |_____|_|_|_| _|_____|_|_|__,|_ |___| - |_| |___| -""") - -print_info("UAC level: {}".format(information().uac_level())) -print_info("Build number: {}".format(information().build_number())) -print_info("Running elevated: {}".format(information().admin())) -print_info("Python version: {}.{}.{}\n".format(*sys.version_info)) - -def main(): - scan_cmds = ["uac", "persist", "elevate"] - - parser = argparse.ArgumentParser() - parser.add_argument("-s", "--scan", nargs="+", required=False, help="Scan for either uac, persist or elevate method") - parser.add_argument("-u", "--use", nargs="+", required=False, help="Use either uac, persist or elevate method") - parser.add_argument("-i", "--id", nargs="+", required=False, help="Id of method") - parser.add_argument("-p", "--payload", nargs="+", required=False, help="Full path to payload, can include params") - parser.add_argument("-r", "--remove", action="store_true", required=False, help="Removes installed persistence") - args = parser.parse_args() - - if args.scan: - if not all([_ in scan_cmds for _ in args.scan]): - parser.print_help() - - scanner(**{scan_cmds[_]: scan_cmds[_] in args.scan for _ in range(3)}).start() - - if args.use and args.id: - if not all([_ in scan_cmds for _ in args.use]): - parser.print_help() - - if scan_cmds[0] in args.use and args.payload: - function(uac=True, persist=False, elevate=False).run(id=args.id[0], payload=args.payload) - - if scan_cmds[1] in args.use: - function(uac=False, persist=True, elevate=False).run(id=args.id[0], payload=args.payload, - add=(False if args.remove else True)) - - if scan_cmds[2] in args.use and args.payload: - function(uac=False, persist=False, elevate=True).run(id=args.id[0], payload=args.payload) - -if __name__ == "__main__": +from winpwnage.core.prints import print_info +from winpwnage.core.scanner import scanner, function +from winpwnage.core.utils import * +import argparse +import sys + +print(""" + _ + _ _ _|_|___ ___ _ _ _ ___ ___ ___ ___ + | | | | | | . | | | | | .'| . | -_| + |_____|_|_|_| _|_____|_|_|__,|_ |___| + |_| |___| +""") + +print_info("UAC level: {}".format(information().uac_level())) +print_info("Build number: {}".format(information().build_number())) +print_info("Running elevated: {}".format(information().admin())) +print_info("Python version: {}.{}.{}\n".format(*sys.version_info)) + +def main(): + scan_cmds = ["uac", "persist", "elevate"] + + parser = argparse.ArgumentParser() + parser.add_argument("-s", "--scan", nargs="+", required=False, help="Scan for either uac, persist or elevate method") + parser.add_argument("-u", "--use", nargs="+", required=False, help="Use either uac, persist or elevate method") + parser.add_argument("-i", "--id", nargs="+", required=False, help="Id of method") + parser.add_argument("-p", "--payload", nargs="+", required=False, help="Full path to payload, can include params") + parser.add_argument("-r", "--remove", action="store_true", required=False, help="Removes installed persistence") + args = parser.parse_args() + + if args.scan: + if not all([_ in scan_cmds for _ in args.scan]): + parser.print_help() + + scanner(**{scan_cmds[_]: scan_cmds[_] in args.scan for _ in range(3)}).start() + + if args.use and args.id: + if not all([_ in scan_cmds for _ in args.use]): + parser.print_help() + + if scan_cmds[0] in args.use and args.payload: + function(uac=True, persist=False, elevate=False).run(id=args.id[0], payload=args.payload) + + if scan_cmds[1] in args.use: + function(uac=False, persist=True, elevate=False).run(id=args.id[0], payload=args.payload, + add=(False if args.remove else True)) + + if scan_cmds[2] in args.use and args.payload: + function(uac=False, persist=False, elevate=True).run(id=args.id[0], payload=args.payload) + +if __name__ == "__main__": main() \ No newline at end of file