Python — DNS — VirusTotal-1

Huseyin Rencber
4 min readMay 6, 2019

--

Bu üçlü ile güzel şeyler yapacağız :) Başlayalım >

Malzemeler;

  • 1 adet taze hazırlanmış python
  • 1 adet işletim sistemi mümkünse linux
  • 1 adet virustotal hesabı ve api key
  • Biraz da çeşni niyetine scripting, dns, network bilgisi

Yazdığım program 3 fazdan oluşuyor

  • Virustotal’de domainin sorgulanması ve bunun sonucunun alınması
  • DNS whois ve A kaydı sorgusu
  • Üstteki ikiliden gelecek cevaba göre belirlenen kriterlerde dns cevabının dönülmesi.

Bir domain zararlı mı? ( virustotal sorgusu), whois sorgusunda yeni alınmış bir domain mi? Eğer hem zararlı hem de yeni alınmış bir domainse A kaydı cevabını kullanıcıya dönme gibi bir script hazırladım.

Python indirmek için >

Virustotal hesabı için >

Aşağıdaki alandan api key bilgisine ulaşabilirsiniz.

Api key sayfasından aynı zamanda istatistiklere de ulaşabilirsiniz.

Virustotal api kütüphanesi için>

Scriptler için de >

Bu işlemleri tamamladıktan sonra yazdığım örnek üzerinden ilerleyelim.

Whois sorgusu ile ne tür bilgiler elde edebiliriz aşağıdaki ICANN sorgusundan görebilirsiniz ; örnek domain olarak gmaiil[.]com kullandım.

Daha farklı domain tercih edilebilirsiniz. Yeni zararlılara ait özellikle 2 3 haftalık creation_date e sahip olan bir domain oltalama saldırılarında kullanılıyorsa yüksek olasılıkla zararlıdır.

Aynı domainin bir de virustotal üzerindeki sorgusuna bakalım>

Bir tane engine zararlı olarak tespit etmiş, burada kriterim en az 1 engine de zararlı olarak tespit ediliyorsa cevap dönme yönünde olacak. Siz kendi sorgularınızda bunu ayarlayabilirsiniz.

Her zaman clean veya malicious olarak dönmeyebiliyor, aşağıdan detayları görebilirsiniz. Suspicious da yeni url de görünebilen bir kategori.

Detaylarına support sayfasından erişebilirsiniz.

Mevcut domain 2004 yılında oluşturulmuş ve virustotalde bir engine tarafından zararlı olarak tespit edilmiş. Pythonda sorguyu çalıştırırken 2 ayrı txt dosyasına da yazdırdım, bir dosyada da bulk sorgular için domainleri yazabiliriz. Adımları takip edebilmek için ekrana da yazdırdım. Burada yöntem olarak input da kullanılabilir, yazının ikinci kısmında o yöntemi de ekleyeceğim.

Sırayla

  • Domain
  • Cevabı
  • Rapor bilgisi
  • Whois creation_date
  • Whois sorgusunun cevabı (1 haftalık bir domain mi?)
  • Virustotal sorgusunun cevabı ( en az 1 engine de zararlı olarak tespit edildi mi? )

Önemli olarak gördüğüm domain düzenleme, datetime delta alma, virustotal kriteri belirleme kısımları için farklı yöntem izlenebilir.

Txt sonuç dosyasından bir çıktı>

Domaini domains.txt altına ekleyebilirsiniz toplu sorgular için de kullanılır.

Örnek olarak kriteri değiştirseydik en az 5 zararlı tespiti yoksa A kaydına cevap dön yapsaydık, aşağıdaki gibi bir cevap alırdık. 8.7.8.7 ip adresi daha önce ayarladığım sinkhole tanımından kaynaklı burada siz gerçek ip adresini göreceksiniz.

Dns sinkhole nedir kısaca >

Yazının devamında dns sunucu kurgulayıp bu iki işlemi dns sunucu ile yapılandırmaktan bahsedeceğim. İkinci kısım tamamlandıktan ( tamamlanabilirse :D ) sonra kaynak kodlarını github sayfasında bir proje altında paylaşacağım.

--

--

Huseyin Rencber
Huseyin Rencber

Written by Huseyin Rencber

Cyber Security, Theat Hunting, Incident Response

No responses yet