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

М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
Albina Tiupa
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
Albina Tiupa
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
beched
 
Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)Pconnect: граната в руках обезьяны (Сергей Аверин)
Pconnect: граната в руках обезьяны (Сергей Аверин)
Ontico
 

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 Антон Сапожников. Еще один недостаток современных клиент-серверных приложений

Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Ontico
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
sportgid
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
Alexander Khozya
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Ontico
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
GoIT
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
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 back
qqlan
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного 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

Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
Positive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
Positive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Positive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
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!