1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 python3,
6}:
7
8python3.pkgs.buildPythonApplication rec {
9 pname = "keepwn";
10 version = "0.4";
11 pyproject = true;
12
13 src = fetchFromGitHub {
14 owner = "Orange-Cyberdefense";
15 repo = "KeePwn";
16 rev = "refs/tags/${version}";
17 hash = "sha256-AkqBC65XrMt4V5KgzLepnQoqpdvbrtWLY3DmVuy8Zck=";
18 };
19
20 build-system = with python3.pkgs; [ setuptools ];
21
22 dependencies = with python3.pkgs; [
23 chardet
24 impacket
25 lxml
26 pefile
27 pykeepass
28 python-magic
29 termcolor
30 ];
31
32 postInstall = lib.optionalString (!stdenv.isDarwin) ''
33 mv $out/bin/KeePwn $out/bin/$pname
34 '';
35
36 # Project has no tests
37 doCheck = false;
38
39 pythonImportsCheck = [ "keepwn" ];
40
41 meta = with lib; {
42 description = "Tool to automate KeePass discovery and secret extraction";
43 homepage = "https://github.com/Orange-Cyberdefense/KeePwn";
44 changelog = "https://github.com/Orange-Cyberdefense/KeePwn/releases/tag/${version}";
45 license = licenses.gpl3Only;
46 maintainers = with maintainers; [ fab ];
47 mainProgram = "keepwn";
48 };
49}