11

我喜欢阅读 PoC||GTFO 问题,当我第一次发现它时,我发现了一件值得注意的事情,那就是他们的 PDF 文件的“多语言”性质。

让我们解释一下:当您考虑例如他们的第 8 期时,您可以从中解压缩文件;通过将其作为脚本运行来执行他们正在谈论的加密,甚至更好(更糟?)在他们的第 9 期中,您甚至可以将其作为音乐文件播放!

我目前正在每周编写小脚本,并且每次都在 LaTeX 中编写一小页 PDF 来解释所述脚本。所以我真的很喜欢能够创建相同类型的 PDF 文件。可悲的是,他们在第一期中(部分地)解释了如何包含 zip 文件,但他们是通过三个 cmd 行的小草图来实现的,而没有实际解释。

所以我的问题基本上是:如何创建这样一个多语言 PDF 文件,其中包含诸如 zip 之类的内容以及可以像普通脚本一样使用参数运行的 shell 脚本?

我在这里问的是创作的过程,而不仅仅是解释这怎么可能。对我来说,理想的方式是已经有一些脚本或程序可以轻松创建此类 PDF 文件。

我试图在网上搜索关键字“polyglot files”和其他类似的关键字,但找不到任何有用的匹配项。也许这个过程有另一个名字?

我已经阅读了Julia Wolf 的演示文稿,其中解释了事情是如何工作的,但遗憾的是我还没有时间将那里的知识应用到现实世界中,因为我很遗憾不习惯使用文件标题和 PDF 的方式被构造。

编辑:好的,我阅读了更多内容,发现PoC||GTFO 的第 7 版对这个主题非常有用。如果我有更多时间考虑的话,我可能最终能够创建自己的脚本来执行此类多语言 PDF 文件。

4

2 回答 2

3

我觉得剖析一些文件格式将是一个很好的起点。您可以通过 Google 找到许多针对不同文件类型的文件格式规范,但它们可能很难阅读,并且可能需要一些时间才能翻译成您使用的任何语言。

PDF:https ://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf

精灵:https ://www.cs.cmu.edu/afs/cs/academic/class/15213-s00/doc/elf.pdf

邮编: http: //kat.sdf.org/zip_file_format.txt

您选择的语言将需要一种读取和写入原始字节的方法(不仅仅是 ascii 字母数字),因此 C 可能更适合更直接地访问内存。一些 Python 技巧可以帮助轻松开源脚本。

要剖析文件,您可能需要构建一个类似于https://github.com/kvesel/zipbrk/的工具将它们分开,然后以多语言格式将它们重新组合在一起。例如,zip 不要求节标题位于开头(或者甚至是连续的),并且 PDF 幻数也可以出现在文件中的多个位置。我还相信我记得在 PoC||GTFO 出版物之一(可能是第 8 期或第 2 期??)中包含一个多语言工具,作为 pdf 文件中的多语言。

不要忘记黑客圣经!:) https://nostarch.com/gtfo

于 2018-04-04T20:10:45.070 回答
3

在参加了 Ange 的演讲并亲自与他交谈后,我自己也玩过多种语言。您确实需要了解文件格式才能将它们相互嵌套。
然而,长话短说,这里有一些我发现对创建多语言非常有用的链接:

多语种东西的一些较旧的 Google Code Trunk
PoC

特别是第二个链接(到 github)将帮助您创建多语言,同时也了解它们是如何工作的以及它们是如何实现的。由于它主要是 Python 的东西并且写得非常好/干净,所以它非常有用且易于理解。

于 2016-04-16T22:01:21.017 回答