A modular information gathering tool with support for many sources of OSINT.
OpenKeyscore is a relatively simple command line tool that automatically scrapes the internet for publicly available information based on the data you feed it. In the process of doing so, it builds a network of information, using the following key components:
A "node" is an abstract term for a piece of information. Pretty much anything can be a node: A Username, an Email Address, a Location Name, etc. The data that the user initially inputs is converted to nodes on startup. These nodes are then "fed" to so-called "Processors" which query publicly available OSINT sources for more information. If anything is found, the processor returns more nodes, which are then again fed to other processors, and so on.
A "processor" is a class which is capable of consuming pre-determined types of nodes and querying OSINT sources using information from the consumed nodes. The data returned from the external endpoint is then processed (hence the name "Processor") and converted into more nodes which can then be fed to other processors.
In order to get started, you will need to create a KeyScore Data file (.ksd by default). This file is a basic text file, and should have the following format:
<NODE_TYPE>:<PARAM>
<NODE_TYPE>:<PARAM1>:<PARAM2...>
The amount of parameters required depends on the node type. If the :
character is required to be part of the parameter data itself, you can escape it using a backslash: \:
Once you have created the file, you can start OpenKeyscore by using the following command: python3 openkeyscore.py yourfile.ksd
For more detailed options, please refer to the following documentation:
Node Type | Parameter |
---|---|
Username | A username used in any service |
A standard email address | |
Website | A domain name or URL to a website |
Option | Description |
---|---|
-d | --depth |
The maximum amount of "child nodes" counted from the initial set of nodes before the scanner stops. Default: 5 |
--html |
An optional filename of an HTML file which will be generated by PyVis to visualize the scanners findings. |
-l | --log-level |
The minimum log level which should be output. Default: INFO |
This software is intended for educational and security research use. Under no circumstances should the author of this software be held accountable for any damages caused by the use of this software. The software itself exclusively utilizes publicly available information during its operation and therefore does not violate any laws or terms and conditions.