我正在阅读这篇纽约时报(NYT)关于杰夫贝索斯手机被黑的文章。文章指出:
2018 年 5 月的消息突然出现,其中包含看似无害的视频文件和一小块 14 字节的恶意代码
14 字节中可能包含哪些恶意代码?这似乎没有足够的空间来包含纽约时报文章概述的逻辑。文章称,在收到消息后不久,手机开始发送大量数据。
我正在阅读这篇纽约时报(NYT)关于杰夫贝索斯手机被黑的文章。文章指出:
2018 年 5 月的消息突然出现,其中包含看似无害的视频文件和一小块 14 字节的恶意代码
14 字节中可能包含哪些恶意代码?这似乎没有足够的空间来包含纽约时报文章概述的逻辑。文章称,在收到消息后不久,手机开始发送大量数据。
是的,它可以。它可能只是触发漏洞,它会在内存中加载电影特定区域的数据并执行。
恶意部分可能非常小,有效载荷可以存储在其他地方。提取并执行有效负载后,可以下载其他模块,比加载程序做得更多。
就像大多数恶意软件感染一样:首先执行一个称为“dropper”的小组件,然后下载并执行其他模块,直到下载并执行整个恶意软件。这 14 个字节很可能是一个 dropper。
在这种特殊情况下,这 14 个字节可以将电影的部分内容加载到内存中,将其地址加载到寄存器中,然后跳转到其中。仅检查视频不会显示任何可疑之处,因为代码看起来像视频数据(或元数据),但来自加载程序的 14 个字节会脱颖而出。
这实际上取决于编程语言和代码注入的上下文。
有关可以在非常少的代码空间中完成的操作的示例,请查看Code Golf Stack Exchange 站点。
它绝对适合。例如,这个CTF 挑战解决方案攻击一个执行约 12 字节的二进制文件。发送的有效载荷是:
0: 54 push rsp
1: 5e pop rsi
0000000000000002 <y>:
2: 31 e2 xor edx,esp
4: 0f 05 syscall
6: eb fa jmp 2 <y>
(假设所有寄存器都归零)
对于一个完整的 pwn 来说,这只有 8 个字节,它可以让您执行代码,然后会导致一个远程 shell。
当然,这是非常有针对性的,但它只是一个例子。
正如我假设视频文件中的 14 个字节会触发一些内存漏洞一样,正如 Peter Cordes 所说,这 14 个字节是机器码!
这是一个非常重要的事实,因为在这里回答的许多人都在考虑源代码、字符等等。所有这些都需要大约 8 位/每个字符 1 个字节。所以有 14 个字符,一个人可能做不了这么多。
但是这 14 个字节肯定是二进制的!因此,考虑到 ARM CPU,其中一条指令为 32 位宽,包括参数,IP 地址为 32 位。有足够的空间将该 IP 地址放入内存并执行系统调用。