Use RDAP and WHOIS to find ASNs, Networks, and CIDRs about Organisations.
Project description
orgia
Use RDAP and WHOIS to find ASNs, Networks, and CIDRs about Organisations.
Useful for conducting Recon on a big Organisation.
For example, after running orgia the OG way on "Hilton", I got 96436
v4 IPs.
Installation
pipx
Global installation:
pipx install git+https://github.com/sttlr/orgia
orgia -h
Or run without installing:
pipx run --spec git+https://github.com/sttlr/orgia orgia -h
Docker
git clone https://github.com/sttlr/orgia
cd orgia
docker build -t orgia .
docker run --rm orgia -h
Usage
usage: orgia [-h] [--org ORG_NAME] [--version] [--silent] [--debug] [-c PATH] [--sources SOURCE]
[--orgs-input-file PATH] [--asns-input-file PATH] [--networks-input-file PATH]
[--max-enrich] [-o PATH] [--adjacent]
[--orgs | --asns | --networks | --cidrs | --export-all PATH] [--jsonl] [--ip4-only]
Use RDAP and WHOIS to find ASNs, Networks, and CIDRs about Organisations.
options:
-h, --help show this help message and exit
--org ORG_NAME organization name (ex. "Hilton")
--version show program's version number and exit
--silent display results only (useful for piping to jq)
--debug print debug info
-c PATH, --config PATH
path to .yaml config file
--sources SOURCE comma separated, possible values: all (default), arin, ripe, apnic,
afrinic, lacnic
--orgs-input-file PATH
path to input file with Organisation handles
--asns-input-file PATH
path to input file with ASN handles
--networks-input-file PATH
path to input file with Network handles
--max-enrich use level 2 when trying to bruteforce entity name
-o PATH, --output PATH
path to output file (default stdout)
--adjacent parse adjacent (dirty): ASNs from Orgs and Orgs from Networks
--orgs show only Organisation handles in output
--asns show only ASNs in output
--networks show only Network handles in output
--cidrs show only CIDRs in output
--export-all PATH folder to export everything
--jsonl show output in jsonl formal
--ip4-only show only IPv4 networks in output
by sttlr
Quick
Get CIDRs for specified Orgname:
orgia --org ORGNAME --cidrs
Enriched
Try even more enriched Orgnames when searching.
orgia --org ORGNAME --max-enrich --cidrs
Resolve only
If you have input files with handles, pass them via --asns-input-file
, --orgs-input-file
, --networks-input-file
and orgia will resolve them for you:
orgia --asns-input-file ORGNAME_asn_handles.txt \
--orgs-input-file ORGNAME_org_handles_.txt \
--networks-input-file ORGNAME_networks_handles.txt
You can combine it with any of the output options: --cidrs
, --orgs
, --asns
, --networks
, --export-all
Specific
Select source
Choose source (arin, ripe, apnic, afrinic, lacnic) - default "all":
orgia --org ORGNAME --sources ripe,arin
IPv4 only
Don't print IPv6 Networks/CIDRs in the output:
orgia --org ORGNAME --ip4-only --cidrs
Pipe to jq
By default, orgia prints handles only (for --orgs
, --asns
, --networks
).
You can pass --jsonl
to use JSON as the output format. When piping to jq
also use --silent
:
orgia --org ORGNAME --asns --silent --jsonl | jq
Use config
Whitelist or blacklist handles, names, emails in output.
When checking, input is lowercased and in
is used for comparison (checks if a config string in
a test string).
You can create a config file and pass it via --config
option:
orgia --org ORGNAME --cidrs --config PATH_TO_CONFIG.yaml
Empty config looks like this:
orgs:
whitelist-handles: []
blacklist-handles: []
whitelist-names: []
blacklist-names: []
whitelist-emails: []
blacklist-emails: []
asns:
whitelist-handles: []
blacklist-handles: []
whitelist-names: []
blacklist-names: []
whitelist-emails: []
blacklist-emails: []
networks:
whitelist-handles: []
blacklist-handles: []
whitelist-names: []
blacklist-names: []
whitelist-emails: []
blacklist-emails: []
OG
Comprehensive.
Create handle input files via org_info - parse directly from RIPE, APNIC, AfriNIC WHOIS databases:
./bin/query_asn ORGNAME > ORGNAME_asns_from_org_info.txt
./bin/query_org ORGNAME > ORGNAME_orgs_from_org_info.txt
./bin/query_inetnum ORGNAME > ORGNAME_networks_from_org_info.txt
Then run the OG:
orgia --org ORGNAME \
--sources all \
--max-enrich \
--asns-input-file ORGNAME_asns_from_org_info.txt \
--orgs-input-file ORGNAME_orgs_from_org_info.txt \
--networks-input-file ORGNAME_networks_from_org_info.txt \
--export-all orgia_ORGNAME_export \
--config orgia_ORGNAME_config.yaml
Folder with results (orgia_ORGNAME_export
) will contain:
cidrs.txt
- list of all CIDRsasns.jsonl
- ASN info in JSONL formatorgs.jsonl
- Organisation info in JSONL formatnetworks.jsonl
- Network info in JSONL format
Adjacent mode (dirty)
You can use --adjacent
option, to also extract ASNs from Orgs and Orgs from Networks.
NOTE: It's dirty, and will result in lots of trash results.
API
You can import orgia as a package to use it in your scripts:
from orgia.nics import RIPE, ARIN, LACNIC, APNIC, AFRINIC
Or low-level:
from orgia.nics import RDAP, Engine
NOTE: orgia isn't designed to be used this way.
TODO
Pull requests are welcome ;)
- Implement Async via
httpx.AsyncClient()
- Improve upon developer API - get rid of
args
argument when creating a class - Add more options in a config file
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file orgia-0.1.tar.gz
.
File metadata
- Download URL: orgia-0.1.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40f8211ea99c4422eea931bfdf24217f2dcc7cc5fc83e7c9902312da7905d550 |
|
MD5 | e9f83c3e520e3a75438ee2c614f92a81 |
|
BLAKE2b-256 | 4e273450d3c6229939e7c76f906019d2d1f1e70b458743eaa81029a0dd928b57 |
File details
Details for the file orgia-0.1-py3-none-any.whl
.
File metadata
- Download URL: orgia-0.1-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 145dee3fabc12cae1648db9ca077cf4d18c2089be56beb4bc7f20ca84296dcd8 |
|
MD5 | 32bce7eff0ee1544cc827fabbc48de7e |
|
BLAKE2b-256 | 20c664541058a25dead7c323638a157d9248bb21201962a8e121674c0324a693 |