Ковыряем ~ShELL EnSlaVeR~

enslaver

Давным давно ходит по разным форумочкам менеджер шеллов - Shell Enslaver. В переводе с пиндосского - "шеллов поработитель", а также рабовладелец (и сталобыть угнетатель). Софт давно слит в паблик, и как-то поздним вечером я решил поковыряться в нем своими сальными от волнения лапками.

Ковырял я не очень долго, но успел найти много всякого...

Активные XSS

При добавлении шелла можно вызвать XSS.

enslaver001

1) URL:

2) PASS:

3) BACKDOOR:

4) Добавление бекдора:

enslaver002

Пихаем вот энто вот:

5) Добавление коммента:

enslaver003

Пихаем такое:

6) XSS при добавлении шеллов через файл реализуется примерно также как и в остальных случаях.

Просмотр содержимого папок

В этих папках не лежит .htaccess, нет пустых index.html:

Т.е. в большинстве случаев, можно увидеть отчеты и сходу спиздить шеллы и прочее.

Обход авторизации

Если не подходит дефолтная пара логин/пароль (root/toor), все равно есть возможность получить доступ к самой панели. Проверка проходит в этом участке кода (файл init.php):

Обратите внимание на первую часть условия - подразумевалось, что если страница, на которой мы находимся != login.php и сессии админа нету, то нас перекинет на login.php. Но мы ведь можем влиять на $_SERVER['REQUEST_URI']. Надеятся, что функция basename защитит от непрошенных гостей было бы слишком наивно:

И мы уже видим то, что нам не положено было видеть:

enslaver004

Да, корявенько но все функционирует... Не хватает только стилей. Изменим запрос еще немного:

Вот теперь все как надо...

Заливка шелла

Залить шелл? Проще простого:

enslaver005

Выделяем хотя бы 1 шелл галочкой в меню, жмем upload. Имя не меняется, шелл будет лежать в папке http://framer/temp/
Если используете обход авторизации, то придется лишь немного изменить запрос (все по аналогии) в Burp Suite или чем вы там пользуетесь...

Как найти цели?

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

Способ 1. robots.txt по умолчанию в менеджере не лежит, поэтому можно попробовать гугл-дорки:

Все что там можно было найти, уже давно поломано.

Прочие способы на ваш страх и риск (не проверял, но теоретически могут сработать):

Способ 2. Используем скриптокиддовый интеллект (он же СИ). Постим по всем форумам и шлако-хеко-саентам этот менеджер шеллов, добавив небольшую стучалочку на Js, чтобы только узнать линк к фреймеру. Плюс в том, что не надо пихать всяких палевных бекдоров и вообще как-то менять php-файлы (риск улететь в блеклист минимален, ога).

Способ 3. Также предполагает использование умопомрачительных навыков СИ. Опрашиваем всех знакомых ламеров/недохеккеров, на предмет того, пользуется ли кто данным менеджером. Если таковые имеются, то через некоторое время просим продать/дать погонять 1-2 шелла. Дописываете в начало шелла такую штучку:

И пишете благодетелю: "дружок, там на шелле детское порно, чот не пашет, проверь". Подло обманутый вами ламер (детского порно на самом деле там нет, так ведь?) заходит в шелл и палит в реферере адрес своего менеджера шеллов (если конечно он не отключил подстановку реферера в браузере и заходил именно через энслейвера). Вы же, мерзки потирая рученки, уже можете творить непотребства.

Способ 4. Сдаете огромные списки на чек покупателям, внедрив заранее js-код. Если кто-то из покупателей шеллов использует shell enslaver для чекинга этих списков, то вы легко сможете узнать адрес фреймера и далее по списку (даже кук угонять не надо). Как видоизменение этого варианта - дописываете в начало каждого своего шелла стучалку, как в прошлом способе.

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

Вроде все. Иногда и "поработитель" может быть порабощен.