黑客陷阱。使用Canarytokens尽早发现黑客入侵

蜜币(Honey Tokens)(英文-“ honey sign / signs / identifiers”)是Honeypot想法的变体之一,它是入侵者用来检测骇客事实或识别其来源的诱饵。当攻击者已经进入系统时,他可能会执行普通用户不寻常的操作。这可以用作检测黑客攻击的方法。在本文中,我们将研究使您自己的触发器在早期阶段检测黑客行为有多么容易。这样的陷阱对于担心数据私密性的系统管理员甚至普通用户都是有用的。


在发明气体分析仪之前,矿工们带着金丝雀去了矿井。由于身材矮小和新陈代谢迅速,鸟类对空气中的有害气体做出了更早的反应,并警告矿工。

为什么需要这个?



进入新系统的黑客开始四处张望,因为一个小偷侵入了公寓,开始打开所有盒子寻找珠宝。攻击者无法预先知道哪些特定数据有价值,但是他很有可能会检查所有可能的选项。因此,重要的是,陷阱应看起来像真实数据,并尽可能吸引攻击者。所有者越早注意到陷阱被触发,他越早意识到自己被黑客入侵并且能够做出响应。

金丝雀令牌服务


canarytokens.org是一项在线服务,可方便地创建您自己的黑客标记(hanitokens)。它支持多个触发器选项,并允许您生成带有附件邮件的现成触发器,如果​​触发器起作用,将在其中发送通知。

该服务是完全免费的,无需注册即可立即生成触发器。对于那些喜欢在其基础架构上保密的人,还有一个自托管版本。接下来,我们将研究每个触发器的工作方式,最后,我们将在Docker容器中部署我们自己的canarytokens服务器。

打开.doc和pdf文件时触发



如果程序打开了文档以进行查看,它将起作用。我经常使用这个技巧。在每台计算机和闪存驱动器上,我都有一些名称很有吸引力的文档,例如Passwords.pdf或Bitcoins.doc。我喜欢看有好奇心的会计师如何检查转移到他们的闪存驱动器上的所有文件。
 
我认为此触发器对于从信息安全专业人员到初学者的所有类别的用户都是最有效和有用的。几乎没有人知道PDF查看器可以将打开文件的事实传达给文档所有者。每个人都遇到这个。
 
有几种方法可以捕获打开文档的事实。Canarytokens使用嵌入在文档中的文档特定的URL来验证已撤销的SSL证书(证书吊销列表)。结果,程序转到该地址,触发器触发。

通过DNS解析触发



这是一个非常有趣的触发因素,其好处并不立即显而易见。如果有人要求生成的子域的IP地址,则该地址将起作用,该子域是专门生成的,因此不会被偶然猜测或扭曲。因此,排除了意外操作。此触发器使用了以下描述的许多技术,包括检测打开文件夹的事实以及作为MS SQL数据库中的触发器。实际上,有很多使用此触发器的选项。

网址触发



在这种情况下,通过引用执行GET,POST或HEAD请求就足够了。这将触发触发器。除了通常使用外,它还可以在脚本中用于检查跟随链接以显示内容预览的解析器。例如,即时通讯程序也是如此:只需在您从即时通讯程序服务器中单击的输入字段中编写一个链接。

图片


跟踪在线广告的每个人都知道经典的1x1像素图像。如果已上传图片文件,则触发器将起作用。这样的像素可以插入任何html页面或字母中。如果必要的条件有效,可以从页面上的JS脚本调用它。您也可以用自己的图像替换标准像素。

电子邮件触发



如果有任何信件到达生成的邮箱,则触发器将起作用。使用电子邮件地址,联系人列表等来监视数据库的泄漏很方便,

例如,您可以将此地址添加到联系人列表中,并找出何时手机上的笔记本会被某些请求访问联系人列表的应用程序合并。所有员工也可以在计算机,电话,电子邮件客户端的笔记本上添加不同的触发地址,并跟踪联系人的来源。

专门生成了不可预测的电子邮件地址,因此,排除了选择和意外触发的可能性。

Windows文件夹打开触发器



当然,很多人都看到每个Windows文件夹中都有一个隐藏的desktop.ini文件。原来他不是那么简单。在其中,您可以使用UNC路径(这些路径用于网络驱动器并以\\开头)在远程服务器上指定图标的地址,而Windows将在该图标的链接中指定的域上执行DNS解析并激活触发器。可以将desktop.ini文件与其他文件一起打包到归档文件中,如果解压缩了归档文件,它将可以工作。

网站克隆触发器


网页的简单脚本,如果未从您的域中打开该页面,则可以使用。可能对检测网络钓鱼有用。

