SlideShare a Scribd company logo
1 of 22
Еще один недостаток
современных клиент-серверных
приложений
Антон Сапожников
• Антон Сапожников
• Занимаюсь тестированиями на
проникновение больше 6 лет
• CTF player MoreSmokedLeetChicken
– DEFCON, CODEGATE, HITB,…
• KPMG
О чем?
• Рассмотрю типовую задачу, возникающую
на пентестах
• Обсудим возможные варианты её решения
• Поделюсь своими tips & tricks
Постановка задачи
• Корпоративная среда
• Получен удаленный доступ к рабочей
станции пользователя
• Пользователь работает с толстым клиентом
СУБД/АБС/….
• Как получить доступ к данным в СУБД?
Простые решения
• Понаблюдать за экраном пользователя
• metasploit->meterpreter->screenspy|vnc
Простые решения.2
• Не увидел ничего на экране пользователя?
Используй клавиатурный шпион!1
+ metasploit->meterpreter->keylogrecorder
– глюкавый
– нужно ждать…. иногда очень долго
+ можно «убить» приложение
• Поискать в файлах пользователя:
– C:usersuser1Desctoppass.xls
– C:Program FilesMy ProgramData*.*
Не очень простые решения
снять дамп памяти приложения
• meterpreter->memdump
• meterpreter->memory_grep
Pros:
В памяти можно найти:
– паролиимена пользователей
– конфигурации
– куски данных
Cons:
– большие объем данных для анализа
– только текущие данные пользователя
– непонятно что и где искать?
Не очень простые решения.2
Перехват сетевого трафика
• windump*sniff
Pros:
В трафике можно найти:
– паролиимена пользователей
– данные запрашиваемые пользователем
Cons:
– большие объем данных для анализа
– только текущие данные пользователя
– непонятно что и где искать?
– данные могут быть зашифрованы
А что если?
• Паролиключи в памяти не хранятся
• Паролейключей в конфигурационных
файлах нет
• Сетевой трафик шифруется
• К серверу доступ разрешен только с
некоторых ip адресов, и нашего в этом
списке нет
• Реализована двухфакторная
аутентификация
Что делать?
• Хучить (hook) функции работы с сервером в
клиентском приложении
<…>
h = connect(database,username,pass,…);
r = query(h, ‘select PAN, HNAME from CARDS’);
<…>
Как делать?
• Перехват функций работы с сокетами
+ универсальный вариант
– нужно реализовывать протокол
– данные могут быть зашифрованы
• Перехват функций уровня прикладного
протокола или API.
– реализация сильно зависит от приложения
+ удобная работа с сервером
Как делать?.2
Pros:
– Обход ограничений по ip адресам
– Работает в рамках пользовательской сессии, т.е. на
сервере в логах будет только одно соединение
– Обход аутентификации пользователя на сервере
– Обход двухфакторной аутентификации при
установке соединения с сервером
– Незаметно для пользователя атакуемого
приложения
– Возможность напрямую работать с сервером
приложения
Как делать?.3
Cons:
– Зависимость от конкретной версии
приложения
– Права администратора
– SeDebugPrivilege
Например для Oracle
Работа с СУБД Oracle реализованная через OCI.DLL
OCIEnvCreate -> envhp
3xOCIHandleAlloc -> OCI_HTYPE_ERROR, OCI_HTYPE_SERVER,
OCI_HTYPE_SVCCTX,
OCIServerAttach -> srvhp
OCIAttrSet -> OCI_HTYPE_SVCCTX
OCIHandleAlloc -> OCI_HTYPE_SESSION
2xOCIAttrSet -> usernamepass
OCISessionBegin -> svchp
OCIAttrSet -> OCI_HTYPE_SVCCTX
OCIHandleAlloc -> OCI_HTYPE_STMT
OCIStmtPrepare -> stmt
OCIStmtExecute
Например для Oracle.2
– OCIHandleAlloc, дает доступ к envhp
– OCIStmtExecute, дает доступ svchp
– Достаточно корректно перехватить всего два
вызова.
Как перехватить?
– EasyHooking
– DETOURS
– DLL Injection
• http://syprog.blogspot.ru/2012/05/createremotethrea
d-bypass-windows.html
• Начало нужной функции патчим переходом на наш
обработчик
– Your way
Как внедрить?
suspend_all_threads(processId));
remoteAddress = (unsigned
int)VirtualAllocEx(victimProcess, NULL,
sizeof(shellCode), MEM_COMMIT,
PAGE_EXECUTE_READWRITE);
WriteProcessMemory(victimProcess,
(LPVOID)remoteAddress, (LPCVOID)shellCode,
shellCodeSize, &aux));
victimThread = OpenThread(THREAD_ALL_ACCESS,
FALSE, mainThread);
GetThreadContext(victimThread, &ctx);
Как внедрить?.2
WriteProcessMemory(victimProcess,
(LPVOID)ctx.Esp, (LPCVOID)&ctx.Eip,
sizeof(unsigned int), &aux);
ctx.Eip = remoteAddress + sizeof(unsigned int);
SetThreadContext(victimThread, &ctx)
resume_all_threads(processId);
Итого
– Шлем запросы прямо в СУБД
– Нет необходимости аутентифицироваться
– Используем уже установленное соединение
…
– Profit!!1!
КОНЕЦ
Антон Сапожников
@snowytoxa

