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 1271dded51a3..e1d42fdb1b68 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4320,6 +4320,8 @@ with pkgs; roundcubePlugins = dontRecurseIntoAttrs (callPackage ../servers/roundcube/plugins { }); + routersploit = callPackage ../tools/security/routersploit { }; + routinator = callPackage ../servers/routinator { inherit (darwin.apple_sdk.frameworks) Security; };