View
1.435
Download
4
Category
Preview:
Citation preview
Hands-on LabАнализ SAP систем
Юдин Алексей
Positive Technologies
LABS
Поиск сервисов. Получение информации. Удаленный подбор паролей.
Перехват данных аутентификации (RFC/DIAG). Обход авторизаций. VBA+RFC.
Анализ полученного доступа. Доступ к хешампаролей пользователей. Подбор паролей “offline”.
Получение данных из другого манданта. Доступ к файлам ОС. Запуск команд ОС
ОБНАРУЖЕНИЕ СЕРВИСОВ
Инструментарий
Nmap
RFCSDK/NWRFCSDK
Vbs/Python
SAP Frontend 7.20
Сценарий
Сканирование портов
Получение информации о сервисах
Подбор мандантов
Подбор пользователей (RFC)
Подбор пользователей (GUI)
Сканирование портов
Поиск SAP системhttp://scn.sap.com/docs/DOC-17124
• SAP DIAG - 32xx-3299 TCP
• SAP RFC - 33xx-3399 TCP
• ICM HTTP - 80xx TCP
• Message Server HTTP -81xx
• HTTP – 5xxxx
ОС
• SSH/Telnet/Rlogin – 22/23/512-514
СУБД
• Oracle 1521-1530
Автоматизация. Использование SAP RFCSDK
SAP RFCSDK – библиотека для разработки приложений работающих с SAP системой по протоколу SAP RFC
Содержит утилиту для тестирования RFC -Startrfc.exe
Может использоваться для интеграции с PHP,Perl, VB, С++, Python
StartRFC.exe
StartRFC.exe. Получение информации
StartRFC.exe. Подбор мандантов и паролей
Подбор мандантов
Перебор паролей и пользователей
Стандартные учетные записи
SAP* - 06071992
SAP* - PASS
DDIC – 19920706
SAPCPIC – ADMIN
EARLYWATCH - SUPPORT
TMSADM – PASSWORD
SAPGUI Scripting
Поддержка включена в SAP Frontend по умолчанию
Для перебора паролей достаточно знания VBS
Для автоматизации действий в SAP системе требуется включение sapgui_userscripting
Может использоваться VBS/JScript
SAPGUI Scripting. VBS
Пример подбор пароля через DIAG
Используем функцию OpenConnectionByConnectionString
В соответствующие поля вводим учетные данные - findById
Контролируем результат выполнения скрипта (ошибка/не ошибка)
Выводим результат
Пример VBS
Использование Python
Пример получения данных из структур SAP
Пример получения данных из таблиц SAP
Нужен RFC SDK, компилятор С/C++, NWRFC for Python
Контролируем результат выполнения (ошибка/не ошибка)
Выводим результат в консоль/файл
Пример Python
ПЕРЕХВАТ ДАННЫХ
Инструменты
Wireshark
SAP DIAG plugin for Wireshark
Microsoft Excel + VBA
Перехват паролей
Перехват паролей c использованием протокола DIAG
• Wireshark plugin SAP DIAG Decompress (2011) (http://www.securitylab.ru/software/409481.php)
• SApCap (2011) (http://www.sensepost.com/labs/tools/poc/sapcap)
• Cain&Abel (2011) (http://oxid.it)
Перехват паролей с использованием протокола RFC
• Attacking SAP by Mariano Nuñez Di Croce(https://www.blackhat.com/presentations/bh-europe-07/Nunez-Di-Croce/Presentation/bh-eu-07-nunez_di_croce-apr19.pdf)
Перехват паролей DIAG
Перехват данных RFC
Пароли передаются в скрытом виде
Алгоритм обфускации – XOR
Ключ для восстановления пароля
31 3e c3 60 e1 06 4e 3f 6b 48 c8 12 f5 fc 20 3c 89 61 2f f1 ef 2e af f3 bd ec 7e 25 b6 a0 71 83 a3 ea7f ec 09 8a 40 21
Перехват паролей RFC
Использование VBA
Пример получения данных из структур SAP
Пример получения данных из таблиц SAP
Нужен SAP GUI или .ocx компоненты для импорта
Контролируем результат выполнения (ошибка/не ошибка)
Выводим результат в Excel
Пример VBA
ПОДБОР ПАРОЛЕЙ ПО ИЗВЕСТНОМУ ХЕШУ
Инструменты
SAP Frontend
Perl
John the Ripper. Сommunity Enhanced
Анализ полученного доступа
Нашли учетную запись
Осуществляем попытку входа
В случае успешного входа анализируем права (в первую очередь запускаем транзакцию SA38/SE38/SE16/SE17/ST04)
Смотрим свои права и привилегии через RSUSR002
RSUSR002
Собираем хеши паролей
Таблицы с хешами: USR02,USH02,USRPWDHISTORY
Способы получения:
• SE16/SE16N/SE17
• ST04/SQL Command Editor
• RFC
• Database Level…
• OS Level/получение данных из файла ОС
Инструменты: SAPGUI, MIL Read Table, VBS, SQLplus ….
SE16
ST04.SQL Command Editor
Получение данных с использованием SA38/SE38
Запускаем тр. SE93 получаем программу запуска.
Открываем таблицу STSC получаем программу запуска.
SA38/SE38 запускаем программу напрямую.
SE93 Maintain transaction
STSC SAP Transaction Codes
Получение данных из таблиц через SQ01/SQ02
В тр. SQ02 создаем новый инфонабор (таблица)
Переходим в тр. SQ01, выбираем созданный инфонабор.
Определяем список полей для вывода
Запускаем отчет, получаем результат.
SQ01/SQ02
SQ01/SQ02
SQ01/SQ02
SQ01/SQ02
SQ01/SQ02
SQ01/SQ02
Уязвимости алгоритмов хеширования
CODVN A – устаревший алгоритм разработанный SAP – длина пароля <=8, символы в UPPERCASE
CODVN B – устаревший алгоритм на базе MD5, длина пароля <=8 остальная часть пароля обрезается, все символы в UPPERCASE, спецсимволы заменяются на символ ^
Уязвимости алгоритмов хеширования
CODVN D – также устаревший алгоритм предназначался для того чтобы исправить ошибки алгоритма B – в части урезания паролей и использования спец символов
CODVN E – пришел на смену паролям B и D ибыл призван устранить их проблемы, работает в версиях с 4.6x до 6.x
• SAP Note 874738 - New password hash calculation procedure (code version E)
Уязвимости алгоритмов хеширования
CODVN F – наиболее часто используемый на текущий момент алгоритм хеширования, основан на SHA1, длина пароля до 40 символов , перед хешированием строки переводятся в UTF-8, поэтому символы могут быть практически любые, работает в версиях начиная с 7.00
Уязвимости алгоритмов хеширования
CODVN G = B+F – можно подобрать сначала часть пароля размером в 8 символов по алгоритму B а затем использовать эту часть для подбора пароля по алгоритму G, работает в версиях начиная с 7.00
Уязвимости алгоритмов хеширования
CODVN H – наиболее безопасный алгоритм хеширования – основан на SHA1 с переменной длиной соли, работает в версиях начиная с 7.02
CODVN I = B+F+H – проблемы аналогичные G
Скорость подбора паролей
• до 700 000 паролей в секунду для CODVN B
• до 300 000 паролей в секунду для CODVN G
John The Ripper. Community Enhanced
John the Ripper 1.7.9-jumbo-5 включает анализ алгоритмов генерации хешей паролей SAP систем типа B и F
Словари паролей Openwall wordlists collection full version - paid download
Используются возможность разделения задачи на несколько CPU.
Тестирование паролей
Выгружаем USR02 (поляBNAME/BCODE/PASSCODE)
Формируем файлы формата username:username<space>$HASHCODE
Выбираем словарь или создаем свой
Запускаем john the ripper
Результаты тестирования
ДОСТУП К ФАЙЛАМ И КОМАНДАМ ОС
Просмотр директорий.
Тр. AL11
SE37 запуск функционального модуля.
CG3Y/CG3Z транзакции
Directory Listing
Directory Listing
Get Files
Put Files
Запуск команд ОС
Запускаем транзакцию SM51
Набираем в поле транзакций grep
Вводим текст вида nnn” ? & <OS command> &
Запуск команд ОС
Запуск команд ОС
Запуск команд ОС
Запуск команд ОС
Запускаем транзакцию SM49/SM69
Создаем свой вариант запуска
Запускаем с нужными опциями
Вывод в дальнейшем можно сохранить локально.
Запуск команд ОС
Запуск команд ОС
Запуск команд ОС
Запуск команд ОС
Запускаем транзакцию SA38
Вводим программу RSBDCOS0
В поле вводим программу OS
Получаем вывод программы.
Запуск команд ОС
Запуск команд ОС
Спасибо за внимание!
Юдин Алексей
ayudin@ptsecurity.ru
Recommended