SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Атаки на веб-приложения в тестах на
проникновение
VolgaCTF 2013
Ганиев Омар
Отдел анализа защищенности
Curriculum Vitae
― Изучаю ИБ лет 6
― Факультет математики НИУ-ВШЭ
― CTF-команда RDot.Org
― Хакерский отдел «Информзащиты»
― Beched
Проникновение
― Цепочка некоторых действий
― Недостаточно одной уязвимости
― Разные пути для достижения цели
― Защищенность определяется слабым звеном
― Black vs white box, внутреннее vs внешнее
Кто самое слабое звено?
Персонал
Web-
приложения
Сетевое
оборудование
СУБД
Файловые
хранилища
Прочие
сетевые
сервисы
Кто самое слабое звено?
36%
56%
73%
0%
10%
20%
30%
40%
50%
60%
70%
80%
2010 2011 2012
Успешность проведение атак методом
социальной инженерии за последние 3
года
Зачем тогда ломать web?
― Больше свободы действий (меньше
согласований), меньше риск провала
― Веб-приложения всюду есть, и они часто
«самописные»
― Зачастую критичные ресурсы напрямую связаны
и с web-приложением
― Более распространённая в жизни модель
взлома
Какие проблемы?
― Веб-серверы обычно в DMZ
― Значит, трудно настроить канал связи, и трудно
попасть в другие сегменты
― Низкие привилегии HTTP-демона
― Требуется больше технических навыков
Некоторые решения
― При наличии таблицы маршрутизации можно
найти путь для проникновения на
ориентированном графе маршрутов сети
― Поднятие привилегий
(kernel, libraries, backups, suid-binaries, crontab, …)
― Другие пути (см. далее)
― Intranet access via HTTP proxy
― SSRF via LFR
― DNS-spoofing via router
― Intranet access via web socks
― Bind shell via socket reuse
Cases
Intranet access via HTTP proxy
― Squid, mod_proxy… По умолчанию всё ok
― server: WebSEAL/6.0.0.0 (Build 051114), wtf?
― IBM Tivoli WebSEAL reverse proxy
― Авторизация не включена
― GET http://some-host.intranet/somepage HTTP/1.1...
― Intranet
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.30.109.249
netmask 255.255.255.0
gateway 172.30.109.254
SSRF via LFR
<? //LFR = Local File Reading
readfile($_GET[‘filename’]);
Из документации PHP:
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
Читаем исходники, конфиги, но RCE не получилось =(
download.php?filename=/etc/network/interfaces
SSRF via LFR
Но $filename в мануале PHP – это URL, а не просто путь.
SSRF – Server-Side Request Forgery
(в данном случае имеем простейшую вариацию).
/etc/network/interfaces => IP-адрес и маска =>
сканирование подсети:
download.php?filename=http://172.30.109.1-254:1-65535/
SSRF via LFR
download.php?filename=http://172.30.109.2/
Squid
stats
SSRF via LFR
Что можно ещѐ сделать?
PHP wrappers:
http://php.net/manual/en/wrappers.php
SSRF bible (cheatsheet by d0znpp):
https://docs.google.com/document/d/1v1TkWZtrhzRLy0bYX
BcdLUedXGb9njTNIJXa3u9akHM
HTTP, FTP, SSH, File Descriptors…
Может привести к исполнению кода.
DNS spoofing via router
FTP brute force => admin:admin
Admin
panel
DNS spoofing via router
config.img => privileged admin
Telnet
console
<chain N="USERNAME_PASSWORD">
<V N="FLAG" V="0x0"/>
<V N="USERNAME" V="admin"/>
<V N="PASSWORD" V=“**PASSHERE**"/>
<V N="BACKDOOR" V="0x1"/>
<V N="PRIORITY" V="0x1"/>
</chain>
DNS spoofing via router
DNS spoofing, Bind9 logging => logs
$ cat /etc/namedb/named.conf
……
logging {
channel my_file {
file "log.msgs";
severity debug;
print-category yes;
print-severity yes;
};
category default { default_syslog; my_file; };
category queries { my_file; };
};
DNS spoofing via router
Host forgery => HTTP logs
*.kaspersky.com IN A 31.3.3.7
Apache logs
DNS spoofing via router
― Мониторинг посещаемых узлов
― Подмена страниц на фишинговые
― Подмена обновлений ПО (на скриншоте выше
логи обращения KIS)
― PPP-аккаунт у провайдера
Intranet access via web socks
― Web-shell (PHP, ASP.NET, …)
― Привилегии поднять не удалось
― DMZ, на NAT открыт только 80 или 443 порты
― Что делать?
― Web Socks!
― Intranet
Intranet access via web socks
Some packet => SOCKS => ProxyChains
=> Local daemon => HTTP => Web SOCKS => Target
Локально запускаем демон. Инкапсулируем любой протокол
в SOCKS, демон его инкапсулирует в HTTP и передаѐт пакет
PHP-скрипту через веб-сервер.
Скрипт работает по протоколу SOCKS, возвращая ответы по
HTTP, используя веб-сервер, т.е. не нужно биндить порт и
обходить DMZ.
Далее проксифицируем ПО (в т. ч. Nmap, RDP-клиенты) при
помощи proxychains.
$ cat /etc/proxychains.conf | grep socks5
socks5 127.0.0.1 1080
$ proxychains nmap --top-ports 100 10.10.17.0/24
…
Intranet access via web socks
Реализации web SOCKS.
На PHP от ShAnKaR (Antichat);
http://forum.antichat.ru/threadnav177147-1-10.html
На ASP.NET (reDuh) от SensePost:
http://research.sensepost.com/tools/web/reduh
Intranet access via web socks
Bind shell via socket reuse
― Web-shell (PHP, ASP.NET, …)
― Удалось получить привилегии суперпользователя
― DMZ, на NAT открыт только 80 или 443 порты
― Что делать? Не ронять же веб-сервер!
― Socket reuse!
― Нормальный терминал
Bind shell via socket reuse
Приоритет демонов повышается от частного к общему
$ cat /etc/apache2/ports.conf | grep Listen
Listen *:80
$ sudo netstat –apn | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12669/apache2
Socket reuse:
…
setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) );
…
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //just example
Может не сработать, например, на SELinux. Зато работает на FreeBSD
Можно просто одним сценарием отключить Apache, запустить демон шелла
и запустить Apache, перехватив первое соединение
(закрываем дескриптор сокета, не закрывая соединение).
Но это риск.
Outro
― Во всём виноваты люди
― Людей проще эксплуатировать, но проще и
провалиться
― Веб-приложения эксплуатировать сложнее, но это
происходит незаметно
― Для взлома веб-серверов надо знать скриптовые
языки и структуру ОС
― Для проникновения надо знать структуру сетей и
размышлять в разных плоскостях
Ганиев Омар
Отдел анализа защищѐнности
admin@ahack.ru
VolgaCTF 2013
Вопросы?

