PwC Türkiye Köşe Yazıları Tarih:29.04.2019 www.pwc.com.tr PING ile Port suz Dosya Transferi Yaparak Firewall Aşmak 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 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 1/7
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: Google DNS Sunucusuna (8.8.8.8) PING ile Echo isteği (ping) yollanması: Şekil 1 Giden Echo paketi: Şekil 2 2/7
Gelen cevap: Şekil 3 Ş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. 32 Byte veri: Şekil 4 Ş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. 64 Bayt veri: Şekil 5 3/7
Giden veri içeriği: Şekil 6 Ş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. Örnek bir ağ topolojisi: DMZ (NAT) altında ICMP Mesajları yerel adresine yönlendirilmiş SUNUCU SUNUCU ICMP ECHO (PING) Mesajları hariç bütün Port ve Protokol lerin her yöne kapalı olduğu Firewall Router INTERNET Router Firewall GOKHAN-PC Şekil 7 Verilen ağ topolojisinde GOKHAN-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. 4/7
Şekil 8 Şekil 9 GOKHAN-PC tarafında bulunan 69 Baytlık dosya.txt dosyasının sunucu tarafına aktarılması için kullanılacak komutlar şu şekildedir: SUNUCU tarafında ICMP mesajlarını dinleyecek komut: Hping2 GOKHAN-PC_IP_Adresi --listen imza --icmp -I eth0 > alinan_dosya.txt Şekil 10 Dosyayı yollayacak Node (GOKHAN-PC ) tarafında kullanılması gereken komut: Hping3 SUNUCU_IP_Adresi --icmp -d 73 --sign imza --file dosya.txt -c 1 I eth0 Şekil 11 5/7
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. SUNUCU tarafındaki alınan dosya: Şekil 12 Şekil 13 6/7
Gönderilen paket içeriği: Şekil 14 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 dahi 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. (Dünya, 29.04.2019) Gökhan Muharremoglu Cyber Security, Senior Manager Email: gokhan.muharremoglu@pwc.com 7/7 2019 PwC Türkiye. Tüm hakları saklıdır. Bu belgede PwC ifadesi, PwC ağını veya PwC ağının üyesi olan bağımsız ve farklı tüzel kişiliklerden oluşan PwC Türkiye yi ifade etmektedir. Daha detaylı bilgi için www.pwc.com/structure adresini ziyaret edebilirsiniz. Bu içerik sadece genel bilgi verme amacı taşır ve profesyonel danışmanlardan alınacak hizmetin yerine geçmez.