Hay una campaña en curso de envío de virus/troyanos en mensajes de correo electrónico falsificados como si fueran del HSBC Bank, Lloyds TSB, Amazon, etc.
El troyano/virus se envía en una aplicación/archivo adjunto zip.
Guardé uno de esos archivos zip y lo descomprimí en un directorio de mi propiedad con permiso 700 en un sistema de archivos ext4.
Para escanearlo con clamscan
, avgscan
y avast
, guardé el archivo zip y descomprimí su contenido en un directorio "virus":
File: /home/users/miller/virus
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 809h/2057d Inode: 14155801 Links: 2
Access: (0700/drwx------) Uid: ( 1001/ miller) Gid: ( 1000/ users)
Access: 2013-10-03 12:57:47.484923866 +0200
Modify: 2013-10-03 12:57:46.684879168 +0200
Change: 2013-10-03 12:57:46.684879168 +0200
Birth: -
Como era de esperar, puedo cambiar el nombre del archivo o eliminarlo. El archivo tiene permisos 600 y es de mi propiedad:
$ stat virus.exe
File: virus.exe
Size: 61440 Blocks: 120 IO Block: 4096 regular file
Device: 809h/2057d Inode: 14155809 Links: 1
Access: (0600/-rw-------) Uid: ( 1001/ miller) Gid: ( 1000/ users)
Access: 2013-10-03 12:46:37.194541504 +0200
Modify: 2013-10-01 22:01:44.000000000 +0200
Change: 2013-10-03 13:19:09.263393591 +0200
Birth: -`
Pero cualquier intento de leer el archivo o copiarlo falla.
$ file virus.exe
virus.exe: writable, regular file, no read permission`
cp virus.exe copy.exe
cp: cannot open virus.exe for reading: Operation not permitted`
lsattr virus.exe
lsattr: Operation not permitted While reading flags on virus.exe`
Incluso intentar esto como root falla.
Entonces, ¿cómo es posible hacer que un archivo sea ilegible aunque tenga "permiso rw" y cómo se puede hacer legible para escanearlo con , avgscan
etc. ?clamscan
avast
* CORRECCIÓN** (el comentario anterior era para un archivo zip incorrecto)
Anexo: clamscan
Al ejecutar el archivo zip adjunto guardado, no se detecta ningún virus, troyano o malware, probablemente porque el archivo ejecutable interno está en un estado "ilegible".
clamscan virus.zip virus.zip: OK
Del mismo modo avgscan
y avast
no logra detectar ningún malware.
Esto resalta la importancia de poder leer el archivo exe extraído y muestra que clamscan
no puede detectar malware.
El nombre original del archivo zip es ORDER-N:N-1414559-3015133.zip
y el nombre original del archivo ejecutable es Order details.exe
.
*INFORMACIÓN ADICIONAL IMPORTANTE*
En resumen, si el usuario miller descomprime el archivo zip, se crea un archivo exe:
60 -rw------- 1 miller users 61440 2013-10-01 22:01 Order details.exe
pero esto es ilegible ni para el usuario miller ni para el root.
SIN EMBARGO, si el root descomprime el archivo zip, el root puede leer el archivo exe:
0 -rw-r--r-- 1 root root 61440 2013-10-01 22:01 Order details.exe
El comando de archivo muestra lo siguiente:
[15:57] koala:{virus/}# file Order\ details.exe
Order details.exe: PE32 executable (GUI) Intel 80386, for MS Windows
Entonces, ¿qué se establece que impide que el usuario normal y el root lean el archivo descomprimido por el usuario?
El archivo descomprimido por root:
$ lsattr Order\ details.exe
-------------e-- Order details.exe
La página del manual chattr
explica:
The 'e' attribute indicates that the file is using extents for mapping
the blocks on disk. It may not be removed using chattr(1).
Por lo tanto, en los sistemas de archivos ext2/3/4 existe una situación catch22: la falta de legibilidad del archivo.NO PUEDOpuede cambiarse, y la solución es descomprimir el archivo zip como raíz para evitar crear el archivo descomprimido con el atributo "e", ya que la versión de descompresión de Linux no tiene un interruptor para ignorar atributos.
Si el usuario descomprime el archivo zip en un sistema de archivos XFS, entonces es legible, porque XFS no admite el mecanismo de configuración de atributos.
Y cuando avgscan
se ejecuta en el archivo exe:
$ avgscan Order\ details.exe
AVG command line Anti-Virus scanner
Copyright (c) 2013 AVG Technologies CZ
Virus database version: 3222/6719
Virus database release date: Thu, 03 Oct 2013 06:11:00 +0200
Order details.exe Found Luhe.Fiha.A
Files scanned : 1(1)
Infections found : 1(1)
Entonces la moraleja de esta historia esNo confíes avgscan
, avast
o clamscan
sobre encontrar siempre malware en archivos zip: ¡realice siempre el análisis en el ejecutable descomprimido!
Respuesta1
Por lo que puedo decir, la prueba irrefutable es este comando:
lsattr virus.exe
lsattr: Operation not permitted While reading flags on virus.exe
Básicamente, esto significa que el sistema de archivos subyacente no es EXT2/3/4. Dado que los permisos normales a veces pueden no ser un factor y es posible que los atributos del archivo tampoco sean compatibles.
Ejemplo
Tengo un recurso compartido montado en NFS de la siguiente manera.
$ pwd
/home/sam
Si corro lsattr
en contra de él:
$ lsattr /home/sam/ 2>&1 | head -3
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/dead.letter
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/bashrc
lsattr: Inappropriate ioctl for device While reading flags on /home/sam/phillip_phillips_home.mp3
Supongo que el sistema de archivos es lo que le niega el acceso a él.