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