More Related Content

What's hot

20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройствеAndrew Sovtsov
 
Как обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендацииКак обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендацииNaZapad
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
4.3. Rat races conditions
4.3. Rat races conditions4.3. Rat races conditions
4.3. Rat races conditionsdefconmoscow
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервереAndrew Sovtsov
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениSQALab
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUBadoo Development
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingIevgenii Katsan
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуPositive Development User Group
 
Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Ontico
 
Speeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI testsSpeeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI testsAnton Stepanenko
 

What's hot (20)

PHP
PHPPHP
PHP
 
20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве20160309 Простейший контрольный список на мобильном устройстве
20160309 Простейший контрольный список на мобильном устройстве
 
Как обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендацииКак обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендации
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
 
Hl2009 1c Bitrix
Hl2009 1c BitrixHl2009 1c Bitrix
Hl2009 1c Bitrix
 
4.3. Rat races conditions
4.3. Rat races conditions4.3. Rat races conditions
4.3. Rat races conditions
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
 
Highload 2011-demona
Highload 2011-demonaHighload 2011-demona
Highload 2011-demona
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времени
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RU
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testing
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
 
Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)
 
Кто сказал «WAF»?
Кто сказал «WAF»?Кто сказал «WAF»?
Кто сказал «WAF»?
 
Speeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI testsSpeeding up UI tests, profiling of UI tests
Speeding up UI tests, profiling of UI tests
 

Similar to Антон Сапожников. Еще один недостаток современных клиент-серверных приложений

IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложенийAlexander Khozya
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Ontico
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьGoIT
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Руководство по формату событий для разработчиков
Руководство по формату событий для разработчиковРуководство по формату событий для разработчиков
Руководство по формату событий для разработчиковOlesya Shelestova
 
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012
Разработка WinRT приложений для  Windows 8: реальный опыт, UA Mobile 2012Разработка WinRT приложений для  Windows 8: реальный опыт, UA Mobile 2012
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012Mykhail Galushko
 
Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программистru_Parallels
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 
Cоздание приложений со знанием Perl
Cоздание приложений со знанием PerlCоздание приложений со знанием Perl
Cоздание приложений со знанием PerlAnatoly Sharifulin
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...HappyDev
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and backqqlan
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Sergey Xek
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...rit2011
 

Similar to Антон Сапожников. Еще один недостаток современных клиент-серверных приложений (20)

Sivko
SivkoSivko
Sivko
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Руководство по формату событий для разработчиков
Руководство по формату событий для разработчиковРуководство по формату событий для разработчиков
Руководство по формату событий для разработчиков
 
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012
Разработка WinRT приложений для  Windows 8: реальный опыт, UA Mobile 2012Разработка WinRT приложений для  Windows 8: реальный опыт, UA Mobile 2012
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012
 
Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программист
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Cоздание приложений со знанием Perl
Cоздание приложений со знанием PerlCоздание приложений со знанием Perl
Cоздание приложений со знанием Perl
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 

More from 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
 

More from 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 и брутфорс-атаки
 

