Установка php kali linux

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

PhpSploit

Описание PhpSploit

PhpSploit – это скрытный фреймворк для последующей эксплуатации.

PhpSploit – это фреймворк для удалённого контроля, предназначенный для обеспечения скрытого, интерактивного (в стиле шелла) подключения через HTTP между клиентом и веб-сервером. Это инструмент последующей эксплуатации, способный поддерживать доступ к скомпрометированному веб-серверу в целях повышения привилегий.

Краткий обзор

Обфусцированное подключение осуществляется с использованием HTTP заголовков в рамках стандартных клиентских запросов и соответствующих ответов веб-сервера, туннелируемых через крошечный полиморфный бэкдор:

Особенности

Эффективный: Более 20 плагинов для автоматизации задач последующей эксплуатации

  • Запуск команд и просмотр файловой системы, обход ограничений безопасности PHP
  • Выгрузка/Загрузка файлов между клиентом и целью
  • Редактирование удалённых файлов через локальный текстовый редактор
  • Запуск SQL консоли на целевой системе
  • Вызов обратных TCP шеллов

Невидимый: Фреймворк делается параноиками для параноиков

  • Практически невидимый для анализа логов и сетевых систем обнаружения вторжений, работающих по принципу обнаружения сигнатур
  • Обход Safe-mode (безопасного режима) и многих ограничений безопасности PHP
  • Общение скрыто в HTTP заголовках
  • Загружаемая полезная нагрузка обфусцируется для обхода NIDS
  • Поддержка http/https/socks4/socks5 прокси

Удобный: Ясный интерфейс с многими важнейшими функциями

  • Кроссплатформенный, как на серверной, так и на клиентской стороне.
  • Мощный интерфейс с завершением и поддержкой множественности команд
  • Функция сохранения/загрузки сессии с постоянной историей
  • Поддержка множественности запросов для больших полезных нагрузок (таких, как выгрузки)
  • Обеспечивает мощный, гибкий в настройке движок установок
  • Каждая настройка, такая как user-agent, имеет полиморфный режим
  • Настраиваемые переменные окружения для взаимодействия с плагинами
  • Обеспечивает законченные API для разработки плагинов

Справка по PhpSploit

Опции, используемые при запуске программы

Команды внутри оболочки

Руководство по PhpSploit

ИМЯ

phpsploit — скрытный, основанный на туннеле php веб шелл

СИНОПСИС

ОПИСАНИЕ

phpsploit — это скрытный, основанный на туннеле php веб шелл: он предназначен для помощи в повышении привилегий через очень маленький php бэкдор, при этом оставаясь наиболее настолько незаметным, эффективным и настраиваемым как это возможно.

Инновационным в программе является сохранение микро бэкдора, которые управляется динамически шифруемыми HTTP заголовками, которые действуют как динамическая полезная нагрузка. Эта особенность полезна для обхода админов, которые ищут подозрительные строки в логах сервера, поскольку GET запросы без аргументов не так подозрительны, как POST запросы или GET запросы с подозрительными аргументами (к примеру, «?cmd=cat&edit=/etc/passwd»).

Фреймворк phpsploit основывается на плагинах, т.е. пользователи с лёгкостью могут делать их собственные плагины или редактировать встроенные, которые с pspapi (phpsploit API) взаимодействуют с целевым сервером через фреймворк.

Его структура позволяет ему развиваться и быть легко адаптированным ко всем типам сценариев веб-эксплуатации, поскольку каждая настройка может быть отредактирована глобально (через пользовательский конфигурационный файл) или локально, используя команду set.

ОПЦИИ

Запуск phpsploit без каких-либо аргументов запустит пустую сессию с настройками по умолчанию.

Если в качестве аргумента указан URL, то в качестве настройки TARGET (цели) будет установлена это значение.

Вы можете в качестве аргумента использовать файл с ранее сохранённой сессией, для использования вместо пустой сессии. Сессия может быть (и должна) сохранена командой save.

Для помощи в командной строке вы также можете использовать

ИСПОЛЬЗОВАНИЕ

Здесь описан самый простой способ использования phpsploit:

  1. Для начала найдите доступ к удалённому исполнению php.
  2. Откройте phpsploit и запустите команду infect для получения рабочего бэкдора.
  3. Вставьте этот бэкдор на удалённый сервер.
  4. Запустите «set TARGET http://site/backdoored-url.php«.
  5. Вы также можете отредактировать некоторые НАСТРОЙКИ (командой «set«), такие как значения PROXY или REQ_*.
  6. Просто наберите «exploit» и наслаждайтесь вашим удалённым доступом к шеллу 🙂

ВНИМАНИЕ: Если команда «exploit» не работает и возвращает ошибку, это может происходить по множеству причин:

  1. HTTP Error 400: Bad request – Обычно, эта ошибка встречается из-за того, что одна или несколько настроек REQ_* слишком велики для сервера. Поэтому вам нужно подрегулировать эти значения.
  2. Request error (ошибка запроса): Connection refused (В соединении отказано) – Если вы уверены, что указанная TARGET (ЦЕЛЬ) доступны с вашего компьютера (или с заданного ПРОКСИ), эта ошибка может встречаться из-за недействительного ПРОКСИ.
  3. Если вы вставили ваш BACKDOOR (БЭКДОР) в существующий удалённый PHP код, убедитесь, что он выполняется каждый раз.
  4. Другие ошибки могут возникать из-за того, что одна из ваших НАСТРОЕК была изменена без заботы о её правильности или из-за IDS, которая выявила попытку эксплуатации.
  5. Если ошибка, с которой вы столкнулись, отсутствует в списке, вы также можете разместить её с подробностями здесь https://bitbucket.org/nil0x42/phpsploit/issues или связаться с автором.
Читайте также:  Acrc windows agent что это

ИНТЕРФЕЙС

Фреймворк phpsploit включает два интерфейса оболочки.

ГЛАВНЫЙ ШЕЛЛ – это первый интерфейс оболочки, порождаемый при запуске фреймворка. Он используется для подготовки к эксплуатации цели. Через него вы можете локально отрегулировать НАСТРОЙКИ командой «set» и использовать команду «infect» для получения микро-бэкдора, который нужно вставить на цель.

УДАЛЁННЫЙ ШЕЛЛ – интерфейс, который запускается во время эксплуатации целевого сервера. Он используется для взаимодействия с заражённым URL.

ДЛЯ ПОЛУЧЕНИЯ ПОМОЩИ по командам phpsploit вы можете использовать «help «, » —help» или » -h». Если вы не указали команду по которой хотите получить справку (например, exploit), то при наборе help без аргументов вы получите короткое описание предназначения каждой команды.

На клиентах Unix для команд работает автозавершение, и делается попытка использовать readline если это доступно.

НАСТРОЙКИ

Настройки phpsploit доступны из интерфейса, их можно просмотреть и отредактировать командой set.

При открытии новой сессии, все настройки устанавливаются в их значения по умолчанию, указанные в конфигурационном файле phpsploit. Его редактирование позволяет вам указать свои собственные значения по умолчанию, очень полезные функции для полиморфного бэкдора или для пользовательских заголовков HTTP. Для получения дополнительной информации о конфигурационной директории обратитесь к секции ФАЙЛЫ.

TARGET

Эта настройка содержит удалённый URL с бэкдором на целевом сервере, например, если вы вставили бэкдор (который получили командой infect) в файл с именем test.php в корневую веб-директорию вашего локального сервера, TARGET будет http://localhost/test.php .

Значение по умолчанию: None

BACKDOOR

Это шаблон бэкдора, используемого для генерации эффективного, но весьма маленького кода для записи в целевую веб-страницу, он должен быть валидным PHP кодом и предпочтительно делать его неразговорчивым путём добавления перед главной функцией символа @. Например, @eval() вместо eval(). Для дополнительной информации о том, как phpsploit строит запросы, смотрите специю ПОСТРОЕНИЕ ЗАПРОСОВ. Единственная цель БЭКДОРА – это выполнить содержимое REQ_HEADER_PAYLOAD, поэтому он должен содержать динамическую переменную %%PASSKEY%%.

Значение по умолчанию:

PASSKEY

Эта переменная интересна для пользовательской настройки, предполагается её использование как имени главного передаваемого заголовка, изменение значение по умолчанию сработает как изменение пароля, т.е. не допустит других пользователей phpsploit к использованию вашего бэкдора, конечно, если они не получат PASSKEY.

Значение по умолчанию: phpSpl01t

PROXY

Этой настройкой вы можете задать HTTP прокси по образцу адрес:порт для отправки запросов phpsploit через него. Будьте осторожны, нерабочий PROXY приведёт к тому, что запросы не будут достигать цели. Для отключения прокси, установите значение в None.

Значение по умолчанию: None

SAVEPATH

Здесь вы можете задать директорию по умолчанию, которая будет использоваться для сохранения сессий phpsploit в тех случаях, когда для команды save не указаны аргументы. В качестве значения по умолчанию используется временная директория вашей системы.

TMPPATH

Эта настройка чуть отличается от SAVEPATH, она используется в phpsploit для записи временных файлов, к примеру, её задействует команда edit в удалённом шелле. В качестве значения по умолчанию используется временная директория вашей системы.

REQ_DEFAULT_METHOD

Это метод http METHOD по умолчанию, который будет использоваться для отправки полезной нагрузки, поэтому значение может быть только GET или POST.

Читайте также:  Как понять что windows 32 или 64

Значение по умолчанию: GET

REQ_HEADER_PAYLOAD

Эта настройка является динамическим форвардом полезной нагрузки, когда фреймворк phpsploit отправляет запрос, будет отправлен динамический HTTP HEADER по каждому запросу, именем заголовка будет настройка PASSKEY, а значением – значение REQ_HEADER_PAYLOAD, за дополнительной информацией о том, как phpsploit строит запросы, обратитесь к секции ПОСТРОЕНИЕ ЗАПРОСОВ.

Значение по умолчанию:

REQ_INTERVAL

Эта настройка может использоваться для крупной полезной нагрузки, отправляемой с большим количеством запросов, например, при использовании команды удалённого шелла upload, когда на сервер отправляется большой файл. Это используется для добавления задержки между каждым запросом с простым синтаксисом. Использование числа как значения (например: 20) приведёт к ожиданию именно этого числа секунд, но вы также можете указать череду чисел, например, значение по умолчанию делает так, что составитель ждёт случайное число секунд между 1 и 10 перед каждым запросом. Для отключения этого просто установите 0.

Значение по умолчанию: 1-10 (случайный интервал)

REQ_MAX_HEADERS

Преимущественно используется для HTTP GET запросов. Предполагается, что phpsploit использует http заголовки для инкапсуляции полезной нагрузки, важно знать, какой именно лимит http сервера, поскольку слишком маленькая величина REQ_MAX_HEADERS уменьшит максимальный размер полезной нагрузки на один запрос. Большинство серверов, вроде Apache и IIS, принимают до 100 заголовков на запрос, но другие серверы могут позволить 200 заголовков или более, а более маленькие серверы могут ограничить заголовки 50 или меньше. Значение по умолчанию работает на большинстве популярных серверов с настройками по умолчанию, но в некоторых ситуациях это значение необходимо уменьшить.

Значение по умолчанию: 100

REQ_MAX_HEADER_SIZE

Преимущественно используется для HTTP GET запросов. Эта настройка является дополнительной для REQ_MAX_HEADERS, поскольку она устанавливает максимальный размер, который может содержать каждый заголовок. В большинстве случаев, обычно серверы ограничивают размер заголовка на 8Kb, но многие другие, вроде Apache, Tomcat и многих решений по виртуальному веб-хостингу ограничивают максимальный размер каждого заголовка на 4Kb или меньше.

Значение по умолчанию: 8Kb

REQ_MAX_POST_SIZE

