GCP - Artifact Registry Persistence
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)
Для отримання додаткової інформації про Artifact Registry перегляньте:
GCP - Artifact Registry EnumЩо станеться, якщо віддалені та стандартні репозиторії змішуються в віртуальному і пакет існує в обох?
Використовується той, у якого найвищий пріоритет, встановлений у віртуальному репозиторії
Якщо пріоритет однаковий:
Якщо версія однакова, використовується ім'я політики в алфавітному порядку першим у віртуальному репозиторії
Якщо ні, використовується найвища версія
Отже, можливо зловживати найвищою версією (dependency confusion) у публічному реєстрі пакетів, якщо віддалений репозиторій має вищий або той же пріоритет
Ця техніка може бути корисною для постійності та неавтентифікованого доступу, оскільки для зловживання не потрібно нічого, крім знати назву бібліотеки, збереженої в Artifact Registry, і створити ту ж бібліотеку в публічному репозиторії (наприклад, PyPi для python) з вищою версією.
Для постійності потрібно виконати такі кроки:
Вимоги: Повинен існувати віртуальний репозиторій і використовуватися, повинен використовуватися внутрішній пакет з назвою, яка не існує в публічному репозиторії.
Створіть віддалений репозиторій, якщо його не існує
Додайте віддалений репозиторій до віртуального репозиторію
Відредагуйте політики віртуального реєстру, щоб надати вищий пріоритет (або той же) віддаленому репозиторію. Запустіть щось на зразок:
Завантажте легітимний пакет, додайте свій шкідливий код і зареєструйте його в публічному репозиторії з тією ж версією. Кожного разу, коли розробник його встановлює, він встановлює ваш!
Для отримання додаткової інформації про dependency confusion перегляньте:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)