Informations de base sur Gitea

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Structure de base

La structure de base de l’environnement Gitea consiste Ă  regrouper les dĂ©pĂŽts par organisation(s), chacune d’elles pouvant contenir plusieurs dĂ©pĂŽts et plusieurs Ă©quipes. Cependant, notez que tout comme sur GitHub, les utilisateurs peuvent avoir des dĂ©pĂŽts en dehors de l’organisation.

De plus, un utilisateur peut ĂȘtre membre de diffĂ©rentes organisations. Au sein de l’organisation, l’utilisateur peut avoir diffĂ©rentes permissions sur chaque dĂ©pĂŽt.

Un utilisateur peut Ă©galement ĂȘtre partie de diffĂ©rentes Ă©quipes avec diffĂ©rentes permissions sur diffĂ©rents dĂ©pĂŽts.

Et enfin, les dépÎts peuvent avoir des mécanismes de protection spéciaux.

Permissions

Organisations

Lorsqu’une organisation est créée, une Ă©quipe appelĂ©e PropriĂ©taires est créée et l’utilisateur y est ajoutĂ©. Cette Ă©quipe donnera un accĂšs admin sur l’organisation, ces permissions et le nom de l’équipe ne peuvent pas ĂȘtre modifiĂ©s.

Les admins d’org (propriĂ©taires) peuvent sĂ©lectionner la visibilitĂ© de l’organisation :

  • Publique
  • LimitĂ©e (utilisateurs connectĂ©s uniquement)
  • PrivĂ©e (membres uniquement)

Les admins d’org peuvent Ă©galement indiquer si les admins de dĂ©pĂŽt peuvent ajouter ou retirer l’accĂšs pour les Ă©quipes. Ils peuvent Ă©galement indiquer le nombre maximum de dĂ©pĂŽts.

Lors de la crĂ©ation d’une nouvelle Ă©quipe, plusieurs paramĂštres importants sont sĂ©lectionnĂ©s :

  • Il est indiquĂ© les dĂ©pĂŽts de l’org auxquels les membres de l’équipe pourront accĂ©der : dĂ©pĂŽts spĂ©cifiques (dĂ©pĂŽts oĂč l’équipe est ajoutĂ©e) ou tous.
  • Il est Ă©galement indiquĂ© si les membres peuvent crĂ©er de nouveaux dĂ©pĂŽts (le crĂ©ateur obtiendra un accĂšs admin Ă  celui-ci)
  • Les permissions que les membres du dĂ©pĂŽt auront :
  • AccĂšs Administrateur
  • AccĂšs SpĂ©cifique :

Équipes & Utilisateurs

Dans un dĂ©pĂŽt, l’admin d’org et les admins de dĂ©pĂŽt (si autorisĂ©s par l’org) peuvent gĂ©rer les rĂŽles attribuĂ©s aux collaborateurs (autres utilisateurs) et aux Ă©quipes. Il y a 3 rĂŽles possibles :

  • Administrateur
  • Écrire
  • Lire

Authentification Gitea

AccĂšs Web

Utilisation de nom d’utilisateur + mot de passe et potentiellement (et recommandĂ©) un 2FA.

Clés SSH

Vous pouvez configurer votre compte avec une ou plusieurs clĂ©s publiques permettant Ă  la clĂ© privĂ©e associĂ©e d’effectuer des actions en votre nom. http://localhost:3000/user/settings/keys

Clés GPG

Vous ne pouvez pas usurper l’identitĂ© de l’utilisateur avec ces clĂ©s, mais si vous ne l’utilisez pas, il pourrait ĂȘtre possible que vous soyez dĂ©couvert pour avoir envoyĂ© des commits sans signature.

Jetons d’accùs personnels

Vous pouvez gĂ©nĂ©rer un jeton d’accĂšs personnel pour donner Ă  une application accĂšs Ă  votre compte. Un jeton d’accĂšs personnel donne un accĂšs complet Ă  votre compte : http://localhost:3000/user/settings/applications

Applications Oauth

Tout comme les jetons d’accĂšs personnels, les applications Oauth auront un accĂšs complet Ă  votre compte et aux endroits auxquels votre compte a accĂšs car, comme indiquĂ© dans la documentation, les scopes ne sont pas encore pris en charge :

Clés de déploiement

Les clĂ©s de dĂ©ploiement peuvent avoir un accĂšs en lecture seule ou en Ă©criture au dĂ©pĂŽt, elles peuvent donc ĂȘtre intĂ©ressantes pour compromettre des dĂ©pĂŽts spĂ©cifiques.

Protections de branche

Les protections de branche sont conçues pour ne pas donner un contrĂŽle complet d’un dĂ©pĂŽt aux utilisateurs. L’objectif est de mettre plusieurs mĂ©thodes de protection avant de pouvoir Ă©crire du code dans une certaine branche.

Les protections de branche d’un dĂ©pĂŽt peuvent ĂȘtre trouvĂ©es sur https://localhost:3000/<orgname>/<reponame>/settings/branches

Note

Il n’est pas possible de dĂ©finir une protection de branche au niveau de l’organisation. Donc, toutes doivent ĂȘtre dĂ©clarĂ©es sur chaque dĂ©pĂŽt.

DiffĂ©rentes protections peuvent ĂȘtre appliquĂ©es Ă  une branche (comme Ă  master) :

  • DĂ©sactiver Push : Personne ne peut pousser vers cette branche
  • Activer Push : Quiconque ayant accĂšs peut pousser, mais pas forcer le push.
  • Liste blanche de Push restreint : Seuls les utilisateurs/Ă©quipes sĂ©lectionnĂ©s peuvent pousser vers cette branche (mais pas de force push)
  • Activer la liste blanche de fusion : Seuls les utilisateurs/Ă©quipes sur liste blanche peuvent fusionner des PRs.
  • Activer les vĂ©rifications d’état : Exiger que les vĂ©rifications d’état rĂ©ussissent avant de fusionner.
  • Exiger des approbations : Indiquer le nombre d’approbations requises avant qu’une PR puisse ĂȘtre fusionnĂ©e.
  • Restreindre les approbations aux utilisateurs sur liste blanche : Indiquer les utilisateurs/Ă©quipes qui peuvent approuver les PRs.
  • Bloquer la fusion sur des revues rejetĂ©es : Si des modifications sont demandĂ©es, elle ne peut pas ĂȘtre fusionnĂ©e (mĂȘme si les autres vĂ©rifications rĂ©ussissent)
  • Bloquer la fusion sur des demandes de rĂ©vision officielles : Si des demandes de rĂ©vision officielles existent, elle ne peut pas ĂȘtre fusionnĂ©e
  • Rejeter les approbations obsolĂštes : Lors de nouveaux commits, les anciennes approbations seront rejetĂ©es.
  • Exiger des commits signĂ©s : Les commits doivent ĂȘtre signĂ©s.
  • Bloquer la fusion si la demande de tirage est obsolĂšte
  • ModĂšles de fichiers protĂ©gĂ©s/non protĂ©gĂ©s : Indiquer les modĂšles de fichiers Ă  protĂ©ger/non protĂ©ger contre les modifications

Note

Comme vous pouvez le voir, mĂȘme si vous parvenez Ă  obtenir des identifiants d’un utilisateur, les dĂ©pĂŽts peuvent ĂȘtre protĂ©gĂ©s vous empĂȘchant de pousser du code vers master par exemple pour compromettre le pipeline CI/CD.

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks