Osnovne Gitea Informacije

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovna Struktura

Osnovna struktura Gitea okruženja je grupisanje repozitorijuma po organizacijama, svaka od njih može sadržati several repositories i several teams. Međutim, imajte na umu da, kao i na github-u, korisnici mogu imati repozitorijume van organizacije.

Štaviše, korisnik može biti član različitih organizacija. Unutar organizacije, korisnik može imati različite dozvole za svaki repozitorijum.

Korisnik može biti i deo različitih timova sa različitim dozvolama za različite repozitorijume.

I konačno, repozitorijumi mogu imati posebne mehanizme zaštite.

Dozvole

Organizacije

Kada se organizacija kreira, tim pod nazivom Owners se kreira i korisnik se stavlja unutar njega. Ovaj tim će dati admin pristup nad organizacijom, te dozvole i ime tima se ne mogu menjati.

Org admins (vlasnici) mogu odabrati vidljivost organizacije:

  • Javno
  • Ograničeno (samo prijavljeni korisnici)
  • Privatno (samo članovi)

Org admins takođe mogu naznačiti da li repo admins mogu dodavati ili uklanjati pristup za timove. Takođe mogu naznačiti maksimalan broj repozitorijuma.

Kada se kreira novi tim, biraju se nekoliko važnih podešavanja:

  • Naznačuje se repozitorijumi organizacije kojima će članovi tima moći da pristupaju: specifični repozitorijumi (repozitorijumi gde je tim dodat) ili svi.
  • Takođe se naznačuje da li članovi mogu kreirati nove repozitorijume (kreator će dobiti admin pristup).
  • Dozvole koje će članovi repozitorijuma imati:
  • Administrator pristup
  • Specifičan pristup:

Timovi & Korisnici

U repozitorijumu, org admin i repo admins (ako to dozvoljava org) mogu upravljati ulogama dodeljenim saradnicima (drugim korisnicima) i timovima. Postoje 3 moguće uloge:

  • Administrator
  • Pisanje
  • Čitanje

Gitea Autentifikacija

Web Pristup

Korišćenje korisničkog imena + lozinke i potencijalno (i preporučeno) 2FA.

SSH Ključevi

Možete konfigurisati svoj nalog sa jednim ili više javnih ključeva koji omogućavaju povezani privatni ključ da izvršava radnje u vaše ime. http://localhost:3000/user/settings/keys

GPG Ključevi

Ne možete se pretvarati da ste korisnik sa ovim ključevima, ali ako ih ne koristite, može biti moguće da budete otkriveni zbog slanja commit-a bez potpisa.

Lični Pristupni Tokeni

Možete generisati lični pristupni token da dajte aplikaciji pristup vašem nalogu. Lični pristupni token daje potpun pristup vašem nalogu: http://localhost:3000/user/settings/applications

Oauth Aplikacije

Baš kao lični pristupni tokeni, Oauth aplikacije će imati potpun pristup vašem nalogu i mestima kojima vaš nalog ima pristup, jer, kao što je naznačeno u docs, opsezi još nisu podržani:

Ključevi za Implementaciju

Ključevi za implementaciju mogu imati pristup samo za čitanje ili pisanje repozitorijumu, tako da mogu biti zanimljivi za kompromitovanje specifičnih repozitorijuma.

Zaštite Grana

Zaštite grana su dizajnirane da ne daju potpunu kontrolu nad repozitorijumom korisnicima. Cilj je postaviti nekoliko metoda zaštite pre nego što se može pisati kod unutar neke grane.

Zaštite grana repozitorijuma mogu se naći na https://localhost:3000/<orgname>/<reponame>/settings/branches

note

Nije moguće postaviti zaštitu grane na nivou organizacije. Tako da sve one moraju biti deklarisane na svakom repozitorijumu.

Različite zaštite mogu se primeniti na granu (kao na master):

  • Onemogući Push: Niko ne može da pošalje na ovu granu
  • Omogući Push: Svako ko ima pristup može da pošalje, ali ne može da forsira push.
  • Whitelist Ograničen Push: Samo odabrani korisnici/timovi mogu da pošalju na ovu granu (ali ne i forsirati push)
  • Omogući Merge Whitelist: Samo korisnici/timovi sa liste mogu da spajaju PR-ove.
  • Omogući Status provere: Zahteva da provere statusa prođu pre spajanja.
  • Zahteva odobrenja: Naznačite broj odobrenja potrebnih pre nego što se PR može spojiti.
  • Ograniči odobrenja na belu listu: Naznačite korisnike/timove koji mogu odobriti PR-ove.
  • Blokiraj spajanje na odbijenim recenzijama: Ako su tražene izmene, ne može se spojiti (čak i ako ostale provere prođu)
  • Blokiraj spajanje na zvanične zahteve za recenziju: Ako postoje zvanični zahtevi za recenziju, ne može se spojiti
  • Odbaci zastarele odobrenja: Kada su novi commit-i, stara odobrenja će biti odbijena.
  • Zahteva Potpisane Commit-e: Commit-i moraju biti potpisani.
  • Blokiraj spajanje ako je pull request zastareo
  • Zaštićeni/Nezaštićeni obrasci datoteka: Naznačite obrasce datoteka koje treba zaštititi/nezaštititi od izmena

note

Kao što možete videti, čak i ako ste uspeli da dobijete neka akreditivna sredstva korisnika, repozitorijumi mogu biti zaštićeni sprečavajući vas da šaljete kod na master, na primer, da biste kompromitovali CI/CD pipeline.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks