Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/jonaslejon/malicious-pdf
Phishing-ToolsSchwachstellenscannerPayload-GenerierungExploitationWebanwendungs-ExploitationDatenexfiltrationPenetrationstestsLernen & BildungRed Teaming
GitHubjonaslejon/malicious-pdf

malicious-pdf

Erstellt bösartige PDF-Testdateien für Penetrationstests, Bug-Bounty-Jagd und Red Teaming. Testet SSRF, XSS, XXE, NTLM-Credential-Diebstahl und Datenexfiltration in PDF-Viewern, Konvertern und Webanwendungen. Integriert mit Burp Collaborator und Interact.sh.

4.1k54653vor 13 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

malicious-pdf.png

made-with-python OpenSSF Best Practices

Generator für bösartige PDFs ☠️

Erzeuge 67 bösartige PDF-Testdateien zum Testen von Phone-Home-Callbacks, SSRF, XSS, XXE, NTLM-Credential-Diebstahl und Datenexfiltration in PDF-Viewern, Konvertern und Webanwendungen. Kann mit Burp Collaborator oder Interact.sh verwendet werden.

Wird für Penetrationstests, Bug-Bounty-Jagd und/oder Red-Teaming usw. verwendet. Ich habe dieses Tool erstellt, weil ich ein Tool benötigte, um eine Reihe von PDF-Dateien mit verschiedenen Links zu generieren. Nur für Bildungs- und Berufszwecke.

Verwendung```

pip install -r requirements.txt python3 malicious-pdf.py burp-collaborator-url

root@kitploit:~
Die Ausgabe wird in das Verzeichnis `output/` geschrieben als: test1.pdf, test2.pdf, test3.pdf usw.

### Optionen```
--output-dir DIR    Directory to save generated PDF files (default: output/)
--no-credit         Do not embed credit/attribution metadata in generated PDFs
--obfuscate LEVEL   Obfuscation level (0-3):
                      0 = None (default)
                      1 = PDF name hex encoding + string octal/hex encoding
                      2 = Level 1 + JS bracket notation + javascript: URI case/whitespace obfuscation
                      3 = Level 2 + FlateDecode stream compression

Beispiel mit Verschleierung:``` python3 malicious-pdf.py https://your-interact-sh-url --obfuscate 2

root@kitploit:~
Maximale Obfuskation (Level 4 verpackt JS-Payloads in einen Base64-Decoder-Stub, sodass die ursprünglichen API-Aufrufe nie als literale Teilstrings erscheinen):```
python3 malicious-pdf.py https://your-interact-sh-url --obfuscate 4

Zweck

  • Testen von Webseiten/Diensten, die PDF-Dateien akzeptieren
  • Testen von Sicherheitsprodukten
  • Testen von PDF-Readern
  • Testen von PDF-Konvertern
  • Testen serverseitiger PDF-Verarbeitungsbibliotheken (PDFBox, iText usw.)
  • Testen von PDF-Statikanalyse-Tools — gestaffelte JS-Payloads (Formularfeld-/V, Base64-Decoder) schlagen naive /JS-Regex-Scanner
  • Bug-Bounty-Jagd — nützlich zum Auffinden von SSRF, XXE, Blind Callbacks und NTLM-Lecks in Datei-Upload-Endpunkten, PDF-zu-Bild-Konvertern und Dokumentverarbeitungspipelines bei Programmen, die PDF-Eingaben akzeptieren

Danksagungen

  • Insecure features in PDFs
  • Burp Suite UploadScanner
  • Bad-Pdf
  • A Curious Exploration of Malicious PDF Documents
  • "Portable Document Flaws 101" talk at Black Hat USA 2020
  • Adobe Reader - PDF callback via XSLT stylesheet in XFA
  • Foxit PDF Reader PoC, DoHyun Lee
  • Eicar test file by Stas Yakobov
  • Multiple PDF Vulnerabilities - FormCalc & XXE
  • PDF - Mess with the web - FormCalc header injection
  • Adobe Reader PDF - Client Side Request Injection
  • ImageMagick - Shell injection via PDF password
  • Portable Data Exfiltration - PortSwigger Research
  • CVE-2024-4367 - Arbitrary JS execution in PDF.js
  • PDF File Formats Security - Philippe Lagadec
  • CVE-2016-2175 - Apache PDFBox XXE
  • CVE-2017-9096 - iText XXE
  • CVE-2020-29075 - Acrobat Reader silent DNS tracking

