====== virustotal======
[[linux:linux|{{ :dokuwiki:tux.png?120|}}]]
===== context=====
dit document beschrijft de installatie en werking van virustotal op ubuntu.
===== algemeen =====
* de goto place voor malware researh
* vt-cli is de CLI waarmee je ahv API-key de website kunt bevragen.\\ Of zoals ze het zelf zeggen: //a tool designed for those who love both VirusTotal and command-line interfaces//
de Public API heeft een quotum van 4queries/minuut. LET DUS op als je loops gebruikt om veel bestanden te bevragen.
===== installatie =====
* maak een account aan op Virustotal.\\ In je profielpagina vind je de API-key die je nodig hebt om VirustTotal te bevragen via je CLI
* download de tool van de [[https://github.com/VirusTotal/vt-cli/releases|Github pagina]]:\\ ''cd /tmp && wget https://github.com/VirusTotal/vt-cli/releases/download/0.10.0/Linux64.zip''
* pak het bestand uit:\\ ''unzip -x /tmp/Linux64.zip -d /usr/local/bin''
* stel Bash completion in:\\ ''mkdir /etc/bash_completion.d && vt completion bash > /etc/bash_completion.d/vt''
* start vt en geef je API-key op:\\ ''vt init''{{ :linux:virustotal.png?400 |}}
===== werking =====
* elk type zoekactie heeft een eigen **trefwoord**: file, url, domain, ip, scan, search
* daarop zijn een aantal **commando's** mogelijk: ''vt file contacted_ips '', bv
* je kan je resultaten **filteren** ahv:
* -x: exclude pattern
* -i: include pattern
* voorbeeld: ''vt file d7bb40e4858211167b8e18c41f85fea02fe643f1211903b283b829db9c9f4b92 -i last_analysis_results'': geeft enkel resultaten laatste analyse weer.
* voorbeeld: ''vt file d7bb40e4858211167b8e18c41f85fea02fe643f1211903b283b829db9c9f4b92 -i names'': geeft de namen weer waaronder het bestand nog bekend is.
* waarden uit **sub-velden** worden gescheiden door een 'punt'
* voorbeeld: ''vt file d7bb40e4858211167b8e18c41f85fea02fe643f1211903b283b829db9c9f4b92 -i last_analysis_results.Kaspersky'': geeft enkel resultaten van Kaspersky's laatste analyse weer.
* voorbeeld: ''vt file d7bb40e4858211167b8e18c41f85fea02fe643f1211903b283b829db9c9f4b92 -i signature_info.signers'': geeft de ondertekenaars van certificaat weer.
* **meerdere includes** worden gescheiden door een 'komma' (zonder trailing spatie!)
* voorbeeld: ''vt file d7bb40e4858211167b8e18c41f85fea02fe643f1211903b283b829db9c9f4b92 -i last_analysis_stats,last_modification_date'': laatste analyse en laatste wijziging
* **interessante** filter, lijkt me:\\ ''vt file -i creation_date,first_seen_itw_date,first_submission_date,last_analysis_date,last_analysis_stats,last_submission_date,meaningful_name,names,sha256,signature_info.verified,trid''
==== bestand ====
bestand opzoeken ahv hash:''vt file ''\\ vb: ''vt file `sha256sum setup.exe|awk '{print $1}'`}` -i last_analysis_date,last_analysis_stats''\\
vb: ''vt file contacted_ips|contacted_domains|contacted_urls ''
=== standaard ===
''vt file `sha256sum ` -i creation_date,first_seen_itw_date,first_submission_date,last_analysis_date,last_analysis_stats,last_submission_date,meaningful_name,names,sha256,signature_info.verified,trid''
=== groep bestanden ===
''for file in `ls *.exe`; do echo $file && vt file `sha256sum $file` -i _id,sha256,last_analysis_date,last_analysis_stats.malicious,last_analysis_stats.suspicious; done| tee -a VTAnalysis.txt''
==== scan ====
=== bestand ===
bestand uploaden voor analyse: ''vt scan file ''\\ vb:''vt scan file /tmp/elex_setup.exe\\ /tmp/elex_setup.exe ODUwYmNiYmViZTJiOGQwMDM0Nzg3NDhmYjEwZDQwNmI6MTY0MTE1ODgwNQ==''\\
daarna kan je de analyse opvragen: ''vt analyse <_id>''\\ vb: ''vt analysis ODUwYmNiYmViZTJiOGQwMDM0Nzg3NDhmYjEwZDQwNmI6MTY0MTE1ODgwNQ==''
=== groep bestanden ===
''for file in `ls *.exe`; do echo $file && vt scan file $file; done| tee -a VTUpload.txt''
==== domain====
domain info opzoeken: \\ ''vt domain ''
=== standaard ===
''vt domain -i last_analysis_stats,last_modification_date,last_dns_records,last_https_certificate.extensions.subject_alternative_name,last_https_certificate.issuer,last_https_certificate.validity,whois''\\
last_modification_date is laatste scantime van VT.\\ Zorg dat die recent is, anders kijk je naar oudated info (bv. rond certficataat vernieuwing, enzo)
=== subdomeinen ===
''vt domain subdomains _id'':\\ geeft alle gekende subdomeinen weer.
==== IP ====
''vt ip ''
=== standaard ===
''vt ip -i as_owner,continent,country,network,reputation,whois''
==== URL ====
''vt url ''\\ indien deze niet gekend is: ''vt scan url ''\\
vb: ''vt scan url koe.net/stier/os.html\\
koe.net/stier/os.html u-02bd49629925820204837b7db6303e7f6180c7a7d586de9ee3aaede9ac046f24-1641223372''
=== standaard ===
''vt url -i categories,first_submission_date,html_meta,last_analysis_date,last_analysis_stats,title''
==== analysis ====
vraag analyse op ahv unieke id, meestal nadat je ''vt scan file/url'' hebt uitgevoerd.\\
''vt analysis <_id>'':\\
=== standaard ===
''watch -d vt analysis <_id>''
===== audit =====
* elke API call die je maakt wordt gelogd: **Account** > **DEVELOPER DASHBOARD**{{ :linux:shodandashboard.png?400 |}}
===== meer info =====
[[https://virustotal.github.io/vt-cli//|vt-cli]]
{{tag>Linux virustotal digital_forensics}}