elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
22 Mayo 2012, 22:26  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  [Download] Decoded Cesar Strings
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Download] Decoded Cesar Strings  (Leído 2,703 veces)
skapunky
Electronik Engineer &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.424



Ver Perfil WWW
[Download] Decoded Cesar Strings
« en: 13 Septiembre 2009, 22:30 »

Introducción

Primero decir, que iba a poner este mensaje en Seguridad, aunque luego he recordado que "Análisis y diseño de Malware" contiene la palabra análisis, y aunque poca gente analice todavia quedará gente por aquí interesada.

Muchas veces, he encontrado virus que contienen sus strings cifradas mediante algún método y por curioso que parece podría decir que el 70% utiliza variantes del método Cesar.

Método César

Este metodo de cifrado se remonta a los tiempos de julio cesar (mirar wikipedia para ver el rollo completo) donde en sus escritos tenia una forma bien curiosa para la época de cifrarlos. Esta técnica se conoce hoy dia como Cifrado César, y este consiste en sumar 3 posiciónes exactas en el abecedario cambiando las letras, asi por ejemplo:

a b c d e f g h i ........

original --> a         cifrada ---> d

Aunque bueno, en la actualidad como decía todo esto a evolucionado y ya no solo se utilizan tres desplazamientos sinó los que el usuario quiere además tanto a la derecha como a la izquierda.

Cifrado de strings en virus.

Muchos de los virus que me encuentro como decía, llevan sus strings cifradas para ocultaras de la vista de los usuarios que analícen el gusano o de los antivirus. Para ello siempre se pierde bastante tiempo haciendo el análisis ya que en total hay para desplazar 27 posiciónes.

Aquí un ejemplo de un codigo cifrado sacado de un virus analizado mediante el ollydebugg:

Citar
sdmqdsmH[senrnqbhL[dq`vsenR[TBJG

Comprobando que fuera un caso genérico de cifrado César a mano, perderiamos bastante rato, ya que aparte de que nos podemos liar fácilemnte, hay bastantes casos para comprovar.

En este caso se descubrio, que la cifrado es una generalización de César que en vez de 3 posiciónes simplemente salta una y que luego revierte el resultado. Así que la cadena descifrada  y revertida es la siguiente

Citar
HKCU\Software\Microsoft\Internet

Automatizando

Vistos ya la explicación de este típo de cifrado sencillo pero eficaç,y con la gran cantidad de cadenas cifradas con estos métodos que encuentro decidí crearme un programa para desencriptarlas automáticamente y la verdad que se ahórra mucho tiempo y no hay posibilidad de fallo.

Aquí lo dejaré en descarga para la gente que analíza las cadenas de malware, el programa también se le pueden dar otros usos, incluso también aparte de descifrar puedes cifrar.

Decoded Cesar Strings.

Descargar ( Incluye código fuente)



« Última modificación: 14 Septiembre 2009, 13:50 por skapunky » En línea

Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.186


Se siente observado ¬¬'


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #1 en: 14 Septiembre 2009, 12:39 »

Buen tool ;D

Para la proxima version deberias añadir que lea los ejecutables en busca de cadenas ANSI y UNICODE, como hace el Olly...

Por cierto, no vi el codigo en la descarga... :-\
En línea

skapunky
Electronik Engineer &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.424



Ver Perfil WWW
Re: [Download] Decoded Cesar Strings
« Respuesta #2 en: 14 Septiembre 2009, 12:46 »

Buenas dos cosillas.

1. No puse el codigo porque no sabia seguro que si al no ser un troyano o virus se deberia poner...De todas formas el codigo es muy simple si quieren lo pongo.

2. Habia pensado mejorarlo, de hecho mi idea es muy semejante a una idea que me ha coentado Novlucker por MP y trata de que el programa busque cadenas por si solo mediante un loop en todas las posibles direcciónes y posibles posiciónes. Para ello deberia hacerse una base de datos, con todas las cadénas más comunes que utiliza en general toda clase de malware.

La base de datos se podría hacer en un archivo .dat, por ejemplo porque así además cada usuario puede editarlo con el bloc de notas y añadir si cree que hacen falta más o se le ocurren mas. A la que coincida una cadena, es la que saldría en el label como cadena descifrada.
En línea

Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.186


Se siente observado ¬¬'


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #3 en: 14 Septiembre 2009, 13:16 »

Aunque el codigo sea simple seguro que ayuda a los que se esten iniciando ;)

Mi idea es un poco distinta, sin base de datos....
Código:
http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

Se trata de recorrer todo los bytes del ejecutable y buscar conjuntos de bytes que puedan ser cadenas encriptadas... saldrian conjuntos de bytes que no serian en realidad cadenas de texto, pero al intentar desecriptar se podria ver cuales son los falsos positivios ;D
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #4 en: 14 Septiembre 2009, 13:22 »

Te refieres a algo similar a la opción -b de strings de sysinternals? NUNCA en mi vida había visto que traía esa opción XD
Igual me gustaría ver que idea tienes para implementar eso :P
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

skapunky
Electronik Engineer &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.424



Ver Perfil WWW
Re: [Download] Decoded Cesar Strings
« Respuesta #5 en: 14 Septiembre 2009, 13:51 »

Ya he incluido el código fuente, es de verguenza porque no está optimizado pero lo hice rápido para que fuera funcional, hay una parte de codigo que se repite pero con una operación matematica diferente. Eso puede optimizarse mucho mejor.

Por otro lado, ahra que tengo algo de tiempo intentaré hacer lo de la base de datos, haber que tal queda.

Edito:

Hay otro error que deberia solucionarse, hay una parte de codigo que compruebo que las checkbox no esten marcadas a la vez o desmarcadas a la vez, se deberia añadir que el text de la posición no sea nulo, ya que sinó hay un error en tiempo de ejecución.
« Última modificación: 14 Septiembre 2009, 13:57 por skapunky » En línea

Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.186


Se siente observado ¬¬'


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #6 en: 14 Septiembre 2009, 14:06 »

@Novlucker:
El algoritmo al que me refiero seria algo como esto:
Código
Private Sub Form_Load()
   Dim c       As Variant
 
   For Each c In ReadStringsExe("C:\WINDOWS\SYSTEM32\CALC.EXE", 10, True)
       Debug.Print c
   Next c
End Sub
 
Public Function ReadStringsExe(ByVal sPath As String, Optional ByVal lMinSize As Long = 3, Optional ByVal bDoEvents As Boolean) As Collection
   Dim bvData()        As Byte
   Dim i               As Long
   Dim sTmp            As String
 
   Set ReadStringsExe = New Collection
 
   Open sPath For Binary As #1
       ReDim bvData(LOF(1) - 1)
       Get #1, , bvData
   Close #1
 
   For i = LBound(bvData) To UBound(bvData)
       If (bvData(i) = 10) Or (bvData(i) = 13) Or (bvData(i) > 31 And bvData(i) < 127) Then
           sTmp = sTmp & Chr$(bvData(i))
       Else
           If Len(sTmp) > lMinSize Then ReadStringsExe.Add sTmp
           sTmp = ""
       End If
       If bDoEvents Then DoEvents
   Next i
End Function

No funciona con UNICODE!
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #7 en: 14 Septiembre 2009, 14:22 »

Ya ... ahora si ... de primeras no me di cuenta de que en realidad era sencillo XD, simplemente lees el fichero y cotejas byte a byte que se trate de una letra o salto de línea y lo acumulas en fragmentos de texto  ;D

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

skapunky
Electronik Engineer &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.424



Ver Perfil WWW
Re: [Download] Decoded Cesar Strings
« Respuesta #8 en: 14 Septiembre 2009, 15:04 »

Mmmmm si, podría ser una posibilidad, de hecho es lo mismo que queria hacer yo, pero sin entrar en lo que es el ejecutable en cuestión, para ello requiero del ollydbg para sacar las cadenas...

Bueno...en cuanto desventajas veo las mismas que mi idea, lo único que de esta manera que proponeis el mismo programa abre los ejecutables y no se requiere de un debuger.
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: [Download] Decoded Cesar Strings
« Respuesta #9 en: 14 Septiembre 2009, 15:15 »

Yes ... yo pensaba igual que tu Skapunky, sacar strings con strings.exe para luego revisarlas, pero bueno, así se podría tener una tool más completa, que pueda abrir ejecutables, buscar cadenas, decodificar por fuerza bruta (sin necesidad de establecer el número de desplazamientos a aplicar al cifrado, invertir cadenas, comparar contra una pequeña bbdd de cadenas que hagan referencia a carpetas o llaves de registro conocidas/frecuentes :D ... aunque bueno, como digo esto sería una tool más completa, a diferencia de la primera idea más "chapuza" que se ma había pasado por la cabeza :xD

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Qué preferis: Cifrado cesar o Ensalada cesar?
Foro Libre
Castg! 6 1,019 Último mensaje 1 Agosto 2011, 22:45
por scr21
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines