Add module sorting when listing modules by privileges needed for execution
parent
66e6c95f0d
commit
dfafcb2975
|
@ -114,6 +114,7 @@ class ModuleLoader:
|
||||||
"supported_protocols": module_spec.supported_protocols,
|
"supported_protocols": module_spec.supported_protocols,
|
||||||
"opsec_safe": module_spec.opsec_safe,
|
"opsec_safe": module_spec.opsec_safe,
|
||||||
"multiple_hosts": module_spec.multiple_hosts,
|
"multiple_hosts": module_spec.multiple_hosts,
|
||||||
|
"requires_admin": True if hasattr(module_spec, 'on_admin_login') and callable(module_spec.on_admin_login) else False,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if self.module_is_sane(module_spec, module_path):
|
if self.module_is_sane(module_spec, module_path):
|
||||||
|
|
|
@ -47,6 +47,7 @@ except:
|
||||||
print("Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)")
|
print("Incompatible python version, try with another python version or another binary 3.8 / 3.9 / 3.10 / 3.11 that match your python version (python -V)")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
def create_db_engine(db_path):
|
def create_db_engine(db_path):
|
||||||
db_engine = sqlalchemy.create_engine(f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True)
|
db_engine = sqlalchemy.create_engine(f"sqlite:///{db_path}", isolation_level="AUTOCOMMIT", future=True)
|
||||||
return db_engine
|
return db_engine
|
||||||
|
@ -179,8 +180,13 @@ def main():
|
||||||
modules = loader.list_modules()
|
modules = loader.list_modules()
|
||||||
|
|
||||||
if args.list_modules:
|
if args.list_modules:
|
||||||
|
nxc_logger.highlight("LOW PRIVILEGE MODULES")
|
||||||
for name, props in sorted(modules.items()):
|
for name, props in sorted(modules.items()):
|
||||||
if args.protocol in props["supported_protocols"]:
|
if args.protocol in props["supported_protocols"] and not props["requires_admin"]:
|
||||||
|
nxc_logger.display(f"{name:<25} {props['description']}")
|
||||||
|
nxc_logger.highlight("\nHIGH PRIVILEGE MODULES (requires admin privs)")
|
||||||
|
for name, props in sorted(modules.items()):
|
||||||
|
if args.protocol in props["supported_protocols"] and props["requires_admin"]:
|
||||||
nxc_logger.display(f"{name:<25} {props['description']}")
|
nxc_logger.display(f"{name:<25} {props['description']}")
|
||||||
exit(0)
|
exit(0)
|
||||||
elif args.module and args.show_module_options:
|
elif args.module and args.show_module_options:
|
||||||
|
|
Loading…
Reference in New Issue