Weitere ähnliche Inhalte

Was ist angesagt?

Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуPositive Development User Group
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахSergey Belov
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыPositive Development User Group
 
Типовые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системТиповые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системDmitry Evteev
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...OWASP Russia
 
Application security? Firewall it!
Application security? Firewall it!Application security? Firewall it!
Application security? Firewall it!Positive Hack Days
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийDmitry Evteev
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Development User Group
 
Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Dmitry Evteev
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Development User Group
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Development User Group
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Development User Group
 
Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Dmitry Evteev
 
Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Dmitry Evteev
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftDmitry Evteev
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийDmitry Evteev
 

Was ist angesagt? (20)

Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
 
CodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидахCodeFest 2012 - Пентест на стероидах
CodeFest 2012 - Пентест на стероидах
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
Типовые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системТиповые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских систем
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
[1.4] «Ой, не шмогла». Обзор ограничений современных технологий в области ...
 
Application security? Firewall it!
Application security? Firewall it!Application security? Firewall it!
Application security? Firewall it!
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Реальные опасности виртуального мира.
Реальные опасности виртуального мира.
 
Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
Трущобы Application Security
Трущобы Application SecurityТрущобы Application Security
Трущобы Application Security
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
 

Ähnlich wie Пост-эксплуатация веб-приложений в тестах на проникновение

Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийsnowytoxa
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application FirewallDmitry Evteev
 
HighLoad++ 2019: iptables + consul = :3
HighLoad++ 2019: iptables + consul = :3HighLoad++ 2019: iptables + consul = :3
HighLoad++ 2019: iptables + consul = :3Ivan Agarkov
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментовVitalii Morvaniuk
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийSergey Belov
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Mikhail Egorov
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Ontico
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkOleksandr Torosh
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
 

Ähnlich wie Пост-эксплуатация веб-приложений в тестах на проникновение (20)

Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
еще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложенийеще один недостаток современных клиент серверных приложений
еще один недостаток современных клиент серверных приложений
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application Firewall
 
