GCP - Storage Enum

рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

рднрдВрдбрд╛рд░рдг

рдЧреВрдЧрд▓ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (GCP) рднрдВрдбрд╛рд░рдг рдПрдХ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рднрдВрдбрд╛рд░рдг рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЕрдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдЯрд┐рдХрд╛рдК рдФрд░ рдЙрдкрд▓рдмреНрдз рдСрдмреНрдЬреЗрдХреНрдЯ рднрдВрдбрд╛рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рджрд░реНрд╢рди, рдЙрдкрд▓рдмреНрдзрддрд╛, рдФрд░ рд▓рд╛рдЧрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреИрдВрдбрд░реНрдб, рдирд┐рдпрд░рд▓рд╛рдЗрди, рдХреЛрд▓реНрдбрд▓рд╛рдЗрди, рдФрд░ рдЖрд░реНрдХрд╛рдЗрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред GCP рднрдВрдбрд╛рд░рдг рднреА рдЬреАрд╡рдирдХрд╛рд▓ рдиреАрддрд┐рдпрд╛рдБ, рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рдЬреИрд╕реА рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдврдВрдЧ рд╕реЗ рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗред

рдмрдХреЗрдЯ рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, 2 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдпрд╛ рдмрд╣реБ-рдХреНрд╖реЗрддреНрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рднрдВрдбрд╛рд░рдг рдкреНрд░рдХрд╛рд░

  • рд╕реНрдЯреИрдВрдбрд░реНрдб рднрдВрдбрд╛рд░рдг: рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рднрдВрдбрд╛рд░рдг рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди, рдХрдо рд▓реЗрдЯреЗрдВрд╕реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ, рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ, рдФрд░ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

  • рдирд┐рдпрд░рд▓рд╛рдЗрди рднрдВрдбрд╛рд░рдг: рдпрд╣ рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рд╕реНрдЯреИрдВрдбрд░реНрдб рднрдВрдбрд╛рд░рдг рд╕реЗ рдХрдо рднрдВрдбрд╛рд░рдг рд▓рд╛рдЧрдд рдФрд░ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рд▓рд╛рдЧрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ 30 рджрд┐рдиреЛрдВ рдХреА рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░рдг рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдЕрдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдпрд╣ рдмреИрдХрдЕрдк рдФрд░ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИред

  • рдХреЛрд▓реНрдбрд▓рд╛рдЗрди рднрдВрдбрд╛рд░рдг: рдпрд╣ рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХреА рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░рдг рдЕрд╡рдзрд┐ 90 рджрд┐рди рд╣реИред рдпрд╣ рдирд┐рдпрд░рд▓рд╛рдЗрди рднрдВрдбрд╛рд░рдг рд╕реЗ рдХрдо рднрдВрдбрд╛рд░рдг рд▓рд╛рдЧрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рдеред

  • рдЖрд░реНрдХрд╛рдЗрд╡ рднрдВрдбрд╛рд░рдг: рдпрд╣ рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдардВрдбреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╣реБрдд рд╣реА рдЕрдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░рдг рдЕрд╡рдзрд┐ 365 рджрд┐рди рд╣реИред рдпрд╣ рд╕рднреА GCP рднрдВрдбрд╛рд░рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо рднрдВрдбрд╛рд░рдг рд▓рд╛рдЧрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рдеред рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░рд┐рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬреЛ рдирд┐рдпрдореЛрдВ рдпрд╛ рд╡рд┐рдирд┐рдпрд╛рдордХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

  • рдСрдЯреЛрдХреНрд▓рд╛рд╕: рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЖрдк рдбреЗрдЯрд╛ рддрдХ рдХрд┐рддрдиреА рдмрд╛рд░ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ рддреЛ рдЖрдк рдСрдЯреЛрдХреНрд▓рд╛рд╕ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ GCP рдЖрдкрдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рджреЗрдЧрд╛ред

рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЛ IAM рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ACL рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ IAM (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 90 рджрд┐рди рдмреАрдд рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрдХреЗрдЯ рдХреЗ рд▓рд┐рдП ACL рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рд╕рдВрд╕реНрдХрд░рдгрди

рд╕рдВрд╕реНрдХрд░рдгрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдмрдХреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдЧрд╛ред рдЖрдк рдХрд┐рддрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЖрдк рдЧреИрд░-рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг) рдХреЛ рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рдЬреАрд╡рд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рд╕реНрдЯреИрдВрдбрд░реНрдб рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП 7 рджрд┐рдиред

рдЧреИрд░-рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд░рдЦреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЧреИрд░-рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА ACL рднреА рд░рдЦреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рднрд┐рдиреНрди ACL рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬрд╛рдПрдВред

