Gitea Security

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Gitea Ni Nini

Gitea ni ufumbuzi wa kuhifadhi msimbo mwepesi ulioandikwa kwa Go unaosimamiwa na jamii kwenye mwenyeji wenyewe.

Taarifa Msingi

pageBasic Gitea Information

Maabara

Ili kuendesha kipengee cha Gitea kwa kienyeji unaweza tu kuendesha chombo cha docker:

docker run -p 3000:3000 gitea/gitea

Fanya uunganisho kwenye bandari 3000 ili kupata ukurasa wa wavuti.

Unaweza pia kuendesha kwa kutumia kubernetes:

helm repo add gitea-charts https://dl.gitea.io/charts/
helm install gitea gitea-charts/gitea

Uchambuzi Usiothibitishwa

Tafadhali kumbuka kuwa kwa chaguo-msingi Gitea inaruhusu watumiaji wapya kusajili. Hii haitoi ufikiaji wa kipekee kwa watumiaji wapya juu ya repos za mashirika/watumiaji wengine, lakini mtumiaji aliyeingia anaweza kuwa na uwezo wa kuona repos au mashirika zaidi.

Utekaji wa Ndani

Kwa kesi hii, tutadhani kuwa umepata ufikiaji fulani wa akaunti ya github.

Kwa Vitambulisho vya Mtumiaji/Kuki ya Wavuti

Ikiwa kwa namna fulani tayari una vitambulisho kwa mtumiaji ndani ya shirika (au umepora kuki ya kipindi) unaweza kujiunga tu na kuangalia ruhusa unazozidi kwenye repos, kwenye timu zipi unapatikana, kuorodhesha watumiaji wengine, na jinsi repos zilivyo kingwa.

Kumbuka kuwa 2FA inaweza kutumika hivyo utaweza kupata habari hii tu ikiwa unaweza kupita ukaguzi huo.

Kumbuka kuwa ikiwa unafanikiwa kuiba kuki ya i_like_gitea (kwa sasa imeboreshwa na SameSite: Lax) unaweza kujifanya kuwa mtumiaji bila kuhitaji vitambulisho au 2FA.

Kwa Funguo ya SSH ya Mtumiaji

Gitea inaruhusu watumiaji kuweka funguo za SSH ambazo zitatumika kama njia ya uthibitishaji wa kupeleka kanuni kwa niaba yao (hakuna 2FA inatumika).

Kwa funguo hili, unaweza kufanya mabadiliko kwenye repos ambapo mtumiaji ana baadhi ya ruhusa, hata hivyo huwezi kutumia kufikia api ya gitea kuchambua mazingira. Hata hivyo, unaweza kuchambua mipangilio ya ndani ili kupata habari kuhusu repos na mtumiaji unao ufikia:

# Go to the the repository folder
# Get repo config and current user name and email
git config --list

Ikiwa mtumiaji ameboresha jina lake la mtumiaji kama jina lake la gitea unaweza kupata funguo za umma alizoweka kwenye akaunti yake kwenye https://github.com/<gitea_username>.keys, unaweza kuchunguza hii ili kuthibitisha kwamba funguo ya kibinafsi uliyoipata inaweza kutumika.

Funguo za SSH pia zinaweza kuwekwa kwenye hazina kama funguo za kupeleka. Mtu yeyote mwenye ufikiaji wa funguo hii ataweza kuzindua miradi kutoka kwenye hazina. Kawaida kwenye seva yenye funguo tofauti za kupeleka, faili ya ndani ~/.ssh/config itakupa habari kuhusu funguo ipi inahusiana.

Funguo za GPG

Kama ilivyoelezwa hapa mara nyingine inahitajika kusaini maandishi au unaweza kugunduliwa.

Chunguza kwa kujua kama mtumiaji wa sasa ana funguo yoyote kwa:

gpg --list-secret-keys --keyid-format=long

Kwa Kitufe cha Mtumiaji

Kwa maelezo zaidi kuhusu Vyeti vya Kibinafsi angalia taarifa za msingi.

Kitufe cha mtumiaji kinaweza kutumika badala ya nenosiri kwa uthibitisho dhidi ya seva ya Gitea kupitia API. Kitakua na upatikanaji kamili juu ya mtumiaji.

Kwa Maombi ya Oauth

