columbus

module
v0.0.0-...-510dfb7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2024 License: Apache-2.0

README

Columbus

Columbus Project is an API first subdomain discovery service, blazingly fast subdomain enumeration service with advanced features.

Subdomain Lookup Columbus returned 763 subdomains of tesla.com in less than a second.

Usage

By default Columbus returns only the subdomains in a JSON string array:

curl 'https://columbus.elmasy.com/api/lookup/github.com'

But we think of the bash lovers, so if you don't want to mess with JSON and a newline separated list is your wish, then include the Accept: text/plain header.

DOMAIN="github.com"

curl -s -H "Accept: text/plain" "https://columbus.elmasy.com/api/lookup/$DOMAIN" | \
while read SUB
do
        if [[ "$SUB" == "" ]]
        then
                HOST="$DOMAIN"
        else
                HOST="${SUB}.${DOMAIN}"
        fi
        echo "$HOST"
done

For more, check the website and the API documentation.

Data source

See more statistics on the website.

Server

Usage
Usage of columbus-server:
  -check
    	Check for updates.
  -config string
    	Path to the config file.
  -version
    	Print version informations.
Build
git clone https://github.com/elmasy-com/columbus
make server-build
Install

Create a new user:

adduser --system --no-create-home --disabled-login columbus-server

Create a new group:

addgroup --system columbus

Add the new user to the new group:

usermod -aG columbus columbus-server

Copy the binary to /usr/bin/columbus-server.

Make it executable:

chmod +x /usr/bin/columbus-server

Create a directory:

mkdir /etc/columbus

Set the permission to 0600.

chmod -R 0640 /etc/columbus

Set the owner of the config file:

chown -R columbus-server:columbus /etc/columbus

Copy the config file to /etc/columbus/server.conf and configure.

Install the service file (eg.: /etc/systemd/system/columbus-server.service).

cp columbus-server.service /etc/systemd/system/

Reload systemd:

systemctl daemon-reload

Start columbus:

systemctl start columbus-server

If you want to columbus start automatically:

systemctl enable columbus-server

Scanner

This program is used to parse the certificates from a CT log and insert into the Columbus database.

Build
make scanner-build
Install

The columbus-scanner.sha is signed with this key.

Download the key:

gpg --recv-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
  1. Place the binary somewhere
  2. Update and place the config file somewhere
  3. Update and install columbus-scanner.service somewhere

DNS

A DNS server to collect domains to Columbus Server.

The goal of dns is to make it easy/possible for users to easily contribute to the Columbus Project.

By setting the DNS servers to dns while enumerationg subdomains, hunting bugs, etc you can contribute to the Columbus Project.

Design
                               _________________
  |---> dig exmaple.com A ---->| COLUMBUS-DNS  | -----> Insert -----> Columbus DB
  |                            -----------------
  ^                                   |
  |                                   V
Alice <------- 93.184.216.34 <---------

  • Only domains with valid answer will be sent to the server (NOERROR)
IMPORTANT!

THIS SERVER IS NOT MEANT TO USED AS A DAILY DNS RESOLVER!

Install

The checksum file is signed with key 10BC80B36072944B5678AF395D00FD9E9F2A3725.

gpg --receive-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
Install

Create a new user:

adduser --system --no-create-home --disabled-login columbus-dns

Create a new group (if not exists):

addgroup --system columbus

Add the new user to the new group:

usermod -aG columbus columbus-dns

Copy the binary to /usr/bin/columbus-dns.

Make it executable:

chmod +x /usr/bin/columbus-dns

Create a directory (if not exists):

mkdir /etc/columbus

Set the permission to 0600.

chmod -R 0640 /etc/columbus

Set the owner of the config file:

chown -R columbus-dns:columbus /etc/columbus

Copy the config file to /etc/columbus/dns.conf and configure.

Install the service file (eg.: /etc/systemd/system/columbus-dns.service).

cp columbus-dns.service /etc/systemd/system/

Reload systemd:

systemctl daemon-reload

Start Columbus DNS:

systemctl start columbus-dns

If you want to Columbus DNS start automatically:

systemctl enable columbus-dns

Frontend

HTML + tailwindcss + DaisyUI. The style is inspired by Introduction theme.

VHS

Create gifs with VHS.

Author

System administrator service and Cybersecurity for small and medium-sized businesses in and around Győr.

Directories

Path Synopsis
fault package is used to predefine common errors in across the columbus services.
fault package is used to predefine common errors in across the columbus services.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL