Recon-ng: Ett kraftfullt verktyg för informationsinsamling

Kom ihåg att

Såsom med alla verktyg för penetrationstestning och cybersäkerhet är det viktigt att använda Recon-ng på ett etiskt och lagligt sätt. Använd verktyget endast på system och nätverk där du har tillstånd att utföra tester. Missbruk av verktyg som Recon-ng kan leda till allvarliga juridiska konsekvenser.

Inledning

Recon-ng är ett kraftfullt ramverk för informationsinhämtning som riktar sig till penetrationstestare och cybersäkerhetsanalytiker. Det erbjuder en modulbaserad struktur liknande Metasploit, men fokuserar helt på reconnaissance (förspaning). Verktyget automatiserar många av de manuella steg som annars krävs vid OSINT (Open Source Intelligence), såsom domänupplösning, WHOIS-uppslag, insamling av metadata från offentliga källor och mycket mer. Genom att arbeta i workspaces och använda en integrerad databas kan användaren enkelt samla, strukturera och analysera stora mängder underrättelser om ett mål. Det kan underlätta.

┌─[user@parrot]─[~]
└──╼ $recon-ng --version
5.1.2
recon-ng --version

Om du ser en version av Recon-ng t.ex. 5.1.2, så är det redan installerat och du kan starta det med kommandot:

recon-ng
┌─[user@parrot]─[~]
└──╼ $recon-ng
[*] Version check disabled.

    _/_/_/    _/_/_/_/    _/_/_/    _/_/_/    _/      _/            _/      _/    _/_/_/
   _/    _/  _/        _/        _/      _/  _/_/    _/            _/_/    _/  _/       
  _/_/_/    _/_/_/    _/        _/      _/  _/  _/  _/  _/_/_/_/  _/  _/  _/  _/  _/_/_/
 _/    _/  _/        _/        _/      _/  _/    _/_/            _/    _/_/  _/      _/ 
_/    _/  _/_/_/_/    _/_/_/    _/_/_/    _/      _/            _/      _/    _/_/_/    


                                          /\
                                         / \\ /\
    Sponsored by...               /\  /\/  \\V  \/\
                                 / \\/ // \\\\\ \\ \/\
                                // // BLACK HILLS \/ \\
                               www.blackhillsinfosec.com

                  ____   ____   ____   ____ _____ _  ____   ____  ____
                 |____] | ___/ |____| |       |   | |____  |____ |
                 |      |   \_ |    | |____   |   |  ____| |____ |____
                                   www.practisec.com

                      [recon-ng v5.1.2, Tim Tomes (@lanmaster53)]                       

[3] Recon modules
[1] Reporting modules

[recon-ng][default] > 


Men om du behöver installera det manuellt, kan du antingen använda pakethanteraren eller installera det från källkoden.

Installera med pakethanteraren

sudo apt update
sudo apt install recon-ng

Om du använder en annan distribution än Kali Linux, kan du behöva använda pip för att installera det:

pip install recon-ng
git clone https://github.com/lanmaster53/recon-ng.git
cd recon-ng
pip install -r requirements.txt
./recon-ng

Grundläggande administrering av workspaces

Recon-ng är designat för att vara användarvänligt och intuitivt. Här är en snabb översikt över hur du kommer igång därefter visar jag exempel på insamling av data mot exempel domänen `example.com`.
För att administrera workspaces i Recon-ng använder du kommandot `workspaces` följt av olika alternativ. Här är en snabbguide:

Kommandon för workspaces

För att visa alla workspaces

workspaces list
[recon-ng][default] > workspaces list

  +--------------------------------------+
  |   Workspaces   |       Modified      |
  +--------------------------------------+
  | default        | 2025-06-02 11:47:14 |
  | test_workspace | 2025-06-02 12:15:57 |
  +--------------------------------------+

Skapa ett nytt workspace

workspaces create <namn>

Ladda ett workspace / byta till annat workspace som heter "test_workspace"

[recon-ng][default] > workspaces load test_workspace
[recon-ng][test_workspace] >

Ta bort ett workspace

workspaces remove <namn>

Exempel

[recon-ng][default] > workspaces help
Manages workspaces

Usage: workspaces <create|list|load|remove> [...]

[recon-ng][default] > workspaces load test_workspace
[recon-ng][test_workspace] > workspaces remove test_workspace

[recon-ng][default] > workspaces list

  +----------------------------------+
  | Workspaces |       Modified      |
  +----------------------------------+
  | default    | 2025-06-02 11:47:14 |
  +----------------------------------+

[recon-ng][default] >

Alla dessa kommandon körs inifrån Recon-ng:s CLI. Nu när du har en grundläggande förståelse för hur workspaces fungerar, kan vi gå vidare till att samla in data med Recon-ng.

Användning


1. Recon-ngs Arkitektur i Korthet

Recon-ng är uppbyggt likt Metasploit – du arbetar i en interaktiv CLI-miljö där du:
Skapar ett workspace (som får en egen del av databasen)
Lägger in targets (t.ex. domäner)
Kör moduler som både hämtar, analyserar och sparar data direkt till databasen
Kan exportera eller läsa ut information när du är klar.

  1. Skapa Workspace och Lägga till Domän
recon-ng

Skapa ett nytt workspace

workspaces create test_workspace

Nu är du i ett nytt workspace där du kan börja samla in data. Du kan se vilket workspace du är i genom att titta på prompten, som nu bör visa `[recon-ng][test_workspace] >`.
Byt workspace (om du inte redan är i det):

workspaces load test_workspace

Det har varit lite ändringar med kommandon för att lägga till domän / target. I version 5.1.2.För att lägga till en domän i databasen:

db insert domains

När du skriver `db insert domains` kommer du att uppmanas att ange domänen och eventuella anteckningar. Här är ett exempel:

[recon-ng][test_workspace] > db insert domains
domain (TEXT): example.com
notes (TEXT): Exempel anteckning
[*] 1 rows affected.
[recon-ng][test_workspace] >

Varje workspace får sin egna databasdel. Du kan jobba med hur många domäner du vill per workspace – men för tydlighetens skull är det oftast bra att hålla det fokuserat per kund/projekt.

3. Navigera och Inspektera Databasen

show domains
show hosts
show contacts
show vulnerabilities

Då vi ännu inte har kört några moduler, kommer databasen vara tom. Och vi har endast populerat den med en domän.

[recon-ng][test_workspace] > show domains

  +---------------------------------------------------------+
  | rowid |    domain   |       notes        |    module    |
  +---------------------------------------------------------+
  | 1     | example.com | Exempel anteckning | user_defined |
  +---------------------------------------------------------+

[*] 1 rows returned
[recon-ng][test_workspace] > show hosts
[*] No data returned.
[recon-ng][test_workspace] > show contacts
[*] No data returned.
[recon-ng][test_workspace] > show vulnerabilities
[*] No data returned.
[recon-ng][test_workspace] >
db purge

Då man jobbar med en SQL databas när man använder recon-ng, kan man använda SQL-kommandon genom `db query`. Detta är användbart för att göra mer avancerade frågor mot databasen. För att få fram hjälp kan man skriva `db help`. Dock är det inte hjälp för SQL-kommandon, utan för Recon-ng:s egna databasfrågor. Vilket är en wrapper runt SQL. T.ex. `show domains` är en wrapper runt `SELECT * FROM domains;`.

db query SELECT * FROM domains;

Detta kommer att returnera alla rader i tabellen `domains`.Om du vill se alla tabeller i databasen kan du använda:

db query SELECT name FROM sqlite_master WHERE type='table';
[recon-ng][test_workspace] > db query SELECT name FROM sqlite_master WHERE type='table';

  +-----------------+
  |       name      |
  +-----------------+
  | domains         |
  | companies       |
  | netblocks       |
  | locations       |
  | vulnerabilities |
  | ports           |
  | hosts           |
  | contacts        |
  | credentials     |
  | leaks           |
  | pushpins        |
  | profiles        |
  | repositories    |
  | dashboard       |
  +-----------------+

[*] 14 rows returned
[recon-ng][test_workspace] >

Innan vi kan exportera datan till CSV eller annat format, behöver vi samla in mer data. Recon-ng har många moduler som kan användas för att hämta information om domäner, IP-adresser, e-postadresser och mycket mer.

Tills dess att man vant sig vid hur strukturen på kommandona och modulerna kom ihåg att kolla "help".

[recon-ng][test_workspace] > help

Commands (type [help|?] <topic>):
---------------------------------
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

Modules (type [show|use] <module>):

4. Använda en modul

Recon-ng har en inbyggd modulmarknadsplats där du kan söka efter, installera och hantera moduler. Dessa moduler är skript som kan användas för att samla in data från olika källor. För att komma åt marknadsplatsen, skriv:

[recon-ng][default] > marketplace
Interfaces with the module marketplace

Usage: marketplace <info|install|refresh|remove|search> [...]

För att se alla tillgängliga moduler kan du använda kommandot `marketplace search`. Detta kommer att lista alla moduler som finns tillgängliga för installation. Du kan också söka efter specifika moduler med en sökterm.

marketplace search
[recon-ng][test_workspace] > marketplace help
Interfaces with the module marketplace

Usage: marketplace <info|install|refresh|remove|search> [...]

[recon-ng][test_workspace] >

Enligt hjälpinstruktioner så används modulen såhär: `marketplace search`, för att söka efter moduler, `marketplace install <modulnamn>` för att installera en modul, `marketplace refresh` för att uppdatera modulerna och `marketplace remove <modulnamn>` för att ta bort en modul. För att söka efter moduler kan du använda:

marketplace search <sökterm>

Få information och Installera moduler

I detta exempel har jag valt `recon/domains-hosts/netcraft` för att få information om modulen kan man skriva `marketplace info recon/domains-hosts/netcraft`. För att installera modulen används `marketplace install recon/domains-hosts/netcraft`.

[recon-ng][test_workspace] > marketplace info recon/domains-hosts/netcraft

  +-----------------------------------------------------------------------------------------------+
  | path          | recon/domains-hosts/netcraft                                                  |
  | name          | Netcraft Hostname Enumerator                                                  |
  | author        | thrapt ([email protected])                                                     |
  | version       | 1.1                                                                           |
  | last_updated  | 2020-02-05                                                                    |
  | description   | Harvests hosts from Netcraft.com. Updates the 'hosts' table with the results. |
  | required_keys | []                                                                            |
  | dependencies  | []                                                                            |
  | files         | []                                                                            |
  | status        | not installed                                                                 |
  +-----------------------------------------------------------------------------------------------+

För att installera modulen:

marketplace install recon/domains-hosts/netcraft
[recon-ng][test_workspace] > modules help
Interfaces with installed modules

Usage: modules <load|reload|search> [...]


Det man måste göra därefter är att ladda modulen med `modules load recon/domains-hosts/netcraft`. När modulen är laddad kan du använda `options` för att se vilka inställningar som behöver konfigureras innan du kör den. När modulen är laddad, kan du använda `options list` för att se vilka inställningar som behöver konfigureras innan du kör den. Varje modul har sina egna inställningar, så det är viktigt att läsa dokumentationen för varje modul innan du kör den. Denna modul har endast 1 inställning, vilket är SOURCE och är Required.

[recon-ng][test_workspace] > show modules
Shows various framework items

Usage: show <companies|contacts|credentials|domains|hosts|leaks|locations|netblocks|ports|profiles|pushpins|repositories|vulnerabilities>

[recon-ng][test_workspace] > modules load recon/domains-hosts/netcraft
[recon-ng][test_workspace][netcraft] > options list

  Name    Current Value  Required  Description
  ------  -------------  --------  -----------
  SOURCE  default        yes       source of input (see 'info' for details)

[recon-ng][test_workspace][netcraft] > options set SOURCE example.com
SOURCE => example.com
[recon-ng][test_workspace][netcraft] > options list

  Name    Current Value  Required  Description
  ------  -------------  --------  -----------
  SOURCE  example.com    yes       source of input (see 'info' for details)

Kör moduler för att samla in data

När du har konfigurerat modulen med rätt inställningar, kan du köra den med kommandot `run`. Detta kommer att starta insamlingen av data baserat på de inställningar du har gjort.

  1. Kör modul
[recon-ng][test_workspace][netcraft] > options list

  Name    Current Value  Required  Description
  ------  -------------  --------  -----------
  SOURCE  default        yes       source of input (see 'info' for details)

[recon-ng][test_workspace][netcraft] > options set SOURCE example.com
SOURCE => example.com
[recon-ng][test_workspace][netcraft] > run

-----------
EXAMPLE.COM
-----------
[*] URL: http://searchdns.netcraft.com/?restriction=site%2Bends%2Bwith&host=example.com
[*] Country: None
[*] Host: www.example.com
[*] Ip_Address: None
[*] Latitude: None
[*] Longitude: None
[*] Notes: None
[*] Region: None
[*] --------------------------------------------------

-------
SUMMARY
-------
[*] 1 total (1 new) hosts found.
[recon-ng][test_workspace][netcraft] >
[recon-ng][test_workspace] > show hosts
  +----------------+-----------------+-----------------+-----------------+-----------------+
  | rowid          | host            | ip_address      | latitude        | longitude       |
  +----------------+-----------------+-----------------+-----------------+-----------------+
  | 1              | www.example.com | None            | None            | None            |
  +----------------+-----------------+-----------------+-----------------+-----------------+

[*] 1 rows returned

Denna gav tyvärr inte så mycket data för exempel domänen example.com.

Exempel två med mer data

[recon-ng][test_workspace][netcraft] > back
[recon-ng][test_workspace] > marketplace install recon/domains-contacts/whois_pocs
[*] Module installed: recon/domains-contacts/whois_pocs
[*] Reloading modules...
[recon-ng][test_workspace] > show modules
Shows various framework items

Usage: show <companies|contacts|credentials|domains|hosts|leaks|locations|netblocks|ports|profiles|pushpins|repositories|vulnerabilities>

[recon-ng][test_workspace] > modules
load    reload  search
[recon-ng][test_workspace] > modules load recon/domains-contacts/whois_pocs
[recon-ng][test_workspace][whois_pocs] > options list

  Name    Current Value  Required  Description
  ------  -------------  --------  -----------
  SOURCE  default        yes       source of input (see 'info' for details)

[recon-ng][test_workspace][whois_pocs] > options set SOURCE example.com
SOURCE => example.com
[recon-ng][test_workspace][whois_pocs] > run

-----------
EXAMPLE.COM
-----------
[*] URL: http://whois.arin.net/rest/pocs;domain=example.com
[*] URL: http://whois.arin.net/rest/poc/LASTN17-ARIN
[*] Country: Netherlands
[*] Email: [email protected]
[*] First_Name: None
[*] Last_Name: LASTNAME
[*] Middle_Name: None
[*] Notes: None
[*] Phone: None
[*] Region: City, PROVINCE
[*] Title: Whois contact
[*]--------------------------------------------------

[*] URL: http://whois.arin.net/rest/poc/ABCD1-ARIN
[*] Country: United States
[*] Email:
[*] URL: http://whois.arin.net/rest/poc/FML44-ARIN
[*] Country: United States
[*] Email: [email protected]
[*] First_Name: FIRSTNAME
[*] Last_Name: LASTNAME
[*] Middle_Name: None
[*] Notes: None
[*] Phone: None
[*] Region: Chantilly, VA
[*] Title: Whois contact
[*] --------------------------------------------------
// ...
// ...
-------
SUMMARY
-------
[*] 39 total (38 new) contacts found.
[recon-ng][test_workspace][whois_pocs] >
[recon-ng][test_workspace] > show contacts
// ... KLIPPT
// ... KLIPPT
        | United States |       |       | whois_pocs |
  | 32    | TY         |             | MCMICHAEL        | [email protected] | Whois contact | Peoria, IL       | United States |       |       | whois_pocs |
  | 33    | Wendie     |             | Schmidt          | [email protected] | Whois contact | Stratford, ON    | Canada        |       |       | whois_pocs |
  | 34    | Zach       |             | Taylor           | [email protected] | Whois contact | Houston, TX      | United States |       |       | whois_pocs |
  | 35    |            |             | admin            | [email protected]   | Whois contact | San Jose, CA     | United States |       |       | whois_pocs |
  | 36    |            |             | Administrative   | [email protected]   | Whois contact | Red Deer         | Antarctica    |       |       | whois_pocs |
  | 37    |            |             | Technical        | [email protected]   | Whois contact | None             | Antarctica    |       |       | whois_pocs |
  | 38    | FIRSTNAME  |             | LASTNAME         | [email protected]    | Whois contact | Chantilly, VA    | United States |       |       | whois_pocs |
  +----------------------------------------------------------------------------------------------------------------------------------------------------------+

