Gitea Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Gitea ni ufumbuzi wa mwenyeji wa jamii wa usimamizi wa mwanga wa kuhifadhi msimbo ulioandikwa kwa Go.
Ili kuendesha mfano wa Gitea kwa ndani unaweza tu kuendesha kontena la docker:
Connect to port 3000 to access the web page.
You could also run it with kubernetes:
Repos za umma: http://localhost:3000/explore/repos
Watumiaji waliosajiliwa: http://localhost:3000/explore/users
Mashirika yaliyojregistriwa: http://localhost:3000/explore/organizations
Kumbuka kwamba kwa kawaida Gitea inaruhusu watumiaji wapya kujisajili. Hii haitatoa ufikiaji wa kuvutia kwa watumiaji wapya juu ya repos za mashirika/watumiaji wengine, lakini mtumiaji aliyeingia anaweza kuwa na uwezo wa kuangalia repos au mashirika zaidi.
Kwa hali hii tunaenda kudhani kwamba umepata ufikiaji wa akaunti ya github.
Ikiwa kwa namna fulani tayari una misingi ya mtumiaji ndani ya shirika (au umepora keki ya kikao) unaweza kuingia tu na kuangalia ni idhana gani unazo juu ya repos, katika timu zipi ulizo, orodhesha watumiaji wengine, na jinsi repos zinavyolindwa.
Kumbuka kwamba 2FA inaweza kutumika hivyo utaweza kufikia taarifa hii tu ikiwa unaweza pia kupita ukaguzi huo.
Kumbuka kwamba ikiwa utafanikiwa kupora keki ya i_like_gitea
(sasa imewekwa na SameSite: Lax) unaweza kujifanya kuwa mtumiaji bila kuhitaji misingi au 2FA.
Gitea inaruhusu watumiaji kuweka funguo za SSH ambazo zitatumika kama njia ya uthibitisho ya kupeleka msimbo kwa niaba yao (hakuna 2FA inayotumika).
Kwa funguo hii unaweza kufanya mabadiliko katika repos ambapo mtumiaji ana baadhi ya mamlaka, hata hivyo huwezi kuitumia kufikia api ya gitea ili kuainisha mazingira. Hata hivyo, unaweza kuainisha mipangilio ya ndani ili kupata taarifa kuhusu repos na mtumiaji ulionao ufikiaji:
Ikiwa mtumiaji ameweka jina lake la mtumiaji kama jina lake la gitea unaweza kufikia funguo za umma alizoweka katika akaunti yake kwenye https://github.com/<gitea_username>.keys, unaweza kuangalia hili kuthibitisha kuwa funguo binafsi ulizozipata zinaweza kutumika.
Funguo za SSH pia zinaweza kuwekwa katika hifadhi kama funguo za kutekeleza. Mtu yeyote mwenye ufikiaji wa funguo hii ataweza kuanzisha miradi kutoka kwenye hifadhi. Kawaida katika seva yenye funguo tofauti za kutekeleza, faili ya ndani ~/.ssh/config
itakupa taarifa kuhusu funguo inayohusiana.
Kama ilivyoelezwa hapa wakati mwingine inahitajika kusaini ahadi au unaweza kugunduliwa.
Angalia kwa ndani ikiwa mtumiaji wa sasa ana funguo yoyote kwa:
Kwa utangulizi kuhusu Token za Mtumiaji angalia taarifa za msingi.
Token ya mtumiaji inaweza kutumika badala ya nenosiri ili kuhakiki dhidi ya seva ya Gitea kupitia API. itakuwa na ufikiaji kamili juu ya mtumiaji.
Kwa utangulizi kuhusu Programu za Oauth za Gitea angalia taarifa za msingi.
Mshambuliaji anaweza kuunda Programu ya Oauth yenye uharibifu ili kupata data/hatua za kipaumbele za watumiaji wanaoweza kuzikubali kama sehemu ya kampeni ya uvuvi.
Kama ilivyoelezwa katika taarifa za msingi, programu itakuwa na ufikiaji kamili juu ya akaunti ya mtumiaji.
Katika Github tuna github actions ambazo kwa default hupata token yenye ufikiaji wa kuandika juu ya repo ambayo inaweza kutumika kupita ulinzi wa tawi. Katika kesi hii hiyo haipo, hivyo kupita ni mdogo zaidi. Lakini hebu tuangalie kile kinachoweza kufanywa:
Washa Push: Ikiwa mtu yeyote mwenye ufikiaji wa kuandika anaweza kusukuma kwenye tawi, sukuma tu.
Orodha ya Pus h iliyozuiwa: Kwa njia ile ile, ikiwa wewe ni sehemu ya orodha hii sukuma kwenye tawi.
Washa Orodha ya Mchanganyiko: Ikiwa kuna orodha ya mchanganyiko, unahitaji kuwa ndani yake
Hitaji idhini ni kubwa kuliko 0: Kisha... unahitaji kumaliza mtumiaji mwingine
Zuia idhini kwa watumiaji walioko kwenye orodha: Ikiwa ni watumiaji walioko kwenye orodha pekee wanaweza kuidhinisha... unahitaji kumaliza mtumiaji mwingine aliye ndani ya orodha hiyo
Futa idhini za zamani: Ikiwa idhini haziondolewa na commits mpya, unaweza kuiba PR iliyothibitishwa tayari ili kuingiza msimbo wako na kuunganisha PR.
Kumbuka kwamba ikiwa wewe ni admin wa org/repo unaweza kupita ulinzi.
Webhooks zinaweza kutuma taarifa maalum za gitea mahali fulani. Unaweza kuwa na uwezo wa kuitumia mawasiliano hayo. Hata hivyo, kawaida siri ambayo huwezi kuipata imewekwa katika webhook ambayo itazuia watumiaji wa nje wanaojua URL ya webhook lakini si siri kuweza kuitumia webhook hiyo. Lakini katika matukio mengine, watu badala ya kuweka siri mahali pake, wana iwekwa kwenye URL kama parameter, hivyo kuangalia URLs kunaweza kukuruhusu kupata siri na maeneo mengine ambayo unaweza kuitumia zaidi.
Webhooks zinaweza kuwekwa kwenye repo na kwenye ngazi ya org.
Ikiwa kwa namna fulani umeweza kuingia ndani ya seva ambapo gitea inafanya kazi unapaswa kutafuta faili ya usanidi ya gitea. Kwa default iko katika /data/gitea/conf/app.ini
Katika faili hii unaweza kupata funguo na nenosiri.
Katika njia ya gitea (kwa default: /data/gitea) unaweza pia kupata taarifa za kuvutia kama:
DB ya sqlite: Ikiwa gitea haitumii db ya nje itatumia db ya sqlite
sessions ndani ya folda za sessions: Ukikimbia cat sessions/*/*/*
unaweza kuona majina ya watumiaji walioingia (gitea inaweza pia kuhifadhi sessions ndani ya DB).
jwt private key ndani ya folda ya jwt
Taarifa zaidi nyeti zinaweza kupatikana katika folda hii
Ikiwa uko ndani ya seva unaweza pia kutumia gitea
binary kupata/kubadilisha taarifa:
gitea dump
itatoa gitea na kuunda faili .zip
gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRET
itaunda token ya aina iliyoonyeshwa (kuhifadhi)
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 token ya ufikiaji
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)