現在越來越多的網站都啟用了 HTTPS,而啟用 HTTPS 需要首先申請證書,證書簽發需要指定域名,有的是通配符域名,比如 *.xazlsec.com,這類證書可以用于該域名下的所有的子域,還有些是單域名,信安之路使用的就是在阿里云申請的免費單域名證書,一年有效期,每年都可以申請,單域名證書信息中包含的只有單個子域。

查看證書信息中包含的域名也比較簡單,使用瀏覽器打開證書的基本信息即可,如圖:

接下來,我有一些開放了 443 端口的 IP,我想知道這些 IP 上運行的網站是屬于哪些公司,或者說配置了哪些域名證書,改如何做?

今天來分享一個小工具,工具地址:

https://github.com/glebarez/cero

使用 go 語言編寫,安裝也比較簡單,一條命令搞定:

go install github.com/glebarez/cero@latest

接下來指定一個目標 IP 即可獲取該 IP 的 443 端口(不一定只是 HTTPS 的服務,部署證書的其他服務也可以,比如 POP3s )上部署證書的域名信息:

如果我們有大量的目標 IP 需要測試,可以將 IP 保存在一個文件中,然后使用命令:

cat host.txt | cero

獲取所有 IP 指定端口的域名信息:

這種針對 IP 端口提取域名的工作已經有不少平臺完成了全網信息收集,無需我們自己操作,比如 crt.sh:

這是收集目標相關子域名的一種方式,如果人家設置的證書是通配符的,那么對于我們收集子域名來說是一個障礙,因為收集到的大量域名都是 *.xazlsec.com,不太具有參考意義,不過,畢竟通配符證書比較貴,像我們這些小網站,申請點免費證書用用就可以了。

除了這個,censys 也可以搜索證書內容,如圖:

隨著證書的普及,這種網站收集的方式可能會越來越好用。