АЗКСоВВ лаб 3
.docxМинистерство цифрового развития, связи И массовых коммуникаций российской федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ
Кафедра «Математическая кибернетика и информационные технологии»
(МКиИТ)
Лабораторная работа №3
по дисциплине «Анализ защищенности корпоративных сетей от внешних вторжений»
Выполнила:
Студент группы: БВТ2151
ФИО:
Проверил:
Москва, 2025
Лабораторная работа № 3
Техника повышения привилегий
Цель работы - узнать, где хранятся пароли, а также научиться извлекать хеши паролей из памяти машины Linux.
1.1 Постановка задачи
Извлечение хешей паролей из памяти машины Linux;
Уязвимость Dirty COW;
John the Ripper.
1.2 Теоретические сведения
Техника повышения привилегий – это процесс получения злоумышленником root-доступа при помощи уязвимости в операционной системе.
Уязвимость Dirty COW – это уязвимость, позволяющая злоумышленнику, не имеющему прав root, редактировать любой файл, эксплуатируя ошибку, связанную с тем, как ядро Linux управляет памятью. С помощью этой уязвимости злоумышленник может создать нового суперпользователя, редактируя файл /etc/shadow.
Уязвимость Dirty COW заставляет операционную систему позволить пользователю редактировать файл, которым он не владеет, злоупотребляя механизмом копирования при записи (COW). Это достигается за счёт эксплуатации состояния гонки в ядре Linux. Состояние гонки возникает в тех случаях, когда два или более потока пытаются получить доступ к переменной, а работа программы зависит от порядка завершения этих потоков. Злоумышленники могут воспользоваться этим состоянием, выполняя множество чувствительных к такому порядку операций вплоть до достижения нужного результата.
John the Ripper – это свободная программа, полезный инструмент для расшифровки нескольких типов хешей и восстановления паролей. John the Ripper используется для аудита безопасности, проверки надежности паролей и обнаружения слабых паролей.
ХОД РАБОТЫ
ОС Linux хранит имена пользователей в файле /etc/passwd, который может прочитать любой пользователь системы. Из этого файла можно извлечь полезную информацию, например, требуется ли пароль для получения доступа к той или иной учетной записи. Выполним команду cat /etc/passwd, чтобы просмотреть содержимое данного файла.
Рис. 1 – Вывод содержимого файла /etc/passwd
ОС Linux хранит сгенерированные алгоритмом HMAC-SHA256 хеши паролей в файле /etc/shadow. Злоумышленник может извлечь хеши паролей, прочитав данный файл. Для прочтения файла /etc/shadow необходимо обладать правами суперпользователя (root). Выполним команду ls с параметром –l, чтобы проверить права доступа к файлу.
Рис. 2 – Просмотр прав доступа к файлу /etc/shadow
Заданные для файла /etc/shadow/ разрешения указывают на то, что прочитать его могут лишь владелец (root) и группа (shadow), а осуществлять запись в него может только пользователь root.
Выполним технику повышения привилегий на сервере Metasploitable, используя уязвимость Dirty COW, чтобы получить доступ к файлу /etc/shadow. Для выявления уязвимости сервера войдём в систему и выполним команду whoami, чтобы получить имя текущего пользователя, а также команду uname -a для выяснения текущей версии Linux.
Рис. 3 – Получение имени текущего пользователя и выяснение текущей версии Linux
Выяснив версию ОС Linux, используемую сервером, применим инструмент searchsploit для поиска свойственных этой версии уязвимостей:
Рис. 4 – Выявление уязвимостей сервера
Будем использовать эксплойт Dirty COW PTRACE, так как он стабильно функционирует в версии ОС Linux, работающей на сервере Metasploitable и код этого эксплойта доступен на виртуальной машине Kali Linux. Укажем номер эксплойта 40839.c и воспользуемся параметром -p, чтобы выяснить путь к его коду с помощью инструмента searchsploit.
Рис. 5 – Вывод пути к коду эксплойта 40839.c
Скопируем код эксплойта на машину Metasploitable.
Рис. 6 – Копирование кода эксплойта на машину Metasploitable
Запустим эксплойт на машине Metasploitable и создадим нового пользователя root (firefart) с паролем abc123.
Рис. 7 – Запуск эксплойта, создания нового суперпользователя
Переключимся на нового созданного суперполльзователя firefart и прочитаем файл /etc/shadow, содержащий хеши паролей.
Рис. 8 – Переключение на созданного суперпользователя
Рис. 9 – Выполнение команды cat /etc/shadow, прочтение файла, содержащего хеши паролей
Расшифруем хеши паролей с помощью с помощью инструмента Kali – John the Ripper. Клонируем Git-репозиторий SecLists на рабочий стол Kali Linux.
Рис. 9 – Клонирование Git-репозитория SecLists на рабочий стол Kali
Создадим папку HashCrack для хранения файла hashes.txt с хешем пароля. Взломаем с помощью программы John the Ripper хеш, который сохранён в текстовом файле hashes.txt. Запустим процесс взлома и по завершении просмотрим список взломанных паролей.
Рис. 10 – Запуск процесса взлома и просмотр списка успешно взломанных паролей
ВЫВОД
В данной лабораторной работе я узнала где и как хранятся пароли в OC Linux, а также научилась извлекать хеши паролей из памяти машины Linux. В ходе выполнения работы я успешно извлекла хеши паролей из памяти машины Linux, изучила и воспользовалась уязвимостью Dirty COW с целью повышения привилегий на сервере Metasploitable и использовала специальную программу John the Ripper для расшифровки хешей и восстановления паролей.
Продемонстрированная уязвимость может произвести сильное влияние на защищённость корпоративных сетей, ведь если злоумышленник получит права суперпользователя он может нанести значительный вред системе и скомпрометировать конфиденциальные данные пользователей.
ОТВЕТЫ НА КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Где и как хранятся пароли в OC Linux?
Ответ: Пароли хранятся в виде сгенерированных алгоритмом HMAC-SHA256 хешей в файле /etc/shadow и не хранятся в виде открытого текста в OC Linux.
2. Объясните, как работает уязвимость "повышение привилегий"?
Ответ: Уязвимость "повышение привилегий" позволяет пользователю редактировать файл, которым он не владеет за счёт эксплуатации состояния гонки в ядре Linux. С помощью этой уязвимости злоумышленник может создать нового суперпользователя, редактируя файл /etc/shadow, в следствии чего он получает root-доступ.
3. Почему считается безопасным хранить пароли в хешированном виде?
Ответ: Хеш довольно трудно преобразовать обратно в исходный пароль. Хранение паролей в хешированном виде значительно снижает риск компрометации пользовательских данных при утечках и затрудняет злоумышленнику восстановление исходных паролей.
4. Каким требованиям должен удовлетворять безопасный пароль?
Ответ: Безопасный пароль должен быть длинным, сложным, должен содержать различные символы – заглавные и строчные буквы, цифры и специальные символы. Пароль должен быть уникальным, нужно избегать использования личной информации. Также рекомендуется регулярно менять пароль.
5. Как происходит авторизация пользователя в системе Linux?
Ответ: Когда пользователь авторизуется в системе, OC Linux хеширует его пароль, сравнивает результат с сохраненным ранее хешем и в случае их совпадения предоставляет пользователю доступ.
