The book of Magnus

IT-заметки и знания

Основы пентеста. Пассивный сбор информации о цели (OSINT)

Tags = [ Pentest_base, Passive_gathering ]

В пентесте веб-приложений этап сбора информации является ключевым. Информация – самое сильное оружие. Чем больше информации вы сможете собрать и чем лучше вы сможете её проанализировать, тем эффективнее будет ваш тест на проникновение.

Особенность пассивного сбора информации заключается в том, что при сборе информации у цели практически нет возможности отследить атакующего. Другими словами, это сбор общедоступной информации.

Что можно собрать с помощью пассивного сбора:

  • Информация об организации
  • Информация о сотрудниках
  • Приблизительное расположение внешних узлов сети и их роль
  • Используемые технологии и сервисы
  • Потенциальные векторы атак

1. Служба регистрации интернет-услуг (WHOIS)

Основы

Для доступа к сетевым ресурсам необходим IP-адрес. С записью вида xxx.xxx.xxx.xxx неудобно работать, поэтому существуют службы, связывающие IP-адрес с уникальным доменным именем.

Регистрация IP-адресов и доменных имён регулируется на международном уровне. Организации предоставляют административные данные: фактические имена, адреса и контактные данные.

Региональные реестры:

  • APNIC – Азиатско-Тихоокеанский регион
  • ARIN – Американский регион
  • LACNIC – Латинская Америка и Карибы
  • RIPE NCC – Европа
  • AFRINIC – Африка

WHOIS сервисы

WHOIS предоставляет услуги по поиску информации в различных реестрах.

Два вида WHOIS:

  1. Network service based – акцент на сетевой части
  2. Name service based – акцент на доменном имени

Пример использования (консоль)

# По IP-адресу
whois -h whois.ripe.net 77.78.xxx.xxx

# По доменному имени
whois example.com

# По сетевому диапазону
whois -h whois.ripe.net 192.168.0.0/24

Онлайн-сервисы:

Что можно узнать из WHOIS:

  • Владелец домена/IP-диапазона
  • Контактные данные (email, телефон)
  • Физический адрес организации
  • Дата регистрации и истечения
  • DNS-серверы
  • Регистратор

2. Служба доменных имён (DNS)

Основные инструменты

dig (Domain Information Groper)

Мощный инструмент для работы с DNS, входит в комплект BIND.

Основные запросы:

# Все записи
dig example.com ANY

# Конкретный тип записи
dig example.com A
dig example.com MX
dig example.com NS
dig example.com TXT

# Обратный запрос (IP -> домен)
dig -x 8.8.8.8

# Указать конкретный DNS-сервер
dig @8.8.8.8 example.com

# Краткий вывод
dig example.com +short

nslookup

Альтернативный инструмент, предустановлен в большинстве ОС.

nslookup example.com
nslookup -type=MX example.com
nslookup -type=NS example.com

Типы ресурсных записей DNS:

ТипОписание
AАдресная запись; соответствие имени IPv4-адресу
AAAAСоответствие имени IPv6-адресу
MXПочтовый сервер домена (с приоритетом)
NSАвторитативные DNS-серверы домена
CNAMEКаноническое имя (алиас)
TXTТекстовая информация (SPF, DKIM, и т.д.)
SOAНачало зоны, авторитетность информации
PTRОбратное соответствие (IP -> имя)
SRVСервисные записи

Zone Transfer (AXFR)

Zone Transfer – метод передачи всей информации о зоне между DNS-серверами.

Если DNS-сервер плохо настроен, любой клиент может запросить передачу зоны и получить полный список поддоменов.

Проверка:

# Получить NS-серверы
dig example.com NS +short

# Попытка Zone Transfer
dig @ns1.example.com example.com AXFR

Пример уязвимого сервера:

dig @nsztm2.digi.ninja zonetransfer.me AXFR

Онлайн-инструменты:

Реверсивный опрос DNS

Метод для обнаружения других доменов на соседних IP-адресах.

Скрипт для перебора:

#!/bin/bash
NET=192.168.1

for i in $(seq 1 254); do
    ADDR=${NET}.${i}
    echo -e "${ADDR}\t$(dig -x ${ADDR} +short)"
done

Сохранить как reverse_dns.sh, сделать исполняемым:

chmod +x reverse_dns.sh
./reverse_dns.sh > results.txt

