diff --git a/src/generic-methodologies-and-resources/pentesting-network/README.md b/src/generic-methodologies-and-resources/pentesting-network/README.md index 192f922e3..93dcf4aeb 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/README.md +++ b/src/generic-methodologies-and-resources/pentesting-network/README.md @@ -1,19 +1,19 @@ -# Pentesting Network +# Pentesting Ağ {{#include ../../banners/hacktricks-training.md}} -## Dışarıdan hostları keşfetmek +## Dışarıdan hosts keşfi -Bu, **İnternet** üzerinden **yanıt veren** **IP'leri** bulmanın nasıl yapılacağına dair **kısa bir bölüm** olacak.\ -Bu durumda bazı **IP kapsamlarınız** (belki de birkaç **aralık**) var ve sadece **hangi IP'lerin yanıt verdiğini** bulmanız gerekiyor. +Bu, **kısa bir bölüm** olacak; **Internet**'ten **IPs**'in yanıt verip vermediğini nasıl bulacağınızı anlatır.\ +Bu durumda bazı **scope of IPs** (belki birkaç **ranges**) bulunur ve hangi **IPs**'lerin yanıt verdiğini bulmanız gerekir. ### ICMP -Bu, bir hostun açık olup olmadığını keşfetmenin **en kolay** ve **en hızlı** yoludur.\ -Bazı **ICMP** paketleri göndermeyi deneyebilir ve **yanıt bekleyebilirsiniz**. En kolay yol, sadece bir **echo request** göndermek ve yanıtı beklemektir. Bunu basit bir `ping` kullanarak veya **aralıklar** için `fping` kullanarak yapabilirsiniz.\ -Ayrıca, diğer tür ICMP paketleri göndermek için **nmap** kullanabilirsiniz (bu, yaygın ICMP echo request-response filtrelerini atlatacaktır). +Bu, bir host'un çalışıp çalışmadığını tespit etmenin **en kolay** ve **en hızlı** yoludur.\ +Bazı **ICMP** paketleri gönderip **cevap bekleyebilirsiniz**. En kolay yol sadece bir **echo request** göndermek ve yanıt beklemektir. Bunu basit bir `ping` veya `fping` ile **ranges** için yapabilirsiniz.\ +Ayrıca farklı türde ICMP paketleri göndermek için **nmap** kullanabilirsiniz (bu, yaygın ICMP echo request-response filtrelerini atlatacaktır). ```bash ping -c 1 199.66.11.4 # 1 echo request to a host fping -g 199.66.11.0/24 # Send echo requests to ranges @@ -21,50 +21,51 @@ 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** açı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: +Her türlü ICMP paketinin filtrelendiğini görmek çok yaygındır. Bu durumda bir host'un up olup olmadığını kontrol etmek için yapabileceğiniz tek şey **açık portları bulmaya çalışmaktır**. Her host'un **65535 portu** vardır, bu nedenle kapsamınız "büyük" ise her bir hostun **her portunu** tek tek test edemezsiniz — bu çok zaman alır.\ +Bu durumda ihtiyacınız olan bir **fast port scanner** ([masscan](https://github.com/robertdavidgraham/masscan)) ve en çok kullanılan **portların** bir listesi: ```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 açık hostları tanımlamada bazı sorunları vardır. +Bu adımı `nmap` ile de gerçekleştirebilirsiniz, ancak daha yavaştır ve `nmap`'in hosts up olarak tanımlamada sorunları vardır. ### HTTP Port Keşfi -Bu, **HTTP** **hizmetlerini keşfetmeye odaklanmak** istediğinizde faydalı olan bir TCP port keşfidir: +Bu sadece bir TCP port keşfidir ve **HTTP'yi keşfetmeye odaklanmak** **hizmetleri** istediğinizde yararlıdır: ```bash 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 bazı **UDP port open** olup olmadığını kontrol etmeyi deneyebilirsiniz; bu, bir **host.** için **pay more attention** edip etmemeniz gerektiğine karar vermenize yardımcı olur. Çünkü UDP services genellikle regular empty UDP probe packet'ine **don't respond** ve **any data** ile yanıt vermediğinden, bir portun filtrelenip filtrelenmediğini ya da açık olup olmadığını söylemek zordur. Bunu belirlemenin en kolay yolu, çalışan service ile ilişkili bir packet göndermektir; hangi service'in çalıştığını bilmediğiniz için port number'a göre en olası olanları 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 ``` -Ö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._ +Önceden önerilen nmap satırı **top 1000 UDP ports**'u **/24** aralığındaki her hostta test edecek, ancak bunun bile **>20min** sürecektir. Eğer **en hızlı sonuçlara** ihtiyacınız varsa [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) kullanabilirsiniz: `./udp-proto-scanner.pl 199.66.11.53/24` Bu, bu **UDP probes**'ları **expected port**'larına gönderecek (bir /24 aralığı için bu sadece 1 min sürecek): _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 #Probably useless, but it's pretty fast, why not try it? nmap -T4 -sY -n --open -Pn ``` -## Wifi Pentesting +## Pentesting Wifi + +Burada yazım zamanı itibarıyla bilinen tüm Wifi saldırılarına dair güzel bir rehber bulabilirsiniz: -Burada yazıldığı zaman itibarıyla tüm bilinen Wifi saldırılarının güzel bir kılavuzunu bulabilirsiniz: {{#ref}} ../pentesting-wifi/ {{#endref}} -## İçeriden hostları keşfetmek +## İçeriden hosts keşfetme -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: +Eğer ağın içindeyseniz, yapmak isteyeceğiniz ilk şeylerden biri **diğer hosts**'u **keşfetmek** olacaktır. Ne kadar **gürültü** yapabileceğinize/istemediğinize bağlı olarak farklı işlemler yapılabilir: ### Pasif -Bağlı bir ağ içinde hostları pasif olarak keşfetmek için bu araçları kullanabilirsiniz: +Bağlı bir ağ içinde hosts'ları pasif olarak keşfetmek için bu araçları kullanabilirsiniz: ```bash netdiscover -p p0f -i eth0 -p -o /tmp/p0f.log @@ -75,8 +76,8 @@ set net.show.meta true #more info ``` ### Aktif -Dışarıdan [_**Host'ları Keşfetme**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Keşfi_) ile ilgili yorumlanan teknikler burada da **uygulanabilir**.\ -Ancak, diğer host'larla **aynı ağda** olduğunuz için **daha fazla şey** yapabilirsiniz: +[_**Discovering hosts from the outside**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Discovery_) bölümünde bahsedilen teknikler burada da **uygulanabilir**.\ +Ancak, diğer hosts ile **aynı ağ** içinde olduğunuz için, **daha fazla şey** yapabilirsiniz: ```bash #ARP discovery nmap -sn #ARP Requests (Discover IPs) @@ -98,33 +99,34 @@ alive6 # Send a pingv6 to multicast. ``` ### Aktif ICMP -_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: +Dışarıdan host keşfi sırasında bahsedilen tekniklerin (_Discovering hosts from the outside_ ([_**ICMP**_](#icmp))) buraya da **uygulanabileceğini** unutmayın.\ +Ancak, diğer hostlarla **aynı ağ** içindeyken, **daha fazla şey** yapabilirsiniz: -- Eğer bir **alt ağ yayın adresine** **ping** atarsanız, ping **her hosta** ulaşmalı ve **size yanıt verebilirler**: `ping -b 10.10.5.255` -- **Ağ yayın adresine** ping atarak **diğer alt ağlardaki** 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` +- Eğer bir **subnet broadcast address**'e **ping** atarsanız, ping **her hosta** ulaşmalı ve onlar size **yanıt verebilir**: `ping -b 10.10.5.255` +- **network broadcast address**'i **ping**'leyerek, hatta **diğer alt ağlardaki** hostları bulabilirsiniz: `ping -b 255.255.255.255` +- `nmap`'in `-PE`, `-PP`, `-PM` bayraklarını kullanarak sırasıyla **ICMPv4 echo**, **timestamp** ve **subnet mask requests** gönderip host keşfi yapın: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` ### **Wake On Lan** -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 MAC olacaktır). +Wake On Lan, bilgisayarları bir **ağ mesajı** yoluyla **açmak** için kullanılır.\ +Bilgisayarı açmak için kullanılan magic packet, içinde bir **MAC Dst** bulunan ve aynı paket içinde **16 kez tekrarlanan** bir pakettir.\ +Bu tür paketler genellikle bir **ethernet 0x0842** içinde veya bir **UDP packet to port 9** içinde gönderilir.\ +Eğer **no \[MAC]** sağlanmazsa, paket **broadcast ethernet** adresine gönderilir (ve tekrar edilen MAC, broadcast 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 +wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0842 wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9 ``` -## Hedefleri Tarama +## Host'ları Tarama -Derinlemesine taramak istediğiniz tüm IP'leri (harici veya dahili) keşfettikten sonra, farklı eylemler gerçekleştirilebilir. +Derinlemesine taramak istediğiniz tüm IP'leri (external veya internal) keşfettikten sonra farklı işlemler gerçekleştirilebilir. ### TCP - **Açık** port: _SYN --> SYN/ACK --> RST_ - **Kapalı** port: _SYN --> RST/ACK_ -- **Filtrelenmiş** port: _SYN --> \[YANIT YOK]_ -- **Filtrelenmiş** port: _SYN --> ICMP mesajı_ +- **Filtrelenmiş** port: _SYN --> \[NO RESPONSE]_ +- **Filtrelenmiş** port: _SYN --> ICMP message_ ```bash # Nmap fast scan for the most 1000tcp ports used nmap -sV -sC -O -T4 -n -Pn -oA fastscan @@ -140,10 +142,10 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000 Bir UDP portunu taramak için 2 seçenek vardır: -- **Kapalı** ise bir **UDP paketi** gönderin ve _**ICMP ulaşılamaz**_ yanıtını kontrol edin (birçok durumda ICMP **filtrelenecektir**, bu nedenle portun kapalı mı yoksa açık mı olduğuna dair herhangi bir bilgi almayacaksınız). -- Bir **hizmetten** (örneğin, DNS, DHCP, TFTP ve _nmap-payloads_ 'da listelenen diğerleri) yanıt almak için **formatlanmış datagramlar** gönderin. Eğer bir **yanıt** alırsanız, o zaman port **açık** demektir. +- Bir **UDP packet** gönderin ve port **closed** ise dönen cevabı _**ICMP unreachable**_ kontrol edin (birçok durumda ICMP **filtered** olur; bu yüzden portun kapalı mı yoksa açık mı olduğuna dair bilgi alamayabilirsiniz). +- Bir **formatted datagrams** göndererek bir **service**'den yanıt almaya çalışın (ör. DNS, DHCP, TFTP ve diğerleri; _nmap-payloads_'ta listelendiği gibi). Eğer bir **response** alırsanız, port **open**'dır. -**Nmap**, "-sV" kullanarak her iki seçeneği de **karıştıracaktır** (UDP taramaları çok yavaştır), ancak UDP taramalarının TCP taramalarından daha yavaş olduğunu unutmayın: +**Nmap**, "-sV" kullanarak her iki seçeneği de birleştirir (UDP taramaları çok yavaştır), ancak UDP taramalarının TCP taramalarından daha yavaş olduğunu unutmayın: ```bash # Check if any of the most common udp services is running udp-proto-scanner.pl @@ -155,20 +157,20 @@ nmap -sU -sV -sC -n -F -T4 nmap -sU -sV --version-intensity 0 -n -T4 # You could use nmap to test all the UDP ports, but that will take a lot of time ``` -### SCTP Tarama +### SCTP Scan -**SCTP (Stream Control Transmission Protocol)**, **TCP (Transmission Control Protocol)** ve **UDP (User Datagram Protocol)** ile birlikte kullanılmak üzere tasarlanmıştır. Ana amacı, IP ağları üzerinden telefon verilerinin taşınmasını kolaylaştırmak ve **Signaling System 7 (SS7)**'de bulunan birçok güvenilirlik özelliğini yansıtmaktır. **SCTP**, SS7 sinyallerini IP ağları üzerinden taşımayı amaçlayan **SIGTRAN** protokol ailesinin temel bir bileşenidir. +**SCTP (Stream Control Transmission Protocol)**, **TCP (Transmission Control Protocol)** ve **UDP (User Datagram Protocol)** ile birlikte kullanılacak şekilde tasarlanmıştır. Temel amacı, IP ağları üzerinden telefon verilerinin iletimini kolaylaştırmak olup, **Signaling System 7 (SS7)**'de bulunan birçok güvenilirlik özelliğini yansıtır. **SCTP**, SS7 sinyallerini IP ağları üzerinden taşımayı amaçlayan **SIGTRAN** protokol ailesinin temel bir bileşenidir. -**SCTP** desteği, **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** ve **VxWorks** gibi çeşitli işletim sistemleri tarafından sağlanmakta olup, telekomünikasyon ve ağ alanındaki geniş kabulünü ve faydasını göstermektedir. +**SCTP** desteği **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS** ve **VxWorks** gibi çeşitli işletim sistemleri tarafından sağlanır; bu da telekomünikasyon ve ağ alanında geniş kabul ve kullanımını gösterir. -nmap tarafından sunulan iki farklı SCTP taraması: _-sY_ ve _-sZ_ +nmap, SCTP için iki farklı tarama sunar: _-sY_ ve _-sZ_ ```bash # Nmap fast SCTP scan nmap -T4 -sY -n -oA SCTFastScan # Nmap all SCTP scan nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan ``` -### IDS ve IPS kaçışı +### IDS and IPS evasion {{#ref}} @@ -182,9 +184,9 @@ ids-evasion.md nmap-summary-esp.md {{#endref}} -### Dahili IP Adreslerini Açığa Çıkarma +### İç IP Adreslerini Ortaya Çı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, kamu Internet'inden erişilebilen **eth2 arayüzünde** paketler yakalanabilir. Kurulumunuzun bir NAT veya Güvenlik Duvarı arkasında olduğunu belirtmek önemlidir; bu tür paketlerin muhtemelen filtreleneceği dikkate alınmalıdır. +**yanlış yapılandırılmış routers, firewalls ve ağ cihazları** bazen ağ taramalarına **kamuya açık olmayan kaynak adresleri** kullanarak yanıt verir. **tcpdump** test sırasında özel adreslerden alınan paketleri belirlemek için kullanılabilir. Özellikle, Kali Linux'ta, genel Internet'ten erişilebilir olan **eth2 interface** üzerinde paketler yakalanabilir. Kurulumunuz bir NAT veya Firewall arkasındaysa, bu tür paketlerin filtrelenmesi muhtemeldir. ```bash tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode @@ -194,9 +196,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64 ``` ## Sniffing -Sniffing ile, yakalanan çerçeveleri ve paketleri inceleyerek IP aralıkları, alt ağ boyutları, MAC adresleri ve ana bilgisayar adları hakkında ayrıntılar öğrenebilirsiniz. Ağ yanlış yapılandırılmışsa veya anahtarlama yapısı stres altındaysa, saldırganlar pasif ağ sniffing ile hassas materyalleri yakalayabilir. +Sniffing ile yakalanan frames ve packets'leri inceleyerek IP ranges, subnet sizes, MAC addresses ve hostnames hakkında detayları öğrenebilirsiniz. Eğer network yanlış yapılandırılmışsa veya switching fabric stress altındaysa, saldırganlar passive network sniffing ile hassas verileri yakalayabilir. -Eğer bir anahtarlı Ethernet ağı düzgün yapılandırılmışsa, yalnızca yayın çerçevelerini ve MAC adresinize yönelik materyalleri göreceksiniz. +Eğer switched Ethernet network düzgün yapılandırıldıysa, yalnızca broadcast frames ve MAC address'inize yönelik materyali görürsünüz. ### TCPDump ```bash @@ -204,7 +206,7 @@ sudo tcpdump -i udp port 53 #Listen to DNS request to discover what tcpdump -i icmp #Listen to icmp packets sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &" ``` -Birisi, ayrıca, Wireshark'ı GUI olarak kullanarak bir SSH oturumu üzerinden uzaktaki bir makineden paketleri gerçek zamanlı olarak yakalayabilir. +Ayrıca, Wireshark'ı GUI olarak kullanarak SSH oturumu üzerinden uzak bir makineden paketler gerçek zamanlı olarak yakalanabilir. ``` ssh user@ tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i - ssh @ tcpdump -i -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic @@ -220,17 +222,17 @@ set net.sniff.regexp #If set only packets matching this regex will be considered ``` ### Wireshark -Açıkça. +Açıkçası. -### Kimlik bilgilerini yakalama +### Yakalama credentials -Bir pcap veya canlı arayüzden kimlik bilgilerini ayrıştırmak için [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) gibi araçlar kullanabilirsiniz. +Bir pcap'ten veya canlı bir arayüzden credentials çıkarmak için [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) gibi araçlar kullanabilirsiniz. ## LAN saldırıları -### ARP sahtekarlığı +### ARP spoofing -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. +ARP Spoofing, bir makinenin IP'sinin cihazımızın MAC adresine ait olduğunu belirtmek için gratuitous ARPResponses göndermeyi içerir. Ardından, kurban ARP tablosunu değiştirecek ve spoofed IP ile iletişime geçmek istediğinde her seferinde makinemizle iletişim kuracaktır. #### **Bettercap** ```bash @@ -246,25 +248,25 @@ echo 1 > /proc/sys/net/ipv4/ip_forward arpspoof -t 192.168.1.1 192.168.1.2 arpspoof -t 192.168.1.2 192.168.1.1 ``` -### MAC Flooding - CAM taşması +### MAC Flooding - CAM overflow -Anahtarın CAM tablosunu farklı kaynak MAC adresleriyle birçok paket göndererek taşır. CAM tablosu dolduğunda, anahtar bir hub gibi davranmaya başlar (tüm trafiği yayar). +Switch'in CAM table'ını farklı source MAC adreslerine sahip çok sayıda paket göndererek doldurun. CAM table dolduğunda switch hub gibi davranmaya başlar (tüm trafiği broadcast eder). ```bash macof -i ``` -Bu modern anahtarlarda bu güvenlik açığı giderilmiştir. +In modern switches this vulnerability has been fixed. ### 802.1Q VLAN / DTP Saldırıları -#### Dinamik Trunking +#### Dynamic 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 alt optimal ağ tasarımının bir göstergesi olarak görülür ve trunk'ların yalnızca gerektiğinde manuel olarak yapılandırılmasının ve uygun belgelerin sağlanmasının önemini vurgular. +The **Dynamic Trunking Protocol (DTP)**, trunking için otomatik bir sistem sağlamak amacıyla tasarlanmış bir link katmanı protokolüdür; bu sayede switch'ler portları otomatik olarak trunk mode (Trunk) veya non-trunk mode olarak seçebilir. DTP'nin kullanımı genellikle yetersiz ağ tasarımını işaret eder; bu da trunks'ın sadece gerekli yerlerde manuel olarak yapılandırılmasının ve uygun şekilde dökümante edilmesinin ö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 İstenilen ç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 switch portları Dynamic Auto modunda çalışacak şekilde ayarlanmıştır; bu, komşu bir switch tarafından tetiklenirse trunking'i başlatmaya hazır oldukları anlamına gelir. Bir pentester veya saldırgan switch'e bağlanıp bir DTP Desirable frame gönderdiğinde güvenlik riski ortaya çıkar; bu, portu trunk mode'a girmeye zorlar. Bu eylem, saldırganın STP frame analizleriyle VLAN'ları keşfetmesine ve sanal arayüzler oluşturarak VLAN segmentasyonunu atlatması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ı gösterir; sonuncusu VLAN hopping saldırılarına karşı tek korumasız yapılandırmadır. Bu araç, anahtarın güvenlik açığı durumunu değerlendirir. +Birçok switch'te DTP'nin varsayılan olarak bulunması, saldırganların bir switch'in davranışını taklit etmek için bunu istismar etmesine ve böylece tüm VLAN'lar üzerindeki trafiğe erişim kazanmasına olanak tanır. The script [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) bir arayüzü izlemek için kullanılır; switch'in Default, Trunk, Dynamic, Auto veya Access modunda olup olmadığını ortaya çıkarır — sonuncusu VLAN hopping attacks'a karşı tek etkilenmez yapılandırmadır. Bu araç switch'in zafiyet durumunu değerlendirir. -Ağ 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. +Ağda zafiyet tespit edilirse, _**Yersinia**_ aracı DTP protokolü üzerinden "enable trunking" yapmak için kullanılabilir; bu da tüm VLAN'lardaki paketlerin gözlemlenmesine imkan tanır. ```bash apt-get install yersinia #Installation sudo apt install kali-linux-large #Another way to install it in Kali @@ -277,20 +279,20 @@ 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 hiç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ı enumerate etmek için DTP Desirable frame'i [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** scripti ile oluşturmak da mümkündür. D**Scripti hiçbir koşulda durdurmayın. Her üç saniyede bir DTP Desirable enjekte eder. **Anahtar üzerinde dinamik olarak oluşturulan trunk kanalları sadece beş dakika boyunca aktif kalır. Beş dakikadan sonra trunk düşer.** ``` sudo python3 DTPHijacking.py --interface eth0 ``` -**Access/Desirable (0x03)**, DTP çerçevesinin Arzu edilen türde olduğunu belirtir, bu da porta Trunk moduna geçmesini söyler. Ve **802.1Q/802.1Q (0xa5)**, **802.1Q** kapsama türünü belirtir. +Belirtmek isterim ki **Access/Desirable (0x03)** DTP çerçevesinin Desirable tipinde olduğunu gösterir; bu, portun Trunk moda geçmesini söyler. Ve **802.1Q/802.1Q (0xa5** **802.1Q** kapsülleme türünü gösterir. -STP çerçevelerini analiz ederek, **VLAN 30 ve VLAN 60'ın varlığı hakkında bilgi ediniriz.** +STP çerçevelerini analiz ederek, **VLAN 30 ve VLAN 60'ın varlığını öğreniriz.**
-#### Belirli VLAN'lara Saldırma +#### Belirli VLAN'lara saldırma -VLAN ID'lerini ve IP değerlerini bildiğinizde, **belirli bir VLAN'a saldırmak için sanal bir arayüz yapılandırabilirsiniz.**\ -Eğer DHCP mevcut değilse, o zaman _ifconfig_ kullanarak statik bir IP adresi ayarlayın. +VLAN ID'lerini ve IP değerlerini öğrendikten sonra, belirli bir VLAN'a saldırmak için **sanal bir arayüz yapılandırabilirsiniz**.\ +Eğer DHCP yoksa, statik bir IP adresi ayarlamak için _ifconfig_ kullanın. ``` root@kali:~# modprobe 8021q root@kali:~# vconfig add eth1 250 @@ -323,15 +325,15 @@ sudo vconfig add eth0 30 sudo ip link set eth0.30 up sudo dhclient -v eth0.30 ``` -#### Automatic VLAN Hopper +#### Otomatik VLAN Hopper -Tartışılan saldırı olan **Dynamic Trunking ve sanal arayüzler oluşturarak 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) +Tartışılan saldırı olan **Dynamic Trunking and creating virtual interfaces an discovering hosts inside** diğer VLAN'larda araç tarafından **otomatik olarak** gerçekleştirilir: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger) #### 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 **MAC, IP and VLAN ID of the victim host** değerini biliyorsa, çerçeveyi kendi atanmış VLAN'ıyla hedefin VLAN'ı olacak şekilde **double tag a frame** yapıp paket göndermeyi deneyebilir. Hedefin **victim won't be able to connect back** olacağı için, saldırgan için en iyi seçenek, SNMP gibi bazı ilginç işlemleri yapabilecek protokollerle **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 gönderdiği bazı paketleri alıp almadığını görmek için kendisine ait ikinci hostta dinleme yapabilir. +Saldırganın bir diğer seçeneği, hedef tarafından erişilebilen ve saldırgan tarafından kontrol edilen bir IP'yi taklit ederek **TCP port scan spoofing an IP controlled by the attacker and accessible by the victim** başlatmaktır (muhtemelen internet üzerinden). Daha sonra, eğer hedeften bazı paketler alırsa, saldırgan bunları kendi sahip olduğu ikinci host üzerinde sniff edebilir. ![](<../../images/image (190).png>) @@ -342,100 +344,101 @@ from scapy.all import * packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP() sendp(packet) ``` -#### Lateral VLAN Segmentation Bypass +#### Yanal VLAN Segmentasyonunu Atlatma + +Eğer **doğrudan bağlı olduğunuz bir switch'e erişiminiz** varsa, ağ içindeki **VLAN segmentasyonunu atlatma** yeteneğine sahipsiniz. Tek yapmanız gereken **portu trunk moduna** almak (diğer adıyla trunk), hedef VLAN'ların ID'leriyle sanal arayüzler oluşturmak ve bir IP adresi yapılandırmaktır. Adresi dinamik olarak talep etmeyi (DHCP) ya da statik olarak yapılandırmayı deneyebilirsiniz. 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 {{#endref}} -#### Layer 3 Private VLAN Bypass +#### Layer 3 Private VLAN Atlatma -Belirli ortamlarda, örneğin misafir kablosuz ağlarda, **port izolasyonu (özel VLAN olarak da bilinir)** ayarları, kablosuz erişim noktasına bağlı istemcilerin doğrudan birbirleriyle iletişim kurmaları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. +Bazı ortamlarda, örneğin guest wireless ağlarında, **port isolation (also known as private VLAN)** ayarları, bir access point'e bağlı istemcilerin birbirleriyle doğrudan iletişim kurmasını engellemek için uygulanır. Ancak bu izolasyon önlemlerini aşabilen bir teknik tanımlanmıştır. Bu teknik, ya ağ ACL'lerinin eksikliğinden ya da yanlış yapılandırılmasından faydalanarak IP paketlerinin bir router üzerinden yönlendirilip aynı ağdaki başka bir istemciye ulaşmasını mümkün kı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. +Saldırı, **hedef istemcinin IP adresini taşıyan fakat router'ın MAC adresini kullanan bir paket** oluşturularak gerçekleştirilir. Bu durum router'ın paketi yanlışlıkla hedef istemciye iletmesine neden olur. Bu yaklaşım, Double Tagging Attacks'ta kullanılan yönteme benzer; burada mağdurun erişebildiği bir hostun kontrolü, güvenlik açığından faydalanmak için kullanılır. **Saldırının Ana Adımları:** -1. **Bir Paket Oluşturma:** Hedef istemcinin IP adresini içeren ancak yönlendiricinin MAC adresi ile birlikte özel olarak hazırlanmış bir paket oluşturulur. -2. **Yönlendirici Davranışını İstismar Etme:** Hazırlanan paket, yönlendiriciye gönderilir; yapılandırma nedeniyle, paket hedef istemciye yönlendirilir ve özel VLAN ayarları tarafından sağlanan izolasyonu atlar. +1. **Paket Hazırlama:** Hedef istemcinin IP adresini içeren ancak router'ın MAC adresini kullanan özel bir paket hazırlanır. +2. **Router Davranışından Yararlanma:** Hazırlanan paket router'a iletilir; yapılandırma nedeniyle router paketi hedef istemciye yönlendirir ve private VLAN tarafından sağlanan izolasyon atlanır. -### VTP Attacks +### VTP Saldırıları -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 merkezi hale getirir. VLAN veritabanı bütünlüğünü korumak için revision number'ları kullanır; herhangi bir değişiklik bu sayıyı artırır. Switch'ler daha yüksek revision number'a sahip konfigürasyonları benimser ve kendi VLAN veritabanlarını günceller. -#### VTP Domain Roles +#### VTP Domain Rolleri -- **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şikliklerine izin verilmez. -- **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. Domain üyesi cihazlara VTP announcements yayınlar. +- **VTP Client:** VTP announcements alarak VLAN veritabanını senkronize eder. Bu rol yerel VLAN konfigürasyon değişikliklerine izin vermez. +- **VTP Transparent:** VTP güncellemelerine katılmaz ancak VTP announcements'ı iletir. VTP saldırılarından etkilenmez; revision number'ı sıfır olarak sabittir. -#### VTP Advertisement Types +#### VTP Advertisement Türleri -- **Ö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 server tarafından her 300 saniyede yayınlanan, temel domain bilgisini taşıyan duyurudur. +- **Subset Advertisement:** VLAN konfigürasyonu değiştikten sonra gönderilen duyurudur. +- **Advertisement Request:** VTP client tarafından Summary Advertisement talep etmek için gönderilir; genellikle daha yüksek bir configuration revision number tespit edildiğinde tetiklenir. -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 bu da ağı etkili bir şekilde kesintiye uğratır. +VTP zafiyetleri yalnızca trunk portlar üzerinden sömürülebilir çünkü VTP announcements sadece bu portlar üzerinden dolaşır. Bir DTP saldırısının ardından senaryolar VTP'ye kayabilir. Yersinia gibi araçlar VTP saldırılarını kolaylaştırabilir; amaç VLAN veritabanını silmek ve böylece ağı etkin şekilde bozmak olabilir. -Not: Bu tartışma VTP sürüm 1 (VTPv1) ile ilgilidir. -````bash -%% yersinia -G # Launch Yersinia in graphical mode ``` -```` -Yersinia'nın grafik modunda, VLAN veritabanını temizlemek için tüm VTP VLAN'larını silme seçeneğini seçin. +Note: Bu tartışma VTP version 1 (VTPv1) ile ilgilidir. +```bash +yersinia -G # Launch Yersinia in graphical mode +``` +Yersinia'nın grafik modunda, VLAN veritabanını temizlemek için deleting all VTP vlans seçeneğini seçin. ### 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.** +**Arayüzlerinizde BPDU çerçevelerini yakalayamıyorsanız, bir STP saldırısında başarılı olma ihtimaliniz düşüktür.** #### **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 doğru çalışmayı durdurur. +Çok sayıda BPDUs TCP (Topology Change Notification) veya Conf (the BPDUs that are sent when the topology is created) gönderilmesi durumunda switch'ler aşırı yüklenir ve düzgün çalışmayı durdurur. ```bash yersinia stp -attack 2 yersinia stp -attack 3 #Use -M to disable MAC spoofing ``` -#### **STP TCP Saldırısı** +#### **STP TCP Attack** -Bir TCP gönderildiğinde, anahtarların CAM tablosu 15 saniyede silinecektir. Ardından, bu tür paketleri sürekli olarak gönderiyorsanız, CAM tablosu sürekli olarak (veya her 15 saniyede bir) yeniden başlatılacak ve yeniden başlatıldığında, anahtar bir hub gibi davranacaktır. +Bir TCP gönderildiğinde, switch'lerin CAM table'ı 15s içinde silinir. Sürekli olarak bu tür packets gönderirseniz, CAM table sürekli (veya her 15segs'te) yeniden başlatılır ve yeniden başlatıldığında switch hub gibi davranır. ```bash yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen ``` #### **STP Root Attack** -Saldırgan, ağı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. +Saldırgan bir switch'in davranışını taklit ederek ağın STP root'u olur. Böylece daha fazla veri onun üzerinden geçer. Bu, iki farklı switch'e bağlı olduğunuzda ilgi çekicidir.\ +Bu, BPDUs CONF packets gönderilerek **priority** değerinin gerçek root switch'in mevcut priority değerinden daha düşük olduğunu söylemesi sağlanarak yapılır. ```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 ``` -**Eğer saldırgan 2 anahtara bağlıysa, yeni ağacın kökü olabilir ve bu anahtarlar arasındaki tüm trafik onun üzerinden geçecektir** (bir MITM saldırısı gerçekleştirilecektir). +**Eğer attacker 2 switches'e bağlıysa, yeni ağacın root'u olabilir ve bu switches arasındaki tüm trafik onun üzerinden geçer** (bir MITM attack gerçekleştirilecek). ```bash yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing" ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages ``` ### CDP Saldırıları -CISCO Discovery Protocol (CDP), CISCO cihazları arasında iletişim için gereklidir ve onların **birbirlerini tanımlayıp yapılandırma detaylarını paylaşmalarını** sağlar. +CISCO Discovery Protocol (CDP), CISCO cihazları arasında iletişim için esastır; cihazların birbirlerini **tanımlamalarına ve yapılandırma bilgilerini paylaşmalarına** olanak tanır. #### Pasif Veri Toplama -CDP, bilgileri tüm portlar üzerinden yayınlayacak şekilde 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, tüm portlar üzerinden bilgi yayınlayacak şekilde yapılandırılmıştır; bu durum bir güvenlik riski oluşturabilir. Bir saldırgan switch portuna bağlandığında **Wireshark**, **tcpdump** veya **Yersinia** gibi network sniffers kurabilir. Bu işlem, cihazın modeli ve çalıştırdığı Cisco IOS sürümü dahil olmak üzere ağ cihazı hakkında hassas verileri ortaya çıkarabilir. Saldırgan daha sonra tespit edilen Cisco IOS sürümündeki belirli zafiyetleri hedefleyebilir. -#### CDP Tablosu Taşkınını Tetikleme +#### CDP Table Flooding'ı Tetikleme -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: +Daha agresif bir yaklaşım, meşru CISCO cihazıymış gibi davranıp switch'in belleğini doldurarak bir Denial of Service (DoS) saldırısı başlatmayı içerir. Aşağıda, test amaçlı bir network tool olan Yersinia kullanılarak böyle bir saldırıyı başlatmak için komut dizisi yer almaktadır: ```bash sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices # Alternatively, for a GUI approach: sudo yersinia -G ``` -Bu saldırı sırasında, anahtarın CPU'su ve CDP komşu tablosu ağır bir şekilde yüklenir, bu da genellikle aşırı kaynak tüketimi nedeniyle **“ağ felci”** olarak adlandırılır. +Bu saldırı sırasında, switch'in CPU'su ve CDP komşu tablosu ağır şekilde yüklenir, aşırı kaynak tüketimi nedeniyle sıklıkla **“ağ felci”** olarak adlandırılan duruma yol açar. -#### CDP Taklit Saldırısı +#### CDP Impersonation Attack ```bash sudo yersinia cdp -attack 2 #Simulate a new CISCO device sudo yersinia cdp -attack 0 #Send a CDP packet @@ -444,34 +447,34 @@ You could also use [**scapy**](https://github.com/secdev/scapy/). Be sure to ins ### VoIP Saldırıları ve VoIP Hopper Aracı -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. +VoIP telefonları, IoT cihazlarıyla giderek daha fazla entegre edilerek özel telefon numaraları aracılığıyla kapı açma veya termostat kontrolü 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. +Araç [**voiphopper**](http://voiphopper.sourceforge.net), çeşitli ortamlarda (Cisco, Avaya, Nortel, Alcatel-Lucent) bir VoIP telefonu taklit edecek şekilde tasarlanmıştır. Ses ağının VLAN ID'sini CDP, DHCP, LLDP-MED ve 802.1Q ARP gibi protokolleri kullanarak keşfeder. -**VoIP Hopper**, Cisco Discovery Protocol (CDP) için üç mod sunar: +**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 modeline ait paketleri gönderir. +1. **Sniff Mode** (`-c 0`): Ağ paketlerini analiz ederek VLAN ID'sini tespit eder. +2. **Spoof Mode** (`-c 1`): Gerçek bir VoIP cihazının paketlerini taklit eden özel paketler üretir. +3. **Spoof with Pre-made Packet Mode** (`-c 2`): Belirli bir Cisco IP telefon modeliyle aynı olan paketleri gönderir. -Hız için tercih edilen mod üçüncüsüdür. Şunları belirtmek gerekir: +Hız için tercih edilen mod üçüncüsüdür. Aşağıların belirtilmesini gerektirir: -- Saldırganın ağ arayüzü (`-i` parametresi). -- Taklit edilen VoIP cihazının adı (`-E` parametresi), Cisco adlandırma formatına (örneğin, SEP ardından bir MAC adresi) uygun olmalıdır. +- Saldırganın ağ arayüzü (`-i` parameter). +- Emüle edilecek VoIP cihazının adı (`-E` parameter), Cisco adlandırma formatına uygun olmalıdır (ör. SEP followed by a MAC address). Kurumsal ortamlarda, mevcut bir VoIP cihazını taklit etmek için şunlar yapılabilir: -- Telefonun üzerindeki MAC etiketini incelemek. -- 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. +- Telefon üzerindeki MAC etiketini incelemek. +- Model bilgisini görmek için telefonun ekran ayarlarında gezinmek. +- VoIP cihazını bir dizüstüne bağlayıp Wireshark kullanarak CDP isteklerini gözlemlemek. -Üçüncü modda aracı çalıştırmak için bir örnek komut: +Aracı üçüncü modda çalıştırmak için örnek bir komut şu şekilde olabilir: ```bash voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2 ``` ### DHCP Saldırıları -#### Sayım +#### Enumeration ```bash nmap --script broadcast-dhcp-discover Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT @@ -491,114 +494,116 @@ 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 yeterli sahte host simüle etmekten** oluşur.\ -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**. +**Two types of DoS** DHCP sunucularına karşı gerçekleştirilebilir. İlki, **simulate enough fake hosts to use all the possible IP addresses** şeklindedir.\ +Bu saldırı yalnızca DHCP sunucusunun yanıtlarını görebiliyorsanız ve protokolü tamamlayabiliyorsanız işe yarar (**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. +DHCP DoS gerçekleştirmek için bir diğer yol, kaynak olarak her olası IP'yi kullanarak bir **DHCP-RELEASE packet using as source code every possible IP** 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, [DHCPing](https://github.com/kamorin/DHCPig) aracını kullanmaktır. +Bunu daha otomatik yapmak için [DHCPing](https://github.com/kamorin/DHCPig) aracını kullanabilirsiniz. -Belirtilen DoS saldırılarını kullanarak, istemcileri ortamda yeni kiralamalar almaya zorlayabilir ve meşru sunucuları yanıt veremez hale getirebilirsiniz. Böylece meşru sunucular yeniden bağlanmaya çalıştığında, **bir sonraki saldırıda belirtilen kötü niyetli değerleri sunabilirsiniz**. +Bahsedilen DoS saldırılarını, ortam içindeki istemcileri yeni lease'ler almaya zorlamak ve meşru sunucuları tüketip yanıt vermez hale getirmek için kullanabilirsiniz. Böylece meşru sunucular yeniden bağlanmaya çalıştıklarında, **bir sonraki saldırıda bahsedilen kötü amaçlı değerleri sunabilirsiniz**. -#### Kötü niyetli değerleri ayarlama +#### Kötü amaçlı değerleri ayarlama -Bir sahte DHCP sunucusu, `/usr/share/responder/DHCP.py` konumundaki DHCP betiği kullanılarak kurulabilir. Bu, trafiği kötü niyetli bir sunucuya yönlendirerek HTTP trafiğini ve kimlik bilgilerini yakalamak gibi ağ saldırıları için faydalıdır. Ancak, sahte bir ağ geçidi ayarlamak daha az etkilidir çünkü bu yalnızca istemciden çıkan trafiği yakalamaya izin verir ve gerçek ağ geçidinden gelen yanıtları kaçırır. Bunun yerine, daha etkili bir saldırı için sahte bir DNS veya WPAD sunucusu kurmak önerilir. +Kötü amaçlı bir DHCP server, `/usr/share/responder/DHCP.py` konumundaki DHCP script'i kullanılarak kurulabilir. Bu, trafiği kötü amaçlı bir sunucuya yönlendirerek HTTP trafiği ve kimlik bilgilerini yakalamak gibi network saldırıları için faydalıdır. Ancak bir rogue gateway ayarlamak daha az etkili olabilir çünkü bu yalnızca istemciden çıkan trafiği yakalamaya izin verir ve gerçek gateway'in yanıtlarını kaçırır. Bunun yerine, daha etkili bir saldırı için rogue bir DNS veya WPAD server kurulması önerilir. -Aşağıda sahte DHCP sunucusunu yapılandırmak için komut seçenekleri bulunmaktadır: +Aşağıda rogue DHCP server'ı yapılandırmak için komut seçenekleri verilmiştir: -- **IP Adresimiz (Ağ Geçidi İlanı)**: Makinenizin IP'sini ağ geçidi olarak ilan etmek için `-i 10.0.0.100` kullanın. -- **Yerel DNS Alan Adı**: İsteğe bağlı olarak, yerel bir DNS alan adı ayarlamak için `-d example.org` kullanın. -- **Orijinal Yönlendirici/Ağ Geçidi IP'si**: Meşru yönlendiricinin veya ağ geçidinin IP adresini belirtmek için `-r 10.0.0.1` kullanın. -- **Birincil DNS Sunucusu IP'si**: Kontrol ettiğiniz sahte DNS sunucusunun IP adresini ayarlamak için `-p 10.0.0.100` kullanın. -- **İkincil DNS Sunucusu IP'si**: İsteğe bağlı olarak, ikincil bir DNS sunucusu IP'si ayarlamak için `-s 10.0.0.1` kullanın. -- **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 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 vermesini sağlamak için `-R` ekleyin, ancak bunun gürültülü olduğunu ve tespit edilebileceğini unutmayın. +- **Our IP Address (Gateway Advertisement)**: Makinenizin IP'sini ağ geçidi olarak duyurmak için `-i 10.0.0.100` kullanın. +- **Local DNS Domain Name**: İsteğe bağlı olarak yerel DNS alan adını ayarlamak için `-d example.org` kullanın. +- **Original Router/Gateway IP**: Meşru router veya ağ geçidinin IP adresini belirtmek için `-r 10.0.0.1` kullanın. +- **Primary DNS Server IP**: Kontrol ettiğiniz rogue DNS sunucusunun IP adresini ayarlamak için `-p 10.0.0.100` kullanın. +- **Secondary DNS Server IP**: İsteğe bağlı olarak ikincil DNS sunucu IP'si ayarlamak için `-s 10.0.0.1` kullanın. +- **Netmask of Local Network**: Yerel ağ için netmask'ı tanımlamak üzere `-n 255.255.255.0` kullanın. +- **Interface for DHCP Traffic**: Belirli bir ağ arayüzünde DHCP trafiğini dinlemek için `-I eth1` kullanın. +- **WPAD Configuration Address**: Web trafiğinin yakalanmasına yardımcı olmak için WPAD yapılandırma adresini ayarlamak üzere `-w “http://10.0.0.100/wpad.dat”` kullanın. +- **Spoof Default Gateway IP**: Varsayılan ağ geçidi IP adresini spoof etmek için `-S` ekleyin. +- **Respond to All DHCP Requests**: Sunucunun tüm DHCP isteklerine yanıt vermesini sağlamak 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. +Bu seçenekleri doğru kullanarak, ağ trafiğini etkili şekilde yakalamak için bir kötü amaçlı DHCP sunucusu kurulabilir. ```python # Example to start a rogue DHCP server with specified options !python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R ``` ### **EAP Saldırıları** -802.1X uygulamalarına karşı kullanılabilecek bazı saldırı taktikleri şunlardır: +Here are some of the attack tactics that can be used against 802.1X implementations: -- 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) +- EAP üzerinden aktif brute-force parola kırma +- RADIUS sunucusuna malformed EAP içeriği ile saldırma _\*\*_(exploits) +- EAP mesaj yakalama ve çevrimdışı parola kırma (EAP-MD5 ve PEAP) - 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 +- Hub veya benzeri kullanarak kimlik doğrulanınca kötü amaçlı 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: +If the attacker if between the victim and the authentication server, he could try to degrade (if necessary) the authentication protocol to EAP-MD5 and capture the authentication attempt. Then, he could brute-force this using: ``` eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt ``` ### FHRP (GLBP & HSRP) Saldırıları -**FHRP** (First Hop Redundancy Protocol), **sıcak yedekli bir 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) sıcak yedekli bir 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 cihaz halinde birleştirilebilir; bu, hata toleransını artırır ve yükün dağıtılmasına yardımcı olur. **Cisco Systems mühendisleri iki FHRP protokolü geliştirmiştir: GLBP ve HSRP.** + {{#ref}} glbp-and-hsrp-attacks.md {{#endref}} ### RIP -Yönlendirme Bilgisi Protokolü (RIP) olarak bilinen üç versiyon bulunmaktadır: RIP, RIPv2 ve RIPng. Datagramlar, RIP ve RIPv2 tarafından UDP üzerinden 520 numaralı port aracılığıyla akranlara gönderilirken, datagramlar RIPng tarafından IPv6 çoklu yayını ile UDP 521 numaralı portuna yayınlanır. 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. +Routing Information Protocol (RIP) üç sürümde bilinir: RIP, RIPv2 ve RIPng. RIP ve RIPv2 ile datagramlar UDP üzerinden port 520'ye gönderilirken, RIPng ile datagramlar IPv6 multicast üzerinden UDP port 521'e yayınlanır. RIPv2, MD5 kimlik doğrulamasını desteklemeye başlarken, RIPng yerel bir kimlik doğrulama içermez; bunun yerine IPv6 içinde isteğe bağlı IPsec AH ve ESP başlıklarına dayanır. -- **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. +- **RIP ve RIPv2:** İletişim UDP datagramları aracılığıyla port 520 üzerinden yapılır. +- **RIPng:** Datagramları IPv6 multicast ile UDP port 521 üzerinden yayınlar. -RIPv2'nin MD5 kimlik doğrulamasını desteklediğini, ancak RIPng'nin yerel kimlik doğrulama içermediğini ve IPv6'daki IPsec AH ve ESP başlıklarına güvendiğini unutmayın. +RIPv2'nin MD5 kimlik doğrulamasını desteklediğini, RIPng'nin ise yerel bir kimlik doğrulama içermeyip IPv6'daki IPsec AH ve ESP başlıklarına dayandığını unutmayın. ### 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 uzaklık-vektör protokolüdür.** Eğer kimlik doğrulama ve passive interface yapılandırması yoksa, bir **saldırgan** EIGRP yönlendirmesine müdahale edebilir ve **yönlendirme tablolarının zehirlenmesine** yol açabilir. Ayrıca, EIGRP ağı (başka bir deyişle özerk sistem) düz bir yapıya sahiptir ve herhangi bir zone'a ayrılmamıştır. Eğer bir **saldırgan bir rota enjekte ederse**, bu rotanın özerk EIGRP sistemi boyunca **yayılarak** 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. +Bir EIGRP sistemine saldırmak, meşru bir EIGRP router ile **komşuluk (neighbourhood)** kurmayı gerektirir; bu da temel keşiften çeşitli enjeksiyonlara kadar birçok olanağı açar. + +[**FRRouting**](https://frrouting.org/) sanal bir router uygulamanıza olanak tanır; BGP, OSPF, EIGRP, RIP ve diğer protokolleri destekler. Tek yapmanız gereken bunu saldırganın sistemine konuşlandırmak ve yönlendirme alanında meşru bir router gibi davranmaktır. -[**FRRouting**](https://frrouting.org/) **BGP, OSPF, EIGRP, RIP ve diğer protokolleri destekleyen sanal bir yönlendirici uygulamanıza olanak tanır.** Tek yapmanız gereken, bunu saldırganın sistemine dağıtmak ve aslında yönlendirme alanında meşru bir yönlendirici gibi davranmaktır. {{#ref}} eigrp-attacks.md {{#endref}} -[**Coly**](https://code.google.com/p/coly/) EIGRP (Enhanced Interior Gateway Routing Protocol) yayınlarını yakalama yeteneklerine sahiptir. Ayrıca, yönlendirme yapılandırmalarını değiştirmek için kullanılabilecek paketlerin enjekte edilmesine de olanak tanır. +[**Coly**](https://code.google.com/p/coly/) EIGRP yayınlarını yakalama yeteneğine sahiptir. Ayrıca paket enjeksiyonuna izin verir; bu, yönlendirme yapılandırmalarını değiştirmek için kullanılabilir. ### 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ılır.** Ancak, bu güvenlik önlemi Loki ve John the Ripper gibi araçlar kullanılarak ihlal edilebilir. Bu araçlar, MD5 hash'lerini yakalayabilir ve kırabilir, böylece kimlik doğrulama anahtarını açığ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ı** genellikle yönlendiriciler arasındaki güvenli iletişimi sağlamak için kullanılır. Ancak bu güvenlik önlemi Loki ve John the Ripper gibi araçlarla zayıflatılabilir. Bu araçlar MD5 hash'lerini yakalayıp kırabilir ve kimlik doğrulama anahtarını açığa çıkarabilir. 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. -- **Ele Geçirilmiş Anahtarı Ayarlama:** Anahtar, _Connection_ sekmesi altında yapılandırılır. +- **Rota Parametrelerini Yapılandırma:** Bu işlem _Injection_ sekmesi üzerinden yapılır. +- **Ele Geçirilmiş Anahtarı Ayarlama:** Anahtar _Connection_ sekmesi altında yapılandırılır. -### Diğer Genel Araçlar ve Kaynaklar +### 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. +- [**Above**](https://github.com/c4s73r/Above): Ağ trafiğini taramak ve zafiyetleri bulmak için araç +- You can find some **more information about network attacks** [here](https://github.com/Sab0tag3d/MITM-cheatsheet). -## **Sahtecilik** +## **Spoofing** -Saldırgan, yeni ağ üyesinin tüm ağ parametrelerini (GW, IP, DNS) sahte DHCP yanıtları göndererek yapılandırır. +Saldırgan, sahte DHCP yanıtları göndererek ağdaki yeni üyenin tüm ağ parametrelerini (GW, IP, DNS) yapılandırır. ```bash Ettercap yersinia dhcp -attack 2 #More parameters are needed ``` ### ARP Spoofing -[önceki bölüm](#arp-spoofing) kontrol edin. +Bakınız: [previous section](#arp-spoofing). ### ICMPRedirect -ICMP Redirect, bir IP'ye ulaşmanın en iyi yolunun saldırgan olduğunu belirten ICMP paket türü 1 kod 5 göndermeyi içerir. Ardından, kurban IP ile iletişim kurmak istediğinde, paketi saldırgan üzerinden gönderecektir. +ICMP Redirect, attacker'ın bir IP'ye ulaşmanın en iyi yolu olduğunu belirten ICMP paketini (type 1 code 5) göndermesinden oluşur. Ardından victim, IP ile iletişim kurmak istediğinde paketi attacker üzerinden gönderir. ```bash Ettercap icmp_redirect @@ -606,7 +611,7 @@ hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw ``` ### DNS Spoofing -Saldırgan, kurbanın talep ettiği bazı (veya tüm) alan adlarını çözecektir. +Saldırgan, kurbanın talep ettiği bazı (veya tüm) domains için çözümleme yapar. ```bash set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on ``` @@ -617,7 +622,7 @@ dig @localhost domain.example.com # Test the configured DNS ``` ### Yerel Ağ Geçitleri -Sistemlere ve ağlara genellikle birden fazla yol vardır. Yerel ağ içindeki MAC adreslerinin bir listesini oluşturduktan sonra, IPv4 yönlendirmesini destekleyen ana bilgisayarları tanımlamak için _gateway-finder.py_ kullanın. +Sistemlere ve ağlara genellikle birden fazla yol vardır. Yerel ağ içindeki MAC addresses listesini oluşturduktan sonra, IPv4 forwarding'i destekleyen hostları belirlemek için _gateway-finder.py_ kullanın. ``` root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git root@kali:~# cd gateway-finder/ @@ -635,58 +640,58 @@ 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 güvenir. 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. +DNS lookupları başarısız olduğunda yerel host çözümlemesi için Microsoft sistemleri **Link-Local Multicast Name Resolution (LLMNR)** ve **NetBIOS Name Service (NBT-NS)**'e güvenir. Benzer şekilde, **Apple Bonjour** ve **Linux zero-configuration** uygulamaları ağ içindeki sistemleri keşfetmek için **Multicast DNS (mDNS)** kullanır. Bu protokollerin kimlik doğrulama olmadan çalışması ve UDP üzerinden yayın mesajları göndermesi nedeniyle, kullanıcıları kötü amaçlı servislere yönlendirmeyi amaçlayan saldırganlar tarafından suistimal edilebilirler. -Yanıtlayıcıyı kullanarak ana bilgisayarlar tarafından aranan hizmetleri taklit edebilir ve sahte yanıtlar gönderebilirsiniz.\ -Hizmetleri Yanıtlayıcı ile nasıl taklit edeceğiniz hakkında daha fazla bilgi için [burayı](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) okuyun. +Responder kullanarak host'ların aradığı servisleri taklit edip sahte yanıtlar gönderebilirsiniz.\ +Daha fazla bilgi için bakın: [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md). -### [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: +Tarayıcılar genellikle proxy ayarlarını otomatik olarak almak için **Web Proxy Auto-Discovery (WPAD)** protokolünü kullanır. Bu, yapılandırma detaylarının bir sunucudan, örneğin "http://wpad.example.org/wpad.dat" gibi bir URL üzerinden alınmasını içerir. İstemcilerin bu sunucuyu keşfetmesi çeşitli mekanizmalarla gerçekleşebilir: -- **DHCP** aracılığıyla, burada keşif özel bir kod 252 girişi kullanılarak kolaylaştırılır. -- **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. +- DHCP üzerinden; keşif özel bir 252 kodlu giriş kullanılarak sağlanır. +- DNS ile; yerel alan içinde _wpad_ adlı bir host adı aranır. +- Microsoft LLMNR ve NBT-NS aracılığıyla; bunlar DNS sorguları başarısız olduğunda kullanılan yedek mekanizmalardı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. Hizmetlerin Yanıtlayıcı kullanılarak 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). +Responder aracı, kötü amaçlı bir WPAD sunucusu gibi davranarak bu protokolden faydalanır. DHCP, DNS, LLMNR ve NBT-NS kullanarak istemcileri kendisine bağlanmaya kandırır. Responder kullanarak servislerin nasıl taklit edilebileceği hakkında daha fazla bilgi için [check this](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ı servisler sunarak bir kullanıcıyı bazı **düz metin kimlik bilgilerini** girmeye **kandırmaya** çalışabilirsiniz. **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 benzerlik gösterir 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ı, IPv6 dünyasında ARP Spoofing'e çok benzer. Kurbanın, GW'nin IPv6 adresinin saldırganın MAC adresine ait olduğunu düşünmesini sağlayabilirsiniz. ```bash sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested sudo fake_advertise6 -r -w 2 eth0 #This option will send the Neighbor Advertisement packet every 2 seconds ``` -### IPv6 Yönlendirici İlanı Sahteciliği/Boğma +### IPv6 Router Advertisement Spoofing/Flooding -Bazı işletim sistemleri, ağda gönderilen RA paketlerinden varsayılan olarak geçidi yapılandırır. Saldırganı IPv6 yönlendiricisi olarak ilan etmek için şunu kullanabilirsiniz: +Bazı OS'ler, ağda gönderilen RA paketlerindeki gateway'i varsayılan olarak yapılandırır. attacker'ı IPv6 router olarak ilan etmek için şunu kullanabilirsiniz: ```bash sysctl -w net.ipv6.conf.all.forwarding=1 4 ip route add default via dev wlan0 fake_router6 wlan0 fe80::01/16 ``` -### IPv6 DHCP sahteciliği +### IPv6 DHCP spoofing -Varsayılan olarak bazı işletim sistemleri, ağda bir DHCPv6 paketi okuyarak DNS'i yapılandırmaya çalışır. Bu durumda, bir saldırgan kendisini DNS olarak yapılandırmak için bir DHCPv6 paketi gönderebilir. DHCP ayrıca kurban için bir IPv6 sağlar. +Varsayılan olarak bazı OS'ler ağdaki bir DHCPv6 paketi okuyarak DNS'i yapılandırmaya çalışır. Böylece bir saldırgan kendisini DNS olarak yapılandırmak için bir DHCPv6 paketi gönderebilir. DHCP ayrıca hedefe bir IPv6 sağlar. ```bash dhcp6.spoof on dhcp6.spoof.domains mitm6 ``` -### HTTP (sahte sayfa ve JS kodu enjeksiyonu) +### HTTP (fake page and JS code injection) -## İnternet Saldırıları +## Internet Attacks ### 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ö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. +Temelde bu saldırının yaptığı şey şudur: eğer **user** bir **HTTP** sayfasına **access** etmeye çalışıp **redirecting** ile **HTTPS** versiyonuna yönlendiriliyorsa. **sslStrip** bir **HTTP connection with** the **client and** a **HTTPS connection with** the **server** **maintain** eder; böylece bağlantıyı **plain text** olarak **sniff** edebilir. ```bash apt-get install sslstrip sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k @@ -695,29 +700,29 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000 iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT ``` -Daha fazla bilgi [burada](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). +Daha fazla bilgi [here](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf). -### sslStrip+ ve dns2proxy ile HSTS'yi atlama +### sslStrip+ and dns2proxy ile HSTS atlatma -**sslStrip+ ve dns2proxy** arasındaki **fark**, **sslStrip**'e karşı, örneğin _**www.facebook.com**_ **adresini** _**wwww.facebook.com**_ **olarak** **yönlendirmeleridir** (not: **ekstra** "**w**" var) 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**. +The **fark** between **sslStrip+ and dns2proxy** against **sslStrip** şudur: örneğin _**www.facebook.com**_ **_**to**_** _**wwww.facebook.com**_ (fazladan "**w**" olduğunu unutmayın) ve bu domainin **adresini attacker IP olarak ayarlarlar**. Bu şekilde **client** _**wwww.facebook.com**_ **(the attacker)**'a **connect** olacak, ancak arka planda **sslstrip+** gerçek bağlantıyı **https** üzerinden **www.facebook.com** ile **maintain** edecektir. -Bu tekniğin **amacı**, _**wwww**.facebook.com_ **tarayıcının** **önbelleğine** **kaydedilmeyeceği** için **HSTS'yi atlamak**. Böylece tarayıcı, **facebook kimlik doğrulamasını HTTP üzerinden** gerçekleştirmek için kandırılacaktır.\ -Bu saldırıyı gerçekleştirmek için, kurbanın ö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. +The **goal** of this technique is to **avoid HSTS** çünkü _**wwww**.facebook.com_ tarayıcının **cache**'ine kaydedilmeyecek, bu yüzden tarayıcı kandırılarak **facebook authentication in HTTP** gerçekleştirecektir.\ +Not: bu saldırıyı gerçekleştirmek için hedefin başlangıçta [http://www.faceook.com](http://www.faceook.com) adresine http üzerinden erişmeye çalışması gerekir, https değil. Bu, bir http sayfası içindeki linkleri 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). +More info [here](https://www.bettercap.org/legacy/#hsts-bypass), [here](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) and [here](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly). -**sslStrip 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 oluşturulan 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.** +**sslStrip or sslStrip+ artık çalışmıyor. Bunun sebebi tarayıcılarda önceden kaydedilmiş HSTS kurallarının bulunmasıdır; bu yüzden bir kullanıcının "önemli" bir domaine ilk kez erişmesi bile HTTPS üzerinden olacaktır. Ayrıca, önceden kaydedilmiş kuralların ve diğer oluşturulan kuralların [**`includeSubdomains`**](https://hstspreload.appspot.com) bayrağını kullanabileceğini unutmayın; bu yüzden daha önceki _**wwww.facebook.com**_ örneği artık işe yaramaz çünkü _**facebook.com**_ `includeSubdomains` ile HSTS kullanıyor.** TODO: easy-creds, evilgrade, metasploit, factory -## TCP dinleme portu +## TCP portta dinleme ```bash sudo nc -l -p 80 socat TCP4-LISTEN:80,fork,reuseaddr - ``` -## TCP + SSL dinleme portu +## TCP + SSL portta dinleme -#### Anahtarlar ve kendinden imzalı sertifika oluşturun +#### Anahtarlar ve kendi imzalı sertifika oluşturma ``` FILENAME=server # Generate a public/private key pair: @@ -731,14 +736,14 @@ cat $FILENAME.key $FILENAME.crt >$FILENAME.pem ``` sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 - ``` -#### Sertifika kullanarak dinleme yapın ve ana bilgisayarlara yönlendirin +#### Sertifika kullanarak dinleme ve hosts'a yönlendirme ``` 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, **başka bir ana bilgisayar adı için imzalanmış bir sertifika sunabilirsiniz**.\ -Diğer ilginç bir test, **istek yapılan ana bilgisayar adı için ancak kendinden imzalı bir sertifika sunmaktır**. +Bazen, client CA'nın geçerli olduğunu kontrol ediyorsa, **bir CA tarafından imzalanmış başka bir hostname'e ait certificate sunabilirsiniz**.\ +Diğer ilginç bir test, istenen hostname'e ait **certificate'i self-signed olarak sunmaktır**. -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. +Test edilmesi gereken diğer şeyler: certificate'i, geçerli görünen fakat gerçek bir CA olmayan bir certificate ile imzalamaya çalışmak. Ya da geçerli public key'i kullanıp diffie hellman gibi (gerçek private key ile hiçbir şeyi deşifre etmeye ihtiyaç duymayan) bir algoritmanın kullanılmasını zorlamak ve client gerçek private key'in bir probe'unu (örneğin bir hash) istediğinde sahte bir probe gönderip client'ın bunu kontrol etmediğini beklemek. ## Bettercap ```bash @@ -768,15 +773,15 @@ wifi.recon on; wifi.ap ``` ### Aktif Keşif Notları -Bir UDP paketi, istenen porta sahip olmayan bir cihaza gönderildiğinde, bir ICMP (Port Ulaşılmaz) gönderildiğini dikkate alın. +Bir UDP paketinin hedef cihazda istenen porta sahip olmayan bir cihaza gönderilmesi durumunda ICMP (Port Unreachable) gönderildiğini dikkate alın. ### **ARP keşfi** -ARP paketleri, ağ içindeki hangi IP'lerin kullanıldığını keşfetmek için kullanılır. PC, her olası IP adresi için bir istek göndermeli ve yalnızca kullanılanlar yanıt verecektir. +ARP paketleri ağ içinde hangi IP'lerin kullanıldığını keşfetmek için kullanılır. PC, her olası IP adresi için bir istek göndermek zorundadır ve yalnızca kullanılmakta olan adresler yanıt verir. -### **mDNS (çoklu yayın DNS)** +### **mDNS (multicast DNS)** -Bettercap, **\_services\_.dns-sd.\_udp.local** için bir MDNS isteği gönderir (her X ms'de) ve bu paketi gören makine genellikle bu isteğe yanıt verir. Ardından, yalnızca "services" yanıt veren makineleri arar. +Bettercap her X ms'de bir **\_services\_.dns-sd.\_udp.local** isteği gönderir; bu paketi gören makine genellikle bu isteğe yanıt verir. Daha sonra yalnızca "services" yanıtı veren makineleri arar. **Araçlar** @@ -784,20 +789,20 @@ Bettercap, **\_services\_.dns-sd.\_udp.local** için bir MDNS isteği gönderir - Bettercap (net.probe.mdns) - Responder -### **NBNS (NetBios İsim Sunucusu)** +### **NBNS (NetBios Name Server)** -Bettercap, "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA" ismini sormak için 137/UDP portuna paketler yayınlar. +Bettercap, 137/UDP portuna "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA" adını soran broadcast paketleri gönderir. -### **SSDP (Basit Hizmet Keşif Protokolü)** +### **SSDP (Simple Service Discovery Protocol)** -Bettercap, her türlü hizmeti aramak için SSDP paketleri yayınlar (UDP Port 1900). +Bettercap, her türlü servisi aramak için SSDP broadcast paketleri gönderir (UDP Port 1900). -### **WSD (Web Hizmeti Keşfi)** +### **WSD (Web Service Discovery)** -Bettercap, hizmetleri aramak için WSD paketleri yayınlar (UDP Port 3702). +Bettercap, servisleri aramak için WSD broadcast paketleri gönderir (UDP Port 3702). -### Telekom / Mobil-Core (GTP) Sömürüsü +### Telecom / Mobile-Core (GTP) İstismarı {{#ref}} @@ -807,8 +812,8 @@ telecom-network-exploitation.md ## 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) -- **Ağ Güvenliği Değerlendirmesi: Ağınızı Tanıyın (3. baskı)** -- **Pratik IoT Hackleme: Nesnelerin İnternetine Saldırmanın Kesin Rehberi. Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood tarafından** +- **Network Security Assessment: Know Your Network (3rd edition)** +- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood** - [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)