Антон Сапожников. Еще один недостаток современных клиент-серверных приложений

  • 1. Еще один недостаток современных клиент-серверных приложений Антон Сапожников
  • 2. • Антон Сапожников • Занимаюсь тестированиями на проникновение больше 6 лет • CTF player MoreSmokedLeetChicken – DEFCON, CODEGATE, HITB,… • KPMG
  • 3. О чем? • Рассмотрю типовую задачу, возникающую на пентестах • Обсудим возможные варианты её решения • Поделюсь своими tips & tricks
  • 4. Постановка задачи • Корпоративная среда • Получен удаленный доступ к рабочей станции пользователя • Пользователь работает с толстым клиентом СУБД/АБС/…. • Как получить доступ к данным в СУБД?
  • 5. Простые решения • Понаблюдать за экраном пользователя • metasploit->meterpreter->screenspy|vnc
  • 6.
  • 7. Простые решения.2 • Не увидел ничего на экране пользователя? Используй клавиатурный шпион!1 + metasploit->meterpreter->keylogrecorder – глюкавый – нужно ждать…. иногда очень долго + можно «убить» приложение • Поискать в файлах пользователя: – C:usersuser1Desctoppass.xls – C:Program FilesMy ProgramData*.*
  • 8. Не очень простые решения снять дамп памяти приложения • meterpreter->memdump • meterpreter->memory_grep Pros: В памяти можно найти: – паролиимена пользователей – конфигурации – куски данных Cons: – большие объем данных для анализа – только текущие данные пользователя – непонятно что и где искать?
  • 9. Не очень простые решения.2 Перехват сетевого трафика • windump*sniff Pros: В трафике можно найти: – паролиимена пользователей – данные запрашиваемые пользователем Cons: – большие объем данных для анализа – только текущие данные пользователя – непонятно что и где искать? – данные могут быть зашифрованы
  • 10. А что если? • Паролиключи в памяти не хранятся • Паролейключей в конфигурационных файлах нет • Сетевой трафик шифруется • К серверу доступ разрешен только с некоторых ip адресов, и нашего в этом списке нет • Реализована двухфакторная аутентификация
  • 11. Что делать? • Хучить (hook) функции работы с сервером в клиентском приложении <…> h = connect(database,username,pass,…); r = query(h, ‘select PAN, HNAME from CARDS’); <…>
  • 12.
  • 13. Как делать? • Перехват функций работы с сокетами + универсальный вариант – нужно реализовывать протокол – данные могут быть зашифрованы • Перехват функций уровня прикладного протокола или API. – реализация сильно зависит от приложения + удобная работа с сервером
  • 14. Как делать?.2 Pros: – Обход ограничений по ip адресам – Работает в рамках пользовательской сессии, т.е. на сервере в логах будет только одно соединение – Обход аутентификации пользователя на сервере – Обход двухфакторной аутентификации при установке соединения с сервером – Незаметно для пользователя атакуемого приложения – Возможность напрямую работать с сервером приложения
  • 15. Как делать?.3 Cons: – Зависимость от конкретной версии приложения – Права администратора – SeDebugPrivilege
  • 16. Например для Oracle Работа с СУБД Oracle реализованная через OCI.DLL OCIEnvCreate -> envhp 3xOCIHandleAlloc -> OCI_HTYPE_ERROR, OCI_HTYPE_SERVER, OCI_HTYPE_SVCCTX, OCIServerAttach -> srvhp OCIAttrSet -> OCI_HTYPE_SVCCTX OCIHandleAlloc -> OCI_HTYPE_SESSION 2xOCIAttrSet -> usernamepass OCISessionBegin -> svchp OCIAttrSet -> OCI_HTYPE_SVCCTX OCIHandleAlloc -> OCI_HTYPE_STMT OCIStmtPrepare -> stmt OCIStmtExecute
  • 17. Например для Oracle.2 – OCIHandleAlloc, дает доступ к envhp – OCIStmtExecute, дает доступ svchp – Достаточно корректно перехватить всего два вызова.
  • 18. Как перехватить? – EasyHooking – DETOURS – DLL Injection • http://syprog.blogspot.ru/2012/05/createremotethrea d-bypass-windows.html • Начало нужной функции патчим переходом на наш обработчик – Your way
  • 19. Как внедрить? suspend_all_threads(processId)); remoteAddress = (unsigned int)VirtualAllocEx(victimProcess, NULL, sizeof(shellCode), MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(victimProcess, (LPVOID)remoteAddress, (LPCVOID)shellCode, shellCodeSize, &aux)); victimThread = OpenThread(THREAD_ALL_ACCESS, FALSE, mainThread); GetThreadContext(victimThread, &ctx);
  • 20. Как внедрить?.2 WriteProcessMemory(victimProcess, (LPVOID)ctx.Esp, (LPCVOID)&ctx.Eip, sizeof(unsigned int), &aux); ctx.Eip = remoteAddress + sizeof(unsigned int); SetThreadContext(victimThread, &ctx) resume_all_threads(processId);
  • 21. Итого – Шлем запросы прямо в СУБД – Нет необходимости аутентифицироваться – Используем уже установленное соединение … – Profit!!1!