Инструмент для извлечения HTTPS доменов из файлов захвата сетевого трафика (PCAPNG) с использованием Python и Wireshark.
Этот скрипт анализирует файлы PCAPNG (созданные Wireshark или другими сетевыми анализаторами) и извлекает из них только чистые доменные имена HTTPS-сайтов. Скрипт фильтрует результаты, убирая HTTP-адреса, IP-адреса, локальные адреса и пути после доменного имени.
- ✅ Извлекает только HTTPS домены (HTTP игнорируются)
- ✅ Убирает пути после доменного имени (
example.com/path→example.com) - ✅ Исключает IP-адреса (
192.168.1.1,2001:db8::1) - ✅ Фильтрует локальные адреса (
localhost,192.168.x.x,10.x.x.x) - ✅ Удаляет дубликаты и сортирует результаты
- ✅ Автоматически именует выходные файлы
- ✅ Сохраняет результаты в отдельную папку
- Python 3.6+
- Wireshark (включает tshark)
pyshark- для анализа PCAPNG файлов
Windows:
- Скачайте Wireshark с официального сайта
- Установите
.exeфайл - Убедитесь, что выбрана опция установки
tshark
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install wireshark tsharkLinux (CentOS/RHEL):
sudo yum install wireshark wireshark-cli
# или для новых версий:
sudo dnf install wireshark wireshark-climacOS:
# Через Homebrew
brew install wiresharktshark --versionГлобальная установка:
pip install pysharkИли создание виртуального окружения (рекомендуется):
# Создание виртуального окружения
python -m venv venv
# Активация виртуального окружения
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# Установка зависимостей
pip install pysharkЧтобы получить .pcapng файл с роутера Keenetic для анализа в Wireshark:
- Перейдите в веб-интерфейс Keenetic
- Откройте раздел Управление → Диагностика → Захват сетевых пакетов
- Создайте правило, нажав кнопку Добавить правило захвата, выберите подключение, через которое хотите собрать адреса и выберете, куда сохранять файл 4.Лучше создать правила захвата для несокльких интерфейсов (все WiFi, подключение провайдера, VLAN)
- Нужно выбрать флешку как место сохрарения в поле Место хранения, так как файл может быть намного больше 100мб
- Нажмите Сохранить
- Нажмите кнопку Запустить
- Открывайте сайты, с которых хотите собрать адреса (на компьютере, телевизове, телефоне)
- Через некоторое время нажмите Остановить
- Скачайте полученные
.pcapngфайл на компьютер
Теперь вы можете использовать эти файл с данным проектом для анализа URL и доменов.
python main.pypcapng-extractor/
├── main.py # Основной скрипт для извлечения доменов
├── DevTools.py # Cкрипт для извлечения доменов из скопированнных в DevTools браузера
├── diagnostic.py # Диагностический скрипт для анализа
├── capture/ # Папка с выгруженными из роуетра файлами
│ └── capture-*.pcapng # Файлы в формате .pcapng
├── results/ # Папка с результатами (создается автоматически)
│ └── domains-*.txt # Файлы с извлеченными доменами
├── venv/ # Виртуальное окружение (опционально)
└── README.md # Этот файл
HTTPS домены из файла: capture.pcapng
Всего найдено уникальных доменов: 25
==================================================
google.com
stackoverflow.com
youtube.com
rr5.sn-aigl6nek.googlevideo.com
- HTTP адреса (
http://example.com) - IP-адреса (
192.168.1.1,2001:db8::1) - Локальные адреса:
localhost127.x.x.x192.168.x.x10.x.x.x172.16.x.x-172.31.x.x
- Пути и параметры (
example.com/path?param=value) - Порты (
example.com:8080)
- ✅ Валидные доменные имена
- ✅ HTTPS трафик
- ✅ Внешние (не локальные) адреса
- В Google Chrome перейти на заблокированный сайт (лучше это делать с включенным VPN на компьютере)
- Нажать F12, откроется панель DevTools
- Перейти на вкладку Сеть (Network)

- Обновить страницу
- Правой кнопкой мыши кликнуть на любой адрес и выбра "Копировать все URL"

- Сохранить скопированные адреса в корне проекта в файле urls.txt
- Открыть в терминале папку проекта
- Запустить из папки скрипт
python3 DevTools.py
9. в папке проекта создасться файл с адресами

В один файл urls.txt можно собрать адреса со всех нужных сайтов и разделить их названиями сайтов. Например в таком виде
#youtube
accounts.youtube.com
bollybeat.h5games.usercontent.goog
fonts.googleapis.com
fonts.gstatic.com
googleads.g.doubleclick.net
i.ytimg.com
lh3.googleusercontent.com
play.google.com
rr3---sn-aigl6nsk.googlevideo.com
static.doubleclick.net
www.google.com
www.gstatic.com
www.youtube.com
yt3.ggpht.com
#x
api.x.com
twimg.comВ таком случае в итоговом файле адреса так же будут разделены на сайты и будет понятно, какой URL к какому сайту относится.
ModuleNotFoundError: No module named 'pyshark'
# Убедитесь, что активировано виртуальное окружение
source venv/bin/activate
pip install pysharktshark not found
# Проверьте установку Wireshark
tshark --version
# Если не найден, переустановите WiresharkЭтот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.
Q: Можно ли анализировать файлы .pcap? A: Да, PyShark поддерживает оба формата - .pcap и .pcapng.
Q: Безопасно ли использовать скрипт? A: Скрипт только читает файлы захвата и не выполняет сетевых подключений. Однако будьте осторожны с файлами из недоверенных источников.
