Уничтожаем XWorm, или как унижать школьников
Судя по заголовку статьи вы уже наверное поняли что сегодня мы обсудим как взломать хост XWorm, и временно приостановить распространение вируса удалённого доступа.
Представим ситуацию: Ваш друг(по совместительству ебл#н) скинул вам вирус удалённого доступа(RAT) под видом Rust читов.
А вы же в свою очередь увидели что Rust чит весит 134кб. , вы решили наказать вашего псведо-друга.
Первым делом вы зашли WinDbg, и начали анализировать сам билдер.
При тщательной проверки вы обнаружили вызов стека: builder!XWorm.Client.isDisconnected+0xa9
- это место, где происходит разыменование нулевого указателя. На стеке видно, что регистр ecx
содержит нулевое значение, что приводит к ошибке при попытке чтения из памяти по этому адресу.
а также саму Ошибку доступа: В результате выполнения кода возникает исключение "Access violation" (код c0000005), указывающее на попытку чтения из нулевого адреса памяти (NULL pointer).
далее вы провели разбор дампов памяти и обнаружили там:
при дальнейшем анализе вы поняли что инструкция: mov eax, dword ptr [ecx]
пытается прочитать 4 байта по адресу, указанному в ecx
, который равен нулю. Это приводит к исключению.
дальше вы залезли в Стек вызовов и обнаружили там:
builder!XWorm.Client.isDisconnected+0xa9
clr!CallDescrWorkerInternal+0x34
clr!CallDescrWorkerWithHandler+0x6b
- И так далее
А теперь объясняю для тех кто в ревёрсинге разбираются также как и Asoru разбирается в коде, т.е мягко говоря плачевно:
Перед вами уязвимость без определённого CVE: XWorm Trojan - Null Pointer Derefernce DoS
Как понятно по названию уязвимости, мы будем рассматривать DoS сервера управляющего вирусом удалённого доступа - XWorm.
А теперь анализ для душнил ревёрсеров:
Исключение: Исключение "Access violation" указывает на то, что код пытался получить доступ к памяти по адресу 0x00000000, что недопустимо.Причина сбоя: Программа пытается разыменовать указатель ecx
, который в данном случае равен нулю, что и вызывает сбой.
Причина сбоя: Программа пытается разыменовать указатель ecx
, который в данном случае равен нулю, что и вызывает сбой.
Уязвимость представляет собой проблему "NULL Pointer Dereference" (разыменование нулевого указателя), которая приводит к отказу в обслуживании (DoS). Эта уязвимость затрагивает XWorm Trojan, который использует сложные функции, такие как шифровальщик и кейлоггер, и может вызывать сбои на стороне сервера управления угрозами (C2) при получении определённых данных от жертвы.
Скучный анализ закончен, переходим к практике.
Шаг 1: Подготовка
- Disassembler: IDA Pro, Ghidra.
- Decompiler: dotPeek, ILSpy (если XWorm написан на .NET).
- Отладчик: WinDbg.
- Клиент для взаимодействия: Netcat или подобные утилиты для отправки данных.
Шаг 2: Анализ уязвимости
- Запусти XWorm Trojan и проанализируй, при каких условиях возникает ошибка.
- Используй WinDbg для создания дампов памяти и анализа ошибки "Access Violation" при разыменовании нулевого указателя.
Шаг 3: Разработка эксплойта
- Используй Python с библиотеками для работы с сетевыми протоколами, например,
socket
, чтобы создать скрипт, который отправляет данные на IP-адрес и порт, используемый XWorm для управления.
сейчас выдам скрипт для л#хов которые не хотят учится сами делать хоть что-то в этой жизни:
# тут ща локалка, но ты подключи порт к которому соединён XWorm Trojan (вроде там 1741, я точно не помню) target_ip = '192.168.1.100' target_port = 12345 # порт тут задавай
# Зачатие сокета with socket.socket (socket.AF_INET, socket.SOCK_STREAM) as s: s.connect ((target_ip, target_port)) data = b’A' * 1000 # Отправляем 1000 байт данных (я бы ща пошутил про потерю пакетов в Udp, да только боюсь до вас не дойдёт) s.sendall (data)
- Запусти скрипт и наблюдай, как XWorm ахуевает на отправленные данные.
- Используй Process Monitor для наблюдения за сбоями и остановками процесса.
Короче в качестве итогов подведу: Не используйте XWorm, спите по ночам внатуре, 7 утра - а я ещё не спал, от того и столько ошибок в тексте, простите если это вышло нечитаемо, я старался >:
и подписывайтесь на канал - https://t.me/thiasoft, тут много подобного трэша.
Материал для ознакомления взят тут - https://www.exploit-db.com/exploits/51265