自动监控目标子域,助你快速挖洞——Sublert
参与漏洞悬赏已经成为安全人员在闲暇之余的首选“娱乐”活动,每天都有无数公司宣布自己的漏洞悬赏项目,而几乎每个项目都有大量安全人员参加。这就使得黑客不仅要找出漏洞,而且速度必须最快,因为漏洞奖金只会给第一个发现的人。因此,我们必须要改进自己的渗透测试方法,让自己在发现漏洞的道路上永远领先一步。
那么,为何不从改进我们的侦察阶段开始呢?
我建立了一套自定义的侦察系统,并且使用了很长一段时间。它能帮助你自动监视特定目标的子域,并在每次有新发现的时候通知你。
而我使用的工具,就是在NullCon 2019期间OWASP Seasides上出现的工具Sublert。
什么是Sublert?
证书透明(Certificate Transparency)是一种新的互联网标准,使TLS/SSL证书颁发过程公开透明化。目的是让域所有者清楚了解到公共证书颁发机构(CA)颁发给域的TLS/SSL证书。
Sublert是一种使用Python编写的利用了证书透明这一标准的安全和侦察工具,其唯一目的是监控特定目标所部署的新子域极其TLS/SSL证书。该工具会在固定的时间,日期或以一定的间隔(例如每天)运行。新发现的子域会通过通知推送发送到Slack工作区。此外,该工具还可通过DNS解析去确定正在运行的子域。
Sublert既可作为挖漏洞的工具,也可以为安全维护出力,能帮助公司的安全团队及时发现各种新出现的子域。
What’s up?
在早先已有类似的开源工具,如Cert Spotter和Facebook monitoring tool,但这些工具主要是为了监控钓鱼攻击而开发的,每当有证书欺诈或出现不应该出现的域名时都会收到通知。这意味着,如果你正在监控拥有大量资产的目标,那么你每天都会受到无数封垃圾邮件。
如何设置?
要求:
运行Unix的VPS(我使用digitalOcean)
Python 2.x或3.x.
免费Slack工作区。
首先,您须将工具从Github克隆到你的外网服务器:
$ git clone https://github.com/yassineaboukir/sublert.git && cd sublert
接着,按如下方式安装所需的模块:
Python 2环境:
$ sudo pip install -r requirements.txt
如果是Python 3环境:
$ sudo pip3 install -r requirements.txt
下一步是创建一个Slack工作区,以便将新发现子域发送到该工作区。这只需登录到https://slack.com/
并创建一个免费帐户即可。
然后,创建两个频道:一个用于记录子域,另一个用于记录错误日志,如下所示:
接下来,我们需要为每个频道生成Webhook URL
,以便我们可以利用Slack的API。
进入https://api.slack.com/apps
,创建一个新应用。
进入Incoming Webhooks
并创建两个Webhook,将每个Webhook链接到之前的两个频道。
这时,你可以看到以下格式的链接:
https://hooks.slack.com/services/XXXXXXX/BF0XXXXME/XXXXXXXXXXXXX
复制这两个链接到文件config.py中
这时差不多已经准备好了!现在我们来添加目标域以监控新子域。以PayPal为例:
$ python sublert.py -u paypal.com
你可以用这种简单操作添加其他你想要监控的域名。添加完目标后,下一步是配置Cron
,以便定期执行Sublert。
首先,给Sublert.py执行权限:
$ chmod u+x sublert.py
现在,我们需要添加一个新的Cron项目定期执行Sublert:
$ Crontab -e
在Cron文件的末尾添加以下:
0 */12 * * * cd /root/sublert/ && /usr/bin/python /root/sublert/sublert.py -r -l >> /var/log/sublert.log 2>&1
以上的sublert和python的目录记得更改
0 /12 → 代表每12小时运行一次Sublert。
-r → 代表Sublert执行DNS解析。这是可选的。
-l → 代表Sublert把错误日志推送到Slack的频道中。
/var/log/sublert.log 2>&1 → 代表Sublert的输出将保存到
/var/log/sublert.log
。
开始运行
你可通过执行以下命令来确保它已正确配置并顺利运行。此时你应该会收到关于Slack的通知推送:
$ python sublert.py -l -r
Sublert将每12小时执行一次,一旦域名列表出现了一个新的子域名,你就会将收以下Slack通知:
如果Sublert未找到任何新的子域名,你仍会收到通知:
建议您在手机上安装Slack,以便能随时随地获得通知。
你可以随意添加新域名或删除某个域名:
添加yahoo.com。
$ python sublert.py -u yahoo.com
删除yahoo.com。
$ python sublert.py -d yahoo.com
显示当前正在监控的所有域名。
$ python sublert.py -a
指定并发线程数(默认值:20)。
$ python sublert.py -t 30
命令Sublert执行DNS解析。
$ python sublert.py -r
启用基于Slack的错误日志记录。
$ python sublert.py -l
重置Sublert的所有设置。所有的一切都会被清空,一般在出现问题时使用。
$ python sublert.py -m
使用该软件时,请注意别违法。
Sublert的缺点
Sublert主要是利用证书透明,这意味着它只会监视有SSL/TLS证书的子域,无法注意到运行在80端口的子域。当然,你可以使用其他开源工具(Massdns,Aquatone,Sublist3r等)。
未来的开发?
是!该工具现在开源使用,而且我还有很多想法来打磨这个工具,例如:
- 使用关系数据库而不是文本文件进行存储。
- 收集尽可能多的信息,包括:标题,HTTP代码,屏幕截图等。
如果你有任何反馈意见或遇到任何问题,请随时在https://github.com/yassineaboukir/sublert/issues
上提交问题。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@yassineaboukir/automated-monitoring-of-subdomains-for-fun-and-profit-release-of-sublert-634cfc5d7708
最新评论