自动监控目标子域,助你快速挖洞——Sublert

iso60001  1247天前

22.png

参与漏洞悬赏已经成为安全人员在闲暇之余的首选“娱乐”活动,每天都有无数公司宣布自己的漏洞悬赏项目,而几乎每个项目都有大量安全人员参加。这就使得黑客不仅要找出漏洞,而且速度必须最快,因为漏洞奖金只会给第一个发现的人。因此,我们必须要改进自己的渗透测试方法,让自己在发现漏洞的道路上永远领先一步。

那么,为何不从改进我们的侦察阶段开始呢?

我建立了一套自定义的侦察系统,并且使用了很长一段时间。它能帮助你自动监视特定目标的子域,并在每次有新发现的时候通知你。

而我使用的工具,就是在NullCon 2019期间OWASP Seasides上出现的工具Sublert。

什么是Sublert?

证书透明(Certificate Transparency)是一种新的互联网标准,使TLS/SSL证书颁发过程公开透明化。目的是让域所有者清楚了解到公共证书颁发机构(CA)颁发给域的TLS/SSL证书。

Sublert是一种使用Python编写的利用了证书透明这一标准的安全和侦察工具,其唯一目的是监控特定目标所部署的新子域极其TLS/SSL证书。该工具会在固定的时间,日期或以一定的间隔(例如每天)运行。新发现的子域会通过通知推送发送到Slack工作区。此外,该工具还可通过DNS解析去确定正在运行的子域。

Sublert既可作为挖漏洞的工具,也可以为安全维护出力,能帮助公司的安全团队及时发现各种新出现的子域。

What’s up?

在早先已有类似的开源工具,如Cert SpotterFacebook 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/并创建一个免费帐户即可。

然后,创建两个频道:一个用于记录子域,另一个用于记录错误日志,如下所示:

33.png

接下来,我们需要为每个频道生成Webhook URL,以便我们可以利用Slack的API。

进入https://api.slack.com/apps,创建一个新应用。

进入Incoming Webhooks并创建两个Webhook,将每个Webhook链接到之前的两个频道。

44.png55.png

这时,你可以看到以下格式的链接:

https://hooks.slack.com/services/XXXXXXX/BF0XXXXME/XXXXXXXXXXXXX

复制这两个链接到文件config.py中

66.png

这时差不多已经准备好了!现在我们来添加目标域以监控新子域。以PayPal为例:

$ python sublert.py -u paypal.com

77.png

你可以用这种简单操作添加其他你想要监控的域名。添加完目标后,下一步是配置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通知:

88.png

如果Sublert未找到任何新的子域名,你仍会收到通知:

99.png

建议您在手机上安装Slack,以便能随时随地获得通知。

100.png

你可以随意添加新域名或删除某个域名:

添加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

最新评论

昵称
邮箱
提交评论