在 Linux 中创建 Zip 炸弹

zip 炸弹,也称为解压炸弹或死亡 zip 是一种恶意存档文件,旨在使读取它的程序或系统崩溃或使其变得无用。 它是互联网上最古老的“恶意文件”之一。 在本模块中,我们将学习在 Linux 中创建 zip 炸弹!

什么是拉链炸弹?

Zip 炸弹是恶意压缩的存档文件,通常用于禁用防病毒软件并为其他恶意软件和特洛伊木马让路。

Zip Bombs 使读取它的程序或系统变得毫无用处。

Zip 炸弹是包含大量数据的小文件。 Zip 炸弹本身是一个非常小的文件,以避免被怀疑,但解压后,其内容超出了系统的处理能力。 这会导致系统内存不足并在此过程中崩溃!

各种压缩程序

Linux 中流行的压缩程序包括:

  • 压缩包
  • 柏油
  • xz
  • 7zip
  • bzip2

这些程序使用不同的算法来压缩文件。 因此,我们需要找到其中最有效的一个!

比较不同的压缩方法

在开始之前,让我们创建一个包含相同字符的 1GB 文件:

$ dd if=/dev/zero of=data.null bs=1M count=1024 

这应该给我们一个只有空字符的 1GB 文件:

$ ls -lah data.null -rw-rw-r-- 1 mint mint 1.0G Apr 18 12:24 data.null 

现在我们需要使用上述所有工具压缩相同的文件,看看哪一个是最好的:

$ gzip -c data.null > data.null.gz $ tar -cf data.null.tar data.null $ xz -zk data.null $ 7za a -t7z data.null.7z data.null $ bzip2 -zk data.null 

如果我们查看生成的压缩文件的大小,您会发现以下 ls 命令:

$ ls -lah total 2.1G drwxrwxr-x  2 mint mint  4.0K Apr 18 14:18 . drwxr-xr-x 18 mint mint  4.0K Apr 18 14:18 .. -rw-rw-r--  1 mint mint  1.0G Apr 18 12:24 data.null -rw-rw-r--  1 mint mint  149K Apr 18 14:21 data.null.7z -rw-rw-r--  1 mint mint   785 Apr 18 12:24 data.null.bz2 -rw-rw-r--  1 mint mint 1018K Apr 18 14:11 data.null.gz -rw-rw-r--  1 mint mint  1.1G Apr 18 14:15 data.null.tar -rw-rw-r--  1 mint mint  153K Apr 18 12:24 data.null.xz 

从以下几点,我们可以总结出两件事:

  • tar 增加文件的大小 [ though to be accurate, it isn’t even a compression algorithm ]
  • bzip2 似乎是最有效的压缩方式,因为它将 1GB 文件压缩到几个字节

创建一个拉链炸弹

现在我们有了一个非常有效的创建 zip 文件的方法,我们可以创建我们的 zip 炸弹。 但是,创建一个包含空字符的文件然后对其进行压缩并不是制作 Zip Bomb 的最理想方法,因为它限制了我们可以生产的 zip 炸弹的大小。

因此,更有效的方法是使用以下语法:

$ dd if=/dev/zero bs=10G count=10000 | bzip2 -c > batman.bz2 

这压缩 100TB 数据到一个大约 14.9MB. 因此,当有人试图提取它时,它应该扩展到其大小的 1300000 倍以上,并且他们的硬盘驱动器应该被填充为空字符!

结论

因此,在本模块中,我们看到了如何制作 Zip 炸弹。 然而,它纯粹是为了教育目的。 Zip 炸弹本身不会造成太大损害,但会为其他恶意软件等铺平道路,帮助它们绕过防病毒和防御系统!