Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Port Spoofing

Port Spoofing – Servis Aldatmacası

Port spoof, servis aldatmacası kavramının temeli; bir dizi kamuflaj teknikleri kullanılarak sunucumuz üzerinde aktif hizmet veren servislerin gizlenmesidir. Sunucumuz üzerinde aktif hizmet veren servislere örnek olarak; FTP ( File Transfer Protocol ), SFTP ( Secure File Transfer Protocol ), SSH ( Secure Shell ), telnet verilebilir. İlgili servislerin dış tehdit karşı direkt erişime kapalı olması için yine kamuflaj tekniklerinden biri olan “Port Knocking”’i okumanız akabinde aşağıda açıklanacak tekniklerin kullanılması ile hizmeti kötüye kullanmak isteyen kod betikleri veya hizmete karşı saldırı girişiminde bulunacak kişi/kişilere bir güvenlik katmanı örmüş olacaksınız. Öncesinde giriş seviyesinde temel TCP iletişimi’ni açıklamalıyım. Yazının devamındaki teknikleri algılamanız açısından gereklidir.

 

TCP/IP Nedir?

TCP/IP (Transmission Control Protocol/Internet Protocol), bilgisayarlar ile veri iletme/alma birimleri arasında organizasyonu sağlayan, böylece bir yerden diğerine veri iletişimini olanaklı kılan pek çok veri iletişim protokolüne verilen genel addır. TCP/IP iletim modeli 4 temel katmandan oluşur;

  1. Ağ katmanı

    1. Veri iletiminin uçtan uca ( end to end ) sağlandığı donanımlardır.
      1. Örneğin; ethernet kartları, modemler, switch ve hub’lar bu katmana mensuptur.
        1. Protokoller : Ethernet, Token Ring, FDDI, X.25, Frame Relay, RS-232, v.35
  2. İnternet katmanı

    1. Verileri IP veri birimleri olarak paketler. Bu paketler, veri birimlerini ana bilgisayarlar ve ağlar arasında iletmek için kullanılan kaynak ve hedef bilgilerini içerir. IP veri birimlerinin yönlendirilmesini gerçekleştirir.
      1. Örneğin; 127.0.0.1 ( Localhost – Yerel ağ ) yazım formatındaki ip blokları
        1. Protokoller : IP, ICMP, ARP, RARP
  3. Taşıma katmanı

    1. Ana bilgisayarlar arasında iletişim oturumu yönetimi sağlar. Veri taşınırken kullanılan bağlantının hizmet düzeyini ve durumunu tanımlar.
      1. Örneğin; İnternet’ten bir müzik indirirken dosyamızın bir byte boyutunda sapma olursa dosyamız eksik inecektir ve çalışmayacaktır, aynı durum canlı yayınları internet üzerinden izlerken yayının kesilmesi olarak karşımıza çıkar. Bu ve bu gibi durumlarda kullanılan taşıma protokolü esastır. Bizim ele alacağımız konu taşıma ve bir sonraki uygulama katmanıdır.
        1. Protokoller : TCP, UDP, RTP
  4. Uygulama katmanı

    1. TCP/IP uygulama protokollerini ve ana bilgisayar programlarının ağı kullanmak için taşıma katmanı hizmetleriyle nasıl bir arabirim oluşturacağını tanımlar.
      1. Örneğin; bir e-posta göndermek istediğimizde, bilgisayarımızdaki e-posta arabiriminin taşıma katmanı olan 3. katman protokoller ile ara haberleşmesini sağlayan protokoller.
        1. Protokoller :HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, diğer uygulama protokolleri

 

Yazıda taşıma ve uygulama katmanı bilgimizin üzerine gideceğiz. Taşıma katmanındaki TCP iletimini açıklayalım.

TCP Bağlantısı Nasıl Kurulur?

A bilgisayarı B bilgisayarına TCP yoluyla bağlanmak istediğinde şu yol izlenir:

  • A bilgisayarı B bilgisayarına TCP SYNchronize mesajı yollar
  • B bilgisayarı A bilgisayarının isteğini aldığına dair bir TCP SYN+ACKnowledgement mesajı yollar
  • A bilgisayarı B bilgisayarına TCP ACK mesajı yollar
  • B bilgisayarı bir ACK “TCP connection is ESTABLISHED” mesajı alır

Üç zamanlı el sıkışma adı verilen bu yöntem sonucunda TCP bağlantısı açılmış olur.

 

Veri İletimi

Bağlantı oluşturulduktan sonra, B bilgisayarı A bilgisayarından paketler almaya başlar. B, her aldığı paketten sonra bir süre bekledikten sonra en son düzgün olarak aldığı paket grubunu A’ya bildirir. Gelen bildirimlere göre A, daha sonra hangi paketleri yollaması gerektiğine karar verir ve yollar. Arada kaybolan paketler (veya paket alındı bilgileri) tekrar tekrar gönderir.

 

