Interesting Groups - Linux Privesc
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Іноді, за замовчуванням (або через те, що деяке програмне забезпечення цього потребує) всередині файлу /etc/sudoers ви можете знайти деякі з цих рядків:
Це означає, що будь-який користувач, який належить до групи sudo або admin, може виконувати будь-що як sudo.
Якщо це так, щоб стати root, ви можете просто виконати:
Знайдіть всі suid бінарні файли та перевірте, чи є бінарний файл Pkexec:
Якщо ви виявите, що двійковий файл pkexec є SUID двійковим файлом і ви належите до sudo або admin, ви, ймовірно, зможете виконувати двійкові файли як sudo, використовуючи pkexec
.
Це пов'язано з тим, що зазвичай це групи всередині політики polkit. Ця політика в основному визначає, які групи можуть використовувати pkexec
. Перевірте це за допомогою:
Там ви знайдете, які групи мають право виконувати pkexec, і за замовчуванням в деяких дистрибутивах Linux з'являються групи sudo та admin.
Щоб стати root, ви можете виконати:
Якщо ви намагаєтеся виконати pkexec і отримуєте цю помилку:
Це не тому, що у вас немає дозволів, а тому, що ви не підключені без GUI. І є обхід цього питання тут: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903. Вам потрібно 2 різні ssh сесії:
Іноді, за замовчуванням у файлі /etc/sudoers ви можете знайти цей рядок:
Це означає, що будь-який користувач, який належить до групи wheel, може виконувати будь-що як sudo.
Якщо це так, щоб стати root, ви можете просто виконати:
Користувачі з групи shadow можуть читати файл /etc/shadow:
Так що, прочитайте файл і спробуйте зламати деякі хеші.
staff: Дозволяє користувачам додавати локальні модифікації до системи (/usr/local
), не потребуючи прав root (зауважте, що виконувані файли в /usr/local/bin
знаходяться в змінній PATH будь-якого користувача, і вони можуть "перекривати" виконувані файли в /bin
і /usr/bin
з тією ж назвою). Порівняйте з групою "adm", яка більше пов'язана з моніторингом/безпекою. [source]
У дистрибутивах debian змінна $PATH
показує, що /usr/local/
буде виконуватись з найвищим пріоритетом, незалежно від того, чи є ви привілейованим користувачем чи ні.
Якщо ми зможемо захопити деякі програми в /usr/local
, ми зможемо легко отримати root.
Захоплення програми run-parts
є простим способом отримати root, оскільки більшість програм запускають run-parts
, як (crontab, при вході через ssh).
or Коли нова сесія ssh входить.
Експлуатація
Ця привілегія майже еквівалентна доступу root, оскільки ви можете отримати доступ до всіх даних всередині машини.
Files:/dev/sd[a-z][1-9]
Зверніть увагу, що за допомогою debugfs ви також можете записувати файли. Наприклад, щоб скопіювати /tmp/asd1.txt
до /tmp/asd2.txt
, ви можете зробити:
Однак, якщо ви спробуєте записати файли, що належать root (наприклад, /etc/shadow
або /etc/passwd
), ви отримаєте помилку "Доступ заборонено".
Використовуючи команду w
, ви можете дізнатися хто увійшов в систему і вона покаже вихід, подібний до наступного:
tty1 означає, що користувач yossi фізично увійшов до терміналу на машині.
Група video має доступ до перегляду виходу екрану. В основному, ви можете спостерігати за екранами. Щоб це зробити, вам потрібно захопити поточне зображення на екрані в сирих даних і отримати роздільну здатність, яку використовує екран. Дані екрану можна зберегти в /dev/fb0
, а роздільну здатність цього екрану можна знайти в /sys/class/graphics/fb0/virtual_size
Щоб відкрити сиру картинку, ви можете використовувати GIMP, вибрати файл **screen.raw
** і вибрати тип файлу Сирі дані зображення:
Потім змініть Ширину та Висоту на ті, що використовуються на екрані, і перевірте різні Типи зображень (і виберіть той, який краще відображає екран):
Схоже, що за замовчуванням учасники групи root можуть мати доступ до модифікації деяких конфігураційних файлів сервісів або деяких файлів бібліотек або інших цікавих речей, які можуть бути використані для ескалації привілеїв...
Перевірте, які файли можуть модифікувати учасники root:
Ви можете підключити кореневу файлову систему хост-машини до обсягу екземпляра, тому, коли екземпляр запускається, він негайно завантажує chroot
у цей обсяг. Це фактично надає вам права root на машині.
Нарешті, якщо вам не подобаються жодні з попередніх пропозицій, або вони не працюють з якоїсь причини (docker api firewall?), ви завжди можете спробувати запустити привілейований контейнер і втекти з нього, як пояснено тут:
Docker SecurityЯкщо у вас є права на запис над сокетом docker, прочитайте цей пост про те, як підвищити привілеї, зловживаючи сокетом docker.
Зазвичай члени групи adm
мають права на читання файлів журналів, розташованих у /var/log/.
Отже, якщо ви скомпрометували користувача в цій групі, вам обов'язково слід переглянути журнали.
У OpenBSD група auth зазвичай може записувати в папки /etc/skey і /var/db/yubikey, якщо вони використовуються. Ці права можуть бути зловжиті за допомогою наступного експлойту для підвищення привілеїв до root: https://raw.githubusercontent.com/bcoles/local-exploits/master/CVE-2019-19520/openbsd-authroot
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)