Descifrado del troyano PGPcoder


Desvelamos los detalles del algoritmo utilizado por PGPcoder, un troyano que cifra los archivos de los sistemas que logra infectar y solicita dinero a los usuarios afectados si quieren volver a restaurarlos.





Como ya comentamos en una entrega anterior en Hispasec, aunque el
nombre del troyano podía llevar a confusión, el algoritmo de cifrado
de PGPcoder no era robusto, y permitía descifrar los archivos de
forma automática sin sucumbir al chantaje de su autor.

La semana pasada propusimos un reto consistente en encontrar una
solución genérica que permitiera descifrar los archivos modificados
por PGPcoder partiendo del criptoanálisis de una muestra, para lo cual
facilitamos un archivo de texto cifrado por el troyano y otro donde
se podía encontrar la versión original en texto claro.

La solución debería poder descifrar cualquier archivo modificado por
el troyano, de hecho cada propuesta de nuestros lectores fue probada
con una muestra real, en concreto con una hoja de cálculo que había
sido afectada por PGPcoder.

Apenas unas horas después de publicar la noticia recepcionamos las
primeras soluciones, entre los que destacamos a los cinco primeros
según orden de llegada:

1. Antonio Izquierdo Manzanares
Grupo de Seguridad T.I y C. Dep. Informática
Univ. Carlos III de Madrid

2. Francisco Cuevas Pérez
Gestión de RR.HH.

3. David Guerrero López
Dep. de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

4. Jaume Martínez Martínez
R&D Engineer

5. Angel Goitia Fuertes
Consultor Senior en Altran SDB


En todas estas primeras soluciones de primera hora se pudo observar
claramente que los algoritmos utilizados, basados en bloques de
valores fijos, habían sido construidos a partir del análisis de la
muestra del archivo cifrado facilitado, tal y como se proponía en
el reto, y no fruto de aplicar ingeniería inversa al código del
troyano.

El hecho de que, además de la efectividad, se premiara la rapidez en
la que se hiciera llegar la solución, también fue en contra de que
los primeros participantes no dedicaran muchos esfuerzos en encontrar
una relación matemática entre los diferentes valores utilizados.

En el propio código de la primera solución, comentado con detalle
por Antonio Izquierdo, podemos encontrar una primera descripción del
algoritmo de cifrado: "PGPcoder cifra los ficheros haciendo una
operación de suma a cada byte. Cada vez que cifra un byte cambia la
clave siguiendo una secuencia predeterminada para realizar dicho
incremento. Esa secuencia de incrementos consta de 16 elementos,
tras los cuales vuelve a repetirse. Cada 4 secuencias (64 bytes) se
repiten las claves de cifrado."

PGPdecoder-Antonio_Izquierdo.zip (clave: hispasec)
http://www.hispasec.com/directorio/laboratorio/pruebas/PGPdecoder-Antonio_Izquierdo.zip

Una mirada al código del gusano simplifica mucho la tarea, ya que se
puede observar que el cifrado de PGPcoder se limita a realizar una
operación de suma a cada byte del archivo original, comenzando el
bucle con la clave 0x3A y modificando su valor para cada uno de los
bytes restantes, multiplicando en cada ocasión la clave anterior por
0x25 y sumándole 0x5C.

Desde PandaLabs, responsables de que Panda fuera uno de los pocos
motores antivirus que incluyera entre sus firmas la recuperación de
archivos cifrados por PGPcoder, también nos hicieron llegar el
siguiente ejemplo:

"Suponiendo que tenemos en 'buffer' el contenido del fichero a
desencriptar y en 'buffer_size' el tamaño del mismo, el algoritmo en
cuestión sería el siguiente:

key = 0x3A;

for (int i = 0; i < buffer_size; i++)
{
buffer[i] = buffer[i] - key;
key = key * 0x25 + 0x5C;
}

Como puede observarse se trata de un algoritmo clásico. A cada byte
de información se le substrae o se le suma -para desencriptar o
encriptar respectivamente- un valor determinado que comienza con una
constante inicial y es recalculado en cada iteración usando su valor
anterior."

Recibimos alguna solución utilizando este algoritmo 'optimizado',
como es el caso de Daniel Pérez Álvarez, estudiante de Ingeniería
Informática, que reconoció haber partido del acceso al código de
PGPcoder en lugar de proceder al criptoanálisis de las muestras
proporcionadas.

