Добро пожаловать обратно, мои начинающие аналитики вредоносных программ!
В моих вводных руководствах по реверс-инжинирингу вредоносных программ (части 1–5) мы представили множество новых концепций. Теперь пришло время применить некоторые из них на практике и приступить к анализу образцов вредоносного ПО!
В первой части этой серии я указывал на два основных способа анализа вредоносных программ: (1) на уровне кода и (2) на уровне системы, или поведенческом. Как правило, в любом деле следует начинать с самого простого метода (иначе можно потратить много времени, сил и ресурсов, когда это не нужно), и то же самое относится к анализу вредоносных программ. Системный, или поведенческий, анализ гораздо проще анализа на уровне кода, поэтому давайте начнём с него.
В этом типе анализа нас больше интересует, что делает вредоносная программа . Вносит ли она какие-либо (1) изменения в реестр, (2) какие процессы она запускает, (3) какие файлы запускает и (4) какие сетевые соединения она устанавливает? Эта легкодоступная информация может многое сказать.
В этом руководстве мы будем использовать простую вредоносную программу, известную как троян svrcp.exe (за неимением лучшего названия). Разные поставщики программного обеспечения называют его по-разному, например, IRC.SRVCP.Trojan, TROJ_SRVVP или Troj/Narnar.
Его часто используют для начального анализа вредоносного ПО из-за его относительной простоты. Этот троян был впервые обнаружен около 2000 года и мог управляться через личные сообщения по IRC-каналу. Вероятно, он использовался для распределённого взлома паролей и/или DDoS-атак.
Мы воспользуемся им здесь, чтобы познакомить вас с некоторыми вводными концепциями поведенческого/системного анализа вредоносных программ.
Шаг №1: Создайте безопасное рабочее пространство
Первый шаг — создание безопасной среды. Я буду использовать VirtualBox с установленной Windows 7. Я убедился, что сетевые подключения настроены на «Только хост» или «Внутренняя сеть», чтобы вредоносная программа не могла подключиться за пределами моей изолированной среды. Перед началом работы обязательно сделайте снимок системы, чтобы можно было вернуть её в исходное состояние после запуска вредоносной программы.
Шаг №2 Установка SysInternals
Затем, если вы ещё этого не сделали, установите sysinternals от Microsoft на свою изолированную систему (для этого, вероятно, потребуется настроить NAT для изолированной системы, но не забудьте после этого изолировать её от интернета). Вы можете скачать sysinternals здесь. (Подробнее о sysinternals см. в моём руководстве «Цифровая криминалистика», часть 8 ).
Шаг №3: Запустите вредоносное ПО
После установки каталога svrcp.exe в изолированную систему щелкните правой кнопкой мыши и запустите от имени администратора файл srvcp.exe.
После этого откройте диспетчер задач, чтобы убедиться, что вредоносная программа запущена.
Шаг №4: Проверьте реестр на предмет сохранения
Если вредоносная программа должна быть постоянной (перезагружаться при каждой перезагрузке системы), ей, скорее всего, потребуется изменить реестр в одном из многочисленных ключей, которые инициируют программное обеспечение при загрузке (для получения дополнительной информации о ключах реестра см. мою статью о цифровой криминалистике, часть 5: Поиск улик в реестре ).
В этом случае, поскольку svrcp.exe изначально был разработан для среды Win NT, он пытается добавить ключ реестра в:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft|WindowsCurrentVersionRun
Он добавляет запись с именем Service Profiler и ключ srvcp.exe , который будет запускать вредоносное ПО при каждой загрузке системы.
Если открыть Process Monitor и отфильтровать процесс по имени (svrcp.exe), можно увидеть все действия, которые пытается выполнить вредоносная программа. Прокрутив страницу немного вниз, можно увидеть, как процесс обращается к разделу HKLM и устанавливает значение в разделе HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun, что делает вредоносную программу устойчивой.
Если вернуться в Process Explorer и убрать фильтр для svrcp.exe, мы снова увидим все процессы. Обратите внимание, что svrcp.exe работает под PID (идентификатором процесса) 67988.
Теперь щелкнем правой кнопкой мыши по процессу svrcp.exe и выберем «Свойства».
Вы должны увидеть экран, как показано ниже. Давайте нажмём на вкладку «Строки» в правом верхнем углу.
Вкладка «Строки» инициирует поиск распознаваемых строк (ASCII-текста) в коде. Очень часто среди строк можно найти комментарии и другую полезную информацию. Как мы увидим далее в этих уроках, эти строки использовались для расшифровки части кода и паролей.
Шаг №7: Просмотр TCP-сокетов и соединений с помощью TCPView
Чтобы просмотреть все TCP-сокеты и соединения в нашей тестовой системе Windows 7, откройте TCPView из пакета sysinternals. Мы снова видим, что процесс svrcp.exe открыл TCP-сокет, но ещё не установил соединение. Если бы мы разрешили изолированной системе подключиться к Интернету, этот процесс обратился бы к своему командному серверу через этот процесс.
Шаг №8: Откройте gus.ini
Теперь откроем файл gus.ini, который находился в том же каталоге, что и наш исполняемый файл. Этот файл содержит ключевую информацию, которую вредоносная программа использует для входа на свой командный сервер. Обратите внимание, что она использует никнейм «mikey», канал «mikag soup» и затем пытается подключиться к нескольким IRC-серверам через порт 6666 (например, irc.mcs.net:6666 ).
Подключившись к IRC-серверу, злоумышленник может отправлять команды вредоносному ПО посредством личных сообщений, тем самым управляя вредоносным ПО и зараженной системой.
Заключение
Анализ вредоносных программ — один из самых ценных навыков в области цифровой криминалистики. Он требует глубокого понимания процессов Windows и некоторых навыков работы с ассемблером. Первый и самый простой шаг в анализе вредоносного ПО — просто наблюдать за его поведением. По его поведению можно многое понять о намерениях злоумышленника.
В следующем уроке мы копнем немного глубже и рассмотрим эту вредоносную программу на уровне кода.
В моих вводных руководствах по реверс-инжинирингу вредоносных программ (части 1–5) мы представили множество новых концепций. Теперь пришло время применить некоторые из них на практике и приступить к анализу образцов вредоносного ПО!
В первой части этой серии я указывал на два основных способа анализа вредоносных программ: (1) на уровне кода и (2) на уровне системы, или поведенческом. Как правило, в любом деле следует начинать с самого простого метода (иначе можно потратить много времени, сил и ресурсов, когда это не нужно), и то же самое относится к анализу вредоносных программ. Системный, или поведенческий, анализ гораздо проще анализа на уровне кода, поэтому давайте начнём с него.
В этом типе анализа нас больше интересует, что делает вредоносная программа . Вносит ли она какие-либо (1) изменения в реестр, (2) какие процессы она запускает, (3) какие файлы запускает и (4) какие сетевые соединения она устанавливает? Эта легкодоступная информация может многое сказать.
В этом руководстве мы будем использовать простую вредоносную программу, известную как троян svrcp.exe (за неимением лучшего названия). Разные поставщики программного обеспечения называют его по-разному, например, IRC.SRVCP.Trojan, TROJ_SRVVP или Troj/Narnar.
Его часто используют для начального анализа вредоносного ПО из-за его относительной простоты. Этот троян был впервые обнаружен около 2000 года и мог управляться через личные сообщения по IRC-каналу. Вероятно, он использовался для распределённого взлома паролей и/или DDoS-атак.
Мы воспользуемся им здесь, чтобы познакомить вас с некоторыми вводными концепциями поведенческого/системного анализа вредоносных программ.
Шаг №1: Создайте безопасное рабочее пространство
Первый шаг — создание безопасной среды. Я буду использовать VirtualBox с установленной Windows 7. Я убедился, что сетевые подключения настроены на «Только хост» или «Внутренняя сеть», чтобы вредоносная программа не могла подключиться за пределами моей изолированной среды. Перед началом работы обязательно сделайте снимок системы, чтобы можно было вернуть её в исходное состояние после запуска вредоносной программы.
Шаг №2 Установка SysInternals
Затем, если вы ещё этого не сделали, установите sysinternals от Microsoft на свою изолированную систему (для этого, вероятно, потребуется настроить NAT для изолированной системы, но не забудьте после этого изолировать её от интернета). Вы можете скачать sysinternals здесь. (Подробнее о sysinternals см. в моём руководстве «Цифровая криминалистика», часть 8 ).
Шаг №3: Запустите вредоносное ПО
После установки каталога svrcp.exe в изолированную систему щелкните правой кнопкой мыши и запустите от имени администратора файл srvcp.exe.
После этого откройте диспетчер задач, чтобы убедиться, что вредоносная программа запущена.
Шаг №4: Проверьте реестр на предмет сохранения
Если вредоносная программа должна быть постоянной (перезагружаться при каждой перезагрузке системы), ей, скорее всего, потребуется изменить реестр в одном из многочисленных ключей, которые инициируют программное обеспечение при загрузке (для получения дополнительной информации о ключах реестра см. мою статью о цифровой криминалистике, часть 5: Поиск улик в реестре ).
В этом случае, поскольку svrcp.exe изначально был разработан для среды Win NT, он пытается добавить ключ реестра в:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft|WindowsCurrentVersionRun
Он добавляет запись с именем Service Profiler и ключ srvcp.exe , который будет запускать вредоносное ПО при каждой загрузке системы.
Если открыть Process Monitor и отфильтровать процесс по имени (svrcp.exe), можно увидеть все действия, которые пытается выполнить вредоносная программа. Прокрутив страницу немного вниз, можно увидеть, как процесс обращается к разделу HKLM и устанавливает значение в разделе HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun, что делает вредоносную программу устойчивой.
Если вернуться в Process Explorer и убрать фильтр для svrcp.exe, мы снова увидим все процессы. Обратите внимание, что svrcp.exe работает под PID (идентификатором процесса) 67988.
Теперь щелкнем правой кнопкой мыши по процессу svrcp.exe и выберем «Свойства».
Вы должны увидеть экран, как показано ниже. Давайте нажмём на вкладку «Строки» в правом верхнем углу.
Вкладка «Строки» инициирует поиск распознаваемых строк (ASCII-текста) в коде. Очень часто среди строк можно найти комментарии и другую полезную информацию. Как мы увидим далее в этих уроках, эти строки использовались для расшифровки части кода и паролей.
Шаг №7: Просмотр TCP-сокетов и соединений с помощью TCPView
Чтобы просмотреть все TCP-сокеты и соединения в нашей тестовой системе Windows 7, откройте TCPView из пакета sysinternals. Мы снова видим, что процесс svrcp.exe открыл TCP-сокет, но ещё не установил соединение. Если бы мы разрешили изолированной системе подключиться к Интернету, этот процесс обратился бы к своему командному серверу через этот процесс.
Шаг №8: Откройте gus.ini
Теперь откроем файл gus.ini, который находился в том же каталоге, что и наш исполняемый файл. Этот файл содержит ключевую информацию, которую вредоносная программа использует для входа на свой командный сервер. Обратите внимание, что она использует никнейм «mikey», канал «mikag soup» и затем пытается подключиться к нескольким IRC-серверам через порт 6666 (например, irc.mcs.net:6666 ).
Подключившись к IRC-серверу, злоумышленник может отправлять команды вредоносному ПО посредством личных сообщений, тем самым управляя вредоносным ПО и зараженной системой.
Заключение
Анализ вредоносных программ — один из самых ценных навыков в области цифровой криминалистики. Он требует глубокого понимания процессов Windows и некоторых навыков работы с ассемблером. Первый и самый простой шаг в анализе вредоносного ПО — просто наблюдать за его поведением. По его поведению можно многое понять о намерениях злоумышленника.
В следующем уроке мы копнем немного глубже и рассмотрим эту вредоносную программу на уровне кода.