Преимущественно используется для HTTP POST запросов. Это ограничение целевого сервера на POST данные, на множестве серверов этот лимит очень большой, 32Мб или более, но хватает других веб-серверов, которые в конфигурации по умолчанию устанавливают этот лимит в 8Мб. Если вы предполагаете использовать POST запрос во время удалённой сессии phpsploit, то рекомендуется запустить команду phpinfo, которая предоставляет реальный размер максимального POST сервера, затем отредактируйте REQ_MAX_POST_SIZE в phpsploit.

Значение по умолчанию: 8Mb

REQ_ZLIB_TRY_LIMIT

В строителе запросов phpsploit, когда полезная нагрузка не может быть отправлена в одном единичном запросе из-за того, что она слишком большая, фреймворк запустит много функций вычисления по расчёту, как много запросов понадобиться для каждого http метода и уменьшит количество необходимых запросов, каждый раз он будет пытаться сжать полезную нагрузку с ZLIB, эта функция полезно для уменьшения количества запросов. Но чем больше база полезной нагрузки, тем медленнее проходят вычисления. Исходя из этого вы можете этой настройкой указать максимальный размер полезной нагрузки, с которой изготовитель больше не будет сжимать резанную полезную нагрузку. Это увеличит количество необходимых запросов, но уменьшит время вычисления до приемлемого. Чем мощнее ваш компьютер, тем больше вы можете увеличить это значение.

Значение по умолчанию: 5Mb

HTTP_USER_AGENT

Это используемый в каждом запросе phpsploit заголовок user-agent, для выбора на каждый запрос случайного user-agent из списка слов, вы в качестве значения можете указать файл.

Значение по умолчанию: file://framework/misc/http_user_agents.lst

Обратите внимание, что настройки HTTP_USER_AGENT включены по умолчанию, но можно создать так много дефолтных заголовков, как вы хотите, просто нужно создать настройку, начинающуюся с HTTP_ за которой следует имя заголовка.

Пример: set HTTP_ACCEPT_LANGUAGE fr-FR;en-US

В настройках HTTP_* можно использовать файлы, синтаксис такой file:///full/path/to/file.txt, из этих файлов будут выбраны случайные строки для каждого http запроса. Это облегчает генерацию полиморфных запросов и, следовательно, скрытность. По умолчанию файл используется для настроек HTTP_USER_AGENT.

УДАЛЁННОЕ ОКРУЖЕНИЕ

Переменные удалённого окружения доступны из УДАЛЁННОГО ШЕЛЛА. Они полезны для сохранения информации, относящейся к серверу, а PSPAPI плагины имеют в них доступ записи.

Читайте также:  Windows gadgets core temp

Вы можете просматривать, редактировать или удалять их командой «env» через экземпляр УДАЛЁННОГО ШЕЛЛА.

Будьте очень внимательны при ручном редактировании этих переменных, поскольку неверные значения могут сделать неработоспособными определённые команды.

Вот список переменных УДАЛЁННОГО ОКРУЖЕНИЯ, используемых по умолчанию ядром phpsploit и встроенными плагинами:

CWD

Эта переменная содержит текущую рабочую директорию, команды cd и pwd используют её как источник.

WEB_ROOT

Эта переменная содержит абсолютный путь до удалённой корневой веб-директории.

WRITE_TMPDIR

Эта переменная должна императивно содержать абсолютный путь до удалённой директории с правами записи. Это основа для выполнения полезной нагрузки передаваемой в нескольких запросах, по этому пусти складываются в целое части полезной нагрузки.

WRITE_WEBDIR

Эта переменная окружения содержит абсолютный путь в удалённую директорию с правами записи доступную с сервера. Она может использоваться для МОДУЛЕЙ уклонения.

ПОСТРОЕНИЕ ЗАПРОСОВ

Этот раздел о том, как фреймворк phpsploit управляет запросами.

1BACKDOOR

  • Для начала настройка BACKDOOR определяет главный шаблон бэкдора, он и только ОН должен быть записан в TARGET удалённого URL.
  • Для понимания принципа, необходимо знать, что язык PHP автоматически добавляет все заголовки запросов в глобальный массив $_SERVER, предварив каждое имя заголовка строкой «HTTP_»
  • Если предположить, что BACKDOOR просто работает как форвардер, исполняющий $_SERVER[‘HTTP_%%PASSKEY%%’] удалённой переменной, которая содержит REQ_HEADER_PAYLOAD.

