sap hands on lab_ru

67
Hands-on Lab Анализ SAP систем Юдин Алексей Positive Technologies

Upload: positive-hack-days

Post on 12-Jul-2015

1.435 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: SAP hands on lab_ru

Hands-on LabАнализ SAP систем

Юдин Алексей

Positive Technologies

Page 2: SAP hands on lab_ru

LABS

Поиск сервисов. Получение информации. Удаленный подбор паролей.

Перехват данных аутентификации (RFC/DIAG). Обход авторизаций. VBA+RFC.

Анализ полученного доступа. Доступ к хешампаролей пользователей. Подбор паролей “offline”.

Получение данных из другого манданта. Доступ к файлам ОС. Запуск команд ОС

Page 3: SAP hands on lab_ru

ОБНАРУЖЕНИЕ СЕРВИСОВ

Page 4: SAP hands on lab_ru

Инструментарий

Nmap

RFCSDK/NWRFCSDK

Vbs/Python

SAP Frontend 7.20

Page 5: SAP hands on lab_ru

Сценарий

Сканирование портов

Получение информации о сервисах

Подбор мандантов

Подбор пользователей (RFC)

Подбор пользователей (GUI)

Page 6: SAP hands on lab_ru

Сканирование портов

Поиск 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

Page 7: SAP hands on lab_ru

Автоматизация. Использование SAP RFCSDK

SAP RFCSDK – библиотека для разработки приложений работающих с SAP системой по протоколу SAP RFC

Содержит утилиту для тестирования RFC -Startrfc.exe

Может использоваться для интеграции с PHP,Perl, VB, С++, Python

Page 8: SAP hands on lab_ru

StartRFC.exe

Page 9: SAP hands on lab_ru

StartRFC.exe. Получение информации

Page 10: SAP hands on lab_ru

StartRFC.exe. Подбор мандантов и паролей

Подбор мандантов

Перебор паролей и пользователей

Page 11: SAP hands on lab_ru

Стандартные учетные записи

SAP* - 06071992

SAP* - PASS

DDIC – 19920706

SAPCPIC – ADMIN

EARLYWATCH - SUPPORT

TMSADM – PASSWORD

Page 12: SAP hands on lab_ru

SAPGUI Scripting

Поддержка включена в SAP Frontend по умолчанию

Для перебора паролей достаточно знания VBS

Для автоматизации действий в SAP системе требуется включение sapgui_userscripting

Может использоваться VBS/JScript

Page 13: SAP hands on lab_ru

SAPGUI Scripting. VBS

Пример подбор пароля через DIAG

Используем функцию OpenConnectionByConnectionString

В соответствующие поля вводим учетные данные - findById

Контролируем результат выполнения скрипта (ошибка/не ошибка)

Выводим результат

Page 14: SAP hands on lab_ru

Пример VBS

Page 15: SAP hands on lab_ru

Использование Python

Пример получения данных из структур SAP

Пример получения данных из таблиц SAP

Нужен RFC SDK, компилятор С/C++, NWRFC for Python

Контролируем результат выполнения (ошибка/не ошибка)

Выводим результат в консоль/файл

Page 16: SAP hands on lab_ru

Пример Python

Page 17: SAP hands on lab_ru

ПЕРЕХВАТ ДАННЫХ

Page 18: SAP hands on lab_ru

Инструменты

Wireshark

SAP DIAG plugin for Wireshark

Microsoft Excel + VBA

Page 19: SAP hands on lab_ru

Перехват паролей

Перехват паролей 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)

Page 20: SAP hands on lab_ru

Перехват паролей DIAG

Page 21: SAP hands on lab_ru

Перехват данных 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

Page 22: SAP hands on lab_ru

Перехват паролей RFC

Page 23: SAP hands on lab_ru

Использование VBA

Пример получения данных из структур SAP

Пример получения данных из таблиц SAP

Нужен SAP GUI или .ocx компоненты для импорта

Контролируем результат выполнения (ошибка/не ошибка)

Выводим результат в Excel

Page 24: SAP hands on lab_ru

Пример VBA

Page 25: SAP hands on lab_ru

ПОДБОР ПАРОЛЕЙ ПО ИЗВЕСТНОМУ ХЕШУ

Page 26: SAP hands on lab_ru

Инструменты

SAP Frontend

Perl

John the Ripper. Сommunity Enhanced

Page 27: SAP hands on lab_ru

Анализ полученного доступа

Нашли учетную запись

Осуществляем попытку входа

В случае успешного входа анализируем права (в первую очередь запускаем транзакцию SA38/SE38/SE16/SE17/ST04)

Смотрим свои права и привилегии через RSUSR002

Page 28: SAP hands on lab_ru

RSUSR002

Page 29: SAP hands on lab_ru

Собираем хеши паролей

Таблицы с хешами: USR02,USH02,USRPWDHISTORY

Способы получения:

• SE16/SE16N/SE17

• ST04/SQL Command Editor

• RFC

• Database Level…

• OS Level/получение данных из файла ОС

Инструменты: SAPGUI, MIL Read Table, VBS, SQLplus ….

Page 30: SAP hands on lab_ru