176023
176023176023
176023
 
DDOS mitigation software solutions
DDOS mitigation software solutionsDDOS mitigation software solutions
DDOS mitigation software solutions
 
HighLoad++ 2019: iptables + consul = :3
HighLoad++ 2019: iptables + consul = :3HighLoad++ 2019: iptables + consul = :3
HighLoad++ 2019: iptables + consul = :3
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
 
современная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложенийсовременная практика статического анализа безопасности кода веб приложений
современная практика статического анализа безопасности кода веб приложений
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Phalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP FrameworkPhalcon - самый быстрый PHP Framework
Phalcon - самый быстрый PHP Framework
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
 
IBM Proventia IPS
IBM Proventia IPSIBM Proventia IPS
IBM Proventia IPS
 

Mehr von beched

Attacks against machine learning algorithms
Attacks against machine learning algorithmsAttacks against machine learning algorithms
Attacks against machine learning algorithmsbeched
 
Hacking as eSports
Hacking as eSportsHacking as eSports
Hacking as eSportsbeched
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
Data mining for nmap acceleration
Data mining for nmap accelerationData mining for nmap acceleration
Data mining for nmap accelerationbeched
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited timebeched
 
Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trendsbeched
 
Vulnerabilities in data processing levels
Vulnerabilities in data processing levelsVulnerabilities in data processing levels
Vulnerabilities in data processing levelsbeched
 

Mehr von beched (7)

Attacks against machine learning algorithms
Attacks against machine learning algorithmsAttacks against machine learning algorithms
Attacks against machine learning algorithms
 
Hacking as eSports
Hacking as eSportsHacking as eSports
Hacking as eSports
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
Data mining for nmap acceleration
Data mining for nmap accelerationData mining for nmap acceleration
Data mining for nmap acceleration
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited time
 
Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trends
 
Vulnerabilities in data processing levels
Vulnerabilities in data processing levelsVulnerabilities in data processing levels
Vulnerabilities in data processing levels
 

