KreiosC2 - DigiNinja
更新说明
Twitter指挥官模块已失效,因为Twitter关闭了基础认证支持,现仅支持OAuth。如果有人想更新脚本,应该相对容易实现,但除非有充分理由,否则我暂无计划自行更新。
概述
KreiosC2是一个概念验证机器人,使用多种非常规系统作为其命令与控制(C2)通道。虽然显然可用于恶意目的,但也可用于良性场景,例如在家设置机器人监听Twitter动态并执行操作。本文将讨论其潜在的恶意用途,但这些概念也很容易转化为良性应用。
演示视频
常言道一图胜千言,视频则更具表现力。以下是两个展示KreiosC2的视频:第一个由Tom Eston为其Defcon演讲《社交僵尸——你的朋友想要你的大脑》制作,第二个由我为续集《社交僵尸II,你的朋友需要更多大脑》创建。
版本3的新特性
版本3在Shmoocon 2010上发布,作为Tom Eston、Kevin Johnson和我本人演讲《社交僵尸II,你的朋友需要更多大脑》的一部分。该版本增加了通过LinkedIn进行通信的支持,并已在Windows环境下测试。
视频发布后,我将添加链接。
版本2的新特性
在此版本中,我将下载消息的代码与应用程序主体分离,类似于语言文件的自包含方式。这使得我能够添加新的命令通道,而不仅限于原始的Twitter。
现在,您可以通过TinyURL缩短的URL编码消息,以及隐藏在JPEG图像中的文本传递信息。此外,由于系统构建的方式,添加新类型的通道并将其部署到实时系统是一个简单的过程。我将这些新通道类型称为协议,您可以在“工作原理”部分了解更多信息。
自版本1以来的变化
首先是名称变更。该项目的版本1称为TwitterBot。不幸的是,我在使用该名称前未进行充分研究,发布后才意识到已有许多其他项目使用相同名称。KreiosC2这个名字由Tom创建,由希腊泰坦神Kreios和军事用于定义命令与控制的C2组成。
其次,也是更重要的,KreiosC2现在能够动态更新使用的控制语言,并在运行时添加新功能,无需任何重启或手动干预。
背景
我考虑使用Twitter的原因是其庞大的社区规模,使得在日常产生的大量数据中隐藏随机命令变得容易。此外,它拥有出色的API,便于集成。
我的最初想法是创建一个受保护的Twitter账户,只有机器人可以读取。这将限制谁可以看到命令,但Twitter可以轻松封禁该用户。我的下一个想法是将命令发送到随机账户,然后让机器人使用搜索功能查找命令。这将使Twitter更难阻止消息,因为命令可以从任何账户发布到任何其他账户。为此,机器人需要有一种方法在众多推文中识别命令。问题在于,如果机器人能识别命令,Twitter同样可以进行匹配并自动删除这些推文。这是一个更难防御的问题。我的应对计划是使用看似无害的命令,例如“查看此链接…”以下载文件,这将使Twitter难以在不干扰合法用户的情况下阻止,但我不确定基于此创建命令语言的难度。
我将这些想法提议给了Tom Eston(来自Security Justice Podcast),他目前正在研究社交媒体僵尸网络,以及Mubix(众所周知的人物)。Tom建议使用TinyURL混淆命令,或使用哈希标签表示特定内容。您还可以让机器人关注某些账户以标记自己为机器人。如果它们关注特定的主控账户,则很容易被发现,但如果关注通用账户(例如BBC),则可能淹没在大量用户中,除非您知道在哪里查找。Tom将在Notacon上演讲,进一步讨论这一点及其他社交媒体机器人。
Mubix补充了以下想法:
- 使用基于Twitter更新时间的时间代码,机器人通过公共时间线检查当前时间,并根据检查的小时(例如上午7点、下午2点等)在特定分钟(例如晚上7点13分)查找命令。该命令将由上百个虚拟Twitter账户之一发布的密文组成,无论Twitter封禁多少账户,您总是可以创建更多。
- 再次使用密钥。您可以简单地将Unix时间作为帖子的一部分。因此,机器人基于公共流检查Twitter时间,转换为Unix时间,在Twitter上搜索当前Unix时间,并查找密钥的第二部分将是一个简单的密码。一旦找到密钥,例如“1239197528 How do I convert this to normal date time?”,机器人将取每个单词的首字母:HDICTTNDT,查找该用户,然后取其最新帖子并执行其中的命令,例如“ping -t victim.com”。
Tcrweb在他的博客中提出了一些关于数据包结构的有趣想法。我个人会将命令字节扩展到至少两个字节以允许扩展,但除此之外,我喜欢这些想法。
结论
希望这能让您了解使用IRC以外的通道控制机器人或僵尸网络的潜力。版本1和2都存在一个问题:一旦有人逆向工程机器人并解析出命令语法,Twitter很可能能够有效关闭系统。然而,由于版本3现在允许切换通道,这使得关闭网络的任务更加困难。如果逆向工程足够困难,并且隐藏命令的方法要么非常通用,要么数量巨大(例如50种不同的执行命令方式),那么管理员可能需要一段时间来制定并实施修复措施,这可能为恶意行为者提供所需的优势。
我对于发布这个想法犹豫不决,部分是因为我认为这有点疯狂,因为Twitter可以比DNS注册商阻止Confiker用于控制其机器人的域名注册更容易关闭这类系统;部分是因为如果它确实有效,并且有人将其用于恶意目的,那么我可能引发了这一情况,这相当可怕。但在与Mubix和Tom讨论后,我们决定披露比保密更好,因此我将其公开。请提供任何反馈,我很想知道其他人的想法。
子页面
- KreiosC2概述
- 工作原理
- 下载
- 媒体报道
类别
- Wifi
- 网络
- 硬件
- 通用
支持本站
本站上的任何项目均无报酬,因此如果您想支持我的工作,可以通过使用下面的联盟链接来实现,我会获得账户积分或现金返还。通常只有几分钱,但积少成多。
请给我买一杯冰沙
所有内容均由Robin Wood创建,除非另有说明。