首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Columbus:一个基于API实现的子域名发现服务工具

Columbus:一个基于API实现的子域名发现服务工具

作者头像
FB客服
发布2023-09-28 12:47:07
发布2023-09-28 12:47:07
25300
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行
关于Columbus

Columbus是一款功能强大的子域名发现与枚举工具,该工具基于API实现其功能,并且还提供了很多其他的高级功能。在该工具的帮助下,广大研究人员可以快速且高效地实现子域名枚举任务。

前端架构

HTML+tailwindcss+DaisyUI

工具使用演示

在下面给出的工具使用演示样例中,Columbus可以在不到一秒钟的时间里返回tesla.com的763个子域名:

服务器端

服务器端使用

代码语言:javascript
代码运行次数:0
运行
复制
Usage of columbus-server:

  -check

     检查更新

  -config string

     配置文件路径

  -version

     打印工具版本信息

代码构建

代码语言:javascript
代码运行次数:0
运行
复制
git clone https://github.com/elmasy-com/columbus
make server-build

(向右滑动,查看更多)

服务器部署

创建一个新的用户:

代码语言:javascript
代码运行次数:0
运行
复制
adduser --system --no-create-home --disabled-login columbus-server
(向右滑动,查看更多)

创建一个新的组:

代码语言:javascript
代码运行次数:0
运行
复制
addgroup --system columbus

向新的组中添加新的用户:

代码语言:javascript
代码运行次数:0
运行
复制
usermod -aG columbus columbus-server

将代码拷贝到/usr/bin/columbus-server。

添加可执行权限:

代码语言:javascript
代码运行次数:0
运行
复制
chmod +x /usr/bin/columbus-server

创建一个目录:

代码语言:javascript
代码运行次数:0
运行
复制
mkdir /etc/columbus

设置权限为0640:

代码语言:javascript
代码运行次数:0
运行
复制
chmod -R 0640 /etc/columbus

设置配置文件的所有者:

代码语言:javascript
代码运行次数:0
运行
复制
chown -R columbus-server:columbus /etc/columbus
(向右滑动,查看更多)

将配置文件拷贝到/etc/columbus/server.conf。

安装服务文件,例如/etc/systemd/system/columbus-server.service:

代码语言:javascript
代码运行次数:0
运行
复制
cp columbus-server.service /etc/systemd/system/
(向右滑动,查看更多)

重载程序:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl daemon-reload

开启Columbus:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl start columbus-server

设置工具自动启动:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl enable columbus-server

扫描器使用

扫描器用于从一个CT日志中解析证书信息,并将其插入到Columbus数据库中。

扫描器构建

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
make scanner-build

由于columbus-scanner.sha使用了密钥签名,因此我们要先下载密钥:

代码语言:javascript
代码运行次数:0
运行
复制
gpg --recv-key 10BC80B36072944B5678AF395D00FD9E9F2A3725
(向右滑动,查看更多)

然后更新配置文件中的对应参数即可。

工具使用

默认配置下,Columbus只会以一个JSON字符串数组返回子域名信息:

代码语言:javascript
代码运行次数:0
运行
复制
curl 'https://columbus.elmasy.com/api/lookup/github.com'
(向右滑动,查看更多)

如果你不想使用JSON数据的话,也可以在发送请求时使用“Accept: text/plain头:

代码语言:javascript
代码运行次数:0
运行
复制


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:https://github.com/elmasy-com/columbus

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-27 19:07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端架构
  • 工具使用演示
  • 服务器端
    • 服务器端使用
    • 代码构建
    • (向右滑动,查看更多)
    • 服务器部署
  • 扫描器使用
    • 扫描器构建
  • 工具使用
  • 许可证协议
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档