CVE-2009-0229-PoC
PoC per CVE-2009-0229 "Vulnerabilità di lettura di file dello Spooler di stampa" LPE AFR (correlata a CVE-2020-1048)
Dettagli
- Autore: Andrei Costin ([email protected])
- Data PoC: 2010-xx-xx
- Data di rilascio: 2020-05-14 (ricordato/ispirato da CVE-2020-1048 - sì, sono arrivato troppo tardi alla festa :D )
- TL;DR
- Se vuoi 0day, scava nel sottosistema di stampa e fax dei sistemi operativi :) - molto codice legacy per ragioni storiche - ci sono vulnerabilità per tutti =)
Note
-
Nota1: Non verificato - non sono sicuro al 100% che sia lo stesso bug che innesca la CVE-2009-0229
-
Nota2: Non verificato - potrebbe funzionare su sistemi più recenti come Windows Server 2012 e Windows Server 2016
-
Nota3: Tutte le versioni di Windows includono 4 file "Separator Page" predefiniti
- pcl.sep
- pscript.sep
- sysprint.sep
- sysprtj.sep
-
Nota4: Questo trucco è più vecchio di Windows 95 =), abbastanza sicuro che fosse usato dai professionisti per il "recupero furtivo di informazioni" ;)
Prerequisiti
- L'attaccante locale (non-admin) dispone di "diritti di gestione della stampante"
- opzione1: può aggiungere una nuova stampante
- opzione2: può modificare le impostazioni di una stampante "a livello di sistema" esistente (come spesso accade)
- il "file arbitrario" da esfiltrare non ha un permesso esplicito "Deny Read"
- altamente improbabile, poiché renderebbe l'accesso ai file per la vittima davvero poco pratico/inutilizzabile
Esecuzione del PoC
-
L'attaccante locale configura qualsiasi stampante a cui ha accesso affinché usi il file "Separator Page" fornito dall'attaccante (attack.sep); ora l'attaccante ha una "stampante armata"
- Vedi "Riferimenti Windows "Separator Page"" qui sotto per i dettagli
-
L'attaccante locale crea il file "Separator Page" (attack.sep) per utilizzare l'operatore "@F"/"$F", come segue, dove si presume che il file da esfiltrare sia "C:\secret.txt" (nota il \ e la concatenazione diretta all'operatore @F)
@
@FC:\\secret.txt
-
L'attaccante locale deve stampare qualcosa usando la stampante "armata" di cui sopra
- Ad esempio, l'attaccante locale apre Blocco note e stampa il documento vuoto tramite la stampante configurata sopra con il file "Separator Page"
- L'attaccante locale usa l'opzione "stampa su file" (es., c:\temp\exfiltrated.out) durante la stampa - sono disponibili .ps "stampa su file" nella maggior parte delle versioni di Windows + .xps in quelle più recenti (http://ps-2.kev009.com/pcpartnerinfo/ctstips/e94a.htm)
- Questo viene fatto affinché il contenuto del file esfiltrato non vada alla stampante (sebbene anche questa sia un'opzione), ma diventi immediatamente disponibile all'attaccante
-
Miglioramento dell'attacco: un singolo file "Separator Page" può contenere una lista brute-force dei percorsi/nomi di file più comuni
-
C'è anche l'operatore @L :)
Curiosità
-
Trovata nel 2010 quando facevo ricerca/presentazioni su "Hacking Printers for Fun and Profit"
-
Sono abbastanza sicuro che i sottosistemi di stampa e fax siano disseminati di vulnerabilità fin da Windows 3.1 (per ragioni storiche)
Riferimenti di sicurezza
Riferimenti Windows "Separator Page"
- Ecco come appaiono le finestre di dialogo "Separator Page" nelle varie versioni di Windows
- Ecco come appare "Stampa su file" in alcune versioni di Windows
- "Separator Page" in "Hands-On Microsoft Windows Server 2016 di Michael Palmer"
- "Create Custom Separator Pages in Windows Server 2012/2016"
- "Use a Separator Page When Printing in Windows"
- "How do I configure a Print Separator Page?"