Վերջերս հերթական recon-ի ժամանակ տարբեր subdomain-ներ ու endpoint-ներ էի նայում, երբ աչքովս ընկավ Firebase Storage bucket։ Սկզբում առանձնապես ուշադրություն չդարձրի, որովհետև նման bucket-ներ շատ են հանդիպում, ու շատ դեպքերում դրանց մեջ լինում են սովորական նկարներ կամ ֆայլեր, որոնք ոչ մի հետաքրքիր բան չեն տալիս։ Բայց հետաքրքրությունից որոշեցի մի քիչ էլ նայել։ Bucket-ը բացելուն պես նկատեցի, որ ոչ մի authentication չի պահանջվում։ Սովորաբար եթե ամեն ինչ նորմալ է կարգավորված, չպետք է կարողանաս ուղղակի մտնել ու տեսնել ֆայլերի ցանկը։ Էստեղ, սակայն, սերվերը վերադարձնում էր JSON պատասխան, որտեղ երևում էին bucket-ում պահվող ֆայլերը։
Սկսեցի թերթել ցուցակը ու մի քանի րոպե անց արդեն հասկացա, որ սա սովորական asset bucket չէ։
Մեջը կային Android APK-ներ, տարբեր JSON ֆայլեր, WebView-ի հետ կապված HTML ու JavaScript ֆայլեր, deep link-եր և մի շարք այլ նյութեր, որոնք սովորաբար օգնում են հասկանալ, թե ինչպես է աշխատում հավելվածը ներսից։
APK-ն
Առաջին բանը, որ ներբեռնեցի, APK-ն էր։
APK ֆայլերը շատ հետաքրքիր աղբյուր են recon-ի համար։ Շատերը մտածում են, թե APK գտնելը ավտոմատ vulnerability է, բայց իրականում ամեն ինչ կախված է նրանից, թե ինչ կա դրա ներսում։
APK-ն ուսումնասիրելիս կարելի է հասկանալ.
ինչ API-ների հետ է աշխատում հավելվածը,
ինչ domain-ներ է օգտագործում,
ինչ deep link-եր ունի,
ինչ երրորդ կողմի ծառայությունների հետ է ինտեգրված։
Այս APK-ի մեջ էլ կային տարբեր հղումներ ու կոնֆիգուրացիաներ, որոնք օգնում էին պատկերացնել հավելվածի ընդհանուր կառուցվածքը։
JSON ֆայլերը
Հետո անցա JSON ֆայլերին։
Էստեղ արդեն ավելի հետաքրքիր բաներ կային։ Մի քանի ֆայլերի մեջ երևում էին privacy workflow-ներ, deep link-եր ու տարբեր route-եր։
Խոսքի օրինակ՝ կարելի էր տեսնել, թե հավելվածը որ գործողության ժամանակ որ էջն է բացում կամ ինչ URL-ներ է օգտագործում որոշ գործընթացների համար։
Իհարկե, դա դեռ vulnerability չի նշանակում, բայց recon-ի տեսանկյունից նման ինֆորմացիան միշտ օգտակար է։
WebView-ի ֆայլերը
Bucket-ում կային նաև WebView-ի համար նախատեսված HTML ու JavaScript ֆայլեր։
Եթե երբևէ ուսումնասիրել եք mobile app-եր, երևի գիտեք, որ WebView-ները հաճախ օգտագործվում են հավելվածի ներսում web content ցույց տալու համար։
JavaScript ֆայլերը նայելուց հետո կարելի էր հասկանալ, թե ինչ գործողություններ է կատարում հավելվածը, ինչ ֆունկցիաներ կան ու ինչպես է իրականացվում navigation-ը։
Հենց նման փոքր մանրուքներն են, որ հետո օգնում են ընդհանուր պատկերը հավաքել։
Ինչու է սա կարևոր
Շատ մարդիկ cloud storage-ների վրա ուշադրություն չեն դարձնում, որովհետև դրանք առաջին հայացքից «ձանձրալի» են թվում։
Բայց իրականում bucket-ները հաճախ պահում են այնպիսի ֆայլեր, որոնք կարող են բավականին շատ բան պատմել համակարգի մասին։
Ասենք՝ APK, կոնֆիգուրացիա, backup, debug ֆայլ կամ որևէ հին build։ Դրանցից յուրաքանչյուրը կարող է նոր ուղղություն տալ հետագա ուսումնասիրությանը։
Հենց դրա համար էլ recon-ի ժամանակ ես միշտ նայում եմ նման ծառայքները։ Շատ անգամ ամենահետաքրքիր բաները ոչ թե բարդ exploit-ների արդյունքում ես գտնում, այլ ուղղակի այն պատճառով, որ ինչ-որ մեկը մոռացել է ճիշտ կարգավորել storage-ը։
Այս պատմությունը ցույց է տալիս, որ նույնիսկ սովորական Firebase bucket-ը կարող է հետաքրքիր աղբյուր լինել recon-ի համար։ Միգուցե առաջին հայացքից այնտեղ vulnerability չլինի, բայց մի քանի րոպե ուսումնասիրելուց հետո արդեն կարող ես հասկանալ, թե ինչ տեխնոլոգիաներ են օգտագործվում, ինչ կառուցվածք ունի հավելվածը և ինչ ուղղություններով արժե շարունակել հետազոտությունը։
Շատ դեպքերում հենց նման փոքր բացահայտումներից են սկսվում ավելի հետաքրքիր գտածոները։
Իսկ ամենահետաքրքիրը վերջում էր։ Այս ամենը գտնելուց հետո պատրաստեցի report-ը, հավաքեցի բոլոր POC-ery , նկարագրեցի ինչ էի գտել, ինչ ֆայլեր էին հասանելի ու ինչ ինֆորմացիա էր հնարավոր ստանալ bucket-ից։

Մի քանի օր անց ստացա պատասխանը Պարզվեց՝ինձնից առաջ արդեն մեկ ուրիշ hacker նույնպես հայտնաբերել էր նույն bucket-ը ու նույն խնդիրը։ Արդյունքում report-ը փակվեց որպես Duplicate։ Անկեղծ ասած, մի քիչ հիասթափեցնող էր, որովհետև բավական ժամանակ էի ծախսել ամբողջը ուսումնասիրելու, APK-ն քանդելու ու ամեն ինչ հավաքելու վրա։ Բայց bug bounty-ների աշխարհում սա լրիվ նորմալ բան է։ Երբեմն ժամերով ուսումնասիրում ես ինչ-որ բան, գրում report, ու վերջում պարզվում է, որ ինչ-որ մեկը քեզնից մի քանի շաբաթ կամ ամիս շուտ արդեն գտել էր նույն խնդիրը։ Ամեն դեպքում, recon-ի ընթացքում սա հետաքրքիր գտածո էր, որովհետև ևս մեկ անգամ ցույց տվեց, թե որքան ինֆորմացիա կարող է բացահայտվել ընդամենը մեկ սխալ կարգավորված cloud storage-ի միջոցով։









Comments (0)