Columbus Project is an API first subdomain discovery service, blazingly fast subdomain enumeration service with advanced features.
Columbus returned 763 subdomains of tesla.com in less than a second.
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.
See more statistics on the website.
Usage of columbus-server:
-check
Check for updates.
-config string
Path to the config file.
-version
Print version informations.
git clone https://github.com/elmasy-com/columbus
make server-build
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
This program is used to parse the certificates from a CT log and insert into the Columbus database.
make scanner-build
The
columbus-scanner.sha
is signed with this key.
Download the key:
gpg --recv-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
- Place the binary somewhere
- Update and place the config file somewhere
- Update and install
columbus-scanner.service
somewhere
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.
_________________
|---> 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
)
THIS SERVER IS NOT MEANT TO USED AS A DAILY DNS RESOLVER!
The checksum file is signed with key 10BC80B36072944B5678AF395D00FD9E9F2A3725
.
gpg --receive-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
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
HTML + tailwindcss + DaisyUI. The style is inspired by Introduction theme.
Create gifs with VHS.