1{
2 lib,
3 fetchFromGitHub,
4 python3,
5 python3Packages,
6 makeWrapper,
7 installShellFiles,
8}:
9
10python3Packages.buildPythonApplication rec {
11 pname = "weevely";
12 version = "4.0.2-unstable-2024-04-29";
13 pyproject = false;
14
15 src = fetchFromGitHub {
16 owner = "epinna";
17 repo = "weevely3";
18 rev = "3fe896a67af8c0b44f39f50fb7234812a9da2118";
19 hash = "sha256-rUFwy6eoQQ8eQFcmOP+tCS6mKdWmRjeeyAqsc0TYCHU=";
20 };
21
22 nativeBuildInputs = [
23 makeWrapper
24 installShellFiles
25 ];
26
27 propagatedBuildInputs = with python3Packages; [
28 dateutils
29 mako
30 prettytable
31 pyopenssl
32 pysocks
33 pyyaml
34 ];
35
36 installPhase = ''
37 runHook preInstall
38 mkdir -p $out/{bin,share/weevely}
39 installManPage weevely.1
40 rm README.md CHANGELOG.md requirements.txt LICENSE weevely.1
41 cp -a * $out/share/weevely/
42 makeWrapper ${python3}/bin/python $out/bin/weevely \
43 --add-flags "$out/share/weevely/weevely.py" \
44 --prefix PYTHONPATH : ${python3Packages.makePythonPath propagatedBuildInputs}
45 runHook postInstall
46 '';
47
48 meta = with lib; {
49 description = "Weaponized web shell";
50 homepage = "https://github.com/epinna/weevely3";
51 mainProgram = "weevely";
52 license = licenses.gpl3Plus;
53 platforms = platforms.unix;
54 maintainers = with maintainers; [ d3vil0p3r ];
55 };
56}