Gitea Security
Last updated
Last updated
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Gitea ni ufumbuzi wa mwenyeji wa jamii unaosimamiwa kwa urahisi 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 kujiandikisha. 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 kitambulisho cha 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 repos zimewezeshwaje kulindwa.
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 kitambulisho 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 hifadhi 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 mabadiliko 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 kibali za watumiaji ambao wanaweza kuzikubali kama sehemu ya kampeni ya udukuzi.
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:
Wezesha 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.
Wezesha Orodha ya Merging: Ikiwa kuna orodha ya merging, 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 ambaye yuko kwenye orodha hiyo.
Futa idhini za zamani: Ikiwa idhini haziondolewa na commits mpya, unaweza kuiba PR ambayo tayari imeidhinishwa 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 kuendeleza 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 wa gitea. Kwa default inapatikana 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 ya 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 iliyoashiriwa (uhifadhi).
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)