GWS - App Scripts
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
App Scripts is kode wat geaktiveer sal word wanneer 'n gebruiker met redigeer toestemming toegang tot die dokument wat met die App Script gekoppel is en na aanvaarding van die OAuth prompt. Hulle kan ook ingestel word om elke sekere tyd uitgevoer te word deur die eienaar van die App Script (Persistensie).
Daar is verskeie maniere om 'n App Script te skep, hoewel die mees algemene is uit 'n Google Dokument (van enige tipe) en as 'n standalone projek:
Begin deur 'n App Script te skep, my aanbeveling vir hierdie scenario is om 'n Google Sheet te skep en na Extensions > App Scripts
te gaan, dit sal 'n nuwe App Script vir jou oopmaak wat aan die blad gekoppel is.
Om toegang tot die OAuth token te gee moet jy op Services +
klik en skope soos:
AdminDirectory: Toegang tot gebruikers en groepe van die gids (as die gebruiker genoeg toestemming het)
Gmail: Om toegang tot gmail data te verkry
Drive: Om toegang tot drive data te verkry
Google Sheets API: Sodat dit met die trigger werk
Om self die nodige skope te verander kan jy na projekinstellings gaan en aktiveer: Show "appsscript.json" manifest file in editor
.
Om die versoek te vang kan jy net uitvoer:
Permissions requested to execute the App Script:
Aangesien 'n eksterne versoek gemaak word, sal die OAuth-prompt ook vra om toestemming om eksterne eindpunte te bereik.
Sodra die App gelees is, klik op ⏰ Triggers om 'n trigger te skep. As funksie om te loop, kies getToken
, loop by implementering Head
, in gebeurtenisbron kies From spreadsheet
en gebeurtenistipe kies On open
of On edit
(volgens jou behoeftes) en stoor.
Let daarop dat jy die lopies van die App Scripts in die Executions-oortjie kan nagaan as jy iets wil debugeer.
Om die App Script te trigger, moet die slagoffer met Editor Access verbind.
Die token wat gebruik word om die App Script uit te voer, sal die een van die skepper van die trigger wees, selfs al word die lêer as Editor deur ander gebruikers geopen.
As iemand 'n dokument met App Scripts en 'n trigger wat die Head van die App Script gebruik, met jou gedeel het (nie 'n vaste implementering nie), kan jy die App Script-kode wysig (byvoorbeeld die steel token funksies byvoeg), dit toegang, en die App Script sal uitgevoer word met die toestemmings van die gebruiker wat die dokument met jou gedeel het! (let daarop dat die eienaar se OAuth-token as toegangskope diegene sal hê wat gegee is toe die trigger geskep is).
'n Kennisgewing sal aan die skepper van die skrip gestuur word wat aandui dat iemand die skrip gewysig het (Wat van die gebruik van gmail-toestemmings om 'n filter te genereer om die waarskuwing te voorkom?)
As 'n aanvaller die skope van die App Script wysig, sal die opdaterings nie toegepas word op die dokument totdat 'n nuwe trigger met die veranderinge geskep word. Daarom sal 'n aanvaller nie in staat wees om die eienaar se skepper token met meer skope as die een wat hy in die trigger wat hy geskep het, gestel het, te steel nie.
Wanneer jy 'n skakel skep om 'n dokument te deel, word 'n skakel soortgelyk aan hierdie een geskep: https://docs.google.com/spreadsheets/d/1i5[...]aIUD/edit
As jy die einde "/edit" vir "/copy" verander, sal Google jou vra of jy 'n kopie van die dokument wil genereer:
As die gebruiker dit kopieer en toegang, sal beide die inhoud van die dokument en die App Scripts gekopieer word, maar die triggers nie, daarom sal niks uitgevoer word nie.
Let daarop dat dit ook moontlik is om 'n App Script as 'n Webtoepassing te deel (in die Editor van die App Script, implementeer as 'n Webtoepassing), maar 'n waarskuwing soos hierdie sal verskyn:
Gevolg deur die tipiese OAuth-prompt wat om die nodige toestemmings vra.
Jy kan 'n versamelde token toets om e-posse te lys met:
Lys kalender van die gebruiker:
Een opsie vir volharding sou wees om 'n dokument te skep en 'n trigger vir die getToken funksie by te voeg en die dokument met die aanvaller te deel sodat elke keer wanneer die aanvaller die lêer oopmaak, hy die token van die slagoffer uitvange.
Dit is ook moontlik om 'n App Script te skep en dit elke X tyd (soos elke minuut, uur, dag...) te laat trigger. 'n Aanvaller wat gekompromitteerde geloofsbriewe of 'n sessie van 'n slagoffer het, kan 'n App Script tyd-trigger instel en elke dag 'n baie bevoorregte OAuth-token lek:
Skep eenvoudig 'n App Script, gaan na Triggers, klik op Voeg Trigger by, en kies as gebeurtenisbron Tyd-gedrewe en kies die opsies wat die beste by jou pas:
Dit sal 'n sekuriteitswaarskuwing e-pos en 'n push boodskap na jou mobiele toestel stuur wat oor dit waarsku.
Boonop, as iemand **met jou 'n dokument met redigeerder toegang gedeel het, kan jy App Scripts binne die dokument genereer en die EIGENAAR (skepper) van die dokument sal die eienaar van die App Script wees.
Dit beteken dat die skepper van die dokument as die skepper van enige App Script wat iemand met redigeerder toegang binne dit skep, sal verskyn.
Dit beteken ook dat die App Script vertrou sal word deur die Workspace omgewing van die skepper van die dokument.
Dit beteken ook dat as 'n App Script reeds bestaan en mense toegang gegee het, kan enigeen met Redigeerder toestemming op die dokument dit wysig en daardie toegang misbruik.
Om dit te misbruik, moet jy ook hê dat mense die App Script trigger. En 'n slim truuk is om die script as 'n webtoepassing te publiseer. Wanneer die mense wat reeds toegang tot die App Script gegee het, die webblad toegang, sal hulle die App Script trigger (dit werk ook met <img>
etikette).
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)