Port Knocking (Girmeden Önce Kapıyı Çalma) Kavramı

Sunucu olarak kullanılan bir sistem, portlarına belli sıra ile gelen taleplere göre işletim sisteminde komut çalıştırılması sağlanabilir. Böylece hedef sistemde bir arka kapı yerleştirilmiş de olunur. Bu yazıda Billy Madison sanal makinesi üzerinde Port Knocking (Girmeden Önce Kapıyı Çalma) kavramı incelenecektir.

Yazıda kullanılan Billy Madison sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/billy-madison-11,161/

 

Hedef sunucunun önceden belirlenmiş portlarına belirli bir sıra ile gönderilen istekler sonucunda, bu sunucuda istekleri dinleyen uygulamanın yetkileri ile belirli komutların çalıştırılması işlemine Port Knocking adı verilir. Bu komutlar ile yeni bir servis başlatılarak dışarıdan gelen taleplerin alınabileceği yeni bir port dinlenebilir, bir dosya veya kullanıcı oluşturulabilir, dışarıya paket gönderilebilir,… Bunun sebebi arka kapı bırakmak olabileceği gibi, bazı servislerin erişimini güvenlik sebebi ile gizlemek de olabilir.

Billy Madison sanal makinesinde mevcut durumda TCP/21’in açık olmadığı görülmektedir.

nmap -Pn -n –open 10.10.2.152

 

“1466 67 1469 1514 1981 1986” portlarına sorası ile birer SYN paketi gönderildiğinde ise FTP servisinin ayağa kalktığı görülecektir.

IP=10.10.2.152
for port in 1466 67 1469 1514 1981 1986; do nmap -Pn -n –max-retries 0 –host_timeout 5 -p $port $IP; done

 

Not: Nmap aşağıdaki gibi “-r” parametresi ile kullanılabileceği gibi, Nmap yerine telnet, hping, ncat araçları veya özel olarak “knock” aracı da kullanılabilir.

nmap -r -Pn 10.10.2.152 -p 1466,67,1468,1514,1981,1986

knock -v 10.10.2.152 1466 67 1468 1514 1981 1986

Tekrar port taraması yapıldığında FTP servisinin açıldığı görülmektedir.

nmap -Pn -n –open 10.10.2.152

 

Sunucu tarafında bu işlemi sağlamak için “knockd” uygulaması (deamon) bulunmaktadır. Bu servis sanal makine üzerinde “root” kullanıcısı yetkileri ile çalışmaktadır. Yapılandırma dosyasına bakıldığında logların düştüğü dosya(/var/log/syslog), hangi portların beklendiği, zaman aşımı süresi (5 saniye), çalışacak komut ve bu portlara gelecek paketlerde etkin olacak bayraklar (SYN) listelendiği görülmektedir. Bunun yanında “9900,8500,7004” portlarına paket geldiğinde ise ilgili kuralın silineceği görülmektedir.

ps -ef | grep knockd | grep -v grep
ls -la /usr/sbin/knockd
cat /etc/knockd.conf
ls -la /etc/knockd.conf

 

Not: host_timeout değeri 5 saniyeden (5000 milisaniye) daha büyük bir değer verilirse knockd uygulamasındaki kural tetiklenmeyecektir.

Kayıtların tutulacağı dosya olarak “UseSyslog” belirtildiği için ilgili kayıtlar “/var/log/syslog” diznine düşmektedir. FTP servisinin açılması sırasında kayıtlar aşağıdaki gibidir.

cat syslog

 

Not: Kayıtların tutulacağı dosya özel olarak da belirtilebilirdi.

logfile = /usr/Loglar/knock-servisi.log

 

Bunun yanında “9900,8500,7004” portlarına SYN paketi gönderildiğinde düşen kayıtlar ise aşağıdaki gibidir.

echo “” > syslog
netstat -nlpt | grep 21
tail -f syslog | grep knockd

IP=10.10.2.152
for port in 9900,8500,7004; do nmap -Pn -n –max-retries 0 –host_timeout 5 -p $port $IP; done

 

Not: Eğer bazı portların UDP olması isteniyorsa aşağıdaki gibi bir sıralama da gerçekleştirilebilirdi.

sequence = 1466:udp,67:udp,1468:tcp,1514:tcp,1981:udp,1986:tcp

Yukarıdaki durumda, portları çağırmak için de aşağıdaki gibi bir komut çalıştırılabilirdi.

knock -v 10.10.2.152 1466:udp 67:udp 1468:tcp 1514:tcp 1981:udp 1986:tcp

Yukarıdaki durumda, Hping3 aracı ile portları çağırmak için de aşağıdaki gibi bir komut çalıştırılabilirdi.

IP=10.10.2.152
hping3 $IP -2 -p 1466 -c 1
hping3 $IP -2 -p 67 -c 1
hping3 $IP -p 1468 -c 1
hping3 $IP -p 1514 -c 1
hping3 $IP -2 -p 1981 -c 1
hping3 $IP -p 1986 -c 1

 

Kaynak:

http://www.mrb3n.com/?p=342

Hack the Billy Madison VM (CTF Challenge)

Port Knocking Yöntemi ile Portları Güvenli Açma


https://www.bilgiguvenligi.gov.tr/guvenlik-testleri/port-knocking-girmeden-once-kapiyi-calmak-2.html
http://www.harunseker.org/2012/12/knockd-ile-port-knock.html
http://www.portknocking.org/docs/portknocking_an_introduction.pdf

 

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir yorum

Yorum yapabilirsiniz
  • Güzel bir yazı. Port knocking önleminin herkese açık olmaması gereken tüm servisler için uygulanması gerektiğini düşünüyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.