что делать если не инжектится неверлуз
Статья [Reverse-Engineering] Лоадер NEVERLOSE
Шалом. Давно я не выпускал статью с реверсом чего-либо, связано это было с отсутствием времени и апатией, которая меня преследовала неделями.
Сегодня я решил разобрать лоадер Neverlose.cc, не знаю кто работал над ним, но парочку фишек я подчеркнул которые встретил во время отладки
Не знаю откуда появились разговоры о невозможности реверса неверлуза из-за его защиты, но это было довольно забавно читать =)
2. Лоадер ImGui
2.1. Аватарка + токен
2.2. Парсинг информации о читах
2.3. Проверка версии
2.4. Чек на валидность токена
2.5. Парсинг логина с сервера
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
3.2. Hello From Kernel-Mode!
4. Генерация HWID и соединение с сервером
4.1. Метки для генерации HWID
5. Итоги
6. Бонус
1. Введение
Ожидалось, что как и со спиртхаком и миднайтом лоадер Neverlose будет скомпилирован на x64 архитектуре с использованием asmjit. (Нет)
На деле оказалось, что это х32 приложение накрытое вмпротектом, это относится к двум файлам
2. Лоадер ImGui
Первый файл, который имеет при себе ImGui интерфейс, это своего рода «дроппер», который перед тем, как сбросить второй файл сделает 5 реквестов на сервер, чтобы взять:
(Токен юзера находится в HKEY_CURRENT_USER\Software\neverlose )
Вообще в некоторых моментах у неверлуза есть проверка на User-Agent и так просто с браузера уже зайти нельзя будет
Лоадер сам по себе не имеет при себе какой-то защиты в отличии от второго файла, который он будет дроппать для инжекта
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
У Neverlose есть два типа антидебага: Исключения и MessageBoxA с сообщение об обнаружении отладчика
Вся антиотладка неверлуза состоит из работы со структурой Process Environment Block (PEB)
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
Второй метод заключается также в работе с PEB, на этот раз он не ставит хук, а просто по дефолту смотрит дебажат ли программу
с помощью PEB->BeingDebugged. Обход состоит просто в том, чтобы поставить галку только на BeingDebugged
Пример детекта отладчика с помощью BeingDebugged:
3.2. Hello From Kernel-Mode!
Так как разработчики очень часто использовали CreateFileW для записи лога, я случайно пропалил место хранения драйвера, мониторя действия над nl.log =p Ну и как оказалось позже драйвер был вовсе накрыт вмпротектом, из-за чего невозможно провести какой-либо анализ
Разве что пытаться палить с клиента параметры DeviceIoControl. CreateFileW также будет использоваться и для создания хендла драйвера \\\\.\\nbsod, после создания хендла неверлуз пытается выгрузить свой драйвер через NtUnloadDriver, если он был загружен раннее до этого.
Сразу же после загрузки драйвера c помощью NtLoadDriver и сервиса с именем NeverBSOD драйвер удаляется полностью с пк, а сервис остаётся
Если кому интересно местоположение драйвера: C:\Windows\Temp\nbsod.sys
4. Генерация HWID и соединение с сервером
Все соединение неверлуза держиться только на сокетах, как например для проверки хвида он вызывался только в одном месте с помощью send, что позволяло создать паттерн для будущих патчей.
В основном неверлуз отправляет информацию о девайсах клиента без всякого шифрования. Итак, какие же метки для генерации хвида использует неверлуз?
4.1. Метки для генерации HWID
Первым делом он берет информацию о HID-девайсе: USB Keyboard SEM с помощью всё того же CreateFileA
016FEAF0 01A11600 «%20&hid=USB%20Keyboard%20%20SEM%0AUSB%20Keyboard%20%20SEM%0A»
Далее он будет брать информацию о количестве оперативной памяти (пример: ram=7.983875);
О версии винды: (win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202);
О видеокарте: (gpu=AMD%20Radeon%20R7%20200%20Series&)
О процессоре: (cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&)
О прозводителе биоса: (bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&)
Ну и напоследок после биоса он засунет информации о HID-девайсе, который я упомянул выше.
В целом весь реквест на сервер выглядит так:
016FEB50 01A112E8 «ram=7.983875&win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202&gpu=AMD%20Radeon%20R7%20200%20Series&cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&hid=»
Возможно поговорю по поводу реверса неверлуза в своем тг канале, подписывайтесь если шо: Colby5Covington / Back-Engineering
Вложения
colby57
K1Z4RU
K1Z4RU
sanchezmom
sanchezmom
K1Z4RU
K1Z4RU
Yammi
Yammi
L1ney
L1ney
Шалом. Давно я не выпускал статью с реверсом чего-либо, связано это было с отсутствием времени и апатией, которая меня преследовала неделями.
Сегодня я решил разобрать лоадер Neverlose.cc, не знаю кто работал над ним, но парочку фишек я подчеркнул которые встретил во время отладки
Не знаю откуда появились разговоры о невозможности реверса неверлуза из-за его защиты, но это было довольно забавно читать =)
2. Лоадер ImGui
2.1. Аватарка + токен
2.2. Парсинг информации о читах
2.3. Проверка версии
2.4. Чек на валидность токена
2.5. Парсинг логина с сервера
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
3.2. Hello From Kernel-Mode!
4. Генерация HWID и соединение с сервером
4.1. Метки для генерации HWID
5. Итоги
6. Бонус
1. Введение
Ожидалось, что как и со спиртхаком и миднайтом лоадер Neverlose будет скомпилирован на x64 архитектуре с использованием asmjit. (Нет)
На деле оказалось, что это х32 приложение накрытое вмпротектом, это относится к двум файлам
2. Лоадер ImGui
Первый файл, который имеет при себе ImGui интерфейс, это своего рода «дроппер», который перед тем, как сбросить второй файл сделает 5 реквестов на сервер, чтобы взять:
(Токен юзера находится в HKEY_CURRENT_USER\Software\neverlose )
Впринципе всё, разбирать особо нечего, конечно я успел еще глянуть проверку на подписку, но там нет ничего интересного
Скрин проверки:
Посмотреть вложение 17798
Вообще в некоторых моментах у неверлуза есть проверка на User-Agent и так просто с браузера уже зайти нельзя будет
Лоадер сам по себе не имеет при себе какой-то защиты в отличии от второго файла, который он будет дроппать для инжекта
3. Консольное приложение с инжектом
3.1. Анти-дебаг трюки и их обход
У Neverlose есть два типа антидебага: Исключения и MessageBoxA с сообщение об обнаружении отладчика
Вся антиотладка неверлуза состоит из работы со структурой Process Environment Block (PEB)
3.1.1. Детект с помощью OsBuildNumber
3.1.2. Детект с помощью BeingDebugged
Второй метод заключается также в работе с PEB, на этот раз он не ставит хук, а просто по дефолту смотрит дебажат ли программу
с помощью PEB->BeingDebugged. Обход состоит просто в том, чтобы поставить галку только на BeingDebugged
Пример детекта отладчика с помощью BeingDebugged:
3.2. Hello From Kernel-Mode!
Так как разработчики очень сильно использовали CreateFileW и использовали его постоянно для записи лога, я случайно пропалил место хранения драйвера, мониторя действия над nl.log =p Ну и как оказалось позже драйвер был вовсе накрыт вмпротектом, из-за чего невозможно провести какой-либо анализ
Разве что пытаться палить с клиента параметры DeviceIoControl. CreateFileW также будет использоваться и для создания хендла драйвера \\\\.\\nbsod, после создания хендла неверлуз пытается выгрузить свой драйвер через NtUnloadDriver, если он был загружен раннее до этого.
Сразу же после загрузки драйвера c помощью NtLoadDriver и сервиса с именем NeverBSOD драйвер удаляется полностью с пк, а сервис остаётся
Если кому интересно местоположение драйвера: C:\Windows\Temp\nbsod.sys
4. Генерация HWID и соединение с сервером
Все соединение неверлуза держиться только на сокетах, как например для проверки хвида он вызывался только в одном месте с помощью send, что позволяло создать паттерн для будущих патчей.
В основном неверлуз отправляет информацию о девайсах клиента без всякого шифрования. Итак, какие же метки для генерации хвида использует неверлуз?
4.1. Метки для генерации HWID
Первым делом он берет информацию о HID-девайсе: USB Keyboard SEM с помощью всё того же CreateFileA
Вызов CreateFileA:
Посмотреть вложение 18016
016FEAF0 01A11600 «%20&hid=USB%20Keyboard%20%20SEM%0AUSB%20Keyboard%20%20SEM%0A»
Далее он будет брать информацию о количестве оперативной памяти (пример: ram=7.983875);
О версии винды: (win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202);
О видеокарте: (gpu=AMD%20Radeon%20R7%20200%20Series&)
О процессоре: (cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&)
О прозводителе биоса: (bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&)
Ну и напоследок после биоса он засунет информации о HID-девайсе, который я упомянул выше.
В целом весь реквест на сервер выглядит так:
016FEB50 01A112E8 «ram=7.983875&win=Windows%2010%20Pro%2018362.1.amd64fre.19h1_release.190318-1202&gpu=AMD%20Radeon%20R7%20200%20Series&cpu=%20%20%20%20%20%20%20%20Intel%28R%29%20Core%28TM%29%20i3-2100%20CPU%20%40%203.10GHz&bios=Award%20Software%20International%2C%20Inc.%20F1%2002%2F11%2F2011%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20Gigabyte%20Technology%20Co.%2C%20Ltd.%20H67M-UD2H-B3%20&hid=»
Возможно поговорю по поводу реверса неверлуза в своем тг канале, подписывайтесь если шо: Colby5Covington / Back-Engineering