1. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    В процессе реализации кое какого концепта и наличия свободного времени, появилась мысль немного поговнокодить доработать один из гуёвых олдскульных веб-шеллов.

    Цель, решение проблем с детектами различными WAF/IDS, как реквестов, так и респонсов. В большинстве случаев, такое обнаружение влечёт за собой ответные меры от атакуемой стороны, что при пентестах и редтиминге не всегда позволительно и допустимо.

    WSO2 морально устарел и требует значительных доработок. b374k какой-то ненашенский и, как мне показалось, с большим оверхедом по функционалу. А вот нашумевший в своё время P.A.S., по своей задумке и устройству, очень даже подошёл. Хотя автор и прекратил поддержку своего продукта, но выпускать модификацию с дальнейшим порядковым номером, я не решился (не по Сеньке шапка). Поэтому, выражаю глубочайшее уважение @profexer и надеюсь, что он когда-нибудь продолжит свою замечательную работу.

    Форкалась версия 4.1.1b, исходники были взяты из репозитория @winstrool, за что ему спасибо :)

    General
    • Works on PHP >= 4.1.0
    • Doesn't use PHP sessions or store any data on a server
    • Uses asynchronous requests like a AJAX
    • Can use POST or GET request method
    • Can obfuscate requests
    • Can work in custom environment (aka SUID mode)
    • Supports 22 different charsets
    • Encrypts the source code with your key (password) at download
    • Resulting file doesn't contain encryption key (password) in any form
    • Has stealth mode
    • Working with different tasks without reload page and losing data
    • Can be switched from fixed to flexible view
    • Keyboard-only compatibility
    • Has message log
    • Shows server time
    File Manager
    • Can upload several files at once
    • Can create file, directory, symbolic and hard link
    • Can change files properties (path, modified date, permission, owner, group)
    • Can download files
    • Can delete files
    • Has files buffer:
      • mark, unmark, show marked files;
      • copy, move files from buffer to the current dir;
      • download files from buffer;
      • clear buffer;
    • Can search files:
      • in several paths;
      • with limited depth;
      • by name with wildcard and case-sensitive options;
      • by type (file, directory);
      • by mode (readable, writable, full access);
      • with SUID attribute;
      • by owner IDs with definition of intervals;
      • by group IDs with definition of intervals;
      • by created date with definition of intervals;
      • by modified date with definition of intervals;
      • by size with definition of intervals;
      • by specified text with regex and case-sensitive options;
    • Can save file with specified end of line
    • Fast change properties, download and delete specified file
    • Has breadcrumbs
    • Click on extension cell to copy file name
    • Press ESC to close current dialog
    • Press Alt+T to switch between opened dialogs
    SQL Client
    • DB support:
      • MySQL (mysql, mysqli, PDO)
      • MSSQL (mssql, sqlsrv, PDO, PDO SQLSRV, PDO DBLIB, PDO ODBC)
      • PgSQL (pg, PDO)
    • Tree view of database schema
    • Shows column data types
    • Can show only selected columns data
    • Can show tables row count
    • Can reload single base/scheme/table schema
    • Can dump multiple tables/schemes/bases
    • Can dump only selected schemes/tables/columns
    • Can dump to SQL or CSV format
    • Has pagination for some database types
    PHP Console
    • Isolates the results HTML code from the main page
    • Can be switched from vertical to horizontal composition
    • Press Ctrl+Enter to evaluate code
    Terminal
    • Can execute commands via specified command processor
    • Can execute commands via specified function
    • Type ? to show help
    • Has command history:
      • type history [N] to show command history, where optional parameter N is number of last commands;
      • press Up & Down keys to navigate from command history;
      • type ![N] to execute command, where N is:
        • ! to execute the last command;
        • N>0 to execute command #N from the command histroy;
        • N<0 to execute command #N from the end of the previous command;
    • Can create system report (type report ? to more info)
    • Can run Socks5 server:
      • throught Perl (type socks5.perl to more info);
      • throught Python (type socks5.python to more info);
    • Can bind port:
      • throught Perl (type bindport.perl to more info);
      • throught Python (type bindport.python to more info);
    • Can back connect:
      • throught Perl (type backconnect.perl to more info);
      • throught Python (type backconnect.python to more info);
    • Type cls or clear or press CTRL+L to clear output
    Information
    • Shows main server information
    • Shows PHP configuration without call phpinfo

    В P.A.S. Fork добавлено/изменено:
    • Работа GET запросами (параметры в куках)
    • Переход в POST с возможностью отказаться
    • Обфускация ключей и значений запроса
    • Обфускация загружаемых файлов
    • Обфускация ответа от сервера
    • Авторизация по паролю
    • Авторизация по заголовку
    • Фикс дампа MySQL в режиме PDO
    • Переименованы "конструкторы в стиле PHP 4"
    • Выпилен pcntl_exec
    • opcache_invalidate после сохранения файла
    • Тёмный цветовой режим
    • Встроенный редактор кода Ace (загружается по запросу)
    • Добавлены расширения в именах файлов
    • Опция для отображения ctime
    • Опция для инвертирования вывода в терминале
    • Выпилены системные вызовы при старте скрипта
    • Фикс краша JS в файловом менеджере (на редких окружениях)
    • Фикс бага при перезагрузке файла
    • XHR вместо IFRAME для коммуникации по умолчанию
    • Клиентский реферер не отправляется
    • Удален заголовок X-Content-Type-Options в ответах
    • Clear output в PHP Console отмечен по умолчанию
    • Возможность установить вкладку по умолчанию
    • Встроенный скрипт safemode
    • Сортировка файлов (имя, расширение, размер и т.д.)
    • Чтение файлов .gz (без сохранения)
    • Исправление Show as HTML в PHP Console
    • Увеличение окна редактора файлов по двойному щелчку
    • Восстановление положения окна при уменьшении
    • Интервал перезагрузки файла (правый клик)
    • Загружать favicon.ico, если он существует
    • Выпилен expect
    • Сортировка по имени файла по умолчанию
    • Подсветка синтаксиса в консоли PHP
    • Уменьшение промпта терминала, если слишком длинное
    • Go! перемещена влево
    • Фикс PDO_PGSQL DSN
    • Поддерживаемые версии PHP: 5 >= 5.1.2, PHP 7, PHP 8
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    Скрипт не работает и продолжает возвращать один и тот же ответ.
    • Возможно, на сервере включено кеширование GET запросов. Решение - отключить передачу параметров через куки и использовать POST запросы ($GLOBALS['COOKIE'] = false;).

    Повторяющиеся случайно запросы пароля.

    • Скорее всего, ваш IP адрес меняется с той же периодичностью. Если это так, нужно изменить $GLOBALS['REMOTE_ADDR'] на false.

    Как убрать предупреждение о лимите запроса?

    • Вы должны отключить передачу данных через куки в графическом интерфейсе. Или так: $GLOBALS['COOKIE'] = false;.

    Большие файлы не скачиваются.

    • Операция заворачивания файлов происходит на лету, поэтому требуется много оперативной памяти. Решение - отключить обфускацию, установив флажок "Skip response encoding" в графическом интерфейсе.

    Как установить авторизацию по заголовку?

    • $GLOBALS['SECHEAD'] = 'SECRET_9CA2100C44E50D81BB7E3EED84AF43F4'; и добавляйте его для каждого запроса в браузере (Secret-9ca2100c44e50d81bb7e3eed84af43f4: foobar). Без запроса пароля - $GLOBALS['PASSHASH'] = '';

    Переключение цветовой темы раздражает.

    • $GLOBALS['DARK'] = true;

    Как настроить редактор кода?

    • Вы можете разместить исходный код редактора на своем хосте и указать URL. MODE и THEME используются для установки значений по умолчанию во время инициализации редактора. Чтобы полностью исключить редактор, установите для переменной $GLOBALS['ACECONF'] значение array(). Установите DEFAULT в true, если вы хотите, чтобы редактор загружался автоматически.

    Элементы пользовательского интерфейса слишком малы.

    • Ctrl и + для увеличения / Ctrl и - для уменьшения / Ctrl + 0 для сброса

    Как убрать запрос пароля?
    • $GLOBALS['PASSHASH'] = '';

    Как изменить вкладку по умолчанию?
    • У вас есть 5 вариантов: tabFM, tabSQL, tabPHP, tabTrm, tabInf. Например: $GLOBALS['DEFAULT_TAB'] = 'tabFM';, чтобы запустить скрипт с вкладки File Manager.

    Send as и Load as кодировки не работают.
    • В настоящее время для функциональности вам следует отключить обфускацию запросов и ответов в графическом интерфейсе.
    • Перед использованием, будет не лишним вычистить все HttpOnly куки для домена, если таковые имеются.
    • Этот инструмент предназначен только для образовательных и тестовых целей и не предназначен для применения на практике, если у вас нет разрешённого доступа к системе.
    • This tool is for educational and testing purposes only and is not intended to be put into practise unless you have authorised access to the system.

    Скачать
     
    #1 crlf, 2 Jan 2020
    Last edited: 3 Jan 2024
    user100, hydra, gmiller and 21 others like this.
  2. RedHazard

    RedHazard Member

    Joined:
    17 Apr 2011
    Messages:
    70
    Likes Received:
    14
    Reputations:
    8
    Красота! опробовал, очень зашло!
     
  3. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Тут оказывается, месяц назад, обзор подъехал от зарубежного коллеги: https://blog.sucuri.net/2020/10/p-a-s-fork-v-1-0-a-web-shell-revival.html :) Не все фишки заценили, но я рад, что им понравилось. В то же время очень жаль, что повод для этого обзора был печальный, так как инструмент обнаружили на скомпрометированном сайте, а это полностью противоречит условиям использования.
    Поэтому, хочу ещё раз напомнить, что этот скрипт предназначен только для легальных тестов на проникновение!
     
  4. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Осталось двойственное впечатление от статьи в бложике.
    Вроде бы ресерчили, вроде бы описали подробно, вроде бы работа в плюс.

    Но исходный код шелла выложен, пакер тоже был выложен, чего пытались найти?

    Автора доработок назвали "злоумышленником".
    ???
    О чем это?

    Скорее всего вот о чем: "Мы крутые спецы и у нас есть платный продукт, пройдите по ссылке и обязательно его купите, интернет полон злоумышленников, но вам не нужно думать и включать мозги, просто купите нашу поделку".

    По факту, они дважды проиграли КРЛФу.
    И это при условии, что он даже не включался в их игру.

    Во-первых, их работа выглядит, как потуги на ровном месте, а CRLF просто решал очередную (и не очень крупную) задачку, мимоходом, пришла мысль отрихтовать бывший хороший инструмент - сделал.
    И поделился с сообществом.
    Как спецы они выглядят слабее.

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

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

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

    А доработка выложена автором в разделе "Этичный хакинг", а не в "Давай сломаем интернет".
     
    CyberTro1n, winstrool, Spinus and 5 others like this.
  5. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Обновлён упаковщик - packer.php. Добавлены различные варианты рандомизации генерируемого кода. Теперь в наличии четыре режима:

    ASCII // create_function
    ASCII PHP8 // eval
    PHAR // include + phar:// + PHAR контейнер
    ZIP // include + phar:// + ZIP контейнер

    У каждого варианта есть свои плюсы и минусы. Для использования требуется установленное расширение php-zip.
     
    Ravenous, Spinus, joelblack and 6 others like this.
  6. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Добавлены следующие изменения:
    • Опция для инвертирования вывода в терминале
    • Выпилены системные вызовы при старте скрипта
    • Фикс краша JS в файловом менеджере (на редких окружениях)
    Спасибо всем тем, кто слал баг-репорты и помогал отлавливать ;)
     
  7. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Аттач обновлён. Добавлено:
    • Фикс тёмного цветового режима
    • Улучшение рандомизации в пакере
     
    eminlayer7788, Ups, VY_CMa and 4 others like this.
  8. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Версия 1.1 содержит следующие изменения:
    • Встроенный редактор кода Ace (загружается по запросу)
    • Добавлены расширения в именах файлов
    • Фикс бага при перезагрузке файла
    • XHR вместо IFRAME для коммуникации по умолчанию
    • Клиентский реферер не отправляется
    • Удален заголовок X-Content-Type-Options в ответах
    • Clear output в PHP Console отмечен по умолчанию
    • Добавлена опция iframe instead of xhr в графическом интерфейсе
    • Добавлена опция Use cookie to request в графическом интерфейсе
    • Invert terminal output перемещён на вкладку Terminal
    • Мелкие декоративные изменения
    В packer.php добавлено:
    • eval() по умолчанию
    • Несжатый ZIP
    • Сжатый PHAR
    • Мелкие улучшения рандомизации

    Архив с файлами привычно в аттаче, а изменения можно посмотреть в репозитории инструмента.
     
    #8 crlf, 3 Jan 2023
    Last edited: 5 Jan 2023
    dooble, Baskin-Robbins and joelblack like this.
  9. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,177
    Likes Received:
    1,156
    Reputations:
    202
    Прикольная штука, давно таким не пользовался, наверное даже не актуально такое сейчас, но штука все равно приятная, качественно сделано. Один только момент есть, нехватает ему Дроппера чтоб он работал по принципу stager и загружал себя кусками, тогда можно было бы сильно сократить код, возможно даже до одной функции которую можно было бы прятать в коде жертвы.
     
    dooble and crlf like this.
  10. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Ага, всё чаще, от кейса к кейсу. Тут же, сам понимаешь, без претензий на универсальность, лишь небольшая попытка продлить жизнь хорошему инструменту. В текущем варианте помогает проскочить через многочисленные заслоны различных детекторов. А ещё им удобно пользоваться на своих впсках, что-то подредачить, загрузить, удалить.

    Сам всякий раз диву даюсь, как хорошо @profexer его запилил. И всячески пытаюсь не влезать в тщательно выверенный код, на который, по моим прикидкам, потрачен не один десяток человеко-часов. Но, к сожалению, не всегда получается :( К примеру, редактор кода с подсветкой, пришлось костыльно вкорячивать прямо в DOM, чтоб ничего не сломать :(

    В таком варианте проще написать с нуля и придётся отказываться от многих плюх, типа передачи параметров в заголовках, а заодно собрать огромную кучу подводных камней. Простейший принцип агентов хорошо изучен и обкатан, можно юзать тот же weevely. Но чтоб с гуём, красиво, да ещё универсально, слишком сложно и затратно.
     
    dooble and b3 like this.
  11. navai

    navai Member

    Joined:
    24 Dec 2008
    Messages:
    30
    Likes Received:
    15
    Reputations:
    0
    Подскажите, как убрать пароль?
     
  12. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    PHP:
    $GLOBALS['PASSHASH'] = '';
     
    navai likes this.
  13. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    В версию 1.2 добавлено:
    • Возможность установить вкладку по умолчанию
    • Встроенный скрипт safemode
    • Сортировка файлов (имя, расширение, размер и т.д.)
    • Чтение файлов .gz (без сохранения)
    • Исправление Show as HTML в PHP Console
    • Увеличение окна редактора файлов по двойному щелчку
    • Выпилен expect
    • Сортировка по имени файла по умолчанию
    • Улучшена обфускация JS
    • Возможность загрузки AceJS по умолчанию
    • Ctrl + S, чтобы сохранить файл в редакторе кода
    • Ctrl + E, чтобы изменить перенос строки
    • Подсказка по горячим клавишам редактора
    • Небольшие исправления ошибок и улучшения
    Архив с файлами привычно в аттаче, а изменения можно посмотреть в репозитории инструмента.
     
    #13 crlf, 19 Apr 2023
    Last edited: 19 Apr 2023
    QtQDuck, b3, whitehacker2 and 3 others like this.
  14. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Небольшие изменения в версии 1.3:
    • Восстановление положения окна при уменьшении
    • Интервал для перезагрузки файла (правый клик)
    • Загружать дефолтный favicon.ico, если он существует
    • Мелкие исправления ошибок и улучшения
     
    navai and dooble like this.
  15. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Изменения в 1.4:
    • (!) Редактор кода загружается по умолчанию
    • tabFM установлен по умолчанию
    • Подсветка синтаксиса в консоли PHP
    • Уменьшение промпта терминала, если слишком длинное
    • Go! перемещена влево
    • Фикс PDO_PGSQL DSN
    Ссылка на скачивание в первом посте.