Кубок Америки по футболу 2016. Плей-офф
- 1 year ago
- 0
- 0
Шелл-код ( англ. shellcode , код запуска оболочки) — это двоичный исполняемый код , который обычно передаёт управление командному процессору, например '/bin/sh' в Unix shell , 'command.com' в MS-DOS и 'cmd.exe' в операционных системах Microsoft Windows . Шелл-код может быть использован как полезная нагрузка эксплойта , обеспечивающая взломщику доступ к командной оболочке ( англ. shell ) в компьютерной системе.
При эксплуатации удаленной уязвимости шелл-код может открывать заранее заданный порт TCP уязвимого компьютера, через который будет осуществляться дальнейший доступ к командной оболочке, такой код называется привязывающим к порту ( англ. port binding shellcode ). Если шелл-код осуществляет подключение к порту компьютера атакующего, что производится с целью обхода брандмауэра или NAT , то такой код называется обратной оболочкой ( англ. reverse shell shellcode ).
Шелл-код обычно внедряется в память эксплуатируемой программы, после чего на него передается управление путём переполнения стека , или при переполнении буфера в куче , или используя . Передача управления шелл-коду осуществляется перезаписью адреса возврата в стеке адресом внедрённого шелл-кода, перезаписью адресов вызываемых функций или изменением обработчиков прерываний. Результатом этого является выполнение шелл-кода, который открывает командную строку для использования взломщиком.
Взломщики пишут шелл-коды, часто используя приёмы, скрывающие их атаку. Они часто пытаются выяснить, как системы обнаружения вторжений (СОВ) распознают любую входящую атаку. Типичная СОВ обычно просматривает все входящие пакеты в поисках структуры, специфичной для шелл-кода (часто большой массив мусорных кодов, в простейшем случае NOP -ов); если она находит такую структуру, пакет уничтожается до того, как он достигнет своей цели. Слабая позиция СОВ в данном случае состоит в том, что она не осуществляет действительно хороший поиск, иначе он займёт слишком много времени и, таким образом, замедлит соединение с интернетом.
Шелл-код почти всегда содержит строку с именем оболочки . Все входящие пакеты, содержащие такую строку, всегда рассматриваются как подозрительные в глазах СОВ. Также некоторые приложения не принимают неалфавитно-цифровой ввод (они не принимают символов, выходящих за рамки набора a-z, A-Z, 0-9 и нескольких других символов.)
Для прохождения через все эти меры, направленные против вторжения, взломщики используют шифрование , самомодифицирующийся код , и .