Тема такова : Как мы взломали новостной сайт штата Айдахо.
Предыстория такова:
Однажды, когда пора была студеной, решил я что-нибудь сломать, и стал лазить в поисках какого нибудь более менее приличного сервака на базе НТ (т.к я занимаюсь только НТ), но чтобы он в то же время не был сильно защищенным.
А история. ........ :
Ночь первая:
И в этих своих поисках наткнулся на очень добротно сделанный и относительно публичный сайт, на котором выставлялись новости штата Айдахо (этот сайт вы можете посмотреть и сейчас - http://www.idahonews.com).
И взбрело мне (по закрепившейся привычке) поглядеть степень защищенности и (самое главное) степень тупости админа. Для этого я стал юзать (что думаете???) свой любимый Нетскап 3.01. Стал лазить по директориям и обнаружил Очень странную для сегодняшнего дня вещь, а именно директории /scripts и /cgi-bin оказались открытыми (как известно наверное многим, в НТ можно запускать любые файлы из этих директорий, т.е получается, что ты из бровсера своего можешь запустить прогу на удаленной машине, лишь поместив ее в одну из этих директорий). Подумав о тупости админа, я пришел к выводу, что на данный момент моего исследования системы эта его характеристика поднимается до уровня "средний".
Сделав такой вывод, я решил продолжить свои изыскания. Для начала я решил просканить сервак на предмет открытых портов, а следовательно и сервисов, на нем установленных. Для этого я использовал очень полезную тулзену, которая зовется Ogre (спасибо Rhino9 ). Эта штука выдала мне следующую картину :
Scanning - 198.60.102.4
======================
Commencing Port Scan:
Port 21: Open --- это ФТП открыт
Port 23: Closed
Port 25: Open
Port 53: Open
Port 79: Closed
Port 80: Open
Port 110: Open
Port 111: Closed
Port 139: Open ---Возможно есть File Sharing
Port 443: Closed
Port 1080: Closed
Port 8181: Closed
Surveying Web Server:
--Checking for Vulnerable URLs:
Frontpage Extensions: Not Present
IIS HTML Administration Interface: Present ---- Управление серваком через IIS
IIS Samples: Present
Commencing Nbtstat Scan:
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
Registered Registered Registered Registered Registered Registered
Registered Registered Registered Registered Registered
MAC Address = 00-60-08-B0-7B-9E
PRNET <00> UNIQUE ----- ИМЯ МАШИНЫ
PRNET <20> UNIQUE
IDAHONEWS <00> GROUP
IDAHONEWS <1C> GROUP
IDAHONEWS <1B> UNIQUE
IDAHONEWS <1E> GROUP
PRNET <03> UNIQUE
IDAHONEWS <1D> UNIQUE
INet~Services <1C> GROUP
..__MSBROWSE__.<01> GROUP
IS~PRNET.......<00> UNIQUE
Из этой информации я понял, что сервак доступен из под прошаренных ресурсов и фтп (первое обычно полезнее, но медленнее).
Затем я попробовал зайти на сервак под аккаунтами, которые станадртно присутствуют в НТ (Guest, Administrator), у меня ничего не вышло, тогда я решил попытать такие штуки как аккаунты IIS (Internet Information Service), обычно они выглядят так IUSR_<имя машины с шарами>. Ogre мне показал, что имя машины PRNET, значит юзернейм будет IUSR_PRNET. С этим вариантом тоже ничего не получилось. Что ж, придется прибегать к насилию !
Для осуществления насильственных действий я выбрал програмку NAT (Net Auditing Tool), которая пробует подключиться к шарам с юзернеймами и паролями из словаря и потом проверяет возможности этого пароля на сервере!
Обычно в словаре стандартные пароли и имена, я его немножко поправил, добавив пароли и имена IUSR_PRNET, PRNET, IDAHO, NEWS, IDAHONEWS и т.д. (уже не помню какие еще). И оставил свой комп проверять эти варианты, а сам пошел на кухню перекусить.
Когда я вернулся, то обнаружил, что NAT подобрал пароль и проверил дырки в шарах.
Имя и пароль, которые он нашел (TEST TEST -кста ОООчень глупо), имел доступ почти ко всем прошаренным каталогам ! Но самое главное - он имел доступ к каталогу InetPub/scripts.
Еще оказалось, что под ним можно войти и в WINNT (совсем тупо ), там я попытался спереть SAM._ из каталога /REPAIR, но безуспешно (хоть к нему доступ закрыт был), тогда я понял, что так легко сервак не дастся. (Конечно, можно считать что он дался, т.к. уже тогда я мог подменить страничку и т.д., но я имею в виду под "дался" Administrator доступ). Я подправил логи и отрубился.
Ночь вторая:
Я связался с парнем, с которым мы этим делом занимаемся обычно (он просил его ник не называть), и веселье началось! Для начала мы решили попробовать такую штуку как Getadmin.exe, чтобы получить права админа, а там уж и пароли дернуть.
Запихнули ее в /scripts и бровзером запустили для юзернейма TEST. Выглядело это так (для незнающих естественно): http://www.idahonews/scripts/getadmin.exe?test.
Нам вернулось сообщение типа "Cgi error (так и должно быть) User test get Administrator's rights", или что то в этом роде. Мы обрадовались и решили, что дело сделано, но не тут-то было: сервер сразу повис, перезагрузился и восстановил параметры юзеров (хитрец). Мы проделали это еще раз, но не добились результата. (Естественно, поднимание сервера происходило продолжительное время, но админ крутился где то там и поднимал его (при этом ничего не понимая)) Этот вариант отпал. Ситуация усложнялась. Целый следующий день мы шарились в поисках експлоитов, которые можно было бы поюзать на этом серваке, и наконец я вспомнил, что где то видел что-то такое веселое для НТ (А именно БО для НТ ).Угадайте где я это нашел ? На нашей доброй старом Хакзоне, листая архивы обзора. Эта штука называлась NETBUS 1.60 (линк не работал, по Алтависте я быстро нашел где слить его). Потом я вырубился и пошел спать. (с улыбкой умиления на лице )
Ночь уже не помню какая :
Мы залили сервер для NETBUS'а в /scripts, и тем же способом (описан выше) запустили его на удаленном компе. Подсоединившись клиентом NETBUS'а, я сразу пошел в File Manager (в нем такая опция есть). И стал собирать информацию о структуре каталогов и т.д. (при плохом коннекте он это делает ой как долго).Так мы получили хоть и не полноценный, но хоть какой то доступ ко всем дискам и каталогам (конкретно на копирование, запись и тд) Первым делом пошли в WINNT/REPAIR и сперли SAM._
Наше разочарование было очень велико, т.к. этот сам оказался старый- старый (Repair дисков не делал админ, гад). И там было всего два пользователя Guest и Administrator без паролей, т.е ОООчень старый. Решили пока просто полазить по диску - поглядеть, что тут есть, и где лежит главная страничка. Это оказалось трудно, т.к. вопреки предположениям она находилась не в /wwwroot, но после долгих и нудный поисков (пересмотра пары десятков страниц INDEX.htm ) мы нашли ту, что надо, и в наглую проверили, закачав текстовик с таким именем (хехе), потом, естественно, вернув все обратно. Мой друган стал заниматься страницей (в смысле лепить нашу, которую мы потом поставили), а я пока испробовал вполне приличные возможности NETBUS и думал как же нам сорвать пароль админа. Но ничего не приходило мне в голову.
Следующая ночь:
С красными невыспанными глазами я подползаю к компьютеру, мы уже договорились ставить страничку сегодня, и я по-своему рад. Тут появился наш третий друган (Lazybones) и активно принялся входить в курс дела (т.е лазить по диску, толкать идеи и тд). В таком состоянии Lazy и другой парень обнаружили электронную банковскую систему расчета (или как это называется?) Tango3, мы поглядели, ознакомились и решили, что так бросать сервак не стоит, но надо дать шанс админу (поставить свою страничку, чтоб он одумался), и стали обсуждать вариант странички, который сделал друган. ( Это сопровождалось ругательствами и 5-ти минутным разладом комманды, наверное из-за того, что все (особенно я) были невыспавшимися и на нервах). Но все согласовалось, и мы принялись заливать. После этого страничка выглядела так.
Страничка не продержалась и получаса. Админ там крутился все время (наверное из за разницы во времени). Админ сглупил. ....единственное, что он сделал, было то,что он закрыл юзеру TEST доступ к ФТП !!!!! Где мы и не были то ни разу (ну может разок), а на шары оставил тот же пароль, а также оставил наш NETBUS в /scripts - короче говоря, ничего не сделал. Нас это сильно загрузило, т.к. мы как бы приняли обязанности показать, какой он дуб. Днем я снова залил страницу, она продержалась часа 1,5. Реакции опять никакой не было.
Следующая ночь :
Выделывая невероятные штуки и страшно извращаясь, мы так и не смогли взять админовские права. Усталость надвигалась, а желание бросить все это и ощущение собственной тупости ( страшно, да? ), давило все сильнее и сильнее.
Решение появилось неожиданно, а вернее даже предположение, оно оказалось настолько просто, что я просто обалдел и решил его проверить. Решение состояло в том, что я понял, что проги-то из /scripts запускаются не под юзернеймом TEST, а с того самого web-аккаунта, из чего можно сделать вывод, что пароли можно элементарно сдампить из реестра с помощью PWDUMP.exe. Я быстренько залил это дело в /scripts и пустил из бровсера. И что же я увидел, о чудо, я увидел все пароли (естественно, в закодированном виде) прямо в окне моего бровсера. Это дело я сохранил как текстовик и дал на сьедение L0phtCrack'у, по словарю он мне открыл почти все пароли (они были элементарными) и за ночь BRUTEFORCE'ом нашел и админовский, тоже не очень сложный! Дас ис гут ! (распространенное исконно русское выражение).
Я послал мессаги членам комманды, и пошел спаточки.
Ночь уже со счета сбился какая :
Я делюсь паролями с ребятами, и мы начинаем активную деятельность Админов. Вначале заходим в /iisadmin/default.html (кто не знает, это для удаленного управления WWW,FTP,Gopher сервисами).Там заходим под админом, меняем алиасы на ФТП (а именно делаем, чтобы с ФТП был доступен диск E :\ где лежит интересная инфа).
И принимаемся шариться в поисках интересных вещей (а именно баз данных, документов и т.д. (не сочтите за вандалов)).За пару дней поиска ничего дельного не нашли и решили выжидать что админ предпримет. .....
Много времени спустя :
Тупость админа нас доканала. Он не сделала практически ничего чтобы защитить свой сервак, и мы дружным советом решили кончать с ним. Собравшись поздним вечером, стали удалять все, что было дорого посетителям этого сайта (а именно архивы газетных номеров). Перед этим решили поменять пароль админа с помощью стандартного НТевого средства User Manager. И поменяли на довольно длинный - superpupergod (раньше же был pralpha), чтобы он помучился, если вздумает ломать дубово. Далее удалили все копии настоящей странички (чтобы наша подольше подержалась:))Сервак благодаря тупости админа принял такой вид.
Я отвалился и пошел спать. ...
И последнее :
Админ оказался намнооого дурнее, чем я думал, а главное самоувереннее ! Он восстановил все с резервной копии диска и поменял пароли, но на этой копии оказалась и нами оставленная дыра (в каталоге /scripts файл Patch.exe, который является сервером NETBUS ), так что вы можете сами исследовать их диск даже сейчас и, естественно, получить права админа и т.д. ! (может что интересное найдете )
Резюме :
АДМИНЫ, не надо быть такими тупыми! Заметив попытку взлома, ЛАТАЙТЕ ДЫРЫ. (не относится к русским админам )
Заметьте, как локальный баг помог нам взять админовский аккаунт. (к исследователям сети ).
P.S. Если кто не знает, пароли из SAM._ достаются командой expand !