base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / security / metasploit / default.nix
bloba49be1d4338df1299d18eb4d85703f773f5a761c
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , makeWrapper
5 , ruby
6 , bundlerEnv
7 , python3
8 }:
10 let
11   env = bundlerEnv {
12     inherit ruby;
13     name = "metasploit-bundler-env";
14     gemdir = ./.;
15   };
16 in stdenv.mkDerivation rec {
17   pname = "metasploit-framework";
18   version = "6.4.36";
20   src = fetchFromGitHub {
21     owner = "rapid7";
22     repo = "metasploit-framework";
23     rev = "refs/tags/${version}";
24     hash = "sha256-di7/LBqXrcIhy4UG5krAFSJ1ZhrJuGxEWJ25aVLuiGg=";
25   };
27   nativeBuildInputs = [
28     makeWrapper
29   ];
31   buildInputs = [
32     (python3.withPackages (ps: [ ps.requests ]))
33   ];
35   dontPatchELF = true; # stay away from exploit executables
37   installPhase = ''
38     mkdir -p $out/{bin,share/msf}
40     cp -r * $out/share/msf
42     grep -rl "^#\!.*python2$" $out/share/msf | xargs -d '\n' rm
44     (
45       cd $out/share/msf/
46       for i in msf*; do
47         makeWrapper ${env}/bin/bundle $out/bin/$i \
48           --add-flags "exec ${ruby}/bin/ruby $out/share/msf/$i"
49       done
50     )
52     makeWrapper ${env}/bin/bundle $out/bin/msf-pattern_create \
53       --add-flags "exec ${ruby}/bin/ruby $out/share/msf/tools/exploit/pattern_create.rb"
55     makeWrapper ${env}/bin/bundle $out/bin/msf-pattern_offset \
56       --add-flags "exec ${ruby}/bin/ruby $out/share/msf/tools/exploit/pattern_offset.rb"
57   '';
59   # run with: nix-shell maintainers/scripts/update.nix --argstr path metasploit
60   passthru.updateScript = ./update.sh;
62   meta = with lib; {
63     description = "Metasploit Framework - a collection of exploits";
64     homepage = "https://docs.metasploit.com/";
65     platforms = platforms.unix;
66     license = licenses.bsd3;
67     maintainers = with maintainers; [ fab makefu ];
68     mainProgram = "msfconsole";
69   };