Zararlı Kod Analizinde Virustotal’in Otomatize Kullanımı

Zararlı Kod Analizinde Virustotal’in Otomatize Kullanımı
[EXHIBIT_A] Featured evidence

Zararlı kodlar ile uğraşanların mutlaka uğradığı bir sitedir Virustotal ve barındırdığı elliden fazla antivirüs motoru sayesinde çok hızlı şekilde virüs taraması gerçekleştirmemize imkan sunmaktadır. Bu işlemi web arayüzünden gerek şüpheli dosyanın kendisini upload ederek ya da bu şüpheli dosyanın hash değerini sorgulayarak gerçekleştirebiliyoruz. Bu makalede ise sorgulama işlemini otomatize şekilde nasıl yapabileceğimize değineceğim. Anlatacağım iki tane script var. Bu scriptlerden autohash.py scripti ile Microsoft'un Autoruns uygulamasının çıktısından elde ettiğimiz dosyayı Virustotal'de sorgulayabiliriz. İkinci script olan md5_vtlookup.py scripti ile de bir dosya içinde listelenmiş md5 değerlerini Virustotal'de aratıp sonuçları konsol üzerinden elde edebiliyoruz. Şimdi bu scriptlerin kullanımının detaylarına bakalım.

Autohash scripti için öncelikle Microsoft'un Autoruns uygulamasının komut satırından çalışan hali olan autorunsc.exe uygulamasını aşağıda gösterildiği haliyle çalıştırıyoruz.

exhibit_viewer.exe
Virustotal_01
[EXHIBIT] Virustotal_01

Bu komutun çalıştırılmasının sonucunda elde ettiğimiz çıktı dosyasındaki kayıtlar aşağıdaki şekilde gösterildiği gibidir.

BASH
1HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms
2    Entry last modified: 7/14/2009 7:49 AM
3    rdpclip
4      rdpclip
5      RDP Clip Monitor
6      Microsoft Corporation
7      6.1.7601.17514
8      c:\windows\system32\rdpclip.exe
9      11/20/2010 2:04 PM
10      MD5:             25d284eb2f12254c001afe9a82575a81
11      SHA1:            cf131801fdd5ec92278f9e0ae62050e31c6670a5
12      PESHA1:          1210C3B54E141899D742F1AE41EB7037712FFC88
13      PESHA256:        7F3948F2CE27D5C534AB240259816B4BE09A10293733669B7FA25B933EBBCE1A
14      SHA256:          837e0d864c474956c0d9d4e7ae5f884007f19b7f420db9afcf0d266aefa6608b
15 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
16    Entry last modified: 5/21/2014 7:31 AM
17    C:\Windows\system32\userinit.exe
18      C:\Windows\system32\userinit.exe
19      Userinit Logon Application
20      Microsoft Corporation
21      6.1.7601.17514
22      c:\windows\system32\userinit.exe
23      11/20/2010 1:10 PM
24      MD5:             bafe84e637bf7388c96ef48d4d3fdd53
25      SHA1:            47267f943f060e36604d56c8895a6eece063d9a1
26      PESHA1:          621591A93EC0F57425F9496EB3117403A0201CCF
27      PESHA256:        BBF15763AFBCBADCA40D24DCB2FC833895AA41C884A60A171FE7BB691148FEC6
28      SHA256:          11c194d9adce90027272c627d7fbf3ba5025ff0f7b26a8333f764e11e1382cf9
29 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\VmApplet
30    Entry last modified: 5/21/2014 7:31 AM
31    SystemPropertiesPerformance.exe
32      SystemPropertiesPerformance.exe
33      Change Computer Performance Settings
34      Microsoft Corporation
35      6.1.7600.16385
36      c:\windows\system32\systempropertiesperformance.exe
37      7/14/2009 2:56 AM
38      MD5:             870726cdcc241a92785572628b89cc07
39      SHA1:            63d47cc4fe9beb75862add1abca1d8ae8235710a
40      PESHA1:          9AD8AD297911A557F5A4E3C6965E7FE0D3E81E88
41      PESHA256:        1A120F51A110F5B92FD9E6DE89BBCFA04377CEBED2CF831C101C8E9A02D7E746
42      SHA256:          1ab77fa1ee0cbe59ca185c228c3c11abeba2b2008a162c91a06d3c40542e7fc6
43 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
44    Entry last modified: 5/21/2014 7:31 AM
45    explorer.exe
46      explorer.exe
47      Windows Explorer
48      Microsoft Corporation
49      6.1.7601.17567
50      c:\windows\explorer.exe
51      2/25/2011 7:24 AM
52      MD5:             332feab1435662fc6c672e25beb37be3
53      SHA1:            5a49d7390ee87519b9d69d3e4aa66ca066cc8255
54      PESHA1:          B52FEBED7846C884D1E2937109DF1A3D70FF7B92
55      PESHA256:        7C21B488DF6CA3D872EC59E1D4BEB781B42BF4CA226F525FD92283B1D7D1B467
56      SHA256:          6bed1a3a956a859ef4420feb2466c040800eaf01ef53214ef9dab53aeff1cff0