In den Medien

  • Brisk Infosec
  • Daily REDTeam
  • Malicious PDF File | Red Team | Penetration Testing
  • John Hammond - Can a PDF File be Malware?
  • Black Hat Ethical Hacking
  • 0x1 Pentesting Collection
  • Security Toolkit / WADComs
  • unsafe.sh
  • Cristi Zot auf LinkedIn
  • Siva R. auf LinkedIn

Vollständige Testmatrix

Klicken, um alle 70 Testfälle zu erweitern

TODO: Neue Testfälle

  • Acrobat-JS-Fingerprinting-APIs — Testfälle für Reconnaissance-/Fingerprinting-APIs hinzufügen, die in der Adobe-0-Day-Exploit-Kette vom April 2026 verwendet wurden (ref): Collab.isDocReadOnly (Dateisystem-Sondierung), app.plugIns (installierte Plugins aufzählen), app.viewerVersion (Versions-Fingerprinting)

TODO: Noch nicht implementierte Obfuscation-Methoden

  • PDF-Verschlüsselung mit leerem Passwort — Alle Strings/Streams mit leerem Benutzerpasswort verschlüsseln. Das Dokument öffnet sich ohne Rückfrage, aber Statikanalyse-Tools können den Inhalt nicht lesen. Größte Lücke in der aktuellen Obfuscation. Ref: Didier Stevens, How secure is PDF encryption?
  • Objekt-Streams (ObjStm) — PDF-Objekte in komprimierten Stream-Containern verstecken. Einfache Parser (einschließlich PDFiD ohne -O-Flag) übersehen Objekte vollständig. Ref: PDF spec ISO 32000 §7.5.7
  • getAnnots()-Codespeicherung — JavaScript-Payload über Annotation-Metadatenfelder (Betreff, Autor) verteilen. Zur Laufzeit über app.doc.getAnnots()[n].subject abrufen und mit eval ausführen. Ref: Julia Wolf - PDF Obfuscation using getAnnots()
  • Datenextraktion aus dem Info-Wörterbuch — Kodierte Payload in /Info-Trailerfeldern speichern (/Title, /Author). Zur Laufzeit über info.Title in JS abrufen. Ref: corkami PDF tricks
  • Extraktion aus AcroForm-Feldwerten — Payload-Fragmente in Formularfeld-/V-Werten speichern. Über getField("name").value in JS abrufen. Ref:

Wird nicht implementiert

  • CVE-2023-26369 - Adobe Acrobat TTF-Font-Heap-OOB-Write — Erfordert binäre Exploitation (Heap-Spray, ROP-Ketten, Shellcode). Kein öffentlicher PoC. Kann keinen einfachen Callback erzeugen.
  • CVE-2021-28550 - Adobe Acrobat Use-After-Free — Erfordert eine binäre Exploitation-Kette + Sandbox-Escape (CVE-2021-31199/31201). Kein öffentlicher PoC. Kann keinen einfachen Callback erzeugen.

Sternenverlauf

Star History Chart

Tool herunterladen
  • CVE-2022-28244 - Acrobat Reader CSP bypass
  • CVE-2018-5158 - Firefox PDF.js PostScript calculator injection
  • CVE-2018-20065 - PDFium URI action without user gesture
  • ExpMon - Sophisticated Adobe Reader 0-day analysis (April 2026) — Inspiration für test33_13/14/15 und Obfuscation-Stufe 4
  • TestdateiFunktionCVE/ReferenzAngriffsvektorMethodeAuswirkung
    test1.pdfcreate_malpdf()CVE-2018-4993Externer Dateizugriff/GoToE-Aktion mit UNC-PfadNetzwerk-Callback über Dateisystem
    test1_1.pdfcreate_malpdf()CVE-2018-4993Externer Dateizugriff/GoToE-Aktion mit HTTPS-URLNetzwerk-Callback über HTTPS
    test2.pdfcreate_malpdf2()XFA-FormularübermittlungExfiltration von FormulardatenXDP-Formular mit Submit-EreignisAutomatische Formularübermittlung
    test3.pdfcreate_malpdf3()JavaScript-InjectionCodeausführung/OpenAction mit app.openDoc()Laden externer Dokumente
    test4.pdfcreate_malpdf4()CVE-2019-7089XSLT-InjectionXFA mit externem XSLT-StylesheetUNC-Pfad-Callback
    test5.pdfcreate_malpdf5()PDF101-ForschungURI-Aktion/URI-AktionstypDNS-Prefetching/HTTP-Anfrage
    test6.pdfcreate_malpdf6()PDF101-ForschungLaunch-Aktion/Launch mit externer URLAusführung externer Ressourcen
    test7.pdfcreate_malpdf7()PDF101-ForschungRemote-PDF/GoToR-AktionLaden einer Remote-PDF
    test8.pdfcreate_malpdf8()PDF101-ForschungFormularübermittlung/SubmitForm mit HTML-FlagsÜbermittlung von Formulardaten
    test9.pdfcreate_malpdf9()PDF101-ForschungDatenimport/ImportData-AktionExterner Datenimport
    test10.pdfcreate_malpdf10()CVE-2017-10951JavaScript-AusführungFoxit-this.getURL()-CallbackNetzwerk-Callback über Foxit Reader
    test11.pdfcreate_malpdf11()EICAR-TestAV-ErkennungEingebetteter EICAR-StringAntivirus-Test
    test12.pdfcreate_malpdf12()CVE-2014-8453FormCalc-DatenexfiltrationXFA-FormCalc-Funktion Post()Same-Origin-Datenexfiltration mit Cookies
    test13.pdfcreate_malpdf13()Request-InjectionCRLF-Header-InjectionXFA-Submit-textEncoding-CRLFManipulation von HTTP-Headern
    test14.svgcreate_malpdf14()ImageMagick-Shell-InjectionShell-Injection über SVG/MSLSVG-MSL-Polyglott-authenticate-AttributRemotecodeausführung über ImageMagick
    test15.pdfcreate_malpdf15()PDF-SpezifikationFormCalc-Header-InjectionXFA-FormCalc-Post() mit benutzerdefinierten HeadernBeliebige HTTP-Header-Injection
    test16.pdfcreate_malpdf16()PDF-SpezifikationJavaScript über GotoE/GoToE mit javascript:-URIBrowser-XSS bei per <embed>/<object> eingebetteter PDF
    test17.pdfcreate_malpdf17()CVE-2014-8452XXE-InjectionExterne Entität in XMLData.parse()Auflösung externer XML-Entitäten
    test18.pdfcreate_malpdf18()PortSwigger-ForschungAnnotation-URI-InjectionUnescapte Klammern injizieren JS-Aktion über doppelten /A-SchlüsselXSS über PDF-Lib/jsPDF-Ausgabe
    test19.pdfcreate_malpdf19()PortSwigger-ForschungPV-Autoausführung/AA /PV-Screen-Annotation löst JS bei sichtbarer Seite ausAutomatische Codeausführung (Acrobat)
    test20.pdfcreate_malpdf20()PortSwigger-ForschungPC-Schließauslöser/AA /PC-Annotation löst JS beim Schließen der Seite ausCodeausführung beim Schließen (Acrobat)
    test21.pdfcreate_malpdf21()PortSwigger-ForschungSubmitForm SubmitPDF/SubmitForm mit Flags 256 sendet die gesamte PDFExfiltration des vollständigen PDF-Inhalts
    test22.pdfcreate_malpdf22()PortSwigger-ForschungJS-submitForm()this.submitForm() mit cSubmitAs: "PDF"Übermittlung des PDF-Inhalts (Acrobat)
    test23.pdfcreate_malpdf23()PortSwigger-ForschungWidget-Button-InjectionUnsichtbares /Btn-Widget, das die Seite abdeckt, JS bei KlickCodeausführung (Chrome/PDFium)
    test24.pdfcreate_malpdf24()PortSwigger-ForschungTextfeld-SSRFWidget-/Tx-Feld mit submitForm()-POSTBlinde SSRF über Formulardaten
    test25.pdfcreate_malpdf25()PortSwigger-ForschungInhaltsextraktiongetPageNthWord() liest den gesamten Text und exfiltriert ihnExfiltration gerenderten Texts
    test26.pdfcreate_malpdf26()PortSwigger-ForschungMouseover-Auslöser/AA /E-Annotation löst JS beim Mauszeiger-Eintritt ausCodeausführung beim Hover (PDFium)
    test27——EntferntDuplikat von test3 (Acrobat-OpenAction-JS) + test23 (Chrome-Widget-Btn)—
    test28.pdfcreate_malpdf28()PortSwigger-ForschungURL-ÜbernahmeUnescapte Klammern injizieren neue /URI-AktionKlick-Umleitung über PDF-Lib/jsPDF
    test29.pdfcreate_malpdf29()CVE-2024-4367FontMatrix-InjectionType1-Font-FontMatrix-String bricht aus c.transform() ausBeliebige JS-Ausführung in PDF.js (Firefox < 126)
    test30.pdfcreate_malpdf30()PDF101-ForschungExterner XObject-StreamBild-XObject ruft Daten von Remote-URL über /FS /URL abStiller Callback durch Seitenrendering (keine Aktionen/JS)
    test31.pdfcreate_malpdf31()PDF101-ForschungThread-Aktion/S /Thread mit Remote-FileSpecNetzwerk-Callback über Thread-Referenz
    test32.pdfcreate_malpdf32()PDF101-ForschungLaunch mit Drucken/Launch mit /Win << /O /print >> erzwingt Remote-AbrufNetzwerk-Callback über Druckvorgang
    test33_1.pdfcreate_malpdf33_1()PDF101-ForschungJS: this.submitForm()Acrobat-JS-Callback für FormularübermittlungAcrobat Reader
    test33_2.pdfcreate_malpdf33_2()PDF101-ForschungJS: this.getURL()Acrobat-JS-URL-AbrufAcrobat Reader
    test33_3.pdfcreate_malpdf33_3()PDF101-ForschungJS: app.launchURL()Acrobat-JS-URL-StartAcrobat Reader
    test33_4.pdfcreate_malpdf33_4()PDF101-ForschungJS: app.media.getURLData()Acrobat-JS-Media-AbrufAcrobat Reader
    test33_5.pdfcreate_malpdf33_5()PDF101-ForschungJS: SOAP.connect()Acrobat-JS-SOAP-VerbindungAcrobat Reader
    test33_6.pdfcreate_malpdf33_6()PDF101-ForschungJS: SOAP.request()Acrobat-JS-SOAP-AnfrageAcrobat Reader
    test33_7.pdfcreate_malpdf33_7()PDF101-ForschungJS: this.importDataObject()Acrobat-JS-DatenimportAcrobat Reader
    test33_8.pdfcreate_malpdf33_8()PDF101-ForschungJS: app.openDoc()Acrobat-JS-Öffnen eines DokumentsAcrobat Reader
    test33_9.pdfcreate_malpdf33_9()PDF101-ForschungJS: fetch()Web-API-Callback (PDF.js/Browser)Firefox/PDF.js
    test33_10.pdfcreate_malpdf33_10()PDF101-ForschungJS: XMLHttpRequestWeb-API-Callback (PDF.js/Browser)Firefox/PDF.js
    test33_11.pdfcreate_malpdf33_11()PDF101-ForschungJS: new Image()Web-API-Bild-Callback (PDF.js/Browser)Firefox/PDF.js
    test33_12.pdfcreate_malpdf33_12()PDF101-ForschungJS: WebSocketWeb-API-WebSocket-Callback (PDF.js/Browser)Firefox/PDF.js
    test33_13.pdfcreate_malpdf33_13()Adobe-0-Day-Blog (Apr. 2026)JS: RSS.addFeed()Acrobat-JS-RSS-Feed-CallbackAcrobat Reader
    test33_14.pdfcreate_malpdf33_14()Adobe-0-Day-Blog (Apr. 2026)JS: util.readFileIntoStream() + SOAP.request()Lokales Dateilesen + Exfiltrationskette (try/catch-Fehlerpfad ruft ebenfalls Callbacks auf)Acrobat Reader
    test33_15.pdfcreate_malpdf33_15()Adobe-0-Day-Blog (Apr. 2026)Über Formularfelder gestaffelter JS-LoaderBase64-Payload im /Tx-Widget-/V, dekodiert über getField() + util.stringFromStreamAcrobat Reader
    test34_1.pdfcreate_malpdf34_1()PDF101-ForschungUNC: XObject-StreamBild-XObject mit UNC-PfadNTLM-Diebstahl über Seitenrendering
    test34_2.pdfcreate_malpdf34_2()PDF101-ForschungUNC: GoToR/GoToR-Aktion mit UNC-FileSpecNTLM-Diebstahl über Remote-PDF
    test34_3.pdfcreate_malpdf34_3()PDF101-ForschungUNC: Thread/Thread-Aktion mit UNC-FileSpecNTLM-Diebstahl über Thread-Referenz
    test34_4.pdfcreate_malpdf34_4()PDF101-ForschungUNC: URI/URI-Aktion mit UNC-PfadNTLM-Diebstahl über URI-Aktion
    test34_5.pdfcreate_malpdf34_5()PDF101-ForschungUNC: JS-submitFormthis.submitForm() mit UNC-PfadNTLM-Diebstahl über JS-Formularübermittlung
    test34_6.pdfcreate_malpdf34_6()PDF101-ForschungUNC: JS-getURLthis.getURL() mit UNC-PfadNTLM-Diebstahl über JS-URL-Abruf
    test34_7.pdfcreate_malpdf34_7()PDF101-ForschungUNC: JS-launchURLapp.launchURL() mit UNC-PfadNTLM-Diebstahl über JS-Start
    test34_8.pdfcreate_malpdf34_8()PDF101-ForschungUNC: JS-SOAPSOAP.connect() mit UNC-PfadNTLM-Diebstahl über JS-SOAP
    test34_9.pdfcreate_malpdf34_9()PDF101-ForschungUNC: JS-openDocapp.openDoc() mit UNC-PfadNTLM-Diebstahl über JS-Öffnen eines Dokuments
    test35.pdfcreate_malpdf35()PDF101-ForschungNames-Wörterbuch/Names /JavaScript-Autoausführungstrigger auf KatalogebeneAlternativer JS-Ausführungstrigger
    test36.pdfcreate_malpdf36()CVE-2016-2175 / CVE-2017-9096XXE in XMP-MetadatenXXE-<!ENTITY> im /Metadata-XMP-StreamServerseitiger Callback (PDFBox, iText)
    test37.pdfcreate_malpdf37()CVE-2016-2175 / CVE-2017-9096XXE in XFA-FormulardatenXXE-<!ENTITY> im /AcroForm /XFA-StreamServerseitiger Callback (PDFBox, iText)
    test38.pdfcreate_malpdf38()CVE-2020-29075Stilles DNS-TrackingKatalog-/AA mit /WC-, /WS-, /DS-TriggernDNS-Callback ohne Rückfrage (Acrobat)
    test39.pdfcreate_malpdf39()CVE-2022-28244CSP-BypassRichMedia-Annotation mit eingebettetem HTML/JSCross-Origin-Anfrage (Acrobat)
    test40.pdfcreate_malpdf40()CVE-2018-5158PostScript-Rechner-Injection/FunctionType 4-JS-Injection in Bild-XObjectJS-Ausführung im PDF.js-Worker (Firefox)
    test41.pdfcreate_malpdf41()CVE-2018-20065URI ohne Benutzergeste/OpenAction mit /S /URI-AutonavigationStille Navigation (PDFium/Chrome)
    test42.pdfcreate_malpdf42()CVE-2025-66516XXE-OOB-Parameterentität in XFA%xxe;-Parameterentität in /AcroForm /XFA erzwingt DTD-AbrufServerseitige blinde XXE (Tika, Confluence, Jira)
    test43.pdfcreate_malpdf43()CVE-2025-70401Annotation-/T-Feld-XSS``-Tag im Textannotations-/T-Feld (Autor)XSS-Callback (Apryse WebViewer, Web-Viewer)
    test44.pdfcreate_malpdf44()CVE-2024-12426LibreOffice-URL-Erweiterung/URI mit vnd.sun.star.expand: erweitert ${HOME}Exfiltration von Umgebungsvariablen (LibreOffice < 24.8.4)
    test45.pdfcreate_malpdf45()CVE-2025-59803OCG-JS-Auslöser beim Signieren/AA /WP+/DP löst JS über OCG im Signierworkflow ausCallback während des Signierens (Foxit < 2025.2.1)
    test46.pdfcreate_malpdf46()CVE-2026-25755jsPDF-ObjektinjectionDefekter JS-String + injizierte /AA /O-AutoaktionAuto-Callback über jeden Viewer (jsPDF < 4.2.0)
    test47.pdfcreate_malpdf47()PDF-2.0-SpezifikationEingebettetes HTML über Associated FilesHTML über Katalog-/AF + /EF-EmbeddedFileCallback über eingebettetes HTML (PDF-2.0-Viewer)
    test48.pdfcreate_malpdf48()XFA-SpezifikationXFA-SOAP-Callback<submit method="soap"> mit initialize-EreignisSOAP-HTTP-Anfrage (Acrobat-XFA-Engine)
    corkami PDF tricks
  • Aufgeteilte Ausführung über den Names-Baum — JavaScript über mehrere /Names-Einträge verteilen, die sequenziell ausgeführt werden. Ref: corkami PDF tricks
  • Inkrementelle Updates nach %%EOF — Neue Objekte/Aktionen nach dem ursprünglichen %%EOF-Marker per inkrementellem Update anhängen. Ref: PDF101 content masking, Didier Stevens
  • JS-unescape()-Kodierung — JS-Payload in eval(unescape("%61%6C%65%72%74...")) einwickeln. Ref: corkami PDF tricks
  • Gefälschte Dateiheader — JPEG-/HTML-/andere Magic Bytes vor den %PDF--Header setzen (die Spezifikation erlaubt den Header innerhalb der ersten 1024 Bytes). Verwirrt die Dateityperkennung. Ref: corkami, Decalage
  • Anti-Emulations-Checks — Echten Adobe Reader über event.target.zoomType == "FitPage" oder Typprüfungen globaler Variablen erkennen, bevor die Payload ausgeführt wird. Ref: corkami PDF tricks