рд░рд┐рдЯреЗрдВрд╢рди рдиреАрддрд┐

рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рднрдВрдбрд╛рд░рдг рдХреЗ рднреАрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯреЛрдВ рдХреЛ рдХрд┐рддрдиреЗ рд╕рдордп рддрдХ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА)ред рд╕рдВрд╕реНрдХрд░рдгрди рдпрд╛ рд░рд┐рдЯреЗрдВрд╢рди рдиреАрддрд┐ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЧреВрдЧрд▓ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ KMS рд╕реЗ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ

рдмрд╛рд╣реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (GCP рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд┐рдП рдЧрдП рд╣реЛрдВ рдпрд╛ рди рд╣реЛрдВ) рдХреЛ рдмрдХреЗрдЯ рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рджреЗрдирд╛ рд╕рдВрднрд╡ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм рдПрдХ рдмрдХреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрдХреЗрдЯ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрдХреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ URL рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реИ https://storage.googleapis.com/<bucket-name> рдпрд╛ https://<bucket_name>.storage.googleapis.com (рджреЛрдиреЛрдВ рдорд╛рдиреНрдп рд╣реИрдВ)ред

HMAC рдХреБрдВрдЬрд┐рдпрд╛рдБ

HMAC рдХреБрдВрдЬреА рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕реЗ **рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдпрд╛ рдЙрдк

# List all storage buckets in project
gsutil ls

# Get each bucket configuration (protections, CLs, times, configs...)
gsutil ls -L

# List contents of a specific bucket
gsutil ls gs://bucket-name/
gsutil ls -r gs://bucket-name/ # Recursive
gsutil ls -a gs://bucket-name/ # Get ALL versions of objects

# Cat the context of a file without copying it locally
gsutil cat 'gs://bucket-name/folder/object'
gsutil cat 'gs://bucket-name/folder/object#<num>' # cat specific version

# Copy an object from the bucket to your local storage for review
gsutil cp gs://bucket-name/folder/object ~/

# List using a raw OAuth token
## Useful because "CLOUDSDK_AUTH_ACCESS_TOKEN" and "gcloud config set auth/access_token_file" doesn't work with gsutil
curl -H "Authorization: Bearer $TOKEN" "https://storage.googleapis.com/storage/v1/b/<storage-name>/o"
# Download file content from bucket
curl -H "Authorization: Bearer $TOKEN" "https://storage.googleapis.com/storage/v1/b/supportstorage-58249/o/flag.txt?alt=media" --output -

# Enumerate HMAC keys
gsutil hmac list

# Get permissions
gcloud storage buckets get-iam-policy gs://bucket-name/
gcloud storage objects get-iam-policy gs://bucket-name/folder/object

рдпрджрд┐ рдЖрдкрдХреЛ рдмрдХреЗрдЯреНрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдлрд┐рд░ рднреА рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рддреЛ, рдЕрдм рдЬрдм рдЖрдк рдмрдХреЗрдЯреНрд╕ рдХреЗ рдирд╛рдо рдХреА рд╢реИрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

for i in $(cat wordlist.txt); do gsutil ls -r gs://"$i"; done

рдЬрд╛рдирдХрд╛рд░реА storage.objects.list рдФрд░ storage.objects.get рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдмрд╛рд▓реНрдЯ рдореЗрдВ рд╕рднреА рдлреЛрд▓реНрдбрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХреЗрдВред рдЖрдк рдЗрд╕ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import requests
import xml.etree.ElementTree as ET

def list_bucket_objects(bucket_name, prefix='', marker=None):
url = f"https://storage.googleapis.com/{bucket_name}?prefix={prefix}"
if marker:
url += f"&marker={marker}"
response = requests.get(url)
xml_data = response.content
root = ET.fromstring(xml_data)
ns = {'ns': 'http://doc.s3.amazonaws.com/2006-03-01'}
for contents in root.findall('.//ns:Contents', namespaces=ns):
key = contents.find('ns:Key', namespaces=ns).text
print(key)
next_marker = root.find('ns:NextMarker', namespaces=ns)
if next_marker is not None:
next_marker_value = next_marker.text
list_bucket_objects(bucket_name, prefix, next_marker_value)

list_bucket_objects('<storage-name>')

рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдиреНрдирдпрди

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЙрдиреНрдирдпрди рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░рдг рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

GCP - Storage Privesc

рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдЬрд╛рдВрдЪ

GCP - Storage Unauthenticated Enum

рдкреЛрд╕реНрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрдЗрдЯреЗрд╢рди

GCP - Storage Post Exploitation

рд╕реНрдерд┐рд░рддрд╛

GCP - Storage Persistence
рд╣реИрдХрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated