微步沙箱分析-Day1
算是一篇简单的水文,主要是吐槽以前有人提出的 微步沙箱里面有CrowdStrike. 也不知道从哪看来的文章就开始信口开河.
纪念某泄露版CS
正文部分 在查看进程中,总是能发现微步把奇奇怪怪的.exe塞到 C:\Program Files\
和C:\Program Files (x86)\
中
以上进程甚至有Viper和微点(微点都死多少年了还能被拉出来鞭尸)
可以基本判断微步的沙箱会在两个程序目录放一堆假的exe用于进程欺诈.而且文件大小一致,开始令人怀疑是不是同一个文件了.于是糊了一个程序来测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 use std::fs::File;use std::io::{BufReader, Read};use std::path::Path;use sha2::{Digest, Sha256};use walkdir::WalkDir;use std::process::Command;fn calculate_sha256 (file_path: &Path) -> String { let file = File::open (file_path).expect ("Failed to open file" ); let mut reader = BufReader::new (file); let mut hasher = Sha256::new (); let mut buffer = [0 ; 1024 ]; loop { let count = reader.read (&mut buffer).expect ("Failed to read file" ); if count == 0 { break ; } hasher.update (&buffer[..count]); } let hash = hasher.finalize (); let hash_string : String = hash.iter ().map (|byte| format! ("{:02x}" , byte)).collect (); hash_string }fn main () { let dir_path = "C:\\Program Files\\" ; let walker = WalkDir::new (dir_path).min_depth (1 ).max_depth (1 ).into_iter (); for entry in walker.filter_map (|e| e.ok ()) { if entry.file_type ().is_file () { let file_path = entry.path (); let hash = calculate_sha256 (file_path); println! ("{}: {}" , file_path.display (), hash); } } let _ = Command::new ("cmd.exe" ).arg ("/c" ).arg ("pause" ).status (); }
不得不承认,微步还是挺灵的.这回又给你塞了点安全狗
所以绕过微步的灵车技巧可能就是通过判断哈希是否相同来搞了