Хакинг и тестирование на проникновение
Разведка и сбор информации перед тестированием на проникновение (pentest).
Penetration test
Тестирование на проникновение - метод оценки безопасности компьютерных систем или сетей средствами моделирования атаки злоумышленника.
Способы проведения pentest:
Автоматизированное тестирование (сканеры)
Ручное тестирование
Комбинированный метод (Best practice!)
Подходы к проведению теста:
White box (исполнитель проникновения располагает полной информацией о цели)
Black box (известно только название фирмы)
Gray box
Примерный сценарий проведения теста на проникновение:
Планирование теста на проникновение.
Сбор информации о целевых системах.
Поиск уязвимостей. (сканерами или вручную)
Проникновение в системы.
Написание и предоставление отчетаю
Очистка систем от последствий теста.
Что искать?
ip address
domane
Имена сотрудников
телефоны
email
Резюме IT специалистов
"Забытые" системы (дефолтовые пароли, бинарные уязвимости)
Документы/метаданные
Средства удалённой работы (VPN, веб морда почты, CRM)
Методы сбора информации
Пассивные методы сбора информации:
Поисковые системы и интернет сервисы
Социальные сети
Неактивное исследование публичных Интернет-ресурсов
Службы Whois
Пассивные методы не влияют непосредственно на объект.
Активные методы сбора информации:
Сканирование сетевых систем
Брут, фаззинг веб-директорий на сайте.
т.д.
Fuzz testing (фаззинг). Фаззинг – методика тестирования, при которой на вход программы подаются невалидные, непредусмотренные или случайные данные.
DNS
DNS (англ. Domain Name System - система доменных имен) - компьютерная распределенная система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).
DNS создан для удобства людей. А всё, что создано для удобства людей в компьютерном мире, является уязвимым.
DNS обладает следующими характеристиками:
Распределенность администрирования.
Распределенность хранения информации.
Кеширование информации.
Иерархическая структура.
Резервирование.
DNS-записи:
Запись A (IPv4 address record)
Запись AAAA (IPv6 address record)
Запись CNAME (canonical name record)
Запись MX (mail exchange)
Запись NS (name server)
Запись PTR (pointer)
Запись SOA (Start of Authority)
SRV-запись (server selection)
Инструменты для работы с DNS:
nslookup
dig
host
Утилиты для легальной работы могут быть использованы и на Темной Стороне Силы.
nslookup
nslookup (англ. name server lookup - поиск на сервере имен) - утилита, предоставляющая пользователю интерфейс командной строки для обращения к DNS. Позволяет задавать различные типы запросов и запрашивать произвольно указываемые сервера. Разработана в составе пакета BIND (для UNIX-систем). Утилита портирована на Windows непосредственно фирмой Microsoft и поставляется вместе с операционной системой.
Примеры:
nslookup wikipedia.org ns1.wikimedia.org
nslookup домен днс-сервер
nslookup -type=mx example.com 192.168.56.100
nslookup без параметров начинает работу в режиме диалога
dig
dig (сокращение от "domain information groper") - утилита (DNS-клиент), предоставляющая пользователю интерфейс командной строки для обращения к системе DNS. Позволяет задать различные типы запросов и запрашивать произвольно указываемые сервера. Является аналогом утилиты nslookup.
Утилита nslookup входит в стандартный комплект DNS сервера BIND.
Примеры:
dig @ns.mail.ru mail.ru mx
dig @днс-сервер домен днс-запись
host
host - утилита в UNIX-системах, предназначенная для обращения и получения информации DNS-серверов.
Примеры:
host -t ns example.com 192.168.56.100
host -t днс-запись домен днс-сервер
host -t any example.com 192.168.56.100 (все днс-записи)
DNS-брут
Файл dns-name.txt
www
www1
mail
lab
test
Файл brut.sh
#!/bin/bash
for name is $(cat dns-name.txt):do
host $name.example.com 192.168.56.100
done
Программы для работы с DNS в Kali Linux
dmitry
Deep Magic Information Gathering Tool (dmitry) является многофункциональным (all-in-one, комбайн) инструментом сбора информации. Он может быть использован, чтобы собрать следующую информацию:
запись Whois по IP-адресу или доменному имени;
информацию о целевом хосте с сайта Netcraft.com;
имена субдоменов в целевом домене;
список открытых, отфильтрованных или закрытых портов на целевой машине.
И хотя эта информация может быть получена с помощью других команд Linux, очень удобно собирать её с помощью одного инструмента, с возможностью сохранения отчёта в одном файле.
Примеры:
dmitry -iwnse example.com
dnsenum
dnsenum обладает следующими возможностями:
Получение дополнительных имен и субдоменов, с использованием поисковой системы Google.
Поиск, имен субдоменов методом перебора значений из текстового файла (словаря). Dnsenum, включенный в пакет BackTrack поставляется с файлом (dns.txt), содержащим 95 имён субдоменов.
Выполнение Whois запросов на доменах C-класса и вычисление его диапазона сети.
Преобразование доменных IP-адресов в (reverse lookup).
Использовать отдельные потоки для разных запросов.
Примеры:
dnsenum.pl example.com
dnsrecon
dnsrecon (DNS Enumeration Script) имеет сходные черты со всеми предыдущими инструментами, предназначенными для сбора информации о DNS. Однако имеет больше возможностей и опций.
Примеры:
dnsrecon.py -d example.com -t std
fierce
fierce - представляет собой Perl-скрипт, который быстро сканирует домены, используя при этом несколько различных тактик.
Примеры:
fierce.pl -dns targetdomain -threads 3
Другие техники получения информации от DNS серверов
DNS cache Snooping - это техника, позволяющая выяснить какие запросы были сделаны кеширующему DNS-серверу с помощью Time To Live (TTL) значений в своих ответах.
Передача зоны DNS, AXFR - вид транзакции DNS. Является одним из механизмов репликации баз DNS межу серверами.
Примеры:
dig @днс-сервер домен axfr (получаем список поддоменов!!!)