Kwa maelezo zaidi kuhusu Maombi ya Oauth ya Gitea angalia taarifa za msingi.

Mshambuliaji anaweza kuunda Maombi ya Oauth yenye nia mbaya ili kupata data/machapisho ya watumiaji walioruhusu labda kama sehemu ya kampeni ya ughushi.

Kama ilivyoelezwa katika taarifa za msingi, maombi yatakuwa na upatikanaji kamili juu ya akaunti ya mtumiaji.

Kupuuza Ulinzi wa Matawi

Katika Github tuna vitendo vya github ambavyo kwa chaguo-msingi hupata kitufe chenye upatikanaji wa kuandika juu ya repo ambayo inaweza kutumika kwa kupuuza ulinzi wa matawi. Katika kesi hii haupo, hivyo njia za kupuuza ni mdogo zaidi. Lakini hebu tuangalie ni nini kinaweza kufanywa:

  • Wezesha Kusukuma: Ikiwa mtu yeyote mwenye upatikanaji wa kuandika anaweza kusukuma kwenye tawi, basi sukuma.

  • Orodhesha Kusukuma kwa Kikomo: Kwa njia ile ile, ikiwa wewe ni sehemu ya orodha hii sukuma kwenye tawi.

  • Wezesha Orodha ya Kufusisha: Ikiwa kuna orodha ya kufusisha, unahitaji kuwa ndani yake.

  • Hitaji idhini ni kubwa kuliko 0: Kisha... unahitaji kudhoofisha mtumiaji mwingine

  • Zuia idhini kwa walioidhinishwa: Ikiwa ni watumiaji walioorodheshwa pekee wanaweza kuidhinisha... unahitaji kudhoofisha mtumiaji mwingine ambaye yumo ndani ya orodha hiyo

  • Futa idhini zilizopitwa na wakati: Ikiwa idhini haziondolewi na machapisho mapya, unaweza kuchukua PR iliyoidhinishwa tayari kuingiza nambari yako na kuidhinisha PR.

Tafadhali kumbuka ikiwa wewe ni msimamizi wa org/repo unaweza kupuuza ulinzi.

Kuhesabu Webhooks

Webhooks wanaweza kutuma taarifa maalum za gitea mahali fulani. Unaweza kuwa na uwezo wa kutumia mawasiliano hayo. Hata hivyo, kawaida siri ambayo huwezi kupata imewekwa katika webhook ambayo itazuia watumiaji wa nje wanaojua URL ya webhook lakini sio siri kufanya utumiaji wa webhook. Lakini kwa baadhi ya matukio, watu badala ya kuweka siri mahali pake, wanaweza kuweka katika URL kama parameter, hivyo kuangalia URL kunaweza kukuruhusu kupata siri na maeneo mengine unayoweza kutumia zaidi.

Webhooks zinaweza kuwekwa kwenye repo na ngazi ya org.

Baada ya Uchimbaji

Ndani ya seva

Ikiwa kwa namna fulani ulifanikiwa kuingia ndani ya seva ambapo gitea inaendeshwa unapaswa kutafuta faili ya usanidi wa gitea. Kwa chaguo-msingi iko katika /data/gitea/conf/app.ini

Katika faili hii unaweza kupata funguo na manenosiri.

Katika njia ya gitea (kwa chaguo-msingi: /data/gitea) unaweza kupata pia taarifa muhimu kama:

  • DB ya sqlite: Ikiwa gitea haifanyi matumizi ya db ya nje itatumia db ya sqlite

  • Vikao ndani ya folda za vikao: Ukikimbia cat vikao/*/*/* unaweza kuona majina ya watumiaji walioingia (gitea pia inaweza kuokoa vikao ndani ya DB).

  • Funguo binafsi ya jwt ndani ya folda ya jwt

  • Taarifa zaidi nyeti inaweza kupatikana katika folda hii

Ikiwa uko ndani ya seva unaweza pia kutumia gitea binary kupata/kurekebisha taarifa:

  • gitea dump itachimba gitea na kuzalisha faili ya .zip

  • gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET itazalisha kitufe cha aina iliyotajwa (kudumu)

  • gitea admin user change-password --username admin --password newpassword Badilisha nenosiri

  • gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-token Unda mtumiaji mpya wa admin na pata kitufe cha upatikanaji

Jifunze kuhusu udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Last updated