{
"info": {
"author": "Erik Dominguez, Steve Coward",
"author_email": "maleus@overflowsecurity.com, steve@sugarstack.io",
"bugtrack_url": null,
"classifiers": [],
"description": "enumerator\r\n==========\r\n\r\nContributors:\r\n\r\n- Erik Dominguez (IRC: Maleus \\| Twitter: @Maleus21) (original concept\r\n and script author, Maleus@overflowsecurity.com) - http://overflowsecurity.com\r\n- Steve Coward (IRC: felux \\| Twitter: @sugarstackio) -\r\n http://sugarstack.io\r\n\r\nenumerator is a tool built to assist in automating the often tedious\r\ntask of enumerating a target or list of targets during a penetration\r\ntest.\r\n\r\nenumerator is built around the Kali Linux distro. To use this on other\r\nLinux distros, please ensure the following tools are installed:\r\n\r\n- nmap\r\n- nikto, dirb (http enumeration)\r\n- hydra (ftp enumeration)\r\n- enum4linux (netbios enumeration)\r\n\r\n**Windows is NOT supported at this time.**\r\n\r\nAvailable Service Modules\r\n-------------------------\r\n\r\n- FTP (hydra ftp login enumeration, nmap ftp NSE scripts)\r\n- HTTP (nikto scan, dirb directory enumeration)\r\n- Netbios (enum4linux scan)\r\n- RPC (showmount output)\r\n- SSH (hydra ssh login enumeration, nmap ssh NSE ssh-hostkey\r\n enumeration)\r\n\r\nChangelog\r\n---------\r\n\r\n**v0.1.4** - Added SSH service module, changed all bruteforce options to\r\nuse 'tiny' credentials file instead of 'micro', reverted nmap TCP scan\r\noptions, minor bug fixes.\r\n\r\n**v0.1.3** - enumerator now takes either a file path or single host\r\nparameter to use.\r\n\r\n**v0.1.2** - Refactored service classification rules out to individual\r\nservice modules and updated class GenericService to validate new service\r\nrules. Created ProcessManager to handle process related tasks.\r\n\r\n**v0.1.1** - Corrected issue with flooding system with processes, now\r\nmoved to use multiprocessing.Pool().\r\n\r\nInstallation\r\n------------\r\n\r\nWhile not required, it is advised to create a virtualenv for enumerator\r\nto avoid conflicts with different versions of required packages. If\r\nyou're unfamiliar with virtualenv, please follow `this\r\nguide `__.\r\n\r\nUse `pip `__ to\r\ninstall the required libraries:\r\n\r\n.. code:: sh\r\n\r\n (venv) $ pip install enumerator\r\n\r\nor alternatively, if you have cloned the enumerator repository:\r\n\r\n.. code:: sh\r\n\r\n (venv) $ python setup.py install\r\n\r\nUsage\r\n-----\r\n\r\nTo run, enumerator takes one of two parameters; either a file path to a\r\ntext file with a list of IP addresses, one per line.\r\n\r\n- ``-f``, ``--file`` - path to a text file with a list of IP addresses,\r\n one per line.\r\n- ``-s``, ``--single`` - a single IP address.\r\n\r\n.. code:: sh\r\n\r\n (venv) $ enumerator -f /root/Desktop/hosts.txt\r\n\r\n.. code:: sh\r\n\r\n (venv) $ enumerator -s 10.1.1.215\r\n\r\nenumerator will then asynchronously begin scanning using nmap. Once nmap\r\nfinishes, the nmap results are parsed and passed to a system which,\r\nbased upon a simple set of rules, delegates further service-level\r\nenumeration to service-specific modules found in ``lib/``. Each service\r\nmodule defines specific enumeration applications to be run, and will run\r\neach process against the target, writing any results to file for review.\r\n\r\nCurrently, enumerator output is very minimal, so it's safe to say that\r\nwhen the enumerator script finishes, all hosts have been thoroughly\r\nscanned. Future versions of enumerator will have better in-time\r\nreporting of enumeration progress. Results are saved in ``results/``,\r\nand each host will have their own folder, within which all enumeration\r\nprocess output is saved for review once enumerator completes.\r\n\r\nExtending enumerator\r\n--------------------\r\n\r\nenumerator is designed to be (relatively) easily extended for additional\r\nservice enumeration! Follow these steps to add your own additional\r\nservice enumeration:\r\n\r\nCreating a NEW service module:\r\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n\r\n- Create folder in ``lib/`` for your service module and related files.\r\n- Create service module file and \\_\\_init\\_\\_.py inside the folder\r\n created above.\r\n- The service module should be identical in syntax to existing service\r\n modules.\r\n- ``SERVICE_DEFINITION`` is a special set of key:value rules to\r\n classify a service. Details below.\r\n- ``PROCESSES`` should contain the literal command(s) to be run. Follow\r\n the named parameter syntax for any variable strings.\r\n- Update the ``params`` dictionary within the ``scan()`` method to\r\n match parameterized string vars set in ``PROCESSES``.\r\n- In ``lib/delegator.py``, import your new module along with the\r\n existing module imports.\r\n- In ``lib/delegator.py``, instantiate your service module and add the\r\n object to the ``service_modules`` list.\r\n\r\nIn order to test a newly created service module, it is much easier to\r\ntest by invoking the module directly as opposed to running enumerator.\r\nMake sure that your new service module follows the same syntax as\r\nexisting module scripts at the very bottom of the script. Update those\r\ncalls to match the syntax required for your new service module. To run,\r\nuse the following syntax from the root directory of enumerator,\r\nreplacing names and input parameters as needed:\r\n\r\n.. code:: sh\r\n\r\n (venv) $ python -m enumerator.lib..