es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problemas al iterar a través de archivos .yar para análisis de malware.

Cloné algunas reglas de yara de un repositorio a mi directorio /home/student/Downloads/yara-forensics/file. A continuación se muestran varios archivos .yar. También tengo un archivo de malware falso llamado sample.file ubicado en /home/student/Downloads. Quiero recorrer cada uno de los archivos .yar y devolver solo el o los archivos .yar que coincidan con sample.file.

student@desktop:~/Downloads/yara-forensics/file$ ls -l
total 96
-rw-rw-r-- 1 student student 1138 Dec  8 21:18 apple.yar
-rw-rw-r-- 1 student student 6494 Dec  8 21:18 audio.yar
-rw-rw-r-- 1 student student  846 Dec  8 21:18 compressed.yar
-rw-rw-r-- 1 student student  903 Dec  8 21:18 crypto.yar
-rw-rw-r-- 1 student student  178 Dec  8 21:18 dex.yar
-rw-rw-r-- 1 student student  563 Dec  8 21:18 executables.yar
-rw-rw-r-- 1 student student  596 Dec  8 21:18 gif.yar
-rw-rw-r-- 1 student student  344 Dec  8 21:18 gps.yar
-rw-rw-r-- 1 student student 1183 Dec  8 21:18 jpeg.yar
-rw-rw-r-- 1 student student  580 Dec  8 21:18 mem_dumps.yar
-rw-rw-r-- 1 student student 1096 Dec  8 21:18 office.yar
-rw-rw-r-- 1 student student  458 Dec  8 21:18 pdf.yar
-rw-rw-r-- 1 student student  780 Dec  8 21:18 png.yar
-rw-rw-r-- 1 student student  315 Dec  8 21:18 skype.yar
-rw-rw-r-- 1 student student  689 Dec  8 21:18 sqlite.yar
-rw-rw-r-- 1 student student  474 Dec  8 21:18 telegram.yar
-rw-rw-r-- 1 student student  332 Dec  8 21:18 vcard.yar
-rw-rw-r-- 1 student student 8878 Dec  8 21:18 vector.yar
-rw-rw-r-- 1 student student 3636 Dec  8 21:18 video.yar
-rw-rw-r-- 1 student student 1036 Dec  8 21:18 vmware.yar
-rw-rw-r-- 1 student student  491 Dec  8 21:18 win_reg.yar

A continuación se muestra mi script.

#!/bin/bash
for file in $(find /home/student/Downloads/yara-forensics/file -name '*.yar'); 
do test $(yara -c ${file} /home/student/Downloads/sample.file) -gt 0 && echo $file; 
done 2>/dev/null

El problema es que solo devuelve un resultado mostrado a continuación. Debería devolver al menos 6 resultados (compressed, executables, crypto, office, vector y vmware). ¿Qué ocurre con mi script?

student@desktop:/dev$ bash yarbash 
/home/student/Downloads/yara-forensics/file/executables.yar
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con el script está en la condición de prueba $(yara -c ${file} /home/student/Downloads/sample.file) -gt 0. Esta condición solo verifica si la salida del comando yara es mayor que 0, lo que significa que hay al menos una coincidencia. Sin embargo, no verifica si la coincidencia es con el archivo sample.file específico. Para solucionarlo, necesitamos usar el comando grep para buscar el nombre de archivo en la salida de yara.

    Aquí está el script actualizado:

    #!/bin/bash
    for file in $(find /home/student/Downloads/yara-forensics/file -name '*.yar'); 
    do 
        if yara ${file} /home/student/Downloads/sample.file | grep -q "sample.file"; then 
            echo ${file}
        fi
    done 2>/dev/null
    

    Este script recorre cada archivo .yar y ejecuta el comando yara con el archivo sample.file especificado. Luego, la salida se canaliza a grep, que busca el nombre de archivo sample.file. Si hay una coincidencia, se imprime el nombre de archivo del archivo .yar.

    Nota: Eliminé la opción -c del comando yara porque no era necesaria para esta tarea.

Comments are closed.