Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib
2, fetchFromGitHub
3, python3
4}:
5
6python3.pkgs.buildPythonApplication rec {
7 pname = "theharvester";
8 version = "4.3.0";
9
10 src = fetchFromGitHub {
11 owner = "laramies";
12 repo = pname;
13 rev = "refs/tags/${version}";
14 hash = "sha256-9W4xN+ZSNdR5NOnwohNrQVW8JSEKFyKxWTz012uiUm8=";
15 };
16
17 propagatedBuildInputs = with python3.pkgs; [
18 aiodns
19 aiofiles
20 aiohttp
21 aiomultiprocess
22 aiosqlite
23 beautifulsoup4
24 censys
25 certifi
26 dnspython
27 fastapi
28 lxml
29 netaddr
30 orjson
31 plotly
32 pyppeteer
33 python-dateutil
34 pyyaml
35 requests
36 retrying
37 shodan
38 slowapi
39 starlette
40 uvicorn
41 uvloop
42 ];
43
44 nativeCheckInputs = with python3.pkgs; [
45 pytest
46 pytest-asyncio
47 ];
48
49 # We don't run other tests (discovery modules) because they require network access
50 checkPhase = ''
51 runHook preCheck
52 pytest tests/test_myparser.py
53 runHook postCheck
54 '';
55
56 meta = with lib; {
57 description = "Gather E-mails, subdomains and names from different public sources";
58 longDescription = ''
59 theHarvester is a very simple, yet effective tool designed to be used in the early
60 stages of a penetration test. Use it for open source intelligence gathering and
61 helping to determine an entity's external threat landscape on the internet. The tool
62 gathers emails, names, subdomains, IPs, and URLs using multiple public data sources.
63 '';
64 homepage = "https://github.com/laramies/theHarvester";
65 changelog = "https://github.com/laramies/theHarvester/releases/tag/${version}";
66 maintainers = with maintainers; [ c0bw3b treemo ];
67 license = licenses.gpl2Only;
68 };
69}