pgpdecoder Daniel Pérez:
http://www.hispasec.com/directorio/laboratorio/pruebas/pgpdecoder.zip

Afortunadamente en esta ocasión ha sido posible proponer este reto
gracias a que el autor del troyano no ha utilizado criptografía seria
y una estrategia más robusta, ya que de lo contrario podría ser
materialmente imposible lograr una solución genérica y automática
que fuera efectiva.

Por último agradecer a los participantes su interés, que recibirán en
breve una camiseta de Hispasec como premio simbólico por su dedicación,
y emplazaros a todos hasta el próximo reto.

Más información:

01/06/2005 - El talón de Aquiles de PGPcoder, el troyano chantajista
http://www.hispasec.com/unaaldia/2412


Fuente:
Bernardo Quintero
hispasec.com



Otras noticias de interés:

Cambio del Huso horario en Venezuela
Mediante el sistema internacional, se dividió el planeta en franjas de 15 grados de ancho. Los 360 grados de toda la circunferencia de la Tierra quedan divididos en 24 franjas, correspondiendo una hora a cada una de ellas. Por tanto, cada huso tiene...
Los 3 navegadores, Java y Adobe vuelven a caer en el Pwn2Own
Pwn2Own, uno de los concursos de hacking más conocidos, ha vuelto a repartir miles de dólares en premios por demostrar cómo algunos de los programas que más utilizamos tienen vulnerabilidades....
Un paro momentaneo en Internet
El día lunes 23 pasado Internet fue objeto de un ataque bastante sosfiticado y con una duración de importancia relevante. ...
Scam a través de spam y documentos PDF
En las últimas semanas las casillas de correo de los usuarios están siendo bombardeadas por correos electrónicos del tipo spam que responden a viejas técnicas empleadas para el envío masivo de correo basura....
Microsoft publicará dos boletines de seguridad el próximo martes
En su ciclo habitual de actualizaciones los segundos martes de cada mes, Microsoft ha anunciado que en esta ocasión se esperan dos boletines de seguridad. Afectan a toda la gama del sistema operativo Windows y Office además de Microsoft Visual Basi...
Tecnología empuja a la sociedad a un umbral comunicacional
En The Be Mobile Conference, especialistas pronosticaron cambios profundos en los modos en que los individuos se relacionan entre sí y con el mundo. ...
Otro fallo de seguridad en #Facebook
Se ha descubierto un fallo de seguridad en Facebook que podría permitir a una persona enviar a cualquier usuario de la red social aplicaciones maliciosas....
AV-Tes: Dudas sobre efectividad de antivirus gratuitos en #Android
Los expertos en seguridad de la organización AV-Test han llevado a cabo pruebas en las soluciones de seguridad para Android y han llegado a la conclusión de que no protegen de forma adecuada a los usuarios....
Sun certificará a UBUNTU
Sun Microsystems ha anunciado que certificará la compatibilidad de sus servidores con el software de la distribución Linux....
McAfee detecta el mayor ciberataque de la historia
La empresa de antivirus McAfee ha informado sobre un ataque masivo que ha afectado a 72 organizaciones de diversos países y se ha convertido en el mayor hasta la fecha....

Brindanos
un o una


Redes Sociales

Publicidad


Gana Bitcoins desde tu casa

Categorías


Planeta Vaslibre

Blog Roll




Nube de tags

  • anonimato
  • anonimo
  • antivirus
  • apache
  • blog
  • bsd
  • bug
  • centos
  • chrome
  • cifrado
  • computer
  • debian
  • descifrado
  • exploits
  • fedora
  • fice
  • firefox
  • forense
  • freebsd
  • gentoo
  • github
  • gnome
  • gnu
  • gpl
  • gtk
  • hack
  • hacking
  • hosting
  • informatica
  • internet
  • isos
  • libre
  • licencias
  • linux
  • linuxmint
  • lxde
  • micros
  • mint
  • mit
  • mozilla
  • mysql
  • noticia
  • opensource
  • pgp
  • pgpcoder
  • php
  • sabayon
  • seguridad
  • system
  • tecnologia
  • thunar
  • thunderbird
  • tor
  • troyano
  • troyanos
  • tware
  • ubuntu
  • underground
  • vaslibre
  • virus
  • viserproject
  • vivaldi
  • vulnerabilidades
  • web
  • website
  • windows
  • xanadu
  • xfce
  • xombra