Skip to content
Orca - Targeted OSINT Framework
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
orca Improved IP address validation Aug 21, 2019
.gitignore initial commit Aug 9, 2019
LICENSE initial commit Aug 9, 2019 initial commit Aug 9, 2019 initial commit Aug 9, 2019
VERSION initial commit Aug 9, 2019
docker-compose.yml initial commit Aug 9, 2019
requirements.txt initial commit Aug 9, 2019 initial commit Aug 9, 2019

Orca - Targeted OSINT Framework

When performing OSINT reconnaissance against a target, it’s often very difficult to accurately define the scope. There are so many sources of information and so many diverse types of data. It quickly becomes overwhelming. While there are many excellent OSINT tools already available to the discerning OSINTer, their focus is usually on breadth of collection. Our experience is that asset traceability and narrowly-focused discovery help us to discover the best results. To that end, we’ve developed a tool: the “Orca”. This approach focuses on comprehensive asset discovery coupled with narrow scoping to avoid false positives.

The Orca does the following:

  • Domain discovery with Google and SHODAN
  • Sub Domain Enumeration Lookups
  • Service discovery with SHODAN
  • Export to .xlsx


Installation - Recommended

Orca has been tested on Ubuntu 18.04 and Kali 2019, it may work on other platforms, but we have not confirmed this.

Orca is written in Python 3 and requires Pip to install dependencies. If you haven't already, you need to install them:

apt install python3 python3-pip

Orca also requires Docker for the database and CVE search, please follow the instructions below:



To configure the database required for your Orca projects, you can run the following from the root of the project:

sudo docker-compose up -d

If you don't have docker-compose installed, you can install it with:

sudo -H pip3 install docker-compose --upgrade

The orca-recon application can be installed by running from the project root:

sudo -H pip3 install .

Activate Tab Completion:

Optional - but recommended!

Once your Orca installation is set up and working, run the following to activate tab completion.

To enable Bash completion:

echo "$(_ORCA_RECON_COMPLETE=source orca-recon)" > ~/.orca/

echo '. ~/.orca/' >> ~/.bashrc

For zsh users:

echo "$(_ORCA_RECON_COMPLETE=source_zsh orca-recon)" > ~/.orca/

echo '. ~/.orca/' >> ~/.zshrc

Additional Services (Exploit Lookups)

If you wish to use the Orca to search for services which have publicly available exploits. You will also need to install CVE-Search. For instructions on how to do this. See the 'CVE-Search' section below.


You can run the orca using the orca-recon command. Orca uses the click text user interface and provides contextual help from the script itself.

Usage: orca-recon [OPTIONS] COMMAND [ARGS]...

  -h, --help  Show this message and exit.

  add       Add/Import asset data which you would like to enumerate.
  discover  Discover additional asset data for enumeration.
  enum      Enumerate the assets to get additional information.
  explore   Explore discovered data, and manage projects.
  export    Export data to a file.
  init      Initialize the Orca command-line

The first thing a user should do is to setup their Shodan API credentials. Run:

$ orca-recon init <shodan_api_key>

Credentials profiles are stored in the user's home directory in the following location:


This may also prompt the user to download and parse the data required for ipasn. This may take a while, so please go get yourself a beverage of choice!

For a full example investigation performed by the Orca, check out the Example Walkthrough on the Wiki.

Installation - Manual

Install Dependencies

sudo -H pip install -r requirements.txt

Setup Postgres

➜  orca git:(master) ✗ sudo -i -u postgres
postgres@machine:~$ createuser orcauser -P --interactive
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

(env) ➜  orca git:(master) ✗ sudo -u postgres psql
psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))
Type "help" for help.

postgres=# grant all privileges on database orcadata to orcauser;

Update your file to reflect the above configuration.

Install IP4R - IPv4/v6 and IPv4/v6 range index type for PostgreSQL

sudo apt install postgresql-10-ip4r
sudo -u postgres psql -c "CREATE EXTENSION ip4r" orcadata


Install CVE Search via docker: sudo docker run -d -p 5000:5000 --name cve ttimasdf/cve-search:latest then update the database, note that this can take a long time (>6 hours) but the pre-packaged database is out-of-date sudo docker exec -it [CONTAINER] cvedb -u The API is not ready to use until you see:

==================== Starting web app ====================
 * Running on (Press CTRL+C to quit)

in the logs via sudo docker logs cve

Once CVE Search is up-and-running, you can use it to populate your database with the exploits which are available for the CVEs that have been detected: orca-recon enum exploits_db <title>


Locale error

If you get an error from Click similar to:

Cannot set LC_ALL to default locale: No such file or directory

Follow the instructions for generating locales here.


Please see the LICENSE file.

You can’t perform that action at this time.