Способы атак на NLD MOD Client

Данный материал написан исключительно в ознакомительных целях. Автор материала не поддерживает и негативно относится к взлому, изменению конфигурации или к атакам на ПО с целью поиска уязвимостей.

Автор материала предупреждает вас, что все действия вы производите на свой страх и риск.

NLD MOD Client является платной программой, активирующей скрытые функции квадрокоптеров фирмы DJI. Стоимость лицензии на данный момент составляет 40 евро. Лицензия прикрепляется к серийному номеру дрона.

На данный момент был найден 1 действующий способ бесплатной активации программы. Тестирование выполнялось на дроне Mavic2 Zoom. Способ заключается в подмене серийного номера дрона, подробное описание метода в разделе 3.

В первых двух разделах для историйности описаны безуспешные атаки на программу. В атаках участвовала самая новая (на данный момент) версия программы 2.0.1.25. При иных версиях с большей долей вероятности изменятся адреса машинного кода.

  1. Атака с помощью Сниффинга

Атака выполнялась с помощью программы WireShark, сканирующей локальную сеть компьютера. Было установлено, что при попытке активации по email/ключу программа обращается к хосту buttrocket.nolimitdronez.com с передачей, вероятно, зашифрованных данных.

Получаемый ответ так же содержит, вероятно, зашифрованные данные.

Попытки дешифрования данных и перенаправления трафика с buttrocket.nolimitdronez.com на контролируемый хост для ответа были безуспешными. Было принято решение о неприменимости сниффинга.

2. Атака с помощью дизассемблера. Правка условий активации.

Используя программу PEID определяем, что программа, вероятно, написана на Delphi.

Используя DeDe декомпилируем исходный файл NLDApp.exe.

Внимание привлекают классы TActivateDeactivateForm и TActivateSubcriptionForm с относительными путями машинного кода 004B5B98 и 004B749C.

Используя 32х битную версию программы x32dbg (адрес авторов https://x64dbg.com/ ) производим дизассемблерование NLDApp.exe.

Для этого открываем x32dbg, выбираем NLDApp.exe, x32dbg произведет дизассемблерование.

По полученным из DeDe путям отыскиваем пути 004B5B98. В ходе дебага было найдено условие на проверку ключа.

Переход осуществляется на адресе 00523AD7. x32dbg любезно показывает сценарий при переходе.

Ассемблируем данное условие пустыми машинными командами NOP

Обратите внимание, что 00523AD7 преобразован в 2 машинные команды NOP. Это происходит из-за того, что инструкция je 0x00523B4F занимает 1 слово.

Следующая попытка активации выдала успешный результат.

Дальнейшая работа NLD завершилась ошибкой. Программисту удалось исправить ошибки и зависания после активации. Однако при попытке активации FCC скрол выполнения зависал на 15%. В ходе сниффинга было установлено, что ответ сервера nolimitdronez.com выбрасывал ошибку.

Было установлено, что патчи NLD хранятся на сервере. При активации патча, видимо, происходят другие “проверки”.

3. Атака с помощью дизассемблера. Инъекция активированного серийного номера.

Для активации необходим оплаченный серийный номер.

Способ был протестирован на Mavic2 Zoom. Серийный номер донора также принадлежит Mavic2 Zoom. Автор не гарантирует успешность активации в том случае, если модели квадрокоптеров будут отличаться.

Используя x32dbg ( https://x64dbg.com ) переходим на адрес 0054F270, ставим брейкпоинт и перезапускаем программу. Видно что x32dbg остановил выполнение программы на стадии получения серийного номера.

Переходим по адресу eax+40C (нижнее окно).

Серийный номер присвоен на 00C589FC. В данном случае инъективный номер 33333311111111. Используя двойной щелчок мышью необходимо изменить серийный номер на донорский. Указание номера производится в hex (шестнадцатеричная система счисления).

После инъективания отсоединяемся от дебага, NLD.exe самостоятельно активирует себя

Попытка активации FCC + boost с чужим серийным номером прошла успешно.

На данный момент с патчем NLD дрон отлетал 4 батареи с суммарным километражом более 15 км.

Leave a comment

Your email address will not be published. Required fields are marked *