+7 (423) 206-00-23

Что такое шелл-код? Понятие термина шелл-код

Шелл-кодом (shellcode) называется исполняемый двоичный код, обычно передающий управление командному процессору, например command.com в MS-DOS и cmd, '/bin/sh' Unix shell. Шелл-код может использоваться как полезная нагрузка эксплойта, которая обеспечивает хакеру доступ к командной оболочке в системе.

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

Принцип работы шелл-кода

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

Обнаружение шелл-кода

Хакеры пишут шелл-коды использую методы, скрывающие их атаку. Часто они пытаются узнать, как системы обнаружения вторжения (СОВ) определяют их входящие атаки. Типичная СОВ просматривает входящие пакеты с целью найти структуру, специфичную для шелл-кода. Если СОВ находит такую структуру, то пакет ликвидируется еще до достижения своей цели. Минус СОВ в том, что она не может осуществить действительно качественный поиск, в противном случае он займет массу времени и замедлит соединение в сетью Интернет.

Почти всегда шелл-код содержит строку с именем оболочки. Все пакеты, который содержат такую строку, рассматриваются СОВ как подозрительные.


Помогло? Делись!
Весь список терминов →