17 Mart 2015 Salı

Linux sistemlerde Netcat (nc) aracının kullanımı

Netcat, TCP/IP üzerinden veri gönderme veya almaya yarayan açık kaynak kodlu bir araçtır. Netcat aracı ile herhangi bir portu dinleyebilir, port tarama, bağlantı oluşturma, shell oturumu, dosya transferi gibi birçok şey yapılabilir. Bu yazıda Netcat (nc) aracının temel kullanımından bahsedilecektir.

En temel kullanımı telnet gibi bir sunucu portuna bağlantı kurmaktır.
  # nc -v google.com 80   













Bir portun açık olup olmadığını görmek isterseniz bunu birçok araç ve yöntem ile yapabilirsiniz, nmap, hping3, netcat bunlardan birkaç tanesidir. Aşağıdaki komut ile bir portun açık olup olmadığını görebilirsiniz.
  # nc -vz hedef_ip  hedef_port    "Örnek"

  # nc -vz 127.0.0.1 22  











diğer bir mesaj ise aşağıdaki gibidir.
  # nc -vz 127.0.0.1 23  









Sunucu tarafında oluşturulan bir mesajı istemci tarafında görüntülemek isterseniz aşağıdaki komut kullanılabilir. Sunucu tarafında oluşturulan mesaj 9998 portunda dinlenmektedir.
 # echo "Hello world" | nc -lp 9998











istemci tarafında nc komutu ile bu mesaj görüntülenebilir.











 

istemci tarafında aynı mesaj telnet komutu ile görüntülenebilir.











Belirli bir port aralığındaki port numaralarının erişebilirliğini test etmek isterseniz aşağıdaki komutu kullanılabilirsiniz. Aşağıdaki komut 192.168.100.219 ip adresine ait 1-1024 arası olan portları tarayacaktır ve erişilebilir/erişelemez olan portlar listelenecektir.
  # nc -v -n 192.168.100.219 -z 1-1024 










Dosya transferi 

Sunucu tarafında oluşturulan bağlantı ile dosya.txt isimli dosyaya yönlendirilerek, istemci tarafında aktarılacak olan dosya içeriğinin alınması sağlanabilir. Sunucu tarafında oluşturmuş olduğumuz bağlantı netstat komutu kullanılarak doğrulanabilir.

1. Adım; Sunucu nc ile üzerinde 9998 portu ile bağlantı oluşturur ve dosya.txt adlı dosyaya yönlendirme yapar.
  # nc -nlp 9998 > dosya.txt  










2. Adım; İstemci tarafında aşağıdaki komut kullanılarak /etc/passwd dosyanın içeriğini sunucu tarafında oluşturulan dosya.txt adlı dosyanın içerisine aktarılmiştir.
  # cat /etc/passwd | nc 192.168.100.227 9998  










3. Adım; Sunucu tarafında CTRL+C kombinasyonuna basarak oluşturduğumuz bağlantıyı sonlandırdıktan sonra yönlendirme yaptığımız dosyayı cat, nano, ee, vi, vim, vb. araçlar ile görüntülediğimiz zaman istemci tarafında yollamış olduğumuz /etc/passwd dosyasının içeriği görmüş olacağız.

 # ls   
 # cat dosya.txt 













Shell açma

Sunucu üzerinde nc komutu ile istemci tarafından komut çalıştırılması sağlanabilir. Aşağıdaki birinci komut ile sunucu tarafında nc komutu ile 9998 portunda /bin/bash kabuğu çalıştırılmıştır.
 # nc -e /bin/bash -lp 9998  










İstemci tarafında aşağıdaki gibi nc komutu kullanarak sunucuya bağlantı sonrası sunucu sistem üzerinde çalıştırılan ifconfig, ls vb. komutların çıktısı aşağıdaki gibi gözükmektedir.












 
Options:
-l : dinleme modu (listen mode)
-u : ön tanımlı olarak TCP geliyor. Bunun yerine siz UDP kullanmak isterseniz bu parametre kullanılabilir. (UDP mode)
-p : port numarasını belirtmeniz için kullanılan parametre.
-n : dnslookup 'larda diğer makinalarının isimlerinde değişiklik/oynama olmaması için kullanılabilir bir parametre.
-v : yaptığımız işlemler ile ilgili daha fazla bilgi almak istiyorsak bu parametre kullanılabilir.


Daha fazla bilgi için man sayfasından veya help menüsünden yararlanabilirsiniz.
 # man nc 
 # nc -h  

1 yorum:

Online pfSense Firewall & Router Eğitimi

Merhabalar Online pfSense Firewall & Router eğitimi hazırladım ve Udemy üzerinde yar aldı. Eğitim içeriği toplam 40 ders ve yaklaşık o...