Basic Gitea Information

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowa struktura

Podstawowa struktura środowiska Gitea polega na grupowaniu repozytoriów przez organizacje, z których każda może zawierać kilka repozytoriów i kilka zespołów. Jednak należy zauważyć, że, podobnie jak w przypadku githuba, użytkownicy mogą mieć repozytoria poza organizacją.

Co więcej, użytkownik może być członkiem różnych organizacji. W ramach organizacji użytkownik może mieć różne uprawnienia do każdego repozytorium.

Użytkownik może również być członkiem różnych zespołów z różnymi uprawnieniami do różnych repozytoriów.

Na koniec repozytoria mogą mieć specjalne mechanizmy ochrony.

Uprawnienia

Organizacje

Po utworzeniu organizacji tworzony jest zespół o nazwie Właściciele, do którego dodawany jest użytkownik. Ten zespół zapewni dostęp administratora do organizacji, te uprawnienia i nazwę zespołu nie mogą być zmienione.

Administratorzy organizacji (właściciele) mogą wybrać widoczność organizacji:

  • Publiczna

  • Ograniczona (tylko zalogowani użytkownicy)

  • Prywatna (tylko członkowie)

Administratorzy organizacji mogą również wskazać, czy administratorzy repozytoriów mogą dodawać i/lub usuwać dostęp dla zespołów. Mogą również określić maksymalną liczbę repozytoriów.

Podczas tworzenia nowego zespołu wybierane są kilka istotnych ustawień:

  • Wskazuje się repozytoria organizacji, do których członkowie zespołu będą mieli dostęp: konkretne repozytoria (repozytoria, do których zespół jest dodany) lub wszystkie.

  • Wskazuje się również, czy członkowie mogą tworzyć nowe repozytoria (twórca otrzyma dostęp administratora do niego)

  • Uprawnienia, jakie będą mieć członkowie repozytorium:

  • Dostęp Administratora

  • Dostęp Specyficzny:

Zespoły i Użytkownicy

W repozytorium administrator organizacji i administratorzy repozytorium (jeśli zezwala na to organizacja) mogą zarządzać rolami nadanymi współpracownikom (innym użytkownikom) i zespołom. Istnieją 3 możliwe role:

  • Administrator

  • Zapisz

  • Odczyt

Autentykacja Gitea

Dostęp przez sieć

Korzystając z nazwy użytkownika + hasła i potencjalnie (i zalecane) 2FA.

Klucze SSH

Możesz skonfigurować swoje konto z jednym lub kilkoma kluczami publicznymi, pozwalającymi powiązanemu kluczowi prywatnemu na wykonywanie działań w twoim imieniu. http://localhost:3000/user/settings/keys

Klucze GPG

Nie możesz podawać się za użytkownika za pomocą tych kluczy, ale jeśli ich nie używasz, może być możliwe, że zostaniesz odkryty za wysyłanie commitów bez podpisu.

Tokeny dostępu osobistego

Możesz wygenerować token dostępu osobistego, aby udzielić aplikacji dostępu do swojego konta. Token dostępu osobistego daje pełny dostęp do twojego konta: http://localhost:3000/user/settings/applications

Aplikacje Oauth

Podobnie jak tokeny dostępu osobistego, aplikacje Oauth będą miały pełny dostęp do twojego konta i miejsc, do których ma dostęp twoje konto, ponieważ, zgodnie z dokumentacją, zakresy nie są jeszcze obsługiwane:

Klucze deploy

Klucze deploy mogą mieć dostęp tylko do odczytu lub zapisu do repozytorium, więc mogą być interesujące do skompromitowania konkretnych repozytoriów.

Ochrona gałęzi

Ochrona gałęzi ma na celu nie dawanie użytkownikom pełnej kontroli nad repozytorium. Celem jest ustawienie kilku metod ochrony przed możliwością pisania kodu w określonej gałęzi.

Ochrony gałęzi repozytorium można znaleźć pod adresem https://localhost:3000/<nazwa_organizacji>/<nazwa_repozytorium>/settings/branches

Nie można ustawić ochrony gałęzi na poziomie organizacji. Dlatego wszystkie zabezpieczenia muszą być zadeklarowane dla każdego repozytorium.

Do gałęzi można zastosować różne zabezpieczenia (np. dla master):

  • Wyłączanie Push: Nikt nie może przesłać do tej gałęzi

  • Włączanie Push: Każdy z dostępem może przesłać, ale nie force push.

  • Biała lista ograniczonego Push: Tylko wybrane użytkownicy/zespoły mogą przesyłać do tej gałęzi (ale bez force push)

  • Włącz białą listę scalania: Tylko użytkownicy/zespoły z białej listy mogą łączyć PR.

  • Włącz sprawdzanie stanu: Wymaga, aby sprawdzenia stanu zostały zakończone pomyślnie przed scaleniem.

  • Wymagaj zatwierdzeń: Wskazuje liczbę wymaganych zatwierdzeń przed scaleniem PR.

  • Ogranicz zatwierdzenia do białej listy: Wskazuje użytkowników/zespoły, które mogą zatwierdzać PR.

  • Zablokuj scalanie przy odrzuconych recenzjach: Jeśli są żądane zmiany, nie można ich scalić (nawet jeśli inne sprawdzenia przechodzą)

  • Zablokuj scalanie przy oficjalnych żądaniach recenzji: Jeśli są oficjalne żądania recenzji, nie można ich scalić

  • Odrzuć przeterminowane zatwierdzenia: Po dodaniu nowych commitów stare zatwierdzenia zostaną odrzucone.

  • Wymagaj podpisanych commitów: Commity muszą być podpisane.

  • Zablokuj scalanie, jeśli pull request jest przestarzały

  • Chronione/Niechronione wzorce plików: Wskazuje wzorce plików do ochrony/przeciwko zmianom

Jak widać, nawet jeśli udało ci się uzyskać pewne dane uwierzytelniające użytkownika, repozytoria mogą być chronione, uniemożliwiając przesyłanie kodu do mastera na przykład w celu skompromitowania procesu CI/CD.

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated