Recon-ng
What is Recon-ng?
Recon-ng is a reconnaissance / OSINT tool with an interface similar to Metasploit. Running recon-ng from the command line speeds up the recon process as it automates gathering information from open sources.
Recon-ng has a variety of options to configure, perform recon, and output results to different report types.

The interactive console provides a number of helpful features such as command completion and contextual help.
Recon-ng Installation
Installing Recon-ng is very simple and there are a few common ways. Below are a few examples;
Kali:
At the time of this article version 5.1.2 comes pre-installed with Kali Linux. Having said that, its good to run apt-get update && apt-get install recon-ng to ensure latest dependencies installed.
Ubuntu:
Requires git and pip installed.
test@ubuntu:~/$ git clone https://github.com/lanmaster53/recon-ng.git
test@ubuntu:~/$ cd recon-ng
test@ubuntu:~/recon-ng/$ pip install \-r REQUIREMENTS
Next to run recon-ng;
test@ubuntu:~/recon-ng/$ ./recon-ng
The Recon-NG console is now loaded.
_/_/_/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/
_/_/_/ _/_/_/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/_/ _/ _/
_/ _/ _/_/_/_/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/_/_/
/\
/ \\ /\
Sponsored by... /\ /\/ \\V \/\
/ \\/ // \\\\\ \\ \/\
// // BLACK HILLS \/ \\
www.blackhillsinfosec.com
\___\_ \___\_ \___\_ \___\_ ____\_ _ \___\_ \___\_ \___\_
||
|\___\_]|\___/|\___\_|||||\___\_|\___\_|
| | _ | | |\___\_ | | \___\_| |\___\_ |\___\_
www.practisec.com
[recon-ng v5.1.2, Tim Tomes (@lanmaster53)]
[*] No modules enabled/installed.
[recon-ng][default] >
Using recon-ng
From the console it is easy to get help and get started with your recon.
[recon-ng][default] > help
Commands (type [help|?] ):
---
back Exits the current context
dashboard Displays a summary of activity
db Interfaces with the workspace's database
exit Exits the framework
help Displays this menu
index Creates a module index (dev only)
keys Manages third party resource credentials
marketplace Interfaces with the module marketplace
modules Interfaces with installed modules
options Manages the current context options
pdb Starts a Python Debugger session (dev only)
script Records and executes command scripts
shell Executes shell commands
show Shows various framework items
snapshots Manages workspace snapshots
spool Spools output to a file
workspaces Manages workspaces
Recon-ng begins with an empty framework. No modules enabled or installed.
[*] No modules enabled/installed.
How to use Recon-ng:
Create a Workspace
There is a lot of options when using this OSINT tool. Maintaining collected information and notes organised is a necessary part of any OSINT investigation. Creating a workspaces keeps things orderly and easy to find. When using Recon-ng workspaces, all data located and collected is saved within a database in that workspace.
[recon-ng][default] > workspaces create example_name
[recon-ng][default] > workspaces create example_name
[recon-ng][example_name] >
The command recon-ng \-w example_name opens or returns directly to that workspace.
test@ubuntu:~/$ recon-ng \-w example_name
[recon-ng][example_name] >
Recon-ng Marketplace and Modules
Here again the help comes in handy marketplace help shows commands for removing modules, how to find more info, search, refresh and install.
[recon-ng][default] > marketplace help
Interfaces with the module marketplace
Usage: marketplace info|install|refresh|remove|search [...]
Typing marketplace search displays a list of all the modules. From which you can start following the white rabbit exploring and getting deeper into recon and open source intelligence.
Recon-ng modules
Modules are grouped together under various categories and can be found searching on marketplace
- discovery\- exploitation\- import\- recon\- reporting
Each of the above have sub categories as shown in the table below. Use marketplace search for a full table providing information on version, status (installed or not-installed), date updated, dependencies or require keys.
Recon-ng example
As an example on how to use Recon-ng, hackertarget has a module to gather subdomains recon/domains-hosts/hackertarget. This module uses the Hackertarget API and hostname search.
Install module
To install this module use the following:
[recon-ng][default] > marketplace install hackertarget
[*] Module installed: recon/domains-hosts/hackertarget
[*] Reloading modules...
[recon-ng][default] >
Load module
[recon-ng][default] > modules load hackertarget
[recon-ng][default][hackertarget] >
Module Help
The help command from within a loaded module has different options to the global 'help'.
When you are ready to explore more modules use 'back'.
[recon-ng][default][hackertarget] > help
Commands (type [help|?] ):
---
back Exits the current context
dashboard Displays a summary of activity
db Interfaces with the workspace's database
exit Exits the framework
goptions Manages the global context options
help Displays this menu
info Shows details about the loaded module
input Shows inputs based on the source option
keys Manages third party resource credentials
modules Interfaces with installed modules
options Manages the current context options
pdb Starts a Python Debugger session (dev only)
reload Reloads the loaded module
run Runs the loaded module
script Records and executes command scripts
shell Executes shell commands
show Shows various framework items
spool Spools output to a file
[recon-ng][default][hackertarget] >
Set source
Using show options, brings a table showing the source current value set at default.
[recon-ng][default][hackertarget] > show options
Name Current Value Required Description
------ ------------- -------- -----------
SOURCE default yes source of input (see 'show info' for details)
Now, set the source to the name of the domain investigating. This example uses tesla.com as they have a published big bounty.
Use command options set SOURCE tesla.com
[recon-ng][default][hackertarget] > options set SOURCE tesla.com
SOURCE => tesla.com
Use command info. This shows current value has changed to tesla.com
[recon-ng][default][hackertarget] > info
Options:
Name Current Value Required Description
------ ------------- -------- -----------
SOURCE tesla.com yes source of input (see 'info' for details)
Source Options:
default SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL
string string representing a single input
path path to a file containing a list of inputs
query sql database query returning one column of inputs
Use input to see
[recon-ng][default][hackertarget] > input
+---------------+
||
|Module Inputs|
+---------------+
||
|tesla.com|
+---------------+
Run the module
Type run to execute the module.