diff --git a/pkgs/development/python-modules/threat9-test-bed/default.nix b/pkgs/development/python-modules/threat9-test-bed/default.nix new file mode 100644 index 000000000000..35d5f1389fd1 --- /dev/null +++ b/pkgs/development/python-modules/threat9-test-bed/default.nix @@ -0,0 +1,65 @@ +{ lib +, buildPythonPackage +, click +, faker +, fetchFromGitHub +, flask +, gunicorn +, pyopenssl +, pytestCheckHook +, pythonOlder +, setuptools-scm +, requests +}: + +buildPythonPackage rec { + pname = "threat9-test-bed"; + version = "0.6.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "threat9"; + repo = pname; + rev = "v${version}"; + hash = "sha256-0YSjMf2gDdrvkDaT77iwfCkiDDXKHnZyI8d7JmBSuCg="; + }; + + SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + click + faker + flask + gunicorn + pyopenssl + requests + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "threat9_test_bed" + ]; + + disabledTests = [ + # Assertion issue with the response codes + "test_http_service_mock" + "tests_http_service_mock" + "test_http_service_mock_random_port" + ]; + + meta = with lib; { + description = "Module for adding unittests.mock as view functions"; + homepage = "https://github.com/threat9/threat9-test-bed"; + license = licenses.bsd3; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/tools/security/routersploit/default.nix b/pkgs/tools/security/routersploit/default.nix new file mode 100644 index 000000000000..e2a511c811b1 --- /dev/null +++ b/pkgs/tools/security/routersploit/default.nix @@ -0,0 +1,56 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "routersploit"; + version = "unstable-2021-02-06"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "threat9"; + repo = pname; + rev = "3fd394637f5566c4cf6369eecae08c4d27f93cda"; + hash = "sha256-IET0vL0VVP9ZNn75hKdTCiEmOZRHHYICykhzW2g3LEg="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + future + paramiko + pycryptodome + pysnmp + requests + setuptools + ]; + + checkInputs = with python3.pkgs; [ + pytest-xdist + pytestCheckHook + threat9-test-bed + ]; + + postInstall = '' + mv $out/bin/rsf.py $out/bin/rsf + ''; + + pythonImportsCheck = [ + "routersploit" + ]; + + pytestFlagsArray = [ + "-n" + "$NIX_BUILD_CORES" + # Run the same tests as upstream does in the first round + "tests/core/" + "tests/test_exploit_scenarios.py" + "tests/test_module_info.py" + ]; + + meta = with lib; { + description = "Exploitation Framework for Embedded Devices"; + homepage = "https://github.com/threat9/routersploit"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 76d16b9519df..d525f2e5da02 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4332,6 +4332,8 @@ with pkgs; roundcubePlugins = dontRecurseIntoAttrs (callPackage ../servers/roundcube/plugins { }); + routersploit = callPackage ../tools/security/routersploit { }; + routinator = callPackage ../servers/routinator { inherit (darwin.apple_sdk.frameworks) Security; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1c6a8a4d89f9..39b35084c4be 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10473,6 +10473,8 @@ in { threadpoolctl = callPackage ../development/python-modules/threadpoolctl { }; + threat9-test-bed = callPackage ../development/python-modules/threat9-test-bed { }; + three-merge = callPackage ../development/python-modules/three-merge { }; thrift = callPackage ../development/python-modules/thrift { };