UDP(User Datagram Protocol – Kullanıcı Veribloğu İletişim Kuralları)

UDP, TCP’den farklı olarak verileri bağlantı kurulmaksızın iletmek için tasarlanmıştır. Tasarlanma amacı, az bant genişliği tüketen ve cevap beklenmeksizin kullanılabilecek protokollerdir. Bu protokollere örnek olarak,  DNS, TFTP, ve SNMP verilebilir.

 

Nerelerde Kullanılır

  • Ses ve görüntü aktarımı gibi gerçek zamanlı veri aktarımlarında,
  • VoIP (Voice Over Internet Protocol) ( Skype, Facebook messenger .. )

Protokollerin temelleri bu şekildedir.

Uygulama katmanında çalışan servislerimiz gerçek zamanlı olarak takip ediliyor olabilir, servislerimizi gizlemek bir çözüm olacaktır. Gizlenmenin bir diğer yolu ise port spoofing tekniğidir. Bu tekniği uygulamak için portspoof aracını kullanacağız.

 

PORT SPOOF

Port spoofing tekniğini uygulamak üzere işlemleri sırasıyla gerçekleştirelim:

Sistem üzerinde tüm servisleri TCP bağlantısına cevap verecek şekilde ayarlayacağız;

Hizmete zarar vermek amaçlı kod betiği ve/veya kişilerin tüm servisleri açık ve yayın yapıyor olarak görmesi hedef seçmekte zorlanacağı bir duruma itecektir. Port spoof tekniği uygulanmış sunucularda bu tekniği aşmanın yolu servislerden servis bilgilerini istemek olacaktı. ( -sV ), servislerin cevap verme sürelerini karşılaştıracak bir python betiği ile tespit edilebilirdi. Sistemlerden versiyon bilgisi istemeden gönderilen isimlerin portlar ile uyumsuz oluşu dikkat çekiciydi.Port spoofing tekniğini uygulamak üzere kullanacağımız port spoof aracının son güncellemesinden çıkarımlarımız bu açıkların kapatıldığı yönünde.

Ekran görüntüsü_2016-06-16_14-37-37

 

Kurulum öncesi port taraması :

Ekran görüntüsü_2016-06-16_14-37-37

 

Kurulumu:

Sunucu, ubuntu 14.04 LTS dağıtımı ve üzerinde GIT versiyon kontrol sistemi kurulu.

Sistem gereksinimlerini kurmak için :

sudo apt-get update  
apt-get install build-essential  
apt-get install git

 

Ardından port spoof dosyalarını GİT aracılığı ile sunumuza indirip, kurulum komutunu verelim,

Terminal :

git clone https://github.com/drk1wi/portspoof.git 
cd portspoof/  
./configure  
make  
sudo make install

 

IPTables kurallarını kamuflaj tekniğimize göre düzenleyelim ve tüm bağlantı isteklerine cevap verecek hale getirelim:

Terminal :

iptables -t nat -A PREROUTING -i eth0 -p tcp -mtcp --dport 1:65535 -j REDIRECT --to-ports 4444

 

Fakat sunucumuzdaki halihazırda işlem yapan servisleri bu yönlendirmeden çıkartmalıyız, bunun için tekrardan güncelleyelim:

Terminal :

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp -m multiport --dports 1:21,23:79,81:65535 -j REDIRECT --to-ports 4444

 

Yukarıdaki komuta dikkat ettiğinizde 21 ile 23 portları arasındaki 1 portu, yani 22. portu ( SSH ) ve 70 ile 81 portları arasındaki 1 portu, yani 80. portu ( HTTP web sunucusu – Apache – Nginx vb ) disable yani iptal ettik.

Port spoof hizmetini başlatalım:

Terminal : ( Port spoof dosyalarının kurulu olduğu dizindeyken )

cd system_files/init.d ./portspoof.sh start

Ekran görüntüsü_2016-06-16_14-37-37

Kurulum sonrası port taraması:

https://www.dropbox.com/s/24962vptyyescl4/Screenshot%202016-05-28%2012.40.13.png?dl=0

Sisteminiz üzerinde tarama yapanlaraara güzel bir hediye bırakabilirsiniz, özelleştirme dosyaları:
-> Using user defined configuration güzel bir hediye bırakabilirsiniz, özelleştirme dosyaları:

-> Using user defined configuration file /usr/local/etc/portspoof.conf

-> Using user defined signature file /usr/local/etc/portspoof_signatures

dosyalarıdır, aktif savunmaya güzel bir örnek oluşturan port spoofing ile otomatize bir araç ile sisteminizde zafiyet taraması yapan kişi/kod betiklerine karşı saldırı düzenleyebilirsiniz.

Detaylı dökümantasyon ve video için : http://portspoof.org ziyaret etmenizi tavsiye ederim.

 

Örnek olarak :

Ekran görüntüsü_2016-06-16_14-37-37

About Çağatay ÇALI


Follow Me