file-extraction/scripts/plugins/store-files-by-sha256.zeek
Patrick Kelley e92000e5b0 Initial
2025-05-07 14:10:34 -04:00

39 lines
791 B
Plaintext

@load ../__load__
@load policy/frameworks/files/hash-all-files
event file_sniff(f: fa_file, meta: fa_metadata)
{
if ( meta?$mime_type && !hook FileExtraction::extract(f, meta) )
{
if ( !hook FileExtraction::ignore(f, meta) )
return;
Files::add_analyzer(f, Files::ANALYZER_SHA256);
}
}
event file_state_remove(f: fa_file)
{
if ( !f$info?$extracted || !f$info?$sha256 || FileExtraction::path == "" )
return;
local orig = f$info$extracted;
local split_orig = split_string(f$info$extracted, /\./);
local extension = split_orig[|split_orig|-1];
local dest = fmt("%s%s-%s.%s", FileExtraction::path, f$source, f$info$sha256, extension);
local cmd = fmt("mv %s %s", orig, dest);
when ( local result = Exec::run([$cmd=cmd]) )
{
}
f$info$extracted = dest;
}