if (document.domain != "mydomain.com") {
    var l = location.href;
    var r = document.referrer;
    var m = new Image();
    m.src = "http://canarytokens.com/"+
            "blablabla.jpg?l="+
            encodeURI(l) + "&r=" + encodeURI(r);
}

触发以运行EXE文件或DLL



允许将触发器与现有的可执行.exe文件或库粘合在一起。它不会被防病毒软件检测到。应该牢记的是,这种粘合会破坏某些程序,因此最好使用简单的方法。实际上,这是一种众所周知的传播木马和病毒的方法,仅在我们这种情况下,隐藏的功能才完全无害。但是,应该记住,可执行文件可能会给攻击者带来更大的警觉性,并且也无法在其操作系统上运行。

触发MS SQL


MS SQL允许您添加执行INSERT,SELECT,DELETE等的触发器。要触发触发器,请使用与desktop.ini文件相同的方法,即通过UNC路径解析DNS名称。
MS SQL的触发示例
-
创建将对ping canarytoken进行ping的存储过程CREATE proc ping_canarytoken
AS
BEGIN
声明用户名 varchar(最大值), base64 varchar(max),@ tokendomain varchar(128),@ unc varchar(128), 尺寸 整型 做完了 整型 随机 varchar(3);

--setup the variables
set @tokendomain = 'qo2dd6tftntl1pej9j68v31k6.canarytokens.com';
set size = 128;
set done = 0;
set random = cast(round(rand()*100,0) as varchar(2));
set random = concat(random, '.');
set username = SUSER_SNAME();

--loop runs until the UNC path is 128 chars or less
while done <= 0
begin
--convert username into base64
select base64 = (SELECT
CAST(N'' AS XML).value(
'xs:base64Binary(xs:hexBinary(sql:column(«bin»)))'
, 'VARCHAR(MAX)'
) Base64Encoding
FROM (
SELECT CAST(username AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp);

--replace base64 padding as dns will choke on =
select base64 = replace(base64,'=','-')

--construct the UNC path
select @unc = concat('\\',@base64,'.',@random,@tokendomain,'\a')

— if too big, trim the username and try again
if len(@unc) <= size
set done = 1
else
--trim from the front, to keep the username and lose domain details
select username = substring(username, 2, len(username)-1)
end
exec master.dbo.xp_fileexist @unc;
END

--add a trigger if data is altered
CREATE TRIGGER TRIGGER1
ON TABLE1
AFTER INSERT
AS
BEGIN
exec ping_canarytoken
end

Amazon Web Services登录触发器


亚马逊服务API密钥应诱使攻击者查看其中的内容。如果此API密钥用于登录,则会触发触发器。当然,在这种情况下,那里没有数据。

其他触发因素


canarytokens.org服务还支持其他触发器,例如SVN钩子,Web重定向,读取QR码,Slack API密钥等。它们都使用类似的原理,并且,如果您愿意,您可以独立创建自己的触发器,在您的武器库中具有DNS名称,带有图片的链接,邮件地址和流行服务的API密钥。除电子邮件通知外,如果触发触发器,则Canarytokens可以拉动Web钩子。操作机制在文档中进行了描述。

Canarytokens本机服务器


经验丰富的破解者,在源代码中看到canarytokens.org地址后,便会立即猜测所有内容。因此,要在公司中使用,最好部署自己的canarytokens实例,以便所有触发地址都到达公司的内部域,并且与真实的内部服务没有区别。

开发人员提供了一个现成的Docker映像对于任何映像,安装过程都是非常典型的,因此我们不会涉及该主题。让我们仅关注非显而易见的问题。在安装之前,您将必须编辑文件frontend.envswitchboard.env

# ()       
#     IP-    Docker.        SSL-.
CANARY_DOMAINS=example1.com,example2.com

#            PDF-
#    NS-          .
#   example3.com     example1.com  example2.com
CANARY_NXDOMAINS=example3.com

要发送邮件,我建议使用Mailgun服务,因为Sendgrid不稳定。

结论


这样的陷阱确实有效。就我而言,带有PDF文件的触发器特别有用。该服务对普通用户和有经验的测试者都将有用。即使是知道Hanipots和Hanitokens的存在的老练攻击者,也无法抵制至少清醒文档中找到的子域的诱惑。如果您谨慎而明智地使用陷阱,则可以在早期发现饼干。

这些技术可以在服务器,台式计算机,文件存储甚至电话上使用。

如果您想在自己的Docker实例中部署canarytoken,请在市场上的一键式安装Docker的虚拟机此外,我们使用DONTPANIC促销代码为所有服务器提供15%的折扣


All Articles