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

1
1824
views
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.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

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

 

Port Knocking tekniğinin kullanılabileceği bir başka makine de Vulnhub (https://www.vulnhub.com/entry/lord-of-the-root-101,129/) üzerindeki Lord Of The Root: 1.0.1 sanal makinesidir. Bu makinedeki yapılandırma ayarları ve 1337 portunun açılması aşağıdaki gibidir.

telnet 172.20.50.131 1 &
telnet 172.20.50.131 2 &
telnet 172.20.50.131 3 &

cat /etc/knockd.conf
cat /var/log/syslog

 

Belirtilen zafiyetin bulunduğu diğer sanal ortamlardan bazıları aşağıdaki gibidir:

  • Nineveh: v0.3: https://www.vulnhub.com/entry/nineveh-v03,222/
    • Port Listesi: 571, 290, 911
    • Açılan Port: 22
  • Lord Of The Root: 1.0.1: https://www.vulnhub.com/entry/lord-of-the-root-101,129
    • Port Listesi: 1, 2, 3
    • Açılan Port: 1337

 

 

Kaynak:

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

Hack the Billy Madison VM (CTF Challenge)


https://www.bgasecurity.com/2014/05/port-knocking-yontemi-ile-portlar/
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

 

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

1 YORUM

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

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

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