Added Windows support.
How extensively has this been tested?
Hi Tim, it has been properly tested both on Windows and Linux, debugging to make sure everything it's working fine. I've also installed modules from the marketplace, loading and running them.
Moreover, I've integrated Elasticsearch with Recon-ng (recon-es), developing several modules (recon-es-marketplace).
Here you have the technical paper, it's my final project for the Software Engineering degree: TFG
Regards.
Hi Tim, it has been properly tested both on Windows and Linux, debugging to make sure everything it's working fine. I've also installed modules from the marketplace, loading and running them.
Moreover, I've integrated Elasticsearch with Recon-ng (recon-es), developing several modules (recon-es-marketplace).
Here you have the technical paper, it's my final project for the Software Engineering degree: TFG
Regards.
Interesting. So it just replaces SQL with ES for setting and retrieving the default module sources? The rest of the code base looks unchanged.
Basically, yes. An index is created in Elasticsearch for each Recon-ng workspace, where documents containing the collected data are indexed, organised by type of data.
In addition, due to the lack of duplicity control in Elasticsearch as the autogenerated _id is independent of the indexed data, the _id used is instead the hashed dictionary values to avoid data redundancy.
The parsing of paths seems a bit complicated (using regexp). I suggest using os.sep to split paths into components. Example: def _get_category(self, dirpath): parts = dirpath.split(os.sep) return parts[parts.index('modules') + 1] def _get_dispname(self, dirpath, mod_name): parts = dirpath.split(os.sep) return os.sep.join(parts[parts.index('modules') + 1:] + [mod_name]) This should work for both Windows and Linux.
Is this already merged?