Виртуальный хостинг

На одном IP могут располагаться несколько сайтов.

Проверка онлайн:


3. Почтовая служба (Email Intelligence)

Почтовые системы часто слабо защищены и могут раскрыть много информации.

Анализ SMTP-заголовков

SMTP-заголовки содержат ценную информацию:

  • Маршрутизация письма
  • IP-адреса и имена серверов
  • Типы и версии почтовых серверов
  • Антивирусные решения
  • Версии почтовых клиентов

Ключевые поля заголовка:

  • Received: – путь письма через серверы
  • From: – отправитель
  • Return-Path: – адрес для возврата
  • X-Originating-IP: – IP отправителя
  • Message-ID: – уникальный идентификатор
  • DKIM-Signature: – цифровая подпись
  • SPF: – проверка отправителя

Инструменты анализа:

Сбор email-адресов

Email-адреса могут использоваться для:

  • Социальной инженерии
  • Фишинга
  • Определения схемы именования учётных записей

Схемы формирования email:

  • имя.фамилия@company.com
  • и.фамилия@company.com
  • имяфамилия@company.com
  • фамилия@company.com

Инструменты для сбора:

  • hunter.io – поиск email по домену
  • phonebook.cz – архив email
  • theHarvester (CLI-инструмент)
# theHarvester
theharvester -d example.com -b google,bing,linkedin

4. Анализ доменных имён и именования

Принципы именования

Название узлов и служб может раскрыть много информации:

ПримерыВозможная информация
msc.office02.example.comОфис в Москве
mailSpb.example.comПочтовый сервер в Санкт-Петербурге
uxsrv.example.comUnix-система
andreevPC.example.comПК сотрудника Андреева
dev.example.comСервер разработки (потенциально уязвим)
staging.example.comТестовая среда
backup.example.comСервер резервных копий

Трассировка маршрута (traceroute)

Позволяет узнать:

  • Где хостится сайт
  • Расположение дата-центров
  • Используемых провайдеров
  • Защитные сервисы (CloudFlare, Akamai)

Использование:

# Linux/Mac
traceroute example.com

# Windows
tracert example.com

# С отображением AS-номеров
traceroute -A example.com

Онлайн-сервисы:


5. Анализ веб-сайта

Что анализировать:

  1. Email-адреса в коде страницы
  2. Комментарии разработчиков в HTML/JS
  3. Метатеги с информацией об инструментах
  4. URL-ссылки на внутренние ресурсы
  5. JavaScript-файлы с API-ключами
  6. Методы аутентификации
  7. Способы кодирования данных
  8. Обработка ошибок (информативные сообщения)
  9. Внешние ссылки (партнёры, поставщики)
  10. HTTP-заголовки (версии серверов)

robots.txt и sitemap.xml

robots.txt – инструкции для поисковых роботов о том, что не индексировать.

User-agent: *
Disallow: /admin/
Disallow: /backup/
Disallow: /private/
Disallow: /api/internal/

Директории в Disallow особенно интересны для исследования.

sitemap.xml – карта сайта с полным списком страниц.

curl https://example.com/robots.txt
curl https://example.com/sitemap.xml

Мета-теги и заголовки

Могут раскрыть используемые технологии:

<meta name="generator" content="WordPress 5.8.1">
<meta name="author" content="John Doe">

HTTP-заголовки:

curl -I https://example.com

# Важные заголовки:
# Server: Apache/2.4.41 (Ubuntu)
# X-Powered-By: PHP/7.4.3
# X-AspNet-Version: 4.0.30319

Инструменты анализа:

  • Wappalyzer (браузерное расширение) – определение технологий
  • BuiltWith – история используемых технологий
  • WhatWeb (CLI) – идентификация CMS и фреймворков
whatweb https://example.com

6. Поисковые системы (Google Dorking)

Основные операторы Google

ОператорОписаниеПример
site:Поиск по конкретному сайтуsite:example.com admin
inurl:Поиск в URLinurl:admin.php
intitle:Поиск в заголовкеintitle:"index of" password
intext:Поиск в тексте страницыintext:"sql syntax error"
filetype:Поиск файлов определённого типаfiletype:pdf confidential
ext:То же, что filetypeext:sql
cache:Кешированная версияcache:example.com
-Исключениеsite:example.com -www
*Подстановкаadmin * login
""Точное соответствие"error occurred"
`илиOR`Логическое ИЛИ