Пост-эксплуатация веб-приложений в тестах на проникновение

  • 1. Атаки на веб-приложения в тестах на проникновение VolgaCTF 2013 Ганиев Омар Отдел анализа защищенности
  • 2. Curriculum Vitae ― Изучаю ИБ лет 6 ― Факультет математики НИУ-ВШЭ ― CTF-команда RDot.Org ― Хакерский отдел «Информзащиты» ― Beched
  • 3. Проникновение ― Цепочка некоторых действий ― Недостаточно одной уязвимости ― Разные пути для достижения цели ― Защищенность определяется слабым звеном ― Black vs white box, внутреннее vs внешнее
  • 4. Кто самое слабое звено? Персонал Web- приложения Сетевое оборудование СУБД Файловые хранилища Прочие сетевые сервисы
  • 5. Кто самое слабое звено? 36% 56% 73% 0% 10% 20% 30% 40% 50% 60% 70% 80% 2010 2011 2012 Успешность проведение атак методом социальной инженерии за последние 3 года
  • 6. Зачем тогда ломать web? ― Больше свободы действий (меньше согласований), меньше риск провала ― Веб-приложения всюду есть, и они часто «самописные» ― Зачастую критичные ресурсы напрямую связаны и с web-приложением ― Более распространённая в жизни модель взлома
  • 7. Какие проблемы? ― Веб-серверы обычно в DMZ ― Значит, трудно настроить канал связи, и трудно попасть в другие сегменты ― Низкие привилегии HTTP-демона ― Требуется больше технических навыков
  • 8. Некоторые решения ― При наличии таблицы маршрутизации можно найти путь для проникновения на ориентированном графе маршрутов сети ― Поднятие привилегий (kernel, libraries, backups, suid-binaries, crontab, …) ― Другие пути (см. далее)
  • 9. ― Intranet access via HTTP proxy ― SSRF via LFR ― DNS-spoofing via router ― Intranet access via web socks ― Bind shell via socket reuse Cases
  • 10. Intranet access via HTTP proxy ― Squid, mod_proxy… По умолчанию всё ok ― server: WebSEAL/6.0.0.0 (Build 051114), wtf? ― IBM Tivoli WebSEAL reverse proxy ― Авторизация не включена ― GET http://some-host.intranet/somepage HTTP/1.1... ― Intranet
  • 11. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.30.109.249 netmask 255.255.255.0 gateway 172.30.109.254 SSRF via LFR <? //LFR = Local File Reading readfile($_GET[‘filename’]); Из документации PHP: int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] ) Читаем исходники, конфиги, но RCE не получилось =( download.php?filename=/etc/network/interfaces
  • 12. SSRF via LFR Но $filename в мануале PHP – это URL, а не просто путь. SSRF – Server-Side Request Forgery (в данном случае имеем простейшую вариацию). /etc/network/interfaces => IP-адрес и маска => сканирование подсети: download.php?filename=http://172.30.109.1-254:1-65535/
  • 14. SSRF via LFR Что можно ещѐ сделать? PHP wrappers: http://php.net/manual/en/wrappers.php SSRF bible (cheatsheet by d0znpp): https://docs.google.com/document/d/1v1TkWZtrhzRLy0bYX BcdLUedXGb9njTNIJXa3u9akHM HTTP, FTP, SSH, File Descriptors… Может привести к исполнению кода.
  • 15. DNS spoofing via router FTP brute force => admin:admin Admin panel
  • 16. DNS spoofing via router config.img => privileged admin Telnet console <chain N="USERNAME_PASSWORD"> <V N="FLAG" V="0x0"/> <V N="USERNAME" V="admin"/> <V N="PASSWORD" V=“**PASSHERE**"/> <V N="BACKDOOR" V="0x1"/> <V N="PRIORITY" V="0x1"/> </chain>
  • 17. DNS spoofing via router DNS spoofing, Bind9 logging => logs $ cat /etc/namedb/named.conf …… logging { channel my_file { file "log.msgs"; severity debug; print-category yes; print-severity yes; }; category default { default_syslog; my_file; }; category queries { my_file; }; };
  • 18. DNS spoofing via router Host forgery => HTTP logs *.kaspersky.com IN A 31.3.3.7 Apache logs
  • 19. DNS spoofing via router ― Мониторинг посещаемых узлов ― Подмена страниц на фишинговые ― Подмена обновлений ПО (на скриншоте выше логи обращения KIS) ― PPP-аккаунт у провайдера
  • 20. Intranet access via web socks ― Web-shell (PHP, ASP.NET, …) ― Привилегии поднять не удалось ― DMZ, на NAT открыт только 80 или 443 порты ― Что делать? ― Web Socks! ― Intranet
  • 21. Intranet access via web socks Some packet => SOCKS => ProxyChains => Local daemon => HTTP => Web SOCKS => Target
  • 22. Локально запускаем демон. Инкапсулируем любой протокол в SOCKS, демон его инкапсулирует в HTTP и передаѐт пакет PHP-скрипту через веб-сервер. Скрипт работает по протоколу SOCKS, возвращая ответы по HTTP, используя веб-сервер, т.е. не нужно биндить порт и обходить DMZ. Далее проксифицируем ПО (в т. ч. Nmap, RDP-клиенты) при помощи proxychains. $ cat /etc/proxychains.conf | grep socks5 socks5 127.0.0.1 1080 $ proxychains nmap --top-ports 100 10.10.17.0/24 … Intranet access via web socks
  • 23. Реализации web SOCKS. На PHP от ShAnKaR (Antichat); http://forum.antichat.ru/threadnav177147-1-10.html На ASP.NET (reDuh) от SensePost: http://research.sensepost.com/tools/web/reduh Intranet access via web socks
  • 24. Bind shell via socket reuse ― Web-shell (PHP, ASP.NET, …) ― Удалось получить привилегии суперпользователя ― DMZ, на NAT открыт только 80 или 443 порты ― Что делать? Не ронять же веб-сервер! ― Socket reuse! ― Нормальный терминал
  • 25. Bind shell via socket reuse Приоритет демонов повышается от частного к общему $ cat /etc/apache2/ports.conf | grep Listen Listen *:80 $ sudo netstat –apn | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12669/apache2 Socket reuse: … setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) ); … serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //just example Может не сработать, например, на SELinux. Зато работает на FreeBSD Можно просто одним сценарием отключить Apache, запустить демон шелла и запустить Apache, перехватив первое соединение (закрываем дескриптор сокета, не закрывая соединение). Но это риск.
  • 26. Outro ― Во всём виноваты люди ― Людей проще эксплуатировать, но проще и провалиться ― Веб-приложения эксплуатировать сложнее, но это происходит незаметно ― Для взлома веб-серверов надо знать скриптовые языки и структуру ОС ― Для проникновения надо знать структуру сетей и размышлять в разных плоскостях
  • 27. Ганиев Омар Отдел анализа защищѐнности admin@ahack.ru VolgaCTF 2013 Вопросы?