Yukarıdaki tabloda bir kısmı gösterilen bu çıktı dosyasını autohash.py scripitne girdi olarak verip Virustotal üzerinden gerekli sorgulamayı yapmasını sağlıyoruz. Bu scriptin düzgün çalışması için aşağıdaki python modüllerinin sistemde yüklü olması gerekiyor.

DATA_TABLE
argparse codecs re requests

Bu modüllerin eksik olması durumunda yukarıdaki script çalışmayacaktır. Eksik olan modülleri pip üzerinden yükleyebilirsiniz. Bunun yanında scriptimizin Virustotal üzerinden sorgu yapabilmesi için bir tane API anahtarına ihtiyacımız var. Bu API anahtarı size otomatize şekilde Virustotal üzerinde sorgulama yapmanızı, şüpheli dosya upload edip sonuçları elde etmenizi sağlar ve kişisel kullanım için ücretsiz olarak bir tane API anahtarı edinebilirsiniz. Bunun için www.virustotal.com sitesini ziyaret edip adınıza bir hesap açmanız yeterli olacaktır. Hesabınız tanımlandıktan sonra Virustotal sitesindeki "My API key" linkini tıklayarak API anahtarınızı alabilirsiniz. Bunu autohash.py scripti içinde yer alan <API_KEY> kısmına yazmanız yeterli olacaktır. Bu işlemleri yaptıktan sonra scriptimiz aşağıdaki gösterildiği gibi kullanabiliriz. Eğer sorgulanacak kayıt sayısı 4'den fazla ile ve public API anahtarı kullanıyorsanız bu durumda dakikada 4 sorgu limitine takılabilirsiniz. Aşağıdaki sonuçları değerlendirdiğimizde autorunsc.exe uygulaması tarafından üretilen çıktıda yer alan uygulamalardna hiçbirinin Virustotal tarafından zararlı olarak tespit edilmediğini söyleyebiliriz.

BASH
1sh-3.2# python autoruns_vtlookup.py -f OtomatikBaslayanlar.txt 
2 c:\windows\system32\rdpclip.exe 
3        25d284eb2f12254c001afe9a82575a81 0 / 51 
4 c:\windows\system32\userinit.exe 
5        bafe84e637bf7388c96ef48d4d3fdd53 0 / 47 
6 c:\windows\system32\systempropertiesperformance.exe 
7        870726cdcc241a92785572628b89cc07 0 / 52 
8 c:\windows\explorer.exe 
9        332feab1435662fc6c672e25beb37be3 0 / 51

İkinci scriptimiz olan md5_vtlookup.py ise girdi olarak içinde md5 değerlerinin satır şeklinde yer aldığı bir dosya ister. Bu dosyayı md5deep ile oluşturabiliriz. Şüphelendiğimiz dosyaları tek bir dizine toplayıp ardından md5deep ile bu dizin içindeki dosyaların md5 değerlerinin hesaplanmasını ve bir dosyaya yazılmasını sağladıktan sonra bu dosyayı scriptimize girdi olarak verebiliriz. Bu script için de API anahtarını girmemiz gerektiğini hatırlatmakta fayda var. İlgili scriptin çalıştırmasına ilişkin örnek ekran görüntüsü aşağıda gösterilmiştir.

exhibit_viewer.exe
Virustotal_02
[EXHIBIT] Virustotal_02

Yukarıdaki çıktıları yorumlarsak SupheliDosya01.exe isimli dosyanın daha önceden Virustotal üzerinden taratılmadığını, buna karşılık diğer üç dosyanın Virustotal üzerinde bir kaydının olduğunu söyleyebiliriz. Virustotal'de kaydı olan dosyalar için kaç antivirüs motorundan kaçının bu şüpheli kodu tanıdığını, McAfee'nin bu şüpheli koda verdiği ismin ne olduğunu ve bu şüpheli koda ilişkin detaylı raporlara hangi adresten ulaşılabileceğini yukarıdaki ekranda yer alan çıktıdan öğrenebiliyoruz.

AUTHOR
Halil Öztürkci

Halil Öztürkci

Cybersecurity expert with 25 years of hands-on experience across the full attack-defense spectrum.

I've spent my career on both sides of the battlefield—investigating breaches through digital forensics, hunting APT groups through threat intelligence, building and leading security operations, dissecting malware, and executing red team engagements. Now I'm focused on the next frontier: LLM security, AI red teaming, and building secure AI/ML pipelines.

From incident response to adversary simulation, from SOC architecture to AI-powered threat detection—I decode complex security challenges and translate them into actionable defense.

enjoyed this? get more like it.