"Enter"a basıp içeriğe geçin

OpenVPN Sunucuların Keşfedilmesi ve Kaba Kuvvet Saldırısı Aracı

 

 

radar_open_vpn

Genel olarak sızma testlerinin ilk adımı, hedef sistem üzerindeki varlıkların keşfedilmesi ve ardından çalışan servislerin belirlenmesidir. Bunun için yapılan ilk adım port taraması ve çalışan servislerin belirlenmesidir.

Kurumsal ağlardan küçük ölçekli ağlara kadar hemen hemen bütün ağlarda VPN sunucu ile kullanıcıların kurum dışından kurum içine güvenli erişim imkanı sağlanmaktadır. Açık kaynak kod uygulaması olanOpenVPN sunucu da yine bu amaç için hizmet vermekte olan bir servistir. Bu bağlamda OpenVPN sunucular hedef haline gelebilmektedir. OpenVPN sunucuların keşfedilmesinin ardından ise kullanıcı adı/parola bilgisi tahmini ile kurum ağı içerisine sızmakta mümkün hale gelebilmektedir.
OpenVPN sunucuları keşfedebilmek için nmap yazılımı kullanılabilir. Ön tanımlı OpenVPN sunucu 1194/udpportundan hizmet vermektedir. Ancak bu portun servisi ister tcp ister udp olarak degiştirilebilmektedir. Udp portu üzerinden hizmet vermekte olan OpenVPN sunucusunun keşfedilebilmesi hedef OpenVPN sunucusuna “\x38\x01\x00\x00\x00\x00\x00\x00\x00” özel paket gönderilerek yapılmaktadır. Bu işlem komut satırı üzerinden aşağıdaki şekilde gerçekleştirilebilirken aşağıdaki python kodu ile de gerçekleştirilebilmektedir. İlk parametre olarak openvpn sunucu ip adresi, ikinci parametre ise port numarasını almaktadır.
#!/usr/bin/pythonimport socket
import sys
senddata= “\x38\x01\x00\x00\x00\x00\x00\x00\x00″def checkserver(ip,port):
print(‘Checking %s:%s’ %(ip,port))
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(5) # in seconds
sock.connect((ip, port))
print(“Sending request…”)
sock.send(senddata)
try:
data=sock.recv(100)
print(“Server reply: %s” %(data))
except:
print(“Server not responding”)
sock.close()
print(“###########################################################”)def main():
ip = sys.argv[1]
port = int(sys.argv[2])
checkserver(“%s”% (ip),port)if __name__ == “__main__”:
main()
Udp portu üzerinden hizmet vermekte olan OpenVPN sunucu için yukarıda belirtildiği gibi keşif işlemi gerçekleştirilebilirken tcp üzerinden hizmet vermekte olan OpenVPN sunucu için ise nmap yazılımı kullanılabilir. Bunun için aşağıdaki nmap tarama seçenekleri kullanılabilir. Aşağidaki örnekte 192.168.1.37ip adresli sunucunun 443/tcp portu üzerinde çalışan servis icin tanımlama işlemi gerçekleştirilmektedir.
# nmap -sT -sV -p 443 192.168.1.37
Bu işlemden önce OpenVPN servis tanımlama için aşağidaki imzaların eklenmesi gerekmektedir.
match openvpn m|^\0\x0e@……..\0\0\0\0\0\0\x0e@|s p/OpenVPN/
match openvpn m|^\0\x0e@……..\0\0\0\0\0|s p/OpenVPN/
match openvpn m|^\0\*@.*\0\0\0\0\0|s p/OpenVPN/
match openvpn m|^\0<\xaa\xc5\r\^\xf7\x1b\xd1\xe1a/\xe8\x17P\x9dOb\xbb\x93\x87\xe0\xf3v\x81K\xa4!\xe6\xc7\x01\x977u5A\xd1M\x1b;\xc7\xcb\x87\xb5\x87\xf3~\xc8w\xef\xd3\x87eA\0\^\xbf\xc5\x93i\xf6\x87$| p/OpenVP /
match openvpn-management m|^>INFO:OpenVPN Management Interface Version ([\d.]+) — type ‘help’ for more info\r\n>| p/OpenVPN Management Interface/ v/$1/
Bu dosyanin en güncel haline https://svn.nmap.org/nmap/nmap-service-probes adresinden erişim sağlanabilir.
Çalışan OpenVPN servisinin keşfedilmesinin ardından OpenVPN servisine yönelik kullanıcı_adı/parolatahmini saldırısı gerçekleştirilebilir. Betiğin kullanımı ile ilgili adımlar için belirtilen adımlar uygulanmalıdır.
# chmod 755  openvpn_brute_force.sh
Betik kullanımı için 2 adet dosya parametre olarak kullanılmaktadır. Birinci parametre olarak kullanıcı_adıve parola bilgilerinin bulunduğu dosya, ikinci parametre ise OpenVPN servisi için gerekli ovpn uzantılı yapılandırma dosyasıdır. kullanici_adi/parola dosyası içerik olarak kullanici_adi:parola olarak belirtilmektedir. Örnek bir dosya içeriği aşağıdaki gibi olabilir;

 

# cat dict_file.txt
user:sifre2
user2:sifre
Betiğin çaliştırılması sonucu aşagidaki çıktı alınmaktadır.
# ./brute_force_openvpn.sh dict_file.txt
user1:sifre1 -> FAILURE

user2:sifre2 -> SUCCESS
user3:sifre3 -> FAILURE

Göruldüğü gibi user2 kullanıcı sifre2 parolası ile OpenVPN sunucusuna bağlantı işlemini başarılı bir şekilde gerçekleştirilmektedir.

Bir Cevap Yazın

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