Практические примеры дорков

Поиск панелей администрирования:

site:example.com inurl:admin
site:example.com intitle:admin
site:example.com inurl:wp-admin

Поиск конфиденциальных файлов:

site:example.com filetype:pdf confidential
site:example.com filetype:xls password
site:example.com filetype:doc "not for distribution"
site:example.com ext:sql

Поиск email-адресов:

site:example.com "@example.com"
site:example.com intext:@example.com

Поиск уязвимостей:

site:example.com inurl:php?id=
site:example.com "sql syntax error"
site:example.com "warning: mysql"
site:example.com inurl:upload

Поиск поддоменов:

site:*.example.com
site:*.example.com -www

Поиск технической информации:

site:example.com inurl:phpinfo.php
site:example.com intitle:"Apache Status"
site:example.com intitle:"index of" config

Специализированные базы дорков:


7. Специализированные поисковые системы

Shodan

Shodan – поисковая система для устройств, подключённых к интернету (IoT, серверы, камеры, маршрутизаторы).

URL: shodan.io

Основные операторы Shodan:

ОператорОписаниеПример
hostname:Поиск по имени хостаhostname:example.com
net:Поиск по IP-диапазонуnet:192.168.1.0/24
port:Поиск по портуport:22
os:Поиск по ОСos:"Windows Server 2012"
city:Поиск по городуcity:"Moscow"
country:Поиск по странеcountry:"RU"
org:Поиск по организацииorg:"Google"
product:Поиск по продуктуproduct:"Apache httpd"
version:Поиск по версииversion:"2.4.1"
vuln:Поиск уязвимостейvuln:CVE-2014-0160
ssl:Поиск по SSL-сертификатуssl:"example.com"
http.title:Поиск по заголовку страницыhttp.title:"Admin Panel"

Примеры запросов:

# Поиск веб-камер
product:"webcam" country:"RU"

# Устройства с уязвимостью
vuln:CVE-2017-0144 country:"RU"

# Незащищённые базы данных
product:"MongoDB" -authentication

# Устройства конкретной организации
org:"Example Ltd" country:"US"

# SSH на нестандартном порту
product:"OpenSSH" port:2222

# Панели управления
http.title:"Dashboard" country:"RU"

Что можно узнать:

  • Открытые порты и сервисы
  • Версии ПО
  • SSL-сертификаты
  • Местоположение сервера
  • Организацию-владельца
  • Баннеры служб
  • Уязвимости (требуется платная подписка)

Censys

Альтернатива Shodan, акцент на SSL/TLS сертификатах.

URL: censys.io

Особенности:

  • Детальная информация о сертификатах
  • Лучше для поиска субдоменов
  • Бесплатный API

Пример поиска:

parsed.names: example.com

ZoomEye

Китайский аналог Shodan.

URL: zoomeye.org

Vulners

База данных уязвимостей и эксплойтов.

URL: vulners.com

Операторы поиска:

ОператорОписание
type:Тип уязвимости (cve, exploitdb, etc.)
affectedSoftware:Затронутое ПО
cvss.score:CVSS-оценка
published:Дата публикации

Примеры:

# Уязвимости Apache за последние 30 дней
type:cve affectedSoftware:Apache published:[NOW-30DAYS TO NOW]

# Критические уязвимости WordPress
affectedSoftware:WordPress cvss.score:[7 TO 10]

# Эксплойты для конкретной версии
affectedSoftware:"phpMyAdmin 4.8.1" type:exploitdb

8. Анализ SSL/TLS сертификатов

Зачем анализировать сертификаты:

  • Обнаружение поддоменов (Subject Alternative Names)
  • Информация о владельце
  • История выпуска сертификатов
  • Используемые алгоритмы шифрования
  • Уязвимости в протоколах (Heartbleed, POODLE, и т.д.)

Инструменты анализа:

SSLLabs (Qualys SSL Labs)

URL: ssllabs.com/ssltest

Предоставляет:

  • Оценку безопасности SSL/TLS (A+, A, B, C, F)
  • Детали сертификата
  • Поддерживаемые протоколы и шифры
  • Проверку на известные уязвимости

ImmuniWeb SSL Test

