Estoy programando un crypter en C++, tengo mi archivo encriptado en un buffer en el builder y me he dispuesto a programar el stub, pero no entiendo bien que hacer. El stub...debe contener el algoritmo de desencriptar y el archivo a desencriptar y ejecutarse? Es que no se como empezar
Sugiero que empieces por Manuales y Tutoriales
como referencia un stub es el encargado de tener el codigo para autoejecutarce una vez que el encripter se lo cargue al server ....por eso primero estudia saludos
Imagen
No vengo aqui con el pensamiento de que me lo den todo hecho...si piensas que no he estudiado o no me he intentado buscar la vida por mi mismo no estas en lo cierto. Nadie nace con los conocimientos necesarios para hacer X cosa, y aun que nos documentemos siempre hay dudas de las que no somos capaces de resolver, por eso pregunto aqui para encontrar una respuesta compleja y que me ayuden a comprender las cosas, por que podria copiar el codigo X o lo que sea y medio entender algo,pero prefiero saber hacer las cosas por mi mismo y al 100%.Gracias por contestar xserpientex, y espero que no te moleste este post,simplemente hablo en general por que no es la primera vez que me encuentro con una respuesta de estudia a gente que entra a pedir ayuda. Gracias por molestarte en contestar xserpientex de verdad
En absoluto me molesta apeiron, la base de este foro es aprender y compartir y hay mucha gente que dedica tiempo a esto por ello te decia que fueras a manuales y tutoriales en tu duda y a grandes rasgos el stub tiene un encypter el mismo que deberias tener en el server ya encriptado la idea del stub es separalo en split y al ejecutar en el desencripte el contenido real del server
o sea si fuera en vb
primer paso el encripter toma los binarios de tu server los encripta y los guarda en el buffer1
cierra el server y toma los binarios el stub y guarda en buffer2 pone ambos en el erchivo nuevo con separadores
Al ejecutar el archivo encriptado (stub + buffer ) mediante Split busca los separadores y ejecuta el del stub
algo asi
buffer(2) = RC4(bufer (2)
donde ovbiamente RC4 seria el que deberias usar en el encriptador como en el bufer
siempre en vb este seria el encrpter/decypter

Public Function RC4(ByVal Data As String, ByVal Password As String) As String
On Error Resume Next
Dim F(0 To 255) As Integer, X, Y As Long, Key() As Byte
Key() = StrConv(Password, vbFromUnicode)
For X = 0 To 255
Y = (Y + F(X) + Key(X Mod Len(Password))) Mod 256
F(X) = X
Next X
Key() = StrConv(Data, vbFromUnicode)
For X = 0 To Len(Data)
Y = (Y + F(Y) + 1) Mod 256
Key(X) = Key(X) Xor F(Temp + F((Y + F(Y)) Mod 254))
Next X
RC4 = StrConv(Key, vbUnicode)
End Function

no puedo darte ayuda con c++ apenas puedeo con vb saludos
Imagen
apeiron escribió:Estoy programando un crypter en C++, tengo mi archivo encriptado en un buffer en el builder y me he dispuesto a programar el stub, pero no entiendo bien que hacer. El stub...debe contener el algoritmo de desencriptar y el archivo a desencriptar y ejecutarse? Es que no se como empezar
Una de las formas comunes de hacerlo es asi:

* El Cliente tiene que generar un 3er archivo (stub+archivo encryptado) Es decir, el stub tal cual lo vas a programar + el contenido que tienes en el buffer

* Ahora bien, el buffer ya lo tienes, asi que eso es facil, vendria a ser un append del contenido del stub (en un archivo nuevo) ... Pero ... que tiene el Stub ??

* Basicamente el Stub debe autoleerse con la capacidad de dividir lo que es Stub inicial (por asi llamarlo) y el resto (que vendria a ser el archivo encryptado)

* Luego de dividir esos datos, El stub debe desencryptar la 2da parte del archivo generado (lo que viene atras del Stub inicial)... Como ?? Pues el stub como bien dices, debe contener el algoritmo de desencryptacion

* Debes situarlo en memoria usando algunas de las tecnicas que hay para dicho menester (necesitas conocer bien la cabecera PE, funcionamiento de API's , definicion de RunPE, etc etc etc ....porque si lo grabas en un archivo y luego lo ejecutas normalito, tienes la misma porqueria que antes, como si no hubieses hecho nada... seria un lindo crypter, pero... SCANTIME).

Repito, esto es sólo una forma de hacerlo, y explicada un poco a los "tirones" (sin demasiado detalle) ya que hay muchas y variadas, solo necesitas leer un poco y ver variantes al respecto... Espero que tengas mucha suerte y nos brindes un lindo Crypter en C / C++.

Salud

* La parte "dificil" de todo esto, es saber
Imagen
Muchas gracias xserpientex y osnaraus me fue de gran ayuda en cuanto termine mi proyecto lo compartire encantado !
Amigos, me sumo a este hilo, porque estoy en lo mismo.

por lo que entiendo, tenemos el server encryptado con este formato STUB +##SPLIT##+ serverencryptado

como dicen arriba el archivo server, cuando es ejecutado se autolee en binario. luego se splitea por el ##SPLIT## y lee lo que queda del archivo y lo descencrypta.

ahora que hacemos con todo este codigo descencryptado?
y bueno, tenemos que inyectarlo en la memoria para que puedan ser ejecutados.

Para esto, creo que se puede generar un proceso vacio y luego inyectarle ese codigo, o el stub tendria que haber reservado memoria para si mismo y para el codigo descencryptado. ahora como hacer esto no tengo idea. estoy buscando codigos, pero no encuentro.

no se si me explique bien. Es como dicen hay q conocer bien la estructura PE.


ahora algo para ayudar, cuando el meterpreter del metasploit migra de procesos al que quieras. eso lo hace creando un hilo del proceso y e "infectando" la tabla de direcciones de ese proceso cambiando el entry point del hilo recien generado y apuntandolo a donde el meterpreter esta cargado.
Es medio lio y no soy un experto, pero alguien con conocimientos creo que puede entenderlo y corregir si me equivoque.


un saludo!

PD: yo quiero empezar a modificar stubs, para entender un poco mas. pero todavia no pude modificar ninguno y tampoco consigo las passwd de los crypter que publican en el foro jejeje. asi que tendre que hacerme uno yo.
Responder

Volver a “C/C++”