Columbus:一个基于API实现的子域名发现服务工具
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
关于Columbus
Columbus是一款功能强大的子域名发现与枚举工具,该工具基于API实现其功能,并且还提供了很多其他的高级功能。在该工具的帮助下,广大研究人员可以快速且高效地实现子域名枚举任务。
前端架构
HTML+tailwindcss+DaisyUI
工具使用演示
在下面给出的工具使用演示样例中,Columbus可以在不到一秒钟的时间里返回tesla.com的763个子域名:
服务器端
服务器端使用
Usage of columbus-server: -check 检查更新 -config string 配置文件路径 -version 打印工具版本信息
代码构建
git clone https://github.com/elmasy-com/columbus make server-build
服务器部署
创建一个新的用户:
adduser --system --no-create-home --disabled-login columbus-server
创建一个新的组:
addgroup --system columbus
向新的组中添加新的用户:
usermod -aG columbus columbus-server
将代码拷贝到/usr/bin/columbus-server。
添加可执行权限:
chmod +x /usr/bin/columbus-server
创建一个目录:
mkdir /etc/columbus
设置权限为0640:
chmod -R 0640 /etc/columbus
设置配置文件的所有者:
chown -R columbus-server:columbus /etc/columbus
将配置文件拷贝到/etc/columbus/server.conf。
安装服务文件,例如/etc/systemd/system/columbus-server.service:
cp columbus-server.service /etc/systemd/system/
重载程序:
systemctl daemon-reload
开启Columbus:
systemctl start columbus-server
设置工具自动启动:
systemctl enable columbus-server
扫描器使用
扫描器用于从一个CT日志中解析证书信息,并将其插入到Columbus数据库中。
扫描器构建
make scanner-build
由于columbus-scanner.sha使用了密钥签名,因此我们要先下载密钥:
gpg --recv-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
然后更新配置文件中的对应参数即可。
工具使用
默认配置下,Columbus只会以一个JSON字符串数组返回子域名信息:
curl 'https://columbus.elmasy.com/api/lookup/github.com'
如果你不想使用JSON数据的话,也可以在发送请求时使用“Accept: text/plain头:
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
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Columbus:【GitHub传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录