====== 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}}