about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorThiago Kenji Okada <thiagokokada@gmail.com>2024-01-09 13:44:54 +0000
committerGitHub <noreply@github.com>2024-01-09 13:44:54 +0000
commit77f68e786d19374d58cfe82257ee35aae5a15ee8 (patch)
tree58fe40d4abc3cf10fa0f4e8cc267584a1a49b46a /pkgs/tools
parent78442b2b5f43be2dae7154ad57dadb441efe8d39 (diff)
parent07520a61c5938ce0f892a657d6d590938dddaba9 (diff)
Merge pull request #275531 from vncsb/add-netexec
netexec: init at 1.1.0
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/security/bloodhound-py/default.nix31
-rw-r--r--pkgs/tools/security/netexec/default.nix172
2 files changed, 172 insertions, 31 deletions
diff --git a/pkgs/tools/security/bloodhound-py/default.nix b/pkgs/tools/security/bloodhound-py/default.nix
deleted file mode 100644
index 197be429bee90..0000000000000
--- a/pkgs/tools/security/bloodhound-py/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib
-, fetchPypi
-, python3
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "bloodhound-py";
-  version = "1.6.1";
-
-  src = fetchPypi {
-    inherit version;
-    pname = "bloodhound";
-    hash = "sha256-SRP74I5euKJErnSkm6OSdAwznv/ZQeEtNG4XofnIEec=";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    impacket
-    ldap3
-    dnspython
-  ];
-
-  # the package has no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Ingestor for BloodHound";
-    homepage = "https://github.com/fox-it/BloodHound.py";
-    license = licenses.mit;
-    maintainers = with maintainers; [ exploitoverload ];
-  };
-}
diff --git a/pkgs/tools/security/netexec/default.nix b/pkgs/tools/security/netexec/default.nix
new file mode 100644
index 0000000000000..d5925365a87a9
--- /dev/null
+++ b/pkgs/tools/security/netexec/default.nix
@@ -0,0 +1,172 @@
+{ lib
+, fetchFromGitHub
+, python3
+, buildPythonPackage
+, fetchPypi
+}:
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      impacket = super.impacket.overridePythonAttrs {
+        version = "0.12.0.dev1";
+        src = fetchFromGitHub {
+          owner = "Pennyw0rth";
+          repo = "impacket";
+          rev = "d370e6359a410063b2c9c68f6572c3b5fb178a38";
+          hash = "sha256-Jozn4lKAnLQ2I53+bx0mFY++OH5P4KyqVmrS5XJUY3E=";
+        };
+      };
+      bloodhound-py = super.bloodhound-py.overridePythonAttrs (old: {
+        propagatedBuildInputs =
+          lib.lists.remove super.impacket old.propagatedBuildInputs
+          ++ [ self.impacket ];
+      });
+    };
+  };
+
+  python-easyconfig = buildPythonPackage rec {
+    pname = "python-easyconfig";
+    version = "0.1.7";
+    src = fetchPypi {
+      inherit version;
+      pname = "Python-EasyConfig";
+      hash = "sha256-tUjxmrhQtVFU9hFi8xTj27J24R47JpUbio+gaDwGuyk=";
+    };
+    propagatedBuildInputs = with python.pkgs; [
+      six
+      pyyaml
+    ];
+  };
+
+  jsonform = buildPythonPackage rec {
+    pname = "jsonform";
+    version = "0.0.2";
+    doCheck = false;
+    src = fetchPypi {
+      inherit version;
+      pname = "JsonForm";
+      hash = "sha256-cfi3ohU44wyphLad3gTwKYDNbNwhg6GKp8oC2VCZiOY=";
+    };
+    propagatedBuildInputs = with python.pkgs; [
+      jsonschema
+    ];
+  };
+
+  jsonsir = buildPythonPackage rec {
+    pname = "jsonsir";
+    version = "0.0.2";
+    doCheck = false;
+    src = fetchPypi {
+      inherit version;
+      pname = "JsonSir";
+      hash = "sha256-QBRHxekx94h4Uc6b8kB/401aqwsUZ7sku787dg5b0/s=";
+    };
+  };
+
+  dploot = buildPythonPackage rec {
+    pname = "dploot";
+    version = "2.2.4";
+    pyproject = true;
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-40/5KOlEFvPL9ohCfR3kqoikpKFfJO22MToq3GhamKM=";
+    };
+    nativeBuildInputs = with python.pkgs; [
+      poetry-core
+    ];
+    propagatedBuildInputs = with python.pkgs; [
+      impacket
+      cryptography
+      pyasn1
+      lxml
+    ];
+  };
+
+  resource = buildPythonPackage rec {
+    pname = "resource";
+    version = "0.2.1";
+    doCheck = false;
+    src = fetchPypi {
+      inherit version;
+      pname = "Resource";
+      hash = "sha256-mDVKvY7+c9WhDyEJnYC774Xs7ffKIqQW/yAlClGs2RY=";
+    };
+    propagatedBuildInputs = with python.pkgs; [
+      python-easyconfig
+      jsonform
+      jsonsir
+    ];
+  };
+in
+python.pkgs.buildPythonApplication rec {
+  pname = "netexec";
+  version = "1.1.0";
+  pyproject = true;
+  doCheck = true;
+  pythonRelaxDeps = true;
+
+  src = fetchFromGitHub {
+    owner = "Pennyw0rth";
+    repo = "NetExec";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-cNkZoIdfrKs5ZvHGKGBybCWGwA6C4rqjCOEM+pX70S8=";
+  };
+
+  nativeBuildInputs = with python.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python.pkgs; [
+    requests
+    beautifulsoup4
+    lsassy
+    termcolor
+    msgpack
+    neo4j
+    pylnk3
+    pypsrp
+    paramiko
+    impacket
+    dsinternals
+    xmltodict
+    terminaltables
+    aioconsole
+    pywerview
+    minikerberos
+    pypykatz
+    aardwolf
+    dploot
+    bloodhound-py
+    asyauth
+    masky
+    sqlalchemy
+    aiosqlite
+    pyasn1-modules
+    rich
+    python-libnmap
+    resource
+    oscrypto
+  ];
+
+  nativeCheckInputs = with python.pkgs; [
+    pytest
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace '{ git = "https://github.com/Pennyw0rth/impacket.git", branch = "gkdi" }' '"*"'
+
+    substituteInPlace pyproject.toml \
+      --replace '{ git = "https://github.com/Pennyw0rth/oscrypto" }' '"*"'
+  '';
+
+  meta = with lib; {
+    description = "Network service exploitation tool (Maintaned fork of CrackMapExec)";
+    homepage = "https://github.com/Pennyw0rth/NetExec";
+    changelog = "https://github.com/Pennyw0rth/NetExec/releases/tag/v${version}";
+    license = with licenses; [ bsd2 ];
+    mainProgram = "nxc";
+    maintainers = with maintainers; [ vncsb ];
+  };
+}