2 – REQ_HEADER_PAYLOAD

  • REQ_HEADER_PAYLOAD, также известная как Header Forwarder – это заголовок, который отправляется на каждый http запрос, настройка PASSKEY используется как имя, а REQ_HEADER_PAYLOAD как шаблон её значения.
  • Этот заголовок действует как форвардер полезной нагрузки, что позволяет выполнение ПОЛЕЗНОЙ НАГРУЗКИ BASE64, исполнением PHP кода в BASE64 кодировке.

3 – ПОЛЕЗНАЯ НАГРУЗКА BASE64

  • ПОЛЕЗНАЯ НАГРУЗКА BASE64 – генерируется автоматически для каждого запроса, это последний шаг до реального выполнения полезной нагрузки.
  • Для POST запросов эта полезная нагрузка выполняет PHP переменную $POST[‘%%PASSKEY%%’], которая используется как РЕАЛЬНАЯ ПОЛЕЗНАЯ НАГРУЗКА при использовании этого http метода.
  • Для GET запросов он действует в связке со списком динамических phpsploit заголовков в алфавитном порядке, каждый из которых содержит расщеплённую РЕАЛЬНУЮ ПОЛЕЗНУЮ НАГРУЗКУ.

4 – РЕАЛЬНАЯ ПОЛЕОЗНАЯ НАГРУЗКА

  • РЕАЛЬНАЯ ПОЛЕОЗНАЯ НАГРУЗКА содержит большое количество сжатого с zlib PHP кода, впоследствии закодированного в base64, который динамически генерируется функциями оптимизации фреймворка phppsloit.
  • Раскодированный (по умолчанию делается по ПОЛЕЗНОЙ НАГРУЗКЕ BASE64), он является БАЗОВОЙ ПОЛЕЗНОЙ НАГРУЗКОЙ, проходящей через ИНКАПСУЛЯЦИЮ.

5 – БАЗОВАЯ ПОЛЕЗНАЯ НАГРУЗКА

  • Базовая полезная нагрузка может быть полезной нагрузкой плагина (содержащегося в файле [фреймворк]/plugins / / /payload.php или дефолтном открывателе сессий phpsploit, который вызывается при запуске команды exploit.
  • Базовая полезная нагрузка совместима как минимум с 4.3.0 (поскольку множество веб-серверов уже используют старые версии PHP).

6 – ИНКАПСУЛЯЦИЯ

  • Для управления кодами возврата и phpsploit туннелированием, каждая БАЗОВАЯ ПОЛЕЗНАЯ НАГРУЗКА инкапсулируется кодом [фреймворк]/data/tunnel/encapsulator.php
  • Он также управляет сжатием отклика с ZLIB для ускорения ответов сервера.

ФАЙЛЫ

Директория конфигурации:

Если установлена переменная окружения оболочки $XDG_CONFIG_HOME:

$/phpsploit/ (скорее всего это

В противном случае имя домашней директории используется в качестве базовой директории:

/.phpsploit/ (т.е. $/.phpsploit/ на GNU/Linux)

В конфигурационной директории рута файл «./config» используется как конфигурационный файл phpsploit. Он позволяет изменить НАСТРОЙКИ по умолчанию (смотрите секцию НАСТРОЙКИ для дополнительной информации)

Директория «./plugins/» может использоваться для создания ваших собственных плагинов phpsploit.

Примеры запуска PhpSploit

Далее устанавливаем пароль (в качестве парольной фразы выбрана «hackware»):

Смотрим, какую строку нам нужно вставить на удалённый сервер:

Т.е. нам можно вставить как в существующий файл, так и в новый, созданный нами.

Бэкдор был вставлен в файл index2.php на сайте http://miloserdov.org, поэтому команда для указания цели имеет вид:

Попробуем выйти за пределы своей веб-папки:

Установка PhpSploit

Установка в Kali Linux

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Источник

Оцените статью