May 10, 2020

Реверс малвари на примере njRAT

Дисклеймер:Мы не несём ответственности за ваши действия! Статья предоставлена в ознакомительных целях.


Предисловие:

Трояны семейства njRAT написаны на VB.NET и зависимы от платформы .NET .Наиболее распространенной версией njRAT на данный момент является njRAT v 0.7d Green Edition.Однако встречаются и другие более сложные модификации...

.NET-ные программы легко декомпилируются в исходный код, однако опытные разработчики малвари используют различные обфускаторы типа .NET Reactor, Confuser и других...


План действий:

1 .Определить, действительно ли это njRAT

2. Определить, закриптован/упакован ли билд

3. Декомпилировать его в VB.NET код

4. Поискать в строках IP-адрес создателя билда


Шаг 1: Детектим njRAT:

Зальем наш семпл на вирустотал:

https://www.virustotal.com/gui/file/2fa33d2b36920f18d6214ee550347720a4a03389624c5b8869ab265a1ad1c537/detection


Большинство антивирусов говорят нам , что это Backdoor.NJRAT / MSIL.Bladabindi


Окей, теперь посмотрим, что нам скажет DiE

Важно! При исследовании малвари всегда меняйте расширение чтобы случайно не запустить файл

Как видно на скрине, файл скомпилирован при помощи VB.NET компилера и не накрыт каким либо протектором.Значит можно приступать к декомпиляции...

Шаг 2: Декомпилируем бинарник

Для декомпиляции .NET-ных бинарников существует множество программ.Самые известные - ILSpy и dnSpy.


Я буду использовать dnSpy, так как он поддерживает VB.NET (родной язык для этого троянца).


Открываем бинарник и видим вот такую картину:

Первым делом надо найти точку входа:

Как видно из скрина, происходит вызов функции ko из класса OK

Рассмотрим функцию ko подробнее:

Данная функция берет переменные из основного класса OK.У класса OK есть конструктор, в котором объявляются все переменные, рассмотрим теперь его.

Бинго!

Мы нашли айпи и открытый порт владельца njRAT.С этими данными можно сделать что угодно...


Выводы:

Обычно вирусописатели используют ряд техник для противодействия исследованиям своих творений.Это может быть обфускация, скрытие вызовов WinAPI, шифрование памяти... но в этом случае все гораздо проще, и нам даже не пришлось включать отладчик.