# GWS - Persistence
{{#include ../../banners/hacktricks-training.md}}
> [!CAUTION]
> Sve akcije pomenute u ovom odeljku koje menjaju podešavanja generisaće **security alert** na email i čak push notification na bilo koji mobilni uređaj sinhronizovan sa nalogom.
## **Persistence u Gmail**
- Možete da kreirate **filters to hide** security notifications od Google
- `from: (no-reply@accounts.google.com) "Security Alert"`
- Ovo će sprečiti da security emailovi stignu do emaila (ali neće sprečiti push notifications na mobilni)
Koraci za kreiranje gmail filtera
(Uputstva od [**ovde**](https://support.google.com/mail/answer/6579))
1. Otvorite [Gmail](https://mail.google.com/).
2. U polju za pretragu na vrhu kliknite Show search options  .
3. Unesite kriterijume pretrage. Ako želite da proverite da li je pretraga uspešno radila, pogledajte koji emailovi se prikazuju klikom na **Search**.
4. Na dnu prozora za pretragu kliknite **Create filter**.
5. Izaberite šta želite da filter radi.
6. Kliknite **Create filter**.
Proverite trenutni filter (da biste ih obrisali) na [https://mail.google.com/mail/u/0/#settings/filters](https://mail.google.com/mail/u/0/#settings/filters)
- Kreirajte **forwarding address to forward sensitive information** (ili sve) - Potreban je ručni pristup.
- Kreirajte forwarding address na [https://mail.google.com/mail/u/2/#settings/fwdandpop](https://mail.google.com/mail/u/2/#settings/fwdandpop)
- Prijemna adresa će morati da to potvrdi
- Zatim podesite da se prosleđuju svi emailovi uz čuvanje kopije (setite se da kliknete save changes):
Takođe je moguće kreirati filtere i prosleđivati samo određene emailove na drugu email adresu.
## App passwords
Ako ste uspeli da **compromise a google user session** i korisnik je imao **2FA**, možete da **generate** [**app password**](https://support.google.com/accounts/answer/185833?hl=en) (pratite link da vidite korake). Imajte na umu da Google više ne preporučuje **App passwords** i da se oni ukidaju kada korisnik **promeni svoju Google Account lozinku.**
**Čak i ako imate otvorenu sesiju, moraćete da znate lozinku korisnika da biste kreirali app password.**
> [!NOTE]
> App passwords mogu **samo da se koriste sa nalozima na kojima je uključen 2-Step Verification**.
## Change 2-FA and similar
Takođe je moguće **isključiti 2-FA ili dodati novi uređaj** (ili broj telefona) na ovoj stranici [**https://myaccount.google.com/security**](https://myaccount.google.com/security)**.**\
**Takođe je moguće generisati passkeys (dodati svoj uređaj), promeniti lozinku, dodati mobilne brojeve za verification telefone i recovery, promeniti recovery email i promeniti security questions).**
> [!CAUTION]
> Da biste **sprečili da security push notifications** stignu na telefon korisnika, mogli biste da **odjavite njegov smartphone** (mada bi to bilo čudno) jer ga odatle ne možete ponovo prijaviti.
>
> Takođe je moguće **locate the device.**
**Čak i ako imate otvorenu sesiju, moraćete da znate lozinku korisnika da biste promenili ova podešavanja.**
## Persistence via OAuth Apps
Ako ste **compromised the account of a user,** možete jednostavno da **accept** all possible permissions za jedan **OAuth App**. Jedini problem je što Workspace može biti podešen da **disallow unreviewed external and/or internal OAuth apps.**\
Prilično je uobičajeno da Workspace Organizations ne veruju podrazumevano external OAuth apps, ali da veruju internal ones, pa ako imate **dovoljno permissions da generate a new OAuth application** unutar organization i external apps su disallowed, generišite ga i **use that new internal OAuth app to maintain persistence**.
Pogledajte sledeću stranicu za više informacija o OAuth Apps:
{{#ref}}
gws-google-platforms-phishing/
{{#endref}}
## Persistence via delegation
Možete jednostavno da **delegate the account** drugom nalogu kojim upravlja attacker (ako vam je to dozvoljeno). U Workspace **Organizations** ova opcija mora da bude **enabled**. Može biti disabled za sve, enabled za neke users/groups ili za sve (obično je enabled samo za neke users/groups ili je potpuno disabled).
Ako ste Workspace admin, proverite ovo da biste omogućili feature
(Informacije [kopirane iz docs](https://support.google.com/a/answer/7223765))
Kao administrator vaše organization (na primer, vašeg posla ili škole), vi kontrolišete da li users mogu da delegate access svom Gmail accountu. Možete dozvoliti svima da imaju opciju da delegate svoj account. Ili samo određenim departmentima da postave delegation. Na primer, možete:
- Dodati administrative assistant kao delegate na vaš Gmail account tako da može da čita i šalje email u vaše ime.
- Dodati grupu, kao što je vaš sales department, u Groups kao delegate da biste svima dali access jednom Gmail accountu.
Users mogu da delegate access samo drugom useru u istoj organization, bez obzira na njihov domain ili organizational unit.
#### Delegation limits & restrictions
- **Allow users to grant their mailbox access to a Google group** option: Da biste koristili ovu opciju, mora biti enabled za OU delegiranog accounta i za OU svakog člana grupe. Članovi grupe koji pripadaju OU bez enabled ove opcije ne mogu da access delegated account.
- Pri tipičnoj upotrebi, 40 delegated users može da access Gmail account istovremeno. Upotreba iznad proseka od strane jednog ili više delegates može smanjiti ovaj broj.
- Automatizovani procesi koji često access Gmail mogu takođe smanjiti broj delegates koji mogu da access account istovremeno. Ovi procesi uključuju API-je ili browser extensions koje često access Gmail.
- Jedan Gmail account podržava do 1,000 unique delegates. Grupa u Groups računa se kao jedan delegate prema limitu.
- Delegation ne povećava limite za Gmail account. Gmail accounts sa delegated users imaju standardne Gmail account limite i policies. Za detalje posetite [Gmail limits and policies](https://support.google.com/a/topic/28609).
#### Korak 1: Uključite Gmail delegation za vaše users
**Pre nego što počnete:** Da biste primenili podešavanje za određene users, stavite njihove accounts u [organizational unit](https://support.google.com/a/topic/1227584).
1. [Sign in](https://admin.google.com/) u svoj [Google Admin console](https://support.google.com/a/answer/182076).
Sign in koristeći _administrator account_, ne vaš trenutni account CarlosPolop@gmail.com
2. U Admin console, idite na Menu  **Apps****Google Workspace****Gmail****User settings**.
3. Da biste primenili podešavanje na sve, ostavite izabran gornji organizational unit. U suprotnom, izaberite child [organizational unit](https://support.google.com/a/topic/1227584).
4. Kliknite **Mail delegation**.
5. Označite polje **Let users delegate access to their mailbox to other users in the domain**.
6. (Optional) Da biste dozvolili users da navedu koje sender information je uključena u delegated messages poslate sa njihovog accounta, označite polje **Allow users to customize this setting**.
7. Izaberite opciju za podrazumevane sender information koja je uključena u poruke koje šalju delegates:
- **Show the account owner and the delegate who sent the email**—Messages uključuju email addresses vlasnika Gmail accounta i delegate-a.
- **Show the account owner only**—Messages uključuju email address samo vlasnika Gmail accounta. Email address delegate-a nije uključena.
8. (Optional) Da biste dozvolili users da dodaju group u Groups kao delegate, označite polje **Allow users to grant their mailbox access to a Google group**.
9. Kliknite **Save**. Ako ste konfigurisali child organizational unit, možda ćete moći da izaberete **Inherit** ili **Override** podešavanja parent organizational unit.
10. (Optional) Da biste uključili Gmail delegation za druge organizational units, ponovite korake 3–9.
Promene mogu da potraju do 24 sata, ali se obično dešavaju brže. [Learn more](https://support.google.com/a/answer/7514107)
#### Korak 2: Neka users podese delegates za svoje accounts
Nakon što uključite delegation, vaši users idu u Gmail settings da dodele delegates. Delegates tada mogu da čitaju, šalju i primaju messages u ime usera.
Za detalje uputite users na [Delegate and collaborate on email](https://support.google.com/a/users/answer/138350).
Od običnog usera, pogledajte ovde uputstva da pokušate da delegate your access
(Info copied [**from the docs**](https://support.google.com/mail/answer/138350))
Možete dodati do 10 delegates.
Ako koristite Gmail preko posla, škole ili druge organization:
- Možete dodati do 1000 delegates unutar vaše organization.
- Pri tipičnoj upotrebi, 40 delegates može da access Gmail account istovremeno.
- Ako koristite automatizovane procese, kao što su API-ji ili browser extensions, nekoliko delegates može da access Gmail account istovremeno.
1. Na računaru otvorite [Gmail](https://mail.google.com/). Ne možete dodavati delegates iz Gmail app.
2. U gornjem desnom uglu kliknite Settings   **See all settings**.
3. Kliknite karticu **Accounts and Import** ili **Accounts**.
4. U odeljku "Grant access to your account" kliknite **Add another account**. Ako koristite Gmail preko posla ili škole, vaša organization može ograničiti email delegation. Ako ne vidite ovo podešavanje, kontaktirajte svog admin.
- Ako ne vidite Grant access to your account, onda je restricted.
5. Unesite email address osobe koju želite da dodate. Ako koristite Gmail preko posla, škole ili druge organization, i vaš admin to dozvoljava, možete uneti email address grupe. Ova grupa mora imati isti domain kao vaša organization. Spoljni članovi grupe nemaju delegation access.\
\
**Važno:** Ako je account koji delegirate novi account ili je password resetovan, Admin mora da isključi requirement za promenu password pri prvom sign in.
- [Learn how an Admin can create a user](https://support.google.com/a/answer/33310).
- [Learn how an Admin can reset passwords](https://support.google.com/a/answer/33319).
6\. Kliknite **Next Step**  **Send email to grant access**.
Osoba koju ste dodali dobiće email sa zahtevom da potvrdi. Pozivnica ističe posle nedelju dana.
Ako ste dodali grupu, svi članovi grupe postaće delegates bez potrebe za potvrdom.
Napomena: Može potrajati do 24 sata da delegation počne da deluje.
## Persistence via Android App
Ako imate **session inside victims google account** možete da odete na **Play Store** i možda ćete moći da **install malware** koji ste već uploadovali na store direktno **to the phone** da biste održali persistence i access victims phone.
## **Persistence via** App Scripts
Možete kreirati **time-based triggers** u App Scripts, pa ako korisnik prihvati App Script, on će biti **triggered** čak i **without the user accessing it**. Za više informacija o tome kako to uraditi pogledajte:
{{#ref}}
gws-google-platforms-phishing/gws-app-scripts.md
{{#endref}}
## References
- [https://www.youtube-nocookie.com/embed/6AsVUS79gLw](https://www.youtube-nocookie.com/embed/6AsVUS79gLw) - Matthew Bryant - Hacking G Suite: The Power of Dark Apps Script Magic
- [https://www.youtube.com/watch?v=KTVHLolz6cE](https://www.youtube.com/watch?v=KTVHLolz6cE) - Mike Felch and Beau Bullock - OK Google, How do I Red Team GSuite?
{{#include ../../banners/hacktricks-training.md}}