导语:这篇文章描述了通过SPF构建一个自动发现钓鱼攻击活动的过程。不过请注意,这个版本的某些部分在你所在的区域可能是不合法的,在野外使用需要你自担风险。

Offensive-SPF-small.jpg

TL; DR:这篇文章描述了通过SPF构建一个自动发现钓鱼攻击活动的过程。

免责声明:

这个版本的某些部分在你所在的区域可能不合法。在野外使用需要你自担风险。在实际利用之前你需要评估你的目的。BHIS @Krelkci对你的行为不承担任何责任。

背景:

在我们之前关于配置SPF的博客文章中,我没有详细说明存在和机制的可怕性。SPF专家以外的人都知道,你可以围绕这两种机制的使用构建一个自动化响应系统。喜欢阅读文档吗?请看这里:RFC 4408 http://www.openspf.org/RFC_4408

现有的机制将强制(兼容)接收邮件服务器检查特定域是否存在特定的A DNS记录。虽然这看起来很有趣,但更重要的是在现有机制中使用SPF宏。它实质上允许你将有关原始SMTP服务器的信息从接收SMTP服务器传递到信封的FROM字段中域的域所有者确定的位置。

你有什么新的想法?

我们来看看这个SPF记录:

v=spfc1 include:mail.youdomain.com -exist:{d}.AutoRecon.yourdomain.com -all

接收SMTP服务器会执行以下操作:

· 从FROM字段=域的原始邮件服务器接收。

· 检查mail.yourdomain.com的SPF记录,找到原始服务器就是OK的,否则继续。

· 检查[ORIGINATING.MAIL.SERVER.NAME] .autorecon.yourdomain.com是否存在A DNS记录。

· 拒绝其他一切(-all)。

以下是要点。如果邮件是从mail.yourdomain.com的SPF标头中不存在的服务器传递的,则接收邮件服务器将尝试检查别名记录,以查找动态构建的动态主机名。你现在要做的就是构建一个配置为接受.autorecon.yourdomain.com的DNS查询的DNS服务器。并向自动侦察系统提供所有查询,并告知你的全局DNS提供商autorecon.yourdomain.com由你的自动侦察服务授权响应。让我们开始操作吧。

在AutoRecon服务上

· 绑定已配置为接受AutoSPF.yourdomain.com的查询

· SSMTP配置为发送邮件

获取文件:

cd/opt/
git clone https://github.com/Relkci/AutoSPFRecon
apt-get install bind9
apt-get install logtail
apt-get install python-setuptools
easy_install click
easy_install shodan

设置BIND9域名 -named.conf

nano /etc/bind/named.conf
zone "autorecon.YOURDOMAIN.com" {
type master;
notify no;
file "/etc/bind/AutoRecon.yourdomain.com";
};

设置BIND9域 – 区域文件

nano /etc/bind/autospf.yourdomain.tld
$TTL 3D
@       IN      SOA     autorecon.ns.yourdomain.com. [email protected] (
199802151       ; serial, todays date + todays serial #
21600              ; refresh, seconds
3600              ; retry, seconds
604800              ; expire, seconds
30 )            ; minimum, seconds
;
NS      ns              ; Inet Address of name server
;
localhost       A       127.0.0.1
ns      A       IP-OF-AutoRecon

重启绑定:

Service bind9 restart
Service bind9 status

配置绑定以将DNS的查询记录到/var/log/syslog:

#below command toggles query logging, be sure it is enabled
rdnc querylog
#confirm it is turned on with
tail -n 2 /var/log/syslog

设置域DNS记录

**注意**设置SPF记录如下所示,将告知所有邮件服务器拒绝你的电子邮件**  

你可以使用exist:autospf.yourdomain.tld机制,它不会立即拒绝电子邮件。请务必保留SPF的正确部分,以免拒绝所有电子邮件。以下示例适用于不应发送电子邮件的域。

请参阅我们关于SPF记录的博客文章,为你的组织创建正确的SPF记录。

在你的TLD名称服务器上:

Type: A         Host: autorecon.ns.yourdomain.com Value: IP-OF-AutoRecon
Type: NS         Host: autorecon.yourdomain.com         Value: autorecon.ns.yourdomain.com
Type: TXT        Host: @                                                 Value: “v=spf1 -exist:%{i}.autorecon.yourdomain.com -all”

把它们放在一起:

当邮件服务器收到电子邮件并且原始邮件服务器检查SPF记录并发现它无法在include:字段中或其他邮件记录中找到邮件服务器时,它将一直继续查找,exist:%{i}.autorecon.yourdomain.com

这将指示它用发起电子邮件的服务器的IP替换 %{i} 服务器将查找autorecon.yourdomain.com的NS记录,并发现它是autorecon.yourdomain.com服务。它将查询{IP} .autorecon.yourdomain.com,并且不会收到有效的DNS响应。然而,autorecon.yourdomain.com上的绑定服务器将在/var/log/syslog中记录查询。

AutoReconSPF.sh脚本读取这些查询的syslog,运行一个shodan查询,然后将结果传递到相关的电子邮件地址。

可以将AutoReconSPF.sh脚本配置为使用crontabs每隔几分钟运行一次。

还有什么可以做的:

此PoC脚本用一种易于分区和易于编辑的方式设置框架。你可以添加自己的脚本操作,例如NMAP扫描,IR事件,甚至可以将其链接回Fail2Ban或IPTable黑名单。

Expand.  NMap, Fail2Ban, IPTables, Incident Response. Automate Lights Out.

有人试图通过伪造成来自你域名的电子邮件来欺骗你的员工。由于你的SPF记录无法授权原始邮件服务器,因此你的AutoSPFRecon系统会收到警报并触发电子邮件,Fail2Ban阻止,并且网络钓鱼服务器立即对你的基础架构的可见性不起作用。

运行AutoReconSPF.sh

在此测试中,我发送了一封伪造内容具有AutoReconSPF SPF记录的域的电子邮件。该电子邮件是从Digital Ocean Droplet 206.189.xxx.xxx发送的。接收邮件服务器向autospf.bhis.io发送查询,并创建日志条目。AutoReconSPF.sh将违规邮件服务器的IP标识为shodan,并通过电子邮件将结果发送给我。看起来很棒。

pasted image 0.png

生成的电子邮件已发送:

pasted image 0 (1).png

相关链接:

GitHub: https://github.com/Relkci/AutoSPFRecon

RFC: SPF that includes exist: mechanic http://www.openspf.org/RFC_4408

BHIS SPF for the Masses Blog Post: https://www.blackhillsinfosec.com/how-to-configure-spfv1-explained-for-the-masses/


源链接

Hacking more

...