SE16

Page 31: SAP hands on lab_ru

ST04.SQL Command Editor

Page 32: SAP hands on lab_ru

Получение данных с использованием SA38/SE38

Запускаем тр. SE93 получаем программу запуска.

Открываем таблицу STSC получаем программу запуска.

SA38/SE38 запускаем программу напрямую.

Page 33: SAP hands on lab_ru

SE93 Maintain transaction

Page 34: SAP hands on lab_ru

STSC SAP Transaction Codes

Page 35: SAP hands on lab_ru

Получение данных из таблиц через SQ01/SQ02

В тр. SQ02 создаем новый инфонабор (таблица)

Переходим в тр. SQ01, выбираем созданный инфонабор.

Определяем список полей для вывода

Запускаем отчет, получаем результат.

Page 36: SAP hands on lab_ru

SQ01/SQ02

Page 37: SAP hands on lab_ru

SQ01/SQ02

Page 38: SAP hands on lab_ru

SQ01/SQ02

Page 39: SAP hands on lab_ru

SQ01/SQ02

Page 40: SAP hands on lab_ru

SQ01/SQ02

Page 41: SAP hands on lab_ru

SQ01/SQ02

Page 42: SAP hands on lab_ru

Уязвимости алгоритмов хеширования

CODVN A – устаревший алгоритм разработанный SAP – длина пароля <=8, символы в UPPERCASE

CODVN B – устаревший алгоритм на базе MD5, длина пароля <=8 остальная часть пароля обрезается, все символы в UPPERCASE, спецсимволы заменяются на символ ^

Page 43: SAP hands on lab_ru

Уязвимости алгоритмов хеширования

CODVN D – также устаревший алгоритм предназначался для того чтобы исправить ошибки алгоритма B – в части урезания паролей и использования спец символов

CODVN E – пришел на смену паролям B и D ибыл призван устранить их проблемы, работает в версиях с 4.6x до 6.x

• SAP Note 874738 - New password hash calculation procedure (code version E)

Page 44: SAP hands on lab_ru

Уязвимости алгоритмов хеширования

CODVN F – наиболее часто используемый на текущий момент алгоритм хеширования, основан на SHA1, длина пароля до 40 символов , перед хешированием строки переводятся в UTF-8, поэтому символы могут быть практически любые, работает в версиях начиная с 7.00

Page 45: SAP hands on lab_ru

Уязвимости алгоритмов хеширования

CODVN G = B+F – можно подобрать сначала часть пароля размером в 8 символов по алгоритму B а затем использовать эту часть для подбора пароля по алгоритму G, работает в версиях начиная с 7.00

Page 46: SAP hands on lab_ru

Уязвимости алгоритмов хеширования

CODVN H – наиболее безопасный алгоритм хеширования – основан на SHA1 с переменной длиной соли, работает в версиях начиная с 7.02

CODVN I = B+F+H – проблемы аналогичные G

Скорость подбора паролей

• до 700 000 паролей в секунду для CODVN B

• до 300 000 паролей в секунду для CODVN G

Page 48: SAP hands on lab_ru

Тестирование паролей

Выгружаем USR02 (поляBNAME/BCODE/PASSCODE)

Формируем файлы формата username:username<space>$HASHCODE

Выбираем словарь или создаем свой

Запускаем john the ripper

Page 49: SAP hands on lab_ru

Результаты тестирования

Page 50: SAP hands on lab_ru

ДОСТУП К ФАЙЛАМ И КОМАНДАМ ОС

Page 51: SAP hands on lab_ru

Просмотр директорий.

Тр. AL11

SE37 запуск функционального модуля.

CG3Y/CG3Z транзакции

Page 52: SAP hands on lab_ru

Directory Listing

Page 53: SAP hands on lab_ru

Directory Listing

Page 54: SAP hands on lab_ru

Get Files

Page 55: SAP hands on lab_ru

Put Files

Page 56: SAP hands on lab_ru

Запуск команд ОС

Запускаем транзакцию SM51

Набираем в поле транзакций grep

Вводим текст вида nnn” ? & <OS command> &

Page 57: SAP hands on lab_ru

Запуск команд ОС

Page 58: SAP hands on lab_ru

Запуск команд ОС

Page 59: SAP hands on lab_ru

Запуск команд ОС

Page 60: SAP hands on lab_ru

Запуск команд ОС

Запускаем транзакцию SM49/SM69

Создаем свой вариант запуска

Запускаем с нужными опциями

Вывод в дальнейшем можно сохранить локально.

Page 61: SAP hands on lab_ru

Запуск команд ОС

Page 62: SAP hands on lab_ru

Запуск команд ОС

Page 63: SAP hands on lab_ru

Запуск команд ОС

Page 64: SAP hands on lab_ru

Запуск команд ОС

Запускаем транзакцию SA38

Вводим программу RSBDCOS0

В поле вводим программу OS

Получаем вывод программы.

Page 65: SAP hands on lab_ru

Запуск команд ОС

Page 66: SAP hands on lab_ru

Запуск команд ОС

Page 67: SAP hands on lab_ru

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

Юдин Алексей

[email protected]