2. LABS
Поиск сервисов. Получение информации.
Удаленный подбор паролей.
Перехват данных аутентификации (RFC/DIAG).
Обход авторизаций. VBA+RFC.
Анализ полученного доступа. Доступ к хешам
паролей пользователей. Подбор паролей
“offline”.
Получение данных из другого манданта. Доступ
к файлам ОС. Запуск команд ОС
4. Инструментарий
Nmap
RFCSDK/NWRFCSDK
Vbs/Python
SAP Frontend 7.20
5. Сценарий
Сканирование портов
Получение информации о сервисах
Подбор мандантов
Подбор пользователей (RFC)
Подбор пользователей (GUI)
6. Сканирование портов
Поиск 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
7. Автоматизация. Использование SAP RFCSDK
SAP RFCSDK – библиотека для разработки
приложений работающих с SAP системой по
протоколу SAP RFC
Содержит утилиту для тестирования RFC -
Startrfc.exe
Может использоваться для интеграции с PHP,
Perl, VB, С++, Python
12. SAPGUI Scripting
Поддержка включена в SAP Frontend по
умолчанию
Для перебора паролей достаточно знания VBS
Для автоматизации действий в SAP системе
требуется включение sapgui_userscripting
Может использоваться VBS/JScript
13. SAPGUI Scripting. VBS
Пример подбор пароля через DIAG
Используем функцию
OpenConnectionByConnectionString
В соответствующие поля вводим учетные
данные - findById
Контролируем результат выполнения скрипта
(ошибка/не ошибка)
Выводим результат
15. Использование Python
Пример получения данных из структур SAP
Пример получения данных из таблиц SAP
Нужен RFC SDK, компилятор С/C++, NWRFC for
Python
Контролируем результат выполнения
(ошибка/не ошибка)
Выводим результат в консоль/файл
21. Перехват данных 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 ea
7f ec 09 8a 40 21
23. Использование VBA
Пример получения данных из структур SAP
Пример получения данных из таблиц SAP
Нужен SAP GUI или .ocx компоненты для
импорта
Контролируем результат выполнения
(ошибка/не ошибка)
Выводим результат в Excel
26. Инструменты
SAP Frontend
Perl
John the Ripper. Сommunity Enhanced
27. Анализ полученного доступа
Нашли учетную запись
Осуществляем попытку входа
В случае успешного входа анализируем права (в
первую очередь запускаем транзакцию
SA38/SE38/SE16/SE17/ST04)
Смотрим свои права и привилегии через
RSUSR002
32. Получение данных с использованием SA38/SE38
Запускаем тр. SE93 получаем программу
запуска.
Открываем таблицу STSC получаем программу
запуска.
SA38/SE38 запускаем программу напрямую.
35. Получение данных из таблиц через SQ01/SQ02
В тр. SQ02 создаем новый инфонабор (таблица)
Переходим в тр. SQ01, выбираем созданный
инфонабор.
Определяем список полей для вывода
Запускаем отчет, получаем результат.
42. Уязвимости алгоритмов хеширования
CODVN A – устаревший алгоритм разработанный
SAP – длина пароля <=8, символы в UPPERCASE
CODVN B – устаревший алгоритм на базе MD5,
длина пароля <=8 остальная часть пароля
обрезается, все символы в UPPERCASE,
спецсимволы заменяются на символ ^
43. Уязвимости алгоритмов хеширования
CODVN D – также устаревший алгоритм
предназначался для того чтобы исправить
ошибки алгоритма B – в части урезания паролей
и использования спец символов
CODVN E – пришел на смену паролям B и D и
был призван устранить их проблемы, работает в
версиях с 4.6x до 6.x
• SAP Note 874738 - New password hash calculation
procedure (code version E)
44. Уязвимости алгоритмов хеширования
CODVN F – наиболее часто используемый на
текущий момент алгоритм хеширования,
основан на SHA1, длина пароля до 40 символов ,
перед хешированием строки переводятся в UTF-
8, поэтому символы могут быть практически
любые, работает в версиях начиная с 7.00
45. Уязвимости алгоритмов хеширования
CODVN G = B+F – можно подобрать сначала
часть пароля размером в 8 символов по
алгоритму B а затем использовать эту часть для
подбора пароля по алгоритму G, работает в
версиях начиная с 7.00
46. Уязвимости алгоритмов хеширования
CODVN H – наиболее безопасный алгоритм
хеширования – основан на SHA1 с переменной
длиной соли, работает в версиях начиная с 7.02
CODVN I = B+F+H – проблемы аналогичные G
Скорость подбора паролей
• до 700 000 паролей в секунду для CODVN B
• до 300 000 паролей в секунду для CODVN G
47. John The Ripper. Community Enhanced
John the Ripper 1.7.9-jumbo-5 включает анализ
алгоритмов генерации хешей паролей SAP
систем типа B и F
Словари паролей Openwall wordlists collection
full version - paid download
Используются возможность разделения задачи
на несколько CPU.
48. Тестирование паролей
Выгружаем USR02 (поля
BNAME/BCODE/PASSCODE)
Формируем файлы формата
username:username<space>$HASHCODE
Выбираем словарь или создаем свой
Запускаем john the ripper
60. Запуск команд ОС
Запускаем транзакцию SM49/SM69
Создаем свой вариант запуска
Запускаем с нужными опциями
Вывод в дальнейшем можно сохранить
локально.