[*] 38 rows returned
[recon-ng][test_workspace][whois_pocs] >

back

Exportera eller hämta datan

För att se datan du har samlat in, kan du använda kommandot `show` följt av tabellnamnet. Till exempel:

show contact

show hosts

Men recon-ng har flera sätt att hantera och exportera data. Du kan antingen använda rapporteringsmoduler för att exportera data till olika format, eller så kan du skriva ut data direkt i terminalen för en snabb översikt.

Exportera Data till CSV

All data du samlar in med Recon-ng sparas automatiskt i dess interna databas. För att få ut denna data till ett användbart format kan du använda dig av rapporteringsmoduler.
Exempel på moduler:

  | reporting/csv                                     | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/html                                    | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/json                                    | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/list                                    | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/proxifier                               | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/pushpin                                 | 1.0     | not installed | 2019-06-24 |   | * |
  | reporting/xlsx                                    | 1.0     | not installed | 2019-06-24 |   |   |
  | reporting/xml                                     | 1.1     | not installed | 2019-06-24 |   |   |
  +--------------------------------------------------------------------------------------------------+

För att exportera en specifik tabell (t.ex. contacts) till CSV:

[recon-ng][test_workspace] > marketplace install reporting/csv
[*] Module installed: reporting/csv
[*] Reloading modules...
[recon-ng][test_workspace] > modules load reporting/csv
[recon-ng][test_workspace][csv] > options list

  Name      Current Value                                               Required  Description
  --------  -------------                                               --------  -----------
  FILENAME  /home/user/.recon-ng/workspaces/test_workspace/results.csv  yes       path and filename for output
  HEADERS   False                                                       yes       include column headers
  TABLE     hosts                                                       yes       source table of data to export

[recon-ng][test_workspace][csv] > set TABLE contacts
[!] Invalid command: set TABLE contacts.
[recon-ng][test_workspace][csv] > set TABLE contacts
[!] Invalid command: set TABLE contacts.
[recon-ng][test_workspace][csv] > show
Shows various framework items

Usage: show <companies|contacts|credentials|domains|hosts|leaks|locations|netblocks|ports|profiles|pushpins|repositories|vulnerabilities>

[recon-ng][test_workspace][csv] > options set TABLE contacts
TABLE => contacts
[recon-ng][test_workspace][csv] > run
[*] 38 records added to '/home/user/.recon-ng/workspaces/test_workspace/results.csv'.
[recon-ng][test_workspace][csv] >

Detta kommer att skapa en fil som heter `results.csv` i din nuvarande arbetsmapp, med alla kontakter som du har samlat in. Du kan sedan öppna denna fil i valfri kalkylprogramvara eller textredigerare för att se datan.

[recon-ng][test_workspace][csv] > dashboard


  +--------------------------------------------+
  |              Activity Summary              |
  +--------------------------------------------+
  |                Module               | Runs |
  +--------------------------------------------+
  | recon/domains-contacts/whois_pocs   | 1    |
  | recon/domains-hosts/bing_domain_web | 3    |
  | recon/domains-hosts/netcraft        | 1    |
  | reporting/csv                       | 1    |
  +--------------------------------------------+


  +----------------------------+
  |      Results Summary       |
  +----------------------------+
  |     Category    | Quantity |
  +----------------------------+
  | Domains         | 1        |
  | Companies       | 0        |
  | Netblocks       | 0        |
  | Locations       | 0        |
  | Vulnerabilities | 0        |
  | Ports           | 0        |
  | Hosts           | 1        |
  | Contacts        | 38       |
  | Credentials     | 0        |
  | Leaks           | 0        |
  | Pushpins        | 0        |
  | Profiles        | 0        |
  | Repositories    | 0        |
  +----------------------------+

[recon-ng][test_workspace][csv] >
exit