URL: immuniweb.com/ssl

Дополнительно:

  • Проверка поддоменов
  • Email-серверы и их сертификаты
  • Compliance-проверки (PCI DSS, HIPAA)

crt.sh (Certificate Transparency Logs)

URL: crt.sh

Поиск всех сертификатов, выпущенных для домена.

Пример запроса:

%.example.com

Позволяет найти:

  • Все поддомены
  • Историю сертификатов
  • Альтернативные имена

CLI-запрос:

curl -s "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -u

OpenSSL

Анализ через командную строку:

# Получить информацию о сертификате
openssl s_client -connect example.com:443 -servername example.com < /dev/null

# Проверить дату истечения
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

# Получить Subject Alternative Names
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -text | grep DNS:

# Проверить поддерживаемые протоколы
for proto in ssl2 ssl3 tls1 tls1_1 tls1_2 tls1_3; do
    echo -n "$proto: "
    echo | openssl s_client -connect example.com:443 -$proto 2>&1 | grep -q "Cipher is" && echo "OK" || echo "NO"
done

9. Социальные сети и OSINT на людях

LinkedIn

Что можно узнать:

  • Текущие и бывшие сотрудники
  • Должности и обязанности
  • Технологии, с которыми работают
  • Структура компании
  • Контакты для social engineering

Техники поиска:

# В поиске LinkedIn
site:linkedin.com "Example Company" "Software Engineer"

# В Google
site:linkedin.com/in "Example Company" "Chief Technology Officer"

Facebook, Instagram, Twitter/X

Полезны для:

  • Фишинга (личная информация)
  • Social engineering
  • Определения корпоративной культуры
  • Поиска недовольных сотрудников

Специализированные инструменты:

  • Maltego – визуализация связей
  • SpiderFoot – автоматизация OSINT
  • Recon-ng – фреймворк для разведки
  • theHarvester – сбор email, имён, subdomain
  • Sherlock – поиск username в соцсетях
# Sherlock
sherlock username

# SpiderFoot
python3 sfcli.py -s example.com

10. Архивы и историческая информация

Wayback Machine (Archive.org)

URL: web.archive.org

Позволяет:

  • Смотреть историю сайта
  • Найти старые страницы с уязвимостями
  • Обнаружить удалённый контент
  • Найти старые email, телефоны

Примеры:

# Посмотреть все снимки
https://web.archive.org/web/*/example.com

# Конкретная дата
https://web.archive.org/web/20200101/example.com

Другие архивы:

  • archive.is – альтернативный архив
  • CommonCrawl – огромный датасет веба
  • Google Cachecache:example.com

11. GitHub и утечки кода

Что искать в GitHub:

  • Приватные репозитории случайно сделанные публичными
  • API-ключи и токены в коде
  • Пароли и credentials
  • Внутренняя документация
  • Конфигурационные файлы

GitHub Dorks:

# Поиск credentials
org:example password
org:example api_key
org:example "aws_secret_access_key"

# Конфигурации
org:example filename:.env
org:example filename:config.php

# Specific company emails
"@example.com" password

# Private keys
org:example extension:pem private
org:example filename:id_rsa

Инструменты:

  • GitRob – поиск чувствительной информации
  • TruffleHog – поиск секретов в истории коммитов
  • GitHacker – дамп .git директорий
  • GitDorker – автоматизация GitHub dorks
# TruffleHog
trufflehog git https://github.com/example/repo --only-verified

# GitRob
gitrob example-org

12. Leaked Databases & Data Breaches

Базы утечек:

Что можно найти:

  • Скомпрометированные email
  • Пароли (часто хешированные)
  • Личные данные
  • Информацию о сотрудниках

13. Subdomain Enumeration

Инструменты поиска поддоменов:

Пассивные методы:

Subfinder:

subfinder -d example.com -o subdomains.txt

Amass:

amass enum -d example.com
amass enum -passive -d example.com

Assetfinder:

assetfinder --subs-only example.com

Источники данных:

  • Certificate Transparency Logs (crt.sh)
  • DNS databases (DNSDumpster)
  • Search engines (Google, Bing)
  • VirusTotal
  • SecurityTrails
  • Shodan

Online-сервисы:


14. Автоматизация и фреймворки

theHarvester

Универсальный инструмент для сбора информации:

# Основное использование
theHarvester -d example.com -b all

# Конкретные источники
theHarvester -d example.com -b google,linkedin,hunter

# С сохранением
theHarvester -d example.com -b all -f output.html

Recon-ng

Фреймворк для разведки, по аналогии с Metasploit:

recon-ng

# Создать workspace
workspaces create example_recon

# Загрузить модули
marketplace install all

# Использовать модуль
modules load recon/domains-hosts/google_site_web
options set SOURCE example.com
run

OSINT Framework

URL: osintframework.com

Огромная коллекция инструментов и ресурсов для OSINT, организованных по категориям.

SpiderFoot

Автоматизированный OSINT-инструмент:

# Web UI
python3 sf.py -l 127.0.0.1:5001

# CLI
python3 sfcli.py -s example.com

Maltego

Коммерческий инструмент для визуализации связей между данными.

Особенности:

  • Графическое представление связей
  • Интеграция с множеством источников
  • Трансформации для автоматического сбора данных

15. Практические методологии

OSINT Workflow

  1. Определение целей

    • Что нужно найти?
    • Какие данные критичны?
  2. Сбор первичной информации

    • WHOIS
    • DNS
    • Базовый анализ сайта
  3. Расширенная разведка

    • Поисковые системы
    • Специализированные инструменты
    • Социальные сети
  4. Анализ и корреляция

    • Связать найденные данные
    • Определить векторы атак
    • Найти слабые места
  5. Документирование

    • Сохранить все находки
    • Создать отчёт
    • Подготовить дальнейшие шаги

Чек-лист пассивной разведки

  • WHOIS (домен и IP)
  • DNS-записи (все типы)
  • Попытка Zone Transfer
  • Reverse DNS
  • Subdomain enumeration
  • Certificate Transparency
  • Shodan/Censys/ZoomEye
  • Google Dorking
  • GitHub search
  • Email harvesting
  • Social media (LinkedIn, Twitter, Facebook)
  • Wayback Machine
  • SSL/TLS анализ
  • Traceroute
  • robots.txt / sitemap.xml
  • HTTP headers анализ
  • Wappalyzer / BuiltWith
  • Leaked databases

16. Этические и юридические аспекты

Важно понимать:

  1. Пассивный OSINT легален, так как использует только публичную информацию
  2. Не переходите границу активной разведки без разрешения
  3. Social engineering может быть незаконным
  4. Уважайте приватность людей
  5. Документируйте все действия для отчётности
  6. Получите письменное разрешение на пентест

Что НЕ является пассивной разведкой:

  • ❌ Сканирование портов
  • ❌ Эксплуатация уязвимостей
  • ❌ Brute-force атаки
  • ❌ Взаимодействие напрямую с целевыми системами
  • ❌ Social engineering с обманом

17. Полезные ресурсы

Списки инструментов:

Обучающие ресурсы:

Книги:

  • "Open Source Intelligence Techniques" by Michael Bazzell
  • "OSINT Techniques: Resources for Uncovering Online Information" by Michael Bazzell

Заключение

Пассивный сбор информации – это искусство находить максимум данных, оставаясь незамеченным. Чем больше информации вы соберёте на этом этапе, тем эффективнее будет последующий пентест.

Ключевые принципы:

  • ✅ Будьте методичны
  • ✅ Документируйте всё
  • ✅ Используйте множество источников
  • ✅ Корреляция данных критически важна
  • ✅ Автоматизируйте рутину
  • ✅ Постоянно обновляйте свой инструментарий

Помните: OSINT – это не только инструменты, но и креативное мышление. Иногда самая ценная информация находится там, где её никто не ищет.


Практические задания

Для закрепления материала рекомендуется выполнить следующие задания:

  1. Базовый OSINT:

    • Выберите легитимную цель (например, публичную компанию)
    • Проведите полную WHOIS-разведку
    • Найдите все поддомены
    • Соберите email-адреса
  2. Продвинутый уровень:

    • Используйте Google Dorks для поиска чувствительной информации
    • Найдите уязвимости через Shodan
    • Проанализируйте SSL-сертификаты
    • Составьте профили сотрудников через LinkedIn
  3. Комплексное задание:

    • Выберите компанию
    • Проведите полный OSINT
    • Создайте Mind Map связей
    • Напишите отчёт с рекомендациями