diff --git a/src/generic-methodologies-and-resources/pentesting-network/README.md b/src/generic-methodologies-and-resources/pentesting-network/README.md index b63df3c86..ae7e762d8 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/README.md +++ b/src/generic-methodologies-and-resources/pentesting-network/README.md @@ -1,19 +1,19 @@ -# Pentesting Network +# Pentesting мережі {{#include ../../banners/hacktricks-training.md}} -## Виявлення хостів ззовні +## Виявлення hosts ззовні -Це буде **короткий розділ** про те, як знайти **IP-адреси, що відповідають** з **Інтернету**.\ -У цій ситуації у вас є деякий **обсяг IP-адрес** (можливо, навіть кілька **діапазонів**) і вам потрібно просто знайти **які IP-адреси відповідають**. +Це буде **короткий розділ** про те, як знайти **IPs responding** з **Internet**.\ +У цій ситуації у вас є певний **scope of IPs** (можливо навіть кілька **ranges**) і вам потрібно просто знайти **which IPs are responding**. ### ICMP -Це **найпростіший** і **найшвидший** спосіб виявити, чи активний хост чи ні.\ -Ви можете спробувати надіслати кілька **ICMP** пакетів і **очікувати відповіді**. Найпростіший спосіб - просто надіслати **echo request** і очікувати відповіді. Ви можете зробити це, використовуючи простий `ping` або використовуючи `fping` для **діапазонів**.\ -Ви також можете використовувати **nmap** для надсилання інших типів ICMP пакетів (це уникне фільтрів для звичайних ICMP echo request-response). +Це **найпростіший** і **найшвидший** спосіб дізнатися, чи host доступний чи ні.\ +Ви можете спробувати відправити кілька **ICMP** пакетів і **expect responses**. Найпростіше — просто відправити **echo request** і чекати на відповідь. Це можна зробити за допомогою простого `ping`or using `fping`for **ranges**.\ +Також можна використовувати **nmap** для відправки інших типів ICMP пакетів (це допоможе обійти фільтри для common ICMP echo request-response). ```bash 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 @@ -21,29 +21,29 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet ``` ### TCP Port Discovery -Дуже часто можна виявити, що всі види ICMP пакетів фільтруються. Тоді все, що ви можете зробити, щоб перевірити, чи активний хост, це **спробувати знайти відкриті порти**. Кожен хост має **65535 портів**, тому, якщо у вас "великий" обсяг, ви **не можете** перевірити, чи **кожен порт** кожного хоста відкритий чи ні, це займе занадто багато часу.\ -Тоді вам потрібен **швидкий сканер портів** ([masscan](https://github.com/robertdavidgraham/masscan)) і список **найбільш використовуваних портів:** +Дуже часто трапляється, що всі види ICMP-пакетів фільтруються. Тоді все, що ви можете зробити, щоб перевірити, чи хост відповідає — це **try to find open ports**. Кожен хост має **65535 ports**, тому, якщо у вас великий scope, ви **cannot** тестувати, чи відкритий **each port** кожного хоста — це займе надто багато часу.\ +Тоді вам потрібен **fast port scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) і список **ports more used:** ```bash #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` має проблеми з ідентифікацією активних хостів. +Цей крок також можна виконати за допомогою `nmap`, але це повільніше, і `nmap` має проблеми з виявленням активних хостів. -### Виявлення HTTP порту +### HTTP Port Discovery -Це просто виявлення TCP порту, корисне, коли ви хочете **зосередитися на виявленні HTTP** **сервісів**: +Це просто виявлення TCP-портів, корисне, коли ви хочете **зосередитися на виявленні HTTP** **services**: ```bash masscan -p80,443,8000-8100,8443 199.66.11.0/24 ``` -### UDP Port Discovery +### Виявлення UDP-портів -Ви також можете спробувати перевірити, чи є деякі **UDP порти відкритими**, щоб вирішити, чи слід **звернути більше уваги** на **хост.** Оскільки UDP сервіси зазвичай **не відповідають** з **жодними даними** на звичайний порожній UDP запит, важко сказати, чи порт фільтрується або відкритий. Найпростіший спосіб вирішити це - надіслати пакет, пов'язаний з працюючим сервісом, і оскільки ви не знаєте, який сервіс працює, вам слід спробувати найбільш ймовірний на основі номера порту: +Ви також можете перевірити, чи якийсь **UDP порт відкритий**, щоб вирішити, чи варто **приділити більше уваги** **хосту.** Оскільки UDP-сервіси зазвичай **не відповідають** **жодними даними** на звичайний порожній UDP-зондуючий пакет, важко сказати, чи порт фільтрується чи відкритий. Найпростіший спосіб вирішити це — надіслати пакет, пов'язаний зі службою, що працює; оскільки ви не знаєте, яка служба працює, слід спробувати найімовірніші варіанти на основі номера порту: ```bash 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**](https://github.com/portcullislabs/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, time, xdmcp._ +Рядок nmap, запропонований раніше, перевірить **top 1000 UDP ports** на кожному хості в межах **/24**, але навіть це займе **>20min**. Якщо потрібні **fastest results**, ви можете використати [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24` Це відправить ці **UDP probes** на їх **expected port** (для діапазону /24 це займе лише 1 min): _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, time, xdmcp._ ### SCTP Port Discovery ```bash @@ -52,19 +52,20 @@ nmap -T4 -sY -n --open -Pn ``` ## Pentesting Wifi -Тут ви можете знайти гарний посібник з усіх відомих атак на Wifi на момент написання: +Тут ви знайдете корисний посібник щодо всіх відомих Wifi-атак на момент написання: + {{#ref}} ../pentesting-wifi/ {{#endref}} -## Discovering hosts from the inside +## Виявлення хостів зсередини -Якщо ви всередині мережі, однією з перших речей, які ви захочете зробити, є **виявлення інших хостів**. Залежно від **того, скільки шуму** ви можете/хочете створити, можуть бути виконані різні дії: +Якщо ви всередині мережі, одне з перших завдань — **виявити інші хости**. Залежно від того, **скільки шуму** ви можете/хочете створити, можна виконати різні дії: -### Passive +### Пасивно -Ви можете використовувати ці інструменти для пасивного виявлення хостів всередині підключеної мережі: +Ви можете використовувати ці інструменти для пасивного виявлення хостів у підключеній мережі: ```bash netdiscover -p p0f -i eth0 -p -o /tmp/p0f.log @@ -73,10 +74,10 @@ net.recon on/off #Read local ARP cache periodically net.show set net.show.meta true #more info ``` -### Active +### Активне -Зверніть увагу, що техніки, згадані в [_**Виявлення хостів ззовні**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_), також можуть бути **застосовані тут**.\ -Але, оскільки ви в **тій же мережі**, ви можете робити **більше речей**: +Зверніть увагу, що техніки, описані в [_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) також можна **застосувати тут**.\ +Але, оскільки ви знаходитеся в **тій самій мережі**, що й інші hosts, ви можете зробити **більше**: ```bash #ARP discovery nmap -sn #ARP Requests (Discover IPs) @@ -96,35 +97,35 @@ set net.probe.throttle 10 #10ms between probes sent (default=10) #IPv6 alive6 # Send a pingv6 to multicast. ``` -### Active ICMP +### Активний ICMP -Зверніть увагу, що техніки, описані в _Виявлення хостів ззовні_ ([_**ICMP**_](#icmp)), також можуть бути **застосовані тут**.\ -Але, оскільки ви в **тій же мережі**, що й інші хости, ви можете робити **більше речей**: +Зверніть увагу, що техніки, описані в _Виявлення хостів ззовні_ ([_**ICMP**_](#icmp)) також можна **застосувати тут**.\ +Але, оскільки ви в **тій самій мережі** що й інші хости, ви можете робити **більше**: -- Якщо ви **ping** адреси **широкої трансляції підмережі**, ping повинен дійти до **кожного хоста**, і вони можуть **відповісти** **вам**: `ping -b 10.10.5.255` -- Пінгуючи **адресу широкої трансляції мережі**, ви навіть можете знайти хости всередині **інших підмереж**: `ping -b 255.255.255.255` -- Використовуйте прапори `-PE`, `-PP`, `-PM` у `nmap` для виявлення хостів, надсилаючи відповідно **ICMPv4 echo**, **timestamp** та **запити маски підмережі:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` +- Якщо ви **ping** **subnet broadcast address**, ping має дійти до **кожного хоста** і вони можуть **відповісти** **вам**: `ping -b 10.10.5.255` +- Пінгуючи **network broadcast address**, ви навіть можете знайти хости в **інших підмережах**: `ping -b 255.255.255.255` +- Використовуйте прапорці `-PE`, `-PP`, `-PM` у `nmap` для виявлення хостів, відправляючи відповідно **ICMPv4 echo**, **timestamp**, та **subnet mask requests:** `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 буде тим, що повторюється). +Wake On Lan використовується для **увімкнення** комп'ютерів через **мережеве повідомлення**. The magic packet, який використовується для увімкнення комп'ютера, — це пакет, в якому задано **MAC Dst**, і який потім **повторюється 16 разів** всередині того самого пакету.\ +Такі пакети зазвичай відправляються в **ethernet 0x0842** або в **UDP packet to port 9**.\ +Якщо **no \[MAC]** не вказано, пакет відправляється на **broadcast ethernet** (і broadcast MAC буде тим, що повторюється). ```bash # 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.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0842 wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9 ``` ## Сканування хостів -Якщо ви виявили всі IP-адреси (зовнішні або внутрішні), які ви хочете сканувати детально, можна виконати різні дії. +Після того як ви виявили всі IP-адреси (зовнішні або внутрішні), які ви хочете ретельно просканувати, можна виконати різні дії. ### TCP -- **Відкритий** порт: _SYN --> SYN/ACK --> RST_ -- **Закритий** порт: _SYN --> RST/ACK_ -- **Фільтрований** порт: _SYN --> \[NO RESPONSE]_ -- **Фільтрований** порт: _SYN --> ICMP message_ +- **Open** port: _SYN --> SYN/ACK --> RST_ +- **Closed** port: _SYN --> RST/ACK_ +- **Filtered** port: _SYN --> \[NO RESPONSE]_ +- **Filtered** port: _SYN --> ICMP message_ ```bash # Nmap fast scan for the most 1000tcp ports used nmap -sV -sC -O -T4 -n -Pn -oA fastscan @@ -138,12 +139,12 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000 ``` ### UDP -Є 2 варіанти для сканування UDP порту: +Існує 2 варіанти сканування UDP-порту: -- Відправити **UDP пакет** і перевірити відповідь _**ICMP unreachable**_, якщо порт **закритий** (в кількох випадках ICMP буде **фільтруватися**, тому ви не отримаєте жодної інформації, якщо порт закритий або відкритий). -- Відправити **форматовані датаграми** для отримання відповіді від **сервісу** (наприклад, DNS, DHCP, TFTP та інших, як зазначено в _nmap-payloads_). Якщо ви отримали **відповідь**, тоді порт **відкритий**. +- Надіслати **UDP packet** і перевірити наявність відповіді _**ICMP unreachable**_; якщо порт **закритий** (у багатьох випадках ICMP буде **фільтроване**, тож ви не отримаєте інформації про те, чи порт закритий чи відкритий). +- Відправити **formatted datagrams**, щоб викликати відповідь від **service** (наприклад, DNS, DHCP, TFTP та інші, як перераховано в _nmap-payloads_). Якщо ви отримали **відповідь**, то порт **відкритий**. -**Nmap** буде **поєднувати обидва** варіанти, використовуючи "-sV" (сканування UDP дуже повільне), але зверніть увагу, що сканування UDP повільніше, ніж сканування TCP: +**Nmap** буде **поєднувати обидва** варіанти при використанні "-sV" (UDP scans дуже повільні), але зауважте, що UDP scans повільніші за TCP scans: ```bash # Check if any of the most common udp services is running udp-proto-scanner.pl @@ -157,25 +158,25 @@ nmap -sU -sV --version-intensity 0 -n -T4 ``` ### SCTP Scan -**SCTP (Stream Control Transmission Protocol)** призначений для використання разом з **TCP (Transmission Control Protocol)** та **UDP (User Datagram Protocol)**. Його основна мета - полегшити транспортування телефонних даних через IP-мережі, відображаючи багато з функцій надійності, які є в **Signaling System 7 (SS7)**. **SCTP** є основним компонентом сімейства протоколів **SIGTRAN**, яке має на меті транспортувати сигнали SS7 через IP-мережі. +**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**, що свідчить про його широке визнання та корисність у сфері телекомунікацій та мережевих технологій. +Підтримка **SCTP** реалізована в різних операційних системах, таких як **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** та **VxWorks**, що свідчить про його широке визнання та корисність у сфері телекомунікацій та мереж. -Два різні сканування для SCTP пропонуються nmap: _-sY_ та _-sZ_ +Для SCTP nmap пропонує два різні scans: _-sY_ та _-sZ_. ```bash # Nmap fast SCTP scan nmap -T4 -sY -n -oA SCTFastScan # Nmap all SCTP scan nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan ``` -### IDS та IPS ухилення +### IDS and IPS evasion {{#ref}} ids-evasion.md {{#endref}} -### **Більше опцій nmap** +### **Додаткові опції nmap** {{#ref}} @@ -184,7 +185,7 @@ nmap-summary-esp.md ### Виявлення внутрішніх IP-адрес -**Неправильно налаштовані маршрутизатори, брандмауери та мережеві пристрої** іноді відповідають на мережеві запити, використовуючи **непублічні адреси джерела**. **tcpdump** можна використовувати для ідентифікації пакетів, отриманих з приватних адрес під час тестування. Зокрема, на Kali Linux пакети можна захоплювати на **інтерфейсі eth2**, який доступний з публічного Інтернету. Важливо зазначити, що якщо ваша конфігурація знаходиться за NAT або брандмауером, такі пакети, ймовірно, будуть відфільтровані. +**Неправильно налаштовані маршрутизатори, firewalls та мережеві пристрої** іноді відповідають на мережеві сканування, використовуючи **непублічні адреси джерела**. **tcpdump** можна використати для виявлення пакетів, отриманих із приватних адрес під час тестування. Зокрема, у Kali Linux пакети можна захопити на **eth2 interface**, який доступний з публічного Інтернету. Важливо зауважити, що якщо ваша конфігурація знаходиться за NAT або за Firewall, такі пакети, ймовірно, будуть відфільтровані. ```bash 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 @@ -194,9 +195,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64 ``` ## Sniffing -Sniffing ви можете дізнатися деталі IP-діапазонів, розміри підмереж, MAC-адреси та імена хостів, переглядаючи захоплені кадри та пакети. Якщо мережа неправильно налаштована або комутаційна структура під тиском, зловмисники можуть захопити чутливі матеріали за допомогою пасивного мережевого sniffing. +За допомогою Sniffing можна дізнатися деталі IP ranges, subnet sizes, MAC addresses і hostnames, переглядаючи захоплені frames і packets. Якщо мережа неправильно налаштована або switching fabric під навантаженням, attackers можуть захоплювати конфіденційні дані через passive network sniffing. -Якщо мережа Ethernet з комутацією налаштована правильно, ви побачите лише широкомовні кадри та матеріали, призначені для вашої MAC-адреси. +Якщо switched Ethernet network налаштовано правильно, ви бачитимете лише broadcast frames і матеріал, призначений для вашої MAC address. ### TCPDump ```bash @@ -204,7 +205,7 @@ sudo tcpdump -i udp port 53 #Listen to DNS request to discover what tcpdump -i 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-сесію, використовуючи Wireshark як GUI в реальному часі. ``` ssh user@ tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i - ssh @ tcpdump -i -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic @@ -224,13 +225,13 @@ set net.sniff.regexp #If set only packets matching this regex will be considered ### Capturing credentials -Ви можете використовувати інструменти, такі як [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz), для парсингу облікових даних з pcap або живого інтерфейсу. +Ви можете використовувати інструменти, такі як [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz), щоб витягти облікові дані з pcap або з живого інтерфейсу. ## LAN attacks ### ARP spoofing -ARP Spoofing полягає в надсиланні безкоштовних ARP-відповідей, щоб вказати, що IP машини має MAC нашого пристрою. Тоді жертва змінить ARP-таблицю і буде контактувати з нашою машиною щоразу, коли захоче зв'язатися з підробленим IP. +ARP Spoofing полягає у відправленні gratuitous ARPResponses, щоб вказати, що IP машини має MAC нашого пристрою. Потім жертва змінить ARP table і щоразу звертатиметься до нашої машини, коли захоче зв'язатися з підробленим IP. #### **Bettercap** ```bash @@ -246,9 +247,9 @@ 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 переповнення +### MAC Flooding - CAM overflow -Переповніть CAM таблицю комутатора, відправляючи багато пакетів з різними MAC-адресами джерела. Коли CAM таблиця заповнена, комутатор починає поводитися як хаб (широкосмугово транслюючи весь трафік). +Переповніть switch’s CAM table, надсилаючи багато пакетів з різними source mac address. Коли CAM table заповнена, switch починає поводитися як hub (широкомовить увесь трафік). ```bash macof -i ``` @@ -256,15 +257,15 @@ macof -i ### 802.1Q VLAN / DTP Атаки -#### Динамічне Транкування +#### Dynamic Trunking -**Dynamic Trunking Protocol (DTP)** розроблений як протокол канального рівня для полегшення автоматичної системи транкування, що дозволяє комутаторам автоматично вибирати порти для режиму транку (Trunk) або нетранкового режиму. Використання **DTP** часто вважається показником не оптимального дизайну мережі, підкреслюючи важливість ручного налаштування транків лише там, де це необхідно, і забезпечення належної документації. +Протокол **Dynamic Trunking Protocol (DTP)** реалізований як протокол канального рівня для автоматизації trunking, що дозволяє комутаторам автоматично обирати порти для режиму trunk (Trunk) або не-trunk режиму. Розгортання **DTP** часто розглядають як ознаку неоптимального дизайну мережі, що підкреслює важливість ручної конфігурації trunks лише там, де це необхідно, та належної документації. -За замовчуванням порти комутатора налаштовані на роботу в режимі Dynamic Auto, що означає, що вони готові ініціювати транкування, якщо їх запитає сусідній комутатор. Проблема безпеки виникає, коли пентестер або зловмисник підключається до комутатора і надсилає DTP Desirable кадр, змушуючи порт перейти в режим транку. Ця дія дозволяє зловмиснику перерахувати VLAN через аналіз кадрів STP і обійти сегментацію VLAN, налаштувавши віртуальні інтерфейси. +За замовчуванням порти комутаторів налаштовані працювати в режимі Dynamic Auto, тобто вони готові ініціювати trunking за сигналом від сусіднього комутатора. Проблема безпеки виникає, коли pentester або атакуючий підключається до комутатора і відправляє DTP Desirable frame, примушуючи порт перейти в trunk mode. Це дозволяє атакуючому перерахувати VLANs шляхом аналізу STP frame і обійти VLAN segmentation шляхом створення віртуальних інтерфейсів. -Наявність DTP у багатьох комутаторах за замовчуванням може бути використана супротивниками для імітації поведінки комутатора, таким чином отримуючи доступ до трафіку через всі VLAN. Скрипт [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) використовується для моніторингу інтерфейсу, виявляючи, чи знаходиться комутатор у режимі Default, Trunk, Dynamic, Auto або Access—останній є єдиною конфігурацією, яка не підлягає атакам VLAN hopping. Цей інструмент оцінює статус вразливості комутатора. +Наявність DTP у багатьох комутаторах за замовчуванням може бути використана супротивником для імітації поведінки комутатора, отримуючи доступ до трафіку всіх VLANs. Скрипт [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) використовується для моніторингу інтерфейсу й показує, чи перебуває комутатор у режимі Default, Trunk, Dynamic, Auto або Access — останній є єдиною конфігурацією, що захищена від VLAN hopping attacks. Цей інструмент оцінює стан вразливості комутатора. -Якщо буде виявлено вразливість мережі, інструмент _**Yersinia**_ може бути використаний для "увімкнення транкування" через протокол DTP, що дозволяє спостерігати за пакетами з усіх VLAN. +Якщо виявлено вразливість мережі, інструмент _**Yersinia**_ можна застосувати, щоб «enable trunking» через протокол DTP, що дозволяє спостерігати пакети з усіх VLANs. ```bash apt-get install yersinia #Installation sudo apt install kali-linux-large #Another way to install it in Kali @@ -277,20 +278,20 @@ yersinia -G #For graphic mode ``` ![](<../../images/image (269).png>) -Щоб перерахувати VLAN, також можна згенерувати DTP Desirable frame за допомогою скрипта [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. Н**е переривайте виконання скрипта за жодних обставин. Він інжектує DTP Desirable кожні три секунди. **Динамічно створені trunk канали на комутаторі живуть лише п'ять хвилин. Після п'яти хвилин trunk відключається.** +Для перелічення VLANs також можна згенерувати DTP Desirable frame за допомогою скрипта [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py). Не переривайте скрипт ні в якому разі. Він інжектує DTP Desirable кожні три секунди. **Динамічно створені trunk channels на switch живуть лише п’ять хвилин. Після п’яти хвилин trunk відпадає.** ``` sudo python3 DTPHijacking.py --interface eth0 ``` -Я хотів би зазначити, що **Access/Desirable (0x03)** вказує на те, що DTP фрейм є типу Desirable, що вказує порту переключитися в режим Trunk. А **802.1Q/802.1Q (0xa5)** вказує на тип інкапсуляції **802.1Q**. +Я хочу звернути увагу, що **Access/Desirable (0x03)** означає, що DTP frame має тип Desirable і наказує порту перейти в режим Trunk. А **802.1Q/802.1Q (0xa5** вказує тип інкапсуляції **802.1Q**. -Аналізуючи STP фрейми, **ми дізнаємося про існування VLAN 30 та VLAN 60.** +Аналізуючи STP frames, **ми дізнаємося про наявність VLAN 30 та VLAN 60.**
-#### Атака на конкретні VLAN +#### Атака конкретних VLAN -Якщо ви знаєте VLAN ID та значення IP, ви можете **налаштувати віртуальний інтерфейс для атаки на конкретний VLAN**.\ -Якщо DHCP недоступний, використовуйте _ifconfig_ для встановлення статичної IP-адреси. +Після того, як ви дізналися VLAN IDs та IPs values, ви можете **configure a virtual interface to attack a specific VLAN**.\ +Якщо DHCP недоступний, використайте _ifconfig_ для встановлення статичної статичної IP-адреси. ``` root@kali:~# modprobe 8021q root@kali:~# vconfig add eth1 250 @@ -325,26 +326,27 @@ sudo dhclient -v eth0.30 ``` #### Automatic VLAN Hopper -Обговорювана атака **Dynamic Trunking та створення віртуальних інтерфейсів для виявлення хостів всередині** інших VLAN **автоматично виконується** інструментом: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger) +Обговорювана атака **Dynamic Trunking and creating virtual interfaces an discovering hosts inside** інших VLANs **виконується автоматично** за допомогою інструмента: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger) #### Double Tagging -Якщо атакуючий знає значення **MAC, IP та VLAN ID жертви**, він може спробувати **подвійно тегувати кадр** з його призначеним VLAN та VLAN жертви і надіслати пакет. Оскільки **жертва не зможе підключитися назад** до атакуючого, **найкращим варіантом для атакуючого є спілкування через UDP** з протоколами, які можуть виконувати деякі цікаві дії (наприклад, SNMP). +Якщо нападник знає значення **MAC, IP and VLAN ID of the victim host**, він може спробувати **double tag a frame** з відповідним VLAN і VLAN жертви та відправити пакет. Оскільки **victim won't be able to connect back** з нападником, найкращим варіантом для нападника є спілкування через UDP з протоколами, які можуть виконувати корисні дії (наприклад, SNMP). -Ще один варіант для атакуючого - запустити **TCP порт-сканування, підробляючи IP, контрольований атакуючим і доступний жертві** (можливо, через інтернет). Тоді атакуючий може прослуховувати на другому хості, що належить йому, якщо він отримує якісь пакети від жертви. +Іншим варіантом для нападника є запуск **TCP port scan spoofing an IP controlled by the attacker and accessible by the victim** (ймовірно через інтернет). Потім нападник може sniff на другому хості, що йому належить, якщо той отримає пакети від жертви. ![](<../../images/image (190).png>) -Щоб виконати цю атаку, ви можете використовувати scapy: `pip install scapy` +Для виконання цієї атаки можна використовувати scapy: `pip install scapy` ```python 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) ``` -#### Lateral VLAN Segmentation Bypass +#### Латеральний обхід сегментації VLAN + +Якщо у вас є **access to a switch that you are directly connected to**, ви маєте можливість **bypass VLAN segmentation** в межах мережі. Просто **switch the port to trunk mode** (otherwise known as trunk), створіть virtual interfaces з ID цільових VLAN і налаштуйте IP address. Ви можете спробувати отримати адресу динамічно (DHCP) або налаштувати її статично — залежить від випадку. -Якщо у вас є **доступ до комутатора, до якого ви безпосередньо підключені**, ви маєте можливість **обійти сегментацію VLAN** в мережі. Просто **переключіть порт у режим trunk** (також відомий як trunk), створіть віртуальні інтерфейси з ідентифікаторами цільових VLAN, і налаштуйте IP-адресу. Ви можете спробувати запитати адресу динамічно (DHCP) або налаштувати її статично. Це залежить від ситуації. {{#ref}} lateral-vlan-segmentation-bypass.md @@ -352,46 +354,46 @@ lateral-vlan-segmentation-bypass.md #### Layer 3 Private VLAN Bypass -У певних середовищах, таких як гостьові бездротові мережі, **ізоляція портів (також відома як приватний VLAN)** реалізується для запобігання безпосередньому спілкуванню клієнтів, підключених до бездротової точки доступу. Однак виявлено техніку, яка може обійти ці заходи ізоляції. Ця техніка експлуатує або відсутність мережевих ACL, або їх неправильну конфігурацію, що дозволяє IP-пакетам маршрутизуватися через маршрутизатор для досягнення іншого клієнта в тій же мережі. +У певних середовищах, наприклад у гостьових бездротових мережах, застосовуються налаштування port isolation (також відомі як private VLAN), щоб запобігти прямій взаємодії клієнтів, підключених до одного access point. Однак виявлено техніку, яка може обійти ці заходи ізоляції. Вона використовує відсутність або неправильну конфігурацію мережевих ACL, дозволяючи IP пакету бути маршрутизованим через router для досягнення іншого клієнта в тій же мережі. -Атака виконується шляхом створення **пакета, який містить IP-адресу цільового клієнта, але з MAC-адресою маршрутизатора**. Це змушує маршрутизатор помилково переслати пакет до цільового клієнта. Цей підхід подібний до того, що використовується в атаках Double Tagging, де можливість контролювати хост, доступний жертві, використовується для експлуатації вразливості безпеки. +Атака виконується шляхом створення **пакета, що несе IP address клієнта-цілі, але з MAC address маршрутизатора**. Це змушує router помилково переслати пакет до цільового клієнта. Цей підхід схожий на той, що використовується в Double Tagging Attacks, де можливість контролю хоста, доступного для жертви, застосовується для експлуатації вразливості. **Ключові кроки атаки:** -1. **Створення пакета:** Пакет спеціально створюється, щоб включати IP-адресу цільового клієнта, але з MAC-адресою маршрутизатора. -2. **Експлуатація поведінки маршрутизатора:** Створений пакет надсилається до маршрутизатора, який, через конфігурацію, перенаправляє пакет до цільового клієнта, обходячи ізоляцію, забезпечену налаштуваннями приватного VLAN. +1. **Створення пакета:** Спеціально сформований пакет містить IP address цільового клієнта, але з MAC address маршрутизатора. +2. **Експлуатація поведінки router:** Сформований пакет відправляється до router, який через конфігурацію перенаправляє пакет до цільового клієнта, тим самим обходячи ізоляцію, забезпечену private VLAN. ### VTP Attacks -VTP (VLAN Trunking Protocol) централізує управління VLAN. Він використовує номери версій для підтримки цілісності бази даних VLAN; будь-яка модифікація збільшує цей номер. Комутатори приймають конфігурації з вищими номерами версій, оновлюючи свої власні бази даних VLAN. +VTP (VLAN Trunking Protocol) централізує управління VLAN. Він використовує revision numbers для підтримки цілісності VLAN database; будь-яка модифікація збільшує це число. Switches приймають конфігурації з вищими revision numbers, оновлюючи власні VLAN database. #### VTP Domain Roles -- **VTP Server:** Керує VLAN—створює, видаляє, модифікує. Він транслює оголошення VTP членам домену. -- **VTP Client:** Отримує оголошення VTP для синхронізації своєї бази даних VLAN. Ця роль обмежена у можливостях локальних модифікацій конфігурації VLAN. -- **VTP Transparent:** Не бере участі в оновленнях VTP, але пересилає оголошення VTP. Не підлягає атакам VTP, підтримує постійний номер версії нуль. +- **VTP Server:** Керує VLAN — створює, видаляє, модифікує. Він розсилає VTP announcements членам домену. +- **VTP Client:** Отримує VTP announcements для синхронізації свого VLAN database. Ця роль обмежена і не дозволяє локально змінювати конфігурацію VLAN. +- **VTP Transparent:** Не бере участі в оновленнях VTP, але пересилає VTP announcements. Не піддається VTP атакам, зберігаючи постійний revision number рівний нулю. #### VTP Advertisement Types -- **Summary Advertisement:** Транслюється VTP сервером кожні 300 секунд, містить основну інформацію про домен. -- **Subset Advertisement:** Надсилається після змін конфігурації VLAN. -- **Advertisement Request:** Видається VTP клієнтом для запиту Summary Advertisement, зазвичай у відповідь на виявлення вищого номера версії конфігурації. +- **Summary Advertisement:** Broadcasted by the VTP server every 300 seconds, carrying essential domain information. +- **Subset Advertisement:** Sent following VLAN configuration changes. +- **Advertisement Request:** Issued by a VTP client to request a Summary Advertisement, typically in response to detecting a higher configuration revision number. -Вразливості VTP можуть бути експлуатовані виключно через trunk порти, оскільки оголошення VTP циркулюють лише через них. Сценарії після атаки DTP можуть перейти до VTP. Інструменти, такі як Yersinia, можуть полегшити атаки VTP, намагаючись знищити базу даних VLAN, ефективно порушуючи мережу. +VTP vulnerabilities експлуатуються виключно через trunk ports, оскільки VTP announcements циркулюють лише через них. Після DTP attack сценарії можуть перейти до VTP. Інструменти на кшталт Yersinia можуть полегшити VTP атаки з метою очищення VLAN database, що фактично порушує роботу мережі. -Примітка: Це обговорення стосується версії VTP 1 (VTPv1). -````bash -%% yersinia -G # Launch Yersinia in graphical mode ``` -```` -У графічному режимі Yersinia виберіть опцію видалення всіх VTP VLAN, щоб очистити базу даних VLAN. +Note: This discussion pertains to VTP version 1 (VTPv1). +```bash +yersinia -G # Launch Yersinia in graphical mode +``` +У графічному режимі Yersinia виберіть опцію deleting all VTP vlans, щоб очистити VLAN database. -### Атаки STP +### STP Атаки -**Якщо ви не можете захопити кадри BPDU на своїх інтерфейсах, малоймовірно, що ви досягнете успіху в атаці STP.** +**Якщо ви не можете захопити BPDU кадри на своїх інтерфейсах, малоймовірно, що вам вдасться здійснити STP-атаку.** #### **STP BPDU DoS** -Відправка великої кількості BPDUs TCP (Сповіщення про зміну топології) або Conf (BPDUs, які надсилаються, коли створюється топологія) перевантажує комутатори, і вони перестають працювати належним чином. +Надсилання великої кількості BPDUs TCP (Topology Change Notification) або Conf (BPDUs, які надсилаються при створенні топології) призводить до перевантаження комутаторів, і вони перестають коректно працювати. ```bash yersinia stp -attack 2 yersinia stp -attack 3 @@ -399,79 +401,79 @@ yersinia stp -attack 3 ``` #### **STP TCP Attack** -Коли надсилається TCP, таблиця CAM комутаторів буде видалена за 15 секунд. Потім, якщо ви постійно надсилаєте такі пакети, таблиця CAM буде перезапускатися безперервно (або кожні 15 секунд), і коли вона перезапускається, комутатор поводиться як хаб. +Коли надсилається TCP, CAM table of the switches буде видалено через 15s. Якщо ви безперервно надсилатимете такі packets, CAM table буде перезапускатися постійно (або кожні 15segs), і коли він перезапускається, switch поводиться як hub. ```bash 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 Root Attack** -Атакуючий імітує поведінку комутатора, щоб стати коренем STP мережі. Тоді більше даних проходитиме через нього. Це цікаво, коли ви підключені до двох різних комутаторів.\ -Це робиться шляхом відправки пакетів BPDUs CONF, які говорять, що значення **пріоритету** менше, ніж фактичний пріоритет фактичного кореневого комутатора. +Зловмисник імітує поведінку комутатора, щоб стати STP root мережі. Тоді через нього проходитиме більше даних. Це цікаво, коли ви підключені до двох різних комутаторів.\ +Це робиться шляхом відправлення BPDUs CONF packets, які повідомляють, що значення **priority** менше за фактичний пріоритет поточного root-комутатора. ```bash 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). +**Якщо атакуючий підключений до двох комутаторів, він може стати коренем нового дерева, і весь трафік між цими комутаторами проходитиме через нього** (a MITM attack will be performed). ```bash 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 Атаки +### CDP Attacks -CISCO Discovery Protocol (CDP) є важливим для зв'язку між пристроями CISCO, дозволяючи їм **ідентифікувати один одного та ділитися конфігураційними деталями**. +CISCO Discovery Protocol (CDP) є необхідним для зв'язку між пристроями CISCO, дозволяючи їм **взаємно ідентифікуватися та обмінюватися деталями конфігурації**. -#### Пасивний збір даних +#### Passive Data Collection -CDP налаштовано на трансляцію інформації через всі порти, що може призвести до ризику безпеки. Зловмисник, підключившись до порту комутатора, може використовувати мережеві аналізатори, такі як **Wireshark**, **tcpdump** або **Yersinia**. Ця дія може розкрити чутливі дані про мережевий пристрій, включаючи його модель та версію Cisco IOS, яку він використовує. Зловмисник може потім націлитися на конкретні вразливості в ідентифікованій версії Cisco IOS. +CDP налаштовано на трансляцію інформації через усі порти, що може створювати ризик безпеки. Атакувальник, підключившись до порту комутатора, може запустити мережеві сніфери, такі як **Wireshark**, **tcpdump**, або **Yersinia**. Це може розкрити конфіденційну інформацію про мережевий пристрій, включно з його моделлю та версією Cisco IOS, яка на ньому запущена. Потім атакувальник може націлитися на конкретні вразливості ідентифікованої версії Cisco IOS. -#### Виклик затоплення таблиці CDP +#### Inducing CDP Table Flooding -Більш агресивний підхід полягає в запуску атаки відмови в обслуговуванні (DoS), перевантажуючи пам'ять комутатора, видаючи себе за легітимні пристрої CISCO. Нижче наведено послідовність команд для ініціювання такої атаки за допомогою Yersinia, інструменту для тестування мережі: +Більш агресивний підхід включає запуск Denial of Service (DoS) атаки шляхом перевантаження пам'яті комутатора, видаючи себе за легітимні пристрої CISCO. Нижче наведено послідовність команд для ініціації такої атаки за допомогою Yersinia, мережевого інструмента, призначеного для тестування: ```bash sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices # Alternatively, for a GUI approach: sudo yersinia -G ``` -Під час цієї атаки процесор комутатора та таблиця сусідів CDP зазнають великого навантаження, що призводить до того, що це часто називають **“паралічем мережі”** через надмірне споживання ресурсів. +Під час цієї атаки CPU комутатора та таблиця сусідів CDP зазнають значного навантаження, що призводить до того, що часто називають **“паралічем мережі”** через надмірне споживання ресурсів. #### CDP Impersonation Attack ```bash sudo yersinia cdp -attack 2 #Simulate a new CISCO device sudo yersinia cdp -attack 0 #Send a CDP packet ``` -Ви також можете використовувати [**scapy**](https://github.com/secdev/scapy/). Обов'язково встановіть його з пакетом `scapy/contrib`. +You could also use [**scapy**](https://github.com/secdev/scapy/). Be sure to install it with `scapy/contrib` package. ### Атаки VoIP та інструмент VoIP Hopper -Телефони VoIP, які все більше інтегруються з пристроями IoT, пропонують функції, такі як відкриття дверей або управління термостатами через спеціальні телефонні номери. Однак ця інтеграція може створювати ризики для безпеки. +VoIP-телефони, що дедалі частіше інтегруються з IoT-пристроями, надають функції, як-от відчинення дверей або керування термостатами за допомогою спеціальних номерів телефонів. Однак така інтеграція може створювати ризики безпеки. -Інструмент [**voiphopper**](http://voiphopper.sourceforge.net) призначений для емуляції VoIP телефону в різних середовищах (Cisco, Avaya, Nortel, Alcatel-Lucent). Він виявляє VLAN ID голосової мережі, використовуючи протоколи, такі як CDP, DHCP, LLDP-MED та 802.1Q ARP. +Інструмент [**voiphopper**](http://voiphopper.sourceforge.net) призначений імітувати VoIP-телефон у різних середовищах (Cisco, Avaya, Nortel, Alcatel-Lucent). Він визначає VLAN ID голосової мережі, використовуючи протоколи, такі як CDP, DHCP, LLDP-MED та 802.1Q ARP. -**VoIP Hopper** пропонує три режими для протоколу Cisco Discovery Protocol (CDP): +**VoIP Hopper** пропонує три режими для Cisco Discovery Protocol (CDP): -1. **Sniff Mode** (`-c 0`): Аналізує мережеві пакети для визначення VLAN ID. -2. **Spoof Mode** (`-c 1`): Генерує користувацькі пакети, що імітують пакети реального VoIP пристрою. -3. **Spoof with Pre-made Packet Mode** (`-c 2`): Відправляє пакети, ідентичні пакетам конкретної моделі Cisco IP телефону. +1. **Sniff Mode** (`-c 0`): Аналізує мережеві пакети, щоб ідентифікувати VLAN ID. +2. **Spoof Mode** (`-c 1`): Генерує користувацькі пакети, що імітують пакети реального VoIP-пристрою. +3. **Spoof with Pre-made Packet Mode** (`-c 2`): Надсилає пакети, ідентичні пакетам конкретної моделі Cisco IP-телефону. -Переважний режим для швидкості - це третій. Він вимагає вказати: +Переважним режимом для швидкості є третій. Він вимагає вказати: -- Мережева інтерфейс атакуючого (`-i` параметр). -- Назва VoIP пристрою, що емулюється (`-E` параметр), відповідно до формату іменування Cisco (наприклад, SEP, за яким слідує MAC-адреса). +- мережевий інтерфейс атакуючого (`-i` параметр). +- назву VoIP-пристрою, що імітується (`-E` параметр), у форматі найменування Cisco (наприклад, SEP, за яким слідує MAC-адреса). -У корпоративних умовах, щоб імітувати існуючий VoIP пристрій, можна: +У корпоративних налаштуваннях, щоб імітувати наявний VoIP-пристрій, можна: -- Перевірити MAC-етикетку на телефоні. -- Перейти до налаштувань дисплея телефону, щоб переглянути інформацію про модель. -- Підключити VoIP пристрій до ноутбука та спостерігати запити CDP за допомогою Wireshark. +- перевірити етикетку з MAC-адресою на телефоні. +- перейти в налаштування дисплея телефону, щоб побачити інформацію про модель. +- підключити VoIP-пристрій до ноутбука та спостерігати за CDP-запитами за допомогою Wireshark. -Приклад команди для виконання інструменту в третьому режимі буде: +Приклад команди для запуску інструмента в третьому режимі: ```bash voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2 ``` -### DHCP Атаки +### DHCP атаки -#### Перерахунок +#### Енумерація ```bash nmap --script broadcast-dhcp-discover Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT @@ -491,59 +493,60 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds ``` **DoS** -**Існує два типи DoS**, які можна виконати проти DHCP серверів. Перший полягає в **імітації достатньої кількості фейкових хостів для використання всіх можливих IP-адрес**.\ -Цей напад спрацює лише якщо ви можете бачити відповіді DHCP сервера і завершити протокол (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Наприклад, це **неможливо в Wifi мережах**. +**Два типи DoS** можна виконати проти DHCP servers. Перший полягає в **simulate enough fake hosts to use all the possible IP addresses**.\ +Ця атака працюватиме лише якщо ви можете бачити відповіді DHCP server і завершити протокол (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Наприклад, це **not possible in Wifi networks**. -Інший спосіб виконати DHCP DoS - це надіслати **DHCP-RELEASE пакет, використовуючи як вихідний код кожну можливу IP-адресу**. Тоді сервер подумає, що всі закінчили використовувати IP. +Інший спосіб виконати DHCP DoS — надіслати **DHCP-RELEASE packet using as source code every possible IP**. Тоді server подумає, що всі завершили використання IP. ```bash yersinia dhcp -attack 1 yersinia dhcp -attack 3 #More parameters are needed ``` -Більш автоматизований спосіб зробити це - використати інструмент [DHCPing](https://github.com/kamorin/DHCPig) +A more automatic way of doing this is using the tool [DHCPing](https://github.com/kamorin/DHCPig) -Ви можете використовувати згадані атаки DoS, щоб змусити клієнтів отримувати нові оренди в середовищі та виснажити легітимні сервери, щоб вони стали нереспонсивними. Тож, коли легітимні намагатимуться перепідключитися, **ви можете надати шкідливі значення, згадані в наступній атаці**. +You could use the mentioned DoS attacks to force clients to obtain new leases within the environment, and exhaust legitimate servers so that they become unresponsive. So when the legitimate servers try to reconnect, **ви зможете надати шкідливі значення, згадані в наступній атаці**. -#### Встановлення шкідливих значень +#### Встановити шкідливі значення -Шкідливий DHCP сервер можна налаштувати за допомогою DHCP скрипта, розташованого за адресою `/usr/share/responder/DHCP.py`. Це корисно для мережевих атак, таких як захоплення HTTP трафіку та облікових даних, шляхом перенаправлення трафіку на шкідливий сервер. Однак налаштування шкідливого шлюзу менш ефективне, оскільки це дозволяє лише захоплювати вихідний трафік від клієнта, пропускаючи відповіді від реального шлюзу. Натомість рекомендується налаштувати шкідливий DNS або WPAD сервер для більш ефективної атаки. +A rogue DHCP server can be set up using the DHCP script located at `/usr/share/responder/DHCP.py`. This is useful for network attacks, like capturing HTTP traffic and credentials, by redirecting traffic to a malicious server. However, setting a rogue gateway is less effective since it only allows capturing outbound traffic from the client, missing the responses from the real gateway. Instead, setting up a rogue DNS or WPAD server is recommended for a more effective attack. -Нижче наведені параметри команд для налаштування шкідливого DHCP сервера: +Below are the command options for configuring the rogue DHCP server: -- **Наша 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 запити, але будьте обережні, оскільки це шумно і може бути виявлено. +- **Our IP Address (Gateway Advertisement)**: Use `-i 10.0.0.100` to advertise your machine's IP as the gateway. +- **Local DNS Domain Name**: Optionally, use `-d example.org` to set a local DNS domain name. +- **Original Router/Gateway IP**: Use `-r 10.0.0.1` to specify the IP address of the legitimate router or gateway. +- **Primary DNS Server IP**: Use `-p 10.0.0.100` to set the IP address of the rogue DNS server you control. +- **Secondary DNS Server IP**: Optionally, use `-s 10.0.0.1` to set a secondary DNS server IP. +- **Netmask of Local Network**: Use `-n 255.255.255.0` to define the netmask for the local network. +- **Interface for DHCP Traffic**: Use `-I eth1` to listen for DHCP traffic on a specific network interface. +- **WPAD Configuration Address**: Use `-w “http://10.0.0.100/wpad.dat”` to set the address for WPAD configuration, assisting in web traffic interception. +- **Spoof Default Gateway IP**: Include `-S` to spoof the default gateway IP address. +- **Respond to All DHCP Requests**: Include `-R` to make the server respond to all DHCP requests, but be aware that this is noisy and can be detected. -Правильно використовуючи ці параметри, можна створити шкідливий DHCP сервер для ефективного перехоплення мережевого трафіку. +By correctly using these options, a rogue DHCP server can be established to intercept network traffic effectively. ```python # 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: +Нижче наведені деякі тактики атак, які можна застосувати проти реалізацій 802.1X: -- Активне брутфорсинг паролів через EAP -- Атака на RADIUS сервер з неправильно сформованим EAP контентом _\*\*_(експлойти) -- Захоплення EAP повідомлень та офлайн злому паролів (EAP-MD5 та PEAP) -- Примусова аутентифікація EAP-MD5 для обходу перевірки сертифіката TLS -- Впровадження шкідливого мережевого трафіку під час аутентифікації за допомогою хаба або подібного +- Активне brute-force-підбирання пароля через EAP +- Атака на RADIUS сервер з некоректним EAP-контентом _\*\*_(exploits) +- Перехоплення EAP-повідомлень та офлайнове зламування паролів (EAP-MD5 і PEAP) +- Примусове використання EAP-MD5 для обходу перевірки TLS-сертифікатів +- Ін'єкція шкідливого мережевого трафіку після автентифікації з використанням hub або подібного -Якщо атакуючий знаходиться між жертвою та сервером аутентифікації, він може спробувати знизити (якщо необхідно) протокол аутентифікації до EAP-MD5 та захопити спробу аутентифікації. Потім він може брутфорсити це, використовуючи: +Якщо атакуючий знаходиться між жертвою та сервером автентифікації, він може спробувати при необхідності понизити протокол автентифікації до EAP-MD5 і перехопити спробу автентифікації. Потім він може виконати brute-force цього за допомогою: ``` eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt ``` ### FHRP (GLBP & HSRP) Attacks -**FHRP** (Протокол резервування першого переходу) - це клас мережевих протоколів, призначених для **створення гарячої резервної маршрутизаційної системи**. З FHRP фізичні маршрутизатори можуть бути об'єднані в один логічний пристрій, що підвищує стійкість до відмов і допомагає розподілити навантаження. +**FHRP** (First Hop Redundancy Protocol) — це клас мережевих протоколів, призначених для **створення гарячої резервної системи маршрутизації**. За допомогою FHRP фізичні маршрутизатори можуть поєднуватися в один логічний пристрій, що підвищує відмовостійкість і допомагає розподіляти навантаження. + +**Інженери Cisco Systems розробили два протоколи FHRP — GLBP і HSRP.** -**Інженери Cisco Systems розробили два протоколи FHRP: GLBP та HSRP.** {{#ref}} glbp-and-hsrp-attacks.md @@ -551,54 +554,55 @@ glbp-and-hsrp-attacks.md ### RIP -Відомо про існування трьох версій Протоколу інформації про маршрути (RIP): RIP, RIPv2 та RIPng. Датаграми надсилаються до пір через порт 520 за допомогою UDP в RIP та RIPv2, тоді як датаграми транслюються на UDP порт 521 через IPv6 multicast в RIPng. Підтримка аутентифікації MD5 була введена в RIPv2. З іншого боку, нативна аутентифікація не включена в RIPng; натомість покладаються на необов'язкові заголовки IPsec AH та ESP в IPv6. +Існують три відомі версії Routing Information Protocol (RIP): RIP, RIPv2 та RIPng. RIP і RIPv2 відправляють дейтаграми до пірів через UDP на порт 520, тоді як RIPng транслює дейтаграми через IPv6-мультікаст на UDP порт 521. Підтримка MD5-аутентифікації була додана в RIPv2. Натомість RIPng не має вбудованої аутентифікації і покладається на опціональні заголовки IPsec AH та ESP в IPv6. -- **RIP та RIPv2:** Зв'язок здійснюється через UDP датаграми на порту 520. -- **RIPng:** Використовує UDP порт 521 для трансляції датаграм через IPv6 multicast. +- **RIP and RIPv2:** Комунікація здійснюється через UDP дейтаграми на порті 520. +- **RIPng:** Використовує UDP порт 521 для трансляції дейтаграм через IPv6-мультікаст. -Зверніть увагу, що RIPv2 підтримує аутентифікацію MD5, тоді як RIPng не включає нативну аутентифікацію, покладаючись на заголовки IPsec AH та ESP в IPv6. +Зверніть увагу, що RIPv2 підтримує MD5-аутентифікацію, тоді як RIPng не має вбудованої аутентифікації і покладається на заголовки IPsec AH та ESP в IPv6. ### EIGRP Attacks -**EIGRP (Покращений протокол маршрутизації внутрішніх шлюзів)** - це динамічний протокол маршрутизації. **Це протокол вектору відстані.** Якщо **немає аутентифікації** та налаштування пасивних інтерфейсів, **зловмисник** може втручатися в маршрутизацію EIGRP і викликати **отруєння таблиць маршрутизації**. Більше того, мережа EIGRP (іншими словами, автономна система) **є плоскою і не має сегментації на зони**. Якщо **зловмисник інжектує маршрут**, ймовірно, що цей маршрут **пошириться** по всій автономній системі EIGRP. +**EIGRP (Enhanced Interior Gateway Routing Protocol)** — динамічний протокол маршрутизації. **Це distance-vector протокол.** Якщо відсутня **аутентифікація** і налаштування пасивних інтерфейсів, **зловмисник** може втрутитися в маршрутизацію EIGRP і спричинити **отруєння таблиць маршрутизації**. Крім того, мережа EIGRP (іншими словами, автономна система) **є плоскою і не має сегментації на зони**. Якщо **зловмисник впроваджує маршрут**, ймовірно, що цей маршрут **розповсюдиться** по всій автономній системі EIGRP. -Для атаки на систему EIGRP потрібно **встановити сусідство з легітимним маршрутизатором EIGRP**, що відкриває багато можливостей, від базового розвідки до різних ін'єкцій. +Для атаки на систему EIGRP потрібно **встановити сусідство з легітимним EIGRP маршрутизатором**, що відкриває безліч можливостей — від базової розвідки до різних впроваджень. + +[**FRRouting**](https://frrouting.org/) дозволяє реалізувати **віртуальний маршрутизатор, що підтримує BGP, OSPF, EIGRP, RIP та інші протоколи.** Все, що потрібно — розгорнути його в системі зловмисника, і ви фактично можете прикидатися легітимним маршрутизатором у домені маршрутизації. -[**FRRouting**](https://frrouting.org/) дозволяє реалізувати **віртуальний маршрутизатор, який підтримує BGP, OSPF, EIGRP, RIP та інші протоколи.** Все, що вам потрібно зробити, це розгорнути його на системі вашого зловмисника, і ви насправді можете вдавати, що ви легітимний маршрутизатор в домені маршрутизації. {{#ref}} eigrp-attacks.md {{#endref}} -[**Coly**](https://code.google.com/p/coly/) має можливості для перехоплення трансляцій EIGRP (Покращений протокол маршрутизації внутрішніх шлюзів). Він також дозволяє інжектувати пакети, які можуть бути використані для зміни конфігурацій маршрутизації. +[**Coly**](https://code.google.com/p/coly/) має можливості для перехоплення EIGRP (Enhanced Interior Gateway Routing Protocol) трансляцій. Також дозволяє робити інжекцію пакетів, що може бути використано для зміни конфігурацій маршрутизації. ### OSPF -У протоколі Open Shortest Path First (OSPF) **зазвичай використовується аутентифікація MD5 для забезпечення безпечного зв'язку між маршрутизаторами**. Однак цей захід безпеки може бути скомпрометований за допомогою інструментів, таких як Loki та John the Ripper. Ці інструменти здатні захоплювати та ламати MD5 хеші, відкриваючи ключ аутентифікації. Після отримання цього ключа його можна використовувати для введення нової інформації про маршрути. Для налаштування параметрів маршруту та встановлення скомпрометованого ключа використовуються вкладки _Injection_ та _Connection_ відповідно. +У протоколі Open Shortest Path First (OSPF) **для забезпечення захищеного обміну між маршрутизаторами зазвичай використовується MD5-аутентифікація**. Проте цю міру безпеки можна скомпрометувати за допомогою інструментів на кшталт Loki та John the Ripper. Ці інструменти можуть перехоплювати та ламати MD5-хеші, виявляючи ключ аутентифікації. Після отримання цього ключа його можна використати для введення нової інформації про маршрути. Для налаштування параметрів маршруту і встановлення скомпрометованого ключа відповідно використовуються вкладки _Injection_ і _Connection_. -- **Захоплення та ламання MD5 хешів:** Для цього використовуються інструменти, такі як Loki та John the Ripper. -- **Налаштування параметрів маршруту:** Це робиться через вкладку _Injection_. -- **Встановлення скомпрометованого ключа:** Ключ налаштовується в вкладці _Connection_. +- **Capturing and Cracking MD5 Hashes:** Для цього використовуються інструменти на кшталт Loki та John the Ripper. +- **Configuring Route Parameters:** Це робиться через вкладку _Injection_. +- **Setting the Compromised Key:** Ключ налаштовується у вкладці _Connection_. ### Other Generic Tools & Sources -- [**Above**](https://github.com/c4s73r/Above): Інструмент для сканування мережевого трафіку та виявлення вразливостей -- Ви можете знайти деяку **додаткову інформацію про мережеві атаки** [**тут**](https://github.com/Sab0tag3d/MITM-cheatsheet). +- [**Above**](https://github.com/c4s73r/Above): Інструмент для сканування мережевого трафіку та пошуку вразливостей +- Докладнішу інформацію про мережеві атаки можна знайти [**тут**](https://github.com/Sab0tag3d/MITM-cheatsheet). ## **Spoofing** -Зловмисник налаштовує всі мережеві параметри (GW, IP, DNS) нового члена мережі, надсилаючи підроблені DHCP відповіді. +Зловмисник налаштовує всі мережеві параметри (GW, IP, DNS) нового учасника мережі, відправляючи підроблені DHCP-відповіді. ```bash Ettercap yersinia dhcp -attack 2 #More parameters are needed ``` ### ARP Spoofing -Перевірте [попередній розділ](#arp-spoofing). +Check the [previous section](#arp-spoofing). ### ICMPRedirect -ICMP Redirect полягає у відправці ICMP пакету типу 1 код 5, який вказує, що атакуючий є найкращим способом досягти IP. Тоді, коли жертва хоче зв'язатися з IP, вона відправить пакет через атакуючого. +ICMP Redirect полягає у відправленні ICMP packet type 1 code 5, який вказує, що attacker є найкращим шляхом для досягнення IP. Потім, коли victim хоче зв'язатися з IP, запит буде надіслано через attacker. ```bash Ettercap icmp_redirect @@ -606,18 +610,18 @@ hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw ``` ### DNS Spoofing -Зловмисник вирішить деякі (або всі) домени, які запитує жертва. +Attacker виконає резолвинг деяких (або всіх) доменів, які запитує victim. ```bash set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on ``` -**Налаштуйте власний DNS за допомогою dnsmasq** +**Налаштування власного DNS за допомогою dnsmasq** ```bash 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 пересилання. +Часто існує кілька маршрутів до систем і мереж. Після складання списку MAC addresses у локальній мережі використовуйте _gateway-finder.py_ для визначення hosts, які підтримують IPv4 forwarding. ``` root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git root@kali:~# cd gateway-finder/ @@ -637,56 +641,56 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder ``` ### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -Для локального розв'язання хостів, коли запити DNS не вдаються, системи Microsoft покладаються на **Link-Local Multicast Name Resolution (LLMNR)** та **NetBIOS Name Service (NBT-NS)**. Аналогічно, **Apple Bonjour** та **Linux zero-configuration** реалізації використовують **Multicast DNS (mDNS)** для виявлення систем у мережі. Через неавтентифікований характер цих протоколів та їх роботу через UDP, транслюючи повідомлення, їх можуть експлуатувати зловмисники, які прагнуть перенаправити користувачів на шкідливі сервіси. +Для локального вирішення імен, коли DNS-запити не вдаються, системи Microsoft покладаються на **Link-Local Multicast Name Resolution (LLMNR)** і **NetBIOS Name Service (NBT-NS)**. Аналогічно, **Apple Bonjour** та реалізації zero-configuration у **Linux** використовують **Multicast DNS (mDNS)** для виявлення пристроїв у мережі. Через відсутність автентифікації в цих протоколах та їх роботу поверх UDP із широкомовленням, їх можна використовувати зловмисникам, які прагнуть перенаправити користувачів на шкідливі сервіси. -Ви можете видавати себе за сервіси, які шукають хости, використовуючи Responder для надсилання фальшивих відповідей.\ -Читати тут більше інформації про [як видавати себе за сервіси з Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). +Ви можете імітувати сервіси, які шукають хости, використовуючи Responder для відправлення підроблених відповідей.\ +Детальніше про [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). ### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -Браузери зазвичай використовують **Web Proxy Auto-Discovery (WPAD) протокол для автоматичного отримання налаштувань проксі**. Це передбачає отримання конфігураційних деталей з сервера, зокрема через URL, такий як "http://wpad.example.org/wpad.dat". Виявлення цього сервера клієнтами може відбуватися через різні механізми: +Браузери зазвичай використовують протокол **Web Proxy Auto-Discovery (WPAD)** для автоматичного отримання налаштувань проксі. Це передбачає завантаження конфігурації з сервера, за URL, наприклад "http://wpad.example.org/wpad.dat". Виявлення цього сервера клієнтами може відбуватися кількома механізмами: -- Через **DHCP**, де виявлення полегшується за допомогою спеціального коду 252. -- Через **DNS**, що передбачає пошук імені хоста з позначкою _wpad_ у локальному домені. -- Через **Microsoft LLMNR та NBT-NS**, які є механізмами резервного копіювання, що використовуються у випадках, коли запити DNS не вдаються. +- Через **DHCP**, де виявлення забезпечується за допомогою спеціальної записи з кодом 252. +- Через **DNS**, що передбачає пошук імені хоста _wpad_ у локальному домені. +- Через **Microsoft LLMNR і NBT-NS**, які слугують запасними механізмами у випадках, коли DNS-запити не вдаються. -Інструмент Responder використовує цей протокол, діючи як **шкідливий WPAD сервер**. Він використовує DHCP, DNS, LLMNR та NBT-NS, щоб ввести клієнтів в оману, змушуючи їх підключатися до нього. Щоб глибше зануритися в те, як сервіси можуть бути видані за допомогою Responder [перевірте це](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). +Інструмент **Responder** використовує цей протокол, виступаючи як шкідливий **WPAD**-сервер. Він використовує **DHCP**, **DNS**, **LLMNR** і **NBT-NS**, щоб ввести клієнтів в оману та змусити їх підключитися до нього. Щоб докладніше дізнатися про те, як можна імітувати сервіси за допомогою Responder, [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). ### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md) -Ви можете пропонувати різні сервіси в мережі, щоб спробувати **обманути користувача** ввести деякі **текстові облікові дані**. **Більше інформації про цю атаку в** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.** +Ви можете запропонувати різні сервіси в мережі, щоб спробувати обманом змусити користувача ввести деякі облікові дані у відкритому тексті. **More information about this attack in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.** -### IPv6 Neighbor Spoofing +IPv6 Neighbor Spoofing -Ця атака дуже схожа на ARP Spoofing, але у світі IPv6. Ви можете змусити жертву думати, що IPv6 GW має MAC-адресу зловмисника. +Ця атака дуже схожа на **ARP Spoofing**, але в середовищі **IPv6**. Ви можете змусити жертву думати, що IPv6-адреса шлюзу (GW) має MAC-адресу зловмисника. ```bash sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested sudo fake_advertise6 -r -w 2 eth0 #This option will send the Neighbor Advertisement packet every 2 seconds ``` ### IPv6 Router Advertisement Spoofing/Flooding -Деякі ОС за замовчуванням налаштовують шлюз з RA пакетів, надісланих у мережі. Щоб оголосити зловмисника маршрутизатором IPv6, ви можете використовувати: +Деякі OS за замовчуванням налаштовують gateway на основі RA packets, що надсилаються в мережі. Щоб оголосити зловмисника як IPv6 router, можна використати: ```bash sysctl -w net.ipv6.conf.all.forwarding=1 4 ip route add default via dev wlan0 fake_router6 wlan0 fe80::01/16 ``` -### IPv6 DHCP спуфінг +### IPv6 DHCP spoofing -За замовчуванням деякі ОС намагаються налаштувати DNS, читаючи пакет DHCPv6 у мережі. Тоді зловмисник може надіслати пакет DHCPv6, щоб налаштувати себе як DNS. DHCP також надає IPv6 жертві. +За замовчуванням деякі OS намагаються налаштувати DNS, читаючи пакет DHCPv6 у мережі. Тоді нападник може відправити пакет DHCPv6, щоб налаштувати себе як DNS. DHCP також надає жертві IPv6-адресу. ```bash dhcp6.spoof on dhcp6.spoof.domains mitm6 ``` -### HTTP (фейкова сторінка та ін'єкція JS коду) +### HTTP (фейкова сторінка та JS code injection) -## Інтернет-атаки +## Атаки в Інтернеті ### sslStrip -В основному, що робить ця атака, це в разі, якщо **користувач** намагається **доступитися** до **HTTP** сторінки, яка **перенаправляє** на **HTTPS** версію. **sslStrip** буде **підтримувати** **HTTP з'єднання з** **клієнтом** та **HTTPS з'єднання з** **сервером**, щоб мати можливість **перехоплювати** з'єднання у **відкритому тексті**. +В основному ця атака працює так: якщо **user** намагається **access** **HTTP** сторінку, яка **redirecting** на версію **HTTPS**. **sslStrip** буде **maintain** **HTTP connection with** **client and** **HTTPS connection with** **server**, тому воно зможе **sniff** з'єднання у **plain text**. ```bash apt-get install sslstrip sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k @@ -695,29 +699,29 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k 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 ``` -Більше інформації [тут](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). +More info [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). -### sslStrip+ та dns2proxy для обходу HSTS +### sslStrip+ and dns2proxy для обходу HSTS -**Різниця** між **sslStrip+ та dns2proxy** і **sslStrip** полягає в тому, що вони **перенаправлятимуть**, наприклад, _**www.facebook.com**_ **на** _**wwww.facebook.com**_ (зверніть увагу на **додаткову** "**w**") і встановлять **адресу цього домену як IP-адресу атакуючого**. Таким чином, **клієнт** буде **підключатися** до _**wwww.facebook.com**_ **(атакуючого)**, але за лаштунками **sslstrip+** буде **підтримувати** **реальне з'єднання** через https з **www.facebook.com**. +The **різниця** між **sslStrip+ and dns2proxy** проти **sslStrip** полягає в тому, що вони будуть **перенаправляти**, наприклад, _**www.facebook.com**_ **to** _**wwww.facebook.com**_ (зверніть увагу на **додаткову** "**w**") і встановлять **адресу цього домену як IP атакуючого**. Таким чином **клієнт** буде **підключатися** до _**wwww.facebook.com**_ **(атакуючий)**, але позаду сцен **sslstrip+** буде **підтримувати** **реальне з’єднання** через https з **www.facebook.com**. -**Мета** цієї техніки полягає в тому, щоб **уникнути HSTS**, оскільки _**wwww**.facebook.com_ **не буде** збережено в **кеші** браузера, тому браузер буде обмануто для виконання **автентифікації facebook через HTTP**.\ -Зверніть увагу, що для виконання цієї атаки жертва повинна спочатку спробувати отримати доступ до [http://www.faceook.com](http://www.faceook.com), а не https. Це можна зробити, змінивши посилання на http-сторінці. +The **мета** цієї техніки — **уникнути HSTS**, тому _**wwww**.facebook.com_ **не буде** збережено в **кеші** браузера, тож браузер буде обманутий і виконає **аутентифікацію facebook через HTTP**.\ +Зауважте, що для виконання цієї атаки жертва має спочатку намагатися звернутися до [http://www.faceook.com](http://www.faceook.com), а не https. Це можна зробити, змінюючи посилання всередині http-сторінки. -Більше інформації [тут](https://www.bettercap.org/legacy/#hsts-bypass), [тут](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) та [тут](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly). +More info [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly). -**sslStrip або sslStrip+ більше не працюють. Це пов'язано з тим, що в браузерах збережені правила HSTS, тому навіть якщо це перший раз, коли користувач отримує доступ до "важливого" домену, він отримає доступ через HTTPS. Також зверніть увагу, що збережені правила та інші згенеровані правила можуть використовувати прапор** [**`includeSubdomains`**](https://hstspreload.appspot.com) **тому приклад** _**wwww.facebook.com**_ **з попереднього разу більше не працюватиме, оскільки** _**facebook.com**_ **використовує HSTS з `includeSubdomains`.** +**sslStrip or sslStrip+ більше не працює. Це пов’язано з тим, що в браузерах існують попередньо збережені правила HSTS, тож навіть якщо користувач вперше заходить на „важливий“ домен, він підключиться через HTTPS. Також зверніть увагу, що попередньо збережені правила та інші згенеровані правила можуть використовувати прапорець** [**`includeSubdomains`**](https://hstspreload.appspot.com) **тому приклад з** _**wwww.facebook.com**_ **з попереднього прикладу більше не спрацює, оскільки** _**facebook.com**_ **використовує HSTS з `includeSubdomains`.** TODO: easy-creds, evilgrade, metasploit, factory -## TCP прослуховування на порту +## TCP прослуховування порту ```bash sudo nc -l -p 80 socat TCP4-LISTEN:80,fork,reuseaddr - ``` -## TCP + SSL прослуховування на порту +## TCP + SSL: прослуховування на порті -#### Генерація ключів та самопідписаного сертифіката +#### Генерація keys та self-signed certificate ``` FILENAME=server # Generate a public/private key pair: @@ -727,18 +731,18 @@ 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 ``` -Іноді, якщо клієнт перевіряє, що CA є дійсним, ви можете **надати сертифікат іншого імені хоста, підписаний CA**.\ -Ще один цікавий тест - це **надати сертифікат запитуваного імені хоста, але самопідписаний**. +Іноді, якщо клієнт перевіряє, що CA є дійсним, ви можете **serve a certificate of other hostname signed by a CA**.\ +Ще один цікавий тест — це подати c**ertificate of the requested hostname but self-signed**. -Інші речі для тестування - це спробувати підписати сертифікат дійсним сертифікатом, який не є дійсним CA. Або використовувати дійсний відкритий ключ, примусити використовувати алгоритм, як-от diffie hellman (той, що не потребує розшифровки нічого з реальним приватним ключем) і коли клієнт запитує пробу реального приватного ключа (як хеш), надіслати фальшиву пробу і сподіватися, що клієнт цього не перевірить. +Інші речі для тестування: спробувати підписати certificate валідним certificate, який не є дійсним CA. Або використати валідний public key, примусити використовувати алгоритм, такий як diffie hellman (той, що не потребує розшифровувати нічого реальним private key), і коли клієнт запитує probe реального private key (наприклад hash), надіслати фейковий probe і очікувати, що клієнт цього не перевірить. ## Bettercap ```bash @@ -766,19 +770,19 @@ set wifi.ap.channel 5 set wifi.ap.encryption false #If true, WPA2 wifi.recon on; wifi.ap ``` -### Примітки щодо активного виявлення +### Нотатки активного виявлення -Зверніть увагу, що коли UDP-пакет надсилається на пристрій, який не має запитуваного порту, надсилається ICMP (Port Unreachable). +Майте на увазі, що коли UDP-пакет надсилається на пристрій, який не має запитаного порту, надходить ICMP (Port Unreachable). ### **ARP виявлення** -ARP-пакети використовуються для виявлення, які IP-адреси використовуються в мережі. ПК повинен надіслати запит для кожної можливої IP-адреси, і лише ті, що використовуються, відповідають. +ARP-пакети використовуються для визначення, які IP-адреси зайняті всередині мережі. ПК має надіслати запит для кожної можливої IP-адреси — відповідають лише ті, що використовуються. -### **mDNS (мультимедійний DNS)** +### **mDNS (multicast DNS)** -Bettercap надсилає запит MDNS (кожні X мс), запитуючи **\_services\_.dns-sd.\_udp.local**; машина, яка бачить цей пакет, зазвичай відповідає на цей запит. Потім вона лише шукає машини, які відповідають на "services". +Bettercap надсилає MDNS-запит (кожні X мс), запитуючи **\_services\_.dns-sd.\_udp.local**. Машина, яка бачить цей пакет, зазвичай відповідає на цей запит. Потім він шукає лише машини, що відповідають як "services". -**Інструменти** +**Tools** - Avahi-browser (--all) - Bettercap (net.probe.mdns) @@ -786,18 +790,20 @@ Bettercap надсилає запит MDNS (кожні X мс), запитуюч ### **NBNS (NetBios Name Server)** -Bettercap транслює пакети на порт 137/UDP, запитуючи ім'я "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". +Bettercap розсилає широкомовні пакети на порт 137/UDP з запитом імені "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA". -### **SSDP (Протокол простого виявлення сервісів)** +### **SSDP (Simple Service Discovery Protocol)** -Bettercap транслює пакети SSDP, шукаючи всі види сервісів (UDP порт 1900). +Bettercap розсилає SSDP-пакети в пошуках усіх видів сервісів (UDP Port 1900). -### **WSD (Веб-сервіс виявлення)** +### **WSD (Web Service Discovery)** + +Bettercap розсилає WSD-пакети в пошуках сервісів (UDP Port 3702). -Bettercap транслює пакети WSD, шукаючи сервіси (UDP порт 3702). ### Експлуатація Telecom / Mobile-Core (GTP) + {{#ref}} telecom-network-exploitation.md {{#endref}} @@ -805,8 +811,10 @@ telecom-network-exploitation.md ## Посилання - [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -- **Оцінка безпеки мережі: Знайте свою мережу (3-е видання)** -- **Практичний IoT Хакінг: Останній посібник з атаки на Інтернет речей. Автори: Фотіс Ханцис, Йоанніс Стайс, Пауліно Кальдерон, Євангелос Дейрментзоглу, Боу Вуд** +- **Network Security Assessment: Know Your Network (3rd edition)** +- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood** - [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) + + {{#include ../../banners/hacktricks-training.md}}