[tool.poetry] name = "netexec" version = "1.1.0" description = "The Network Execution tool" authors = [ "Marshall Hallenbeck ", "Alexander Neff ", "Thomas Seigneuret " ] readme = "README.md" homepage = "https://github.com/Pennyw0rth/NetExec" repository = "https://github.com/Pennyw0rth/NetExec" exclude = [] include = [ "nxc/data/*", "nxc/modules/*" ] license = "BSD-2-Clause" classifiers = [ 'Environment :: Console', 'License :: OSI Approved :: BSD License', 'Programming Language :: Python :: 3', 'Topic :: Security', ] packages = [ { include = "nxc"} ] [tool.poetry.scripts] nxc = 'nxc.netexec:main' netexec = 'nxc.netexec:main' NetExec = 'nxc.netexec:main' nxcdb = 'nxc.nxcdb:main' [tool.poetry.dependencies] python = "^3.7.0" requests = ">=2.27.1" beautifulsoup4 = ">=4.11,<5" lsassy = ">=3.1.8" termcolor = "2.0.1" msgpack = "^1.0.0" neo4j = "^4.1.1" # do not upgrade this until performance regression issues in 5 are fixed (as of 9/23) pylnk3 = "^0.4.2" pypsrp = "^0.8.1" paramiko = "^3.3.1" impacket = { git = "https://github.com/Pennyw0rth/impacket.git", branch = "gkdi" } dsinternals = "^1.2.4" xmltodict = "^0.13.0" terminaltables = "^3.1.0" aioconsole = "^0.6.2" pywerview = "^0.3.3" # pywerview 5 requires libkrb5-dev installed which is not default on kali (as of 9/23) minikerberos = "^0.4.1" pypykatz = "^0.6.8" aardwolf = "^0.2.7" dploot = "^2.2.1" bloodhound = "^1.6.1" asyauth = "~0.0.14" masky = "^0.2.0" sqlalchemy = "^2.0.4" aiosqlite = "^0.19.0" pyasn1-modules = "^0.3.0" rich = "^13.3.5" python-libnmap = "^0.7.3" resource = "^0.2.1" oscrypto = { git = "https://github.com/Pennyw0rth/oscrypto" } # Pypi version currently broken, see: https://github.com/wbond/oscrypto/issues/78 (as of 9/23) pyreadline = "^2.1" # for the build - impacket imports its hidden from the builder so an error occurs ruff = "=0.0.292" [tool.poetry.group.dev.dependencies] flake8 = "*" shiv = "*" pytest = "^7.2.2" [build-system] requires = ["poetry-core>=1.2.0"] build-backend = "poetry.core.masonry.api" [tool.ruff] # Ruff doesn't enable pycodestyle warnings (`W`) or # McCabe complexity (`C901`) by default. # Other options: pep8-naming (N), flake8-annotations (ANN), flake8-blind-except (BLE), flake8-commas (COM), flake8-pyi (PYI), flake8-pytest-style (PT), flake8-unused-arguments (ARG), etc # Should tackle flake8-use-pathlib (PTH) at some point select = ["E", "F", "D", "UP", "YTT", "ASYNC", "B", "A", "C4", "ISC", "ICN", "PIE", "PT", "Q", "RSE", "RET", "SIM", "TID", "ERA", "FLY", "PERF", "FURB", "LOG", "RUF"] ignore = [ "E501", "F405", "D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107", "D203", "D204", "D205", "D212", "D213", "D400", "D401", "D415", "D417", "D419", "RET503", "RET505", "RET506", "RET507", "RET508", "PERF203", "RUF012"] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] per-file-ignores = {} line-length = 65000 # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" target-version = "py37" [tool.ruff.flake8-quotes] docstring-quotes = "double" inline-quotes = "double" multiline-quotes = "double"