diff --git a/pkgs/tools/security/yersinia/default.nix b/pkgs/tools/security/yersinia/default.nix new file mode 100644 index 00000000000..390ed880ca1 --- /dev/null +++ b/pkgs/tools/security/yersinia/default.nix @@ -0,0 +1,54 @@ +{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, fetchpatch +, ncurses, libpcap, libnet +# alpha version of GTK interface +, withGtk ? false, gtk2 +# enable remote admin interface +, enableAdmin ? false +}: + +stdenv.mkDerivation rec { + pname = "yersinia"; + version = "0.8.2"; + + src = fetchFromGitHub { + owner = "tomac"; + repo = pname; + rev = "v${version}"; + sha256 = "06yfpf9iyi525rly1ychsihzvw3sas8kp0nxxr99xkwiqp5dc78b"; + }; + + patches = [ + # ncurses-6.3 support, included in next release + (fetchpatch { + name = "ncurses-6.3.patch"; + url = "https://github.com/tomac/yersinia/commit/d91bbf6f475e7ea39f131b77ce91b2de9646d5ca.patch"; + sha256 = "fl1pZKWA+nLtBm9+3FBFqaeuVZjszQCNkNl6Cf++BAI="; + }) + ]; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + buildInputs = [ libpcap libnet ncurses ] + ++ lib.optional withGtk gtk2; + + autoreconfPhase = "./autogen.sh"; + + configureFlags = [ + "--with-pcap-includes=${libpcap}/include" + "--with-libnet-includes=${libnet}/include" + ] + ++ lib.optional (!enableAdmin) "--disable-admin" + ++ lib.optional (!withGtk) "--disable-gtk"; + + makeFlags = [ "LDFLAGS=-lncurses" ]; + + meta = with lib; { + description = "A framework for layer 2 attacks"; + homepage = "https://github.com/tomac/yersinia"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ vdot0x23 ]; + # INSTALL and FAQ in this package seem a little outdated + # so not sure, but it could work on openbsd, illumos, and freebsd + # if you have a machine to test with, feel free to add these + platforms = with platforms; linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ca2700bb3f..0d81096ac18 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34974,6 +34974,8 @@ with pkgs; yarGen = callPackage ../tools/security/yarGen { }; + yersinia = callPackage ../tools/security/yersinia { }; + yaxg = callPackage ../tools/graphics/yaxg {}; zap = callPackage ../tools/networking/zap { };