summary refs log tree commit diff
path: root/pkgs/tools/security/theharvester/default.nix
blob: 4153ddafbf4800805e37c48ce679067319157bcd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{ lib, fetchFromGitHub, python3 }:

python3.pkgs.buildPythonApplication rec {
  pname = "theHarvester";
  version = "3.1";

  src = fetchFromGitHub {
    owner = "laramies";
    repo = pname;
    rev = "V${version}";
    sha256 = "0lxzxfa9wbzim50d2jmd27i57szd0grm1dfayhnym86jn01qpvn3";
  };

  propagatedBuildInputs = with python3.pkgs; [ 
    aiodns beautifulsoup4 dns grequests netaddr
    plotly pyyaml requests retrying shodan texttable
  ];

  checkInputs = [ python3.pkgs.pytest ];

  checkPhase = "runHook preCheck ; pytest tests/test_myparser.py ; runHook postCheck";
  # We don't run other tests (discovery modules) because they require network access

  meta = with lib; {
    description = "Gather E-mails, subdomains and names from different public sources";
    longDescription = ''
      theHarvester is a very simple, yet effective tool designed to be used in the early
      stages of a penetration test. Use it for open source intelligence gathering and
      helping to determine an entity's external threat landscape on the internet. The tool
      gathers emails, names, subdomains, IPs, and URLs using multiple public data sources.
    '';
    homepage = "https://github.com/laramies/theHarvester";
    maintainers = with maintainers; [ c0bw3b treemo ];
    license = licenses.gpl2;
  };
}