SlideShare une entreprise Scribd logo
1  sur  67
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 ea
       7f 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

Contenu connexe

Similaire à SAP hands on lab_ru

Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Ontico
 
Сравнение ТОП 5 SIEM РФ
Сравнение ТОП 5 SIEM РФСравнение ТОП 5 SIEM РФ
Сравнение ТОП 5 SIEM РФPete Kuzeev
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)e-Legion
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаAndrey Karpov
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаcorehard_by
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2Dima Dzuba
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средстваCisco Russia
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Ilya Kaznacheev
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Alex Tutubalin
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor SysoevMedia Gorod
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3Dima Dzuba
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 

Similaire à SAP hands on lab_ru (20)

Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)Компиляция скриптов PHP (Алексей Романенко)
Компиляция скриптов PHP (Алексей Романенко)
 
Сравнение ТОП 5 SIEM РФ
Сравнение ТОП 5 SIEM РФСравнение ТОП 5 SIEM РФ
Сравнение ТОП 5 SIEM РФ
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
 
Поиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кода
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2МАИ, Сети ЭВМ, Лекция №2
МАИ, Сети ЭВМ, Лекция №2
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средства
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor Sysoev
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3МАИ, Сети ЭВМ, Лекция №3
МАИ, Сети ЭВМ, Лекция №3
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 

Plus de Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

Plus de Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

SAP hands on lab_ru

  • 1. Hands-on Lab Анализ SAP систем Юдин Алексей Positive Technologies
  • 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
  • 10. StartRFC.exe. Подбор мандантов и паролей Подбор мандантов Перебор паролей и пользователей
  • 11. Стандартные учетные записи SAP* - 06071992 SAP* - PASS DDIC – 19920706 SAPCPIC – ADMIN EARLYWATCH - SUPPORT TMSADM – PASSWORD
  • 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 Контролируем результат выполнения (ошибка/не ошибка) Выводим результат в консоль/файл
  • 18. Инструменты Wireshark SAP DIAG plugin for Wireshark Microsoft Excel + VBA
  • 19. Перехват паролей Перехват паролей 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)
  • 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
  • 29. Собираем хеши паролей Таблицы с хешами: USR02,USH02,USRPWDHISTORY Способы получения: • SE16/SE16N/SE17 • ST04/SQL Command Editor • RFC • Database Level… • OS Level/получение данных из файла ОС Инструменты: SAPGUI, MIL Read Table, VBS, SQLplus ….
  • 30. SE16
  • 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
  • 50. ДОСТУП К ФАЙЛАМ И КОМАНДАМ ОС
  • 51. Просмотр директорий. Тр. AL11 SE37 запуск функционального модуля. CG3Y/CG3Z транзакции
  • 56. Запуск команд ОС Запускаем транзакцию SM51 Набираем в поле транзакций grep Вводим текст вида nnn” ? & <OS command> &
  • 60. Запуск команд ОС Запускаем транзакцию SM49/SM69 Создаем свой вариант запуска Запускаем с нужными опциями Вывод в дальнейшем можно сохранить локально.
  • 64. Запуск команд ОС Запускаем транзакцию SA38 Вводим программу RSBDCOS0 В поле вводим программу OS Получаем вывод программы.
  • 67. Спасибо за внимание! Юдин Алексей ayudin@ptsecurity.ru