bueno , tengo el escritorio lleno de ejemplos pero todos me funcionan en delphi7, y cuando los paso a delphi2010 estan llenos de errores
quiziera que alguien me enseñe a inyectar mi codigo(probe el programa de fakedor pero sin resultado )
agradecido por demas si me ayudan ,mientras tanto sigo estudiando este tema
paresco malo ,pero soy bueno
Si te funcionan en delphi7 y no en 2010 seguramente sea por el cambio a unicode, ten en cuenta que a partir de 2010 string = widestring.
Imagino que con lo del programa de Fakedoor te refieres a su ejemplo de inyección de código sin dll. Si no te funciona eso es que algo estas haciendo mal porque funcionar funciona.
Intenta empezar por inyectar un simple showmessage y a partir de ahí sigue.
Te aconsejo que uses el debugger del ide para ver que valores van cogiendo las variables y que uses ollydbg a partir de la inyección para ver lo que estas inyectando así sabrás si el problema esta antes de la inyección o después.

Saludos.
Todos los refranes deberían acabar en , patada en los cojones ...
Hola Podrías inyectar estos OPCODE. sonde un MessageBox.

Código: Seleccionar todo

Local Opcode = "0xFC33D2B23064FF325A8B520C8B52148B722833C9B11833FF33C0AC3C617C022C20C1CF0D0"
	$Opcode &="3F8E2F081FF5BBC4A6A8B5A108B1275DA8B533C03D3FF72348B527803D38B722003F333C941AD03C381384765745075F4"
	$Opcode &="817804726F634175EB8178086464726575E2498B722403F3668B0C4E8B721C03F38B148E03D35233FF576861727941684C6962"
	$Opcode &="72684C6F61645453FFD2683332010166897C2402687573657254FFD0686F7841018BDF885C24036861676542684D6573735450FF54"
	$Opcode &="242C57685E2E5E218BDC57535357FFD068657373018BDF885C24036850726F63684578697454FF742440FF54244057FFD0C3"

claro pásalos a un byte array en delphi e inyectalo.


también puede crearlo en threads para probar que los OPcode o tu función funciona correctamente.



saludos
Imagen
opcodes..¿y eso con que se come? (voy a verlo)
la inyeccion es un tema complicado y no le estoy dando en el clavo
velario sacame esta duda el programa de fakedoor inyeccion sin dll
ejecuta un exe cualquiera que le pasemos como explorer.exe?
por que a mi no me funciona(perdon el programa que le paso al inyector si se ejecuta, el problema es que se ejecuta sin las credenciales de explorer.exe) .

Mostrar/Ocultar

y lo llamo asi

Código: Seleccionar todo

procedure TForm1.Button1Click(Sender: TObject);
begin
inyectar;
end;
ya termine la parte del bypass uac referido a lo que no es inyeccion
para probarlo si quieren deben ejecutarlo como admin (que vendria a hacer la inyeccion que no tiene, es solo a modo de ejemplo)
[Enlace externo eliminado para invitados]
esta en modo consola y hace lo suiguiente

tiene como recursos la dll falsa y block.exe(es el programa mio que deja sin internet el pc por 10 segundos ,y requiere uac)
al ejecutarlo (como administrador)
extrae los recursos a temp y copia la dll a sistem32\sysprep
verifica que existe la dll falsa en el directorio y ejecuta sysprep.exe que carga la dll falsa(la dll ejecuta block.exe que esta en folder temp)
sleep(1000);
y elimino la falsa dll para evitar problemas
el programa no esta empacado asi que pueden verlo por donde quieran
saludos
paresco malo ,pero soy bueno
muy ofuscado escribió: velario sacame esta duda el programa de fakedoor inyeccion sin dll
ejecuta un exe cualquiera que le pasemos como explorer.exe?
por que a mi no me funciona(perdon el programa que le paso al inyector si se ejecuta, el problema es que se ejecuta sin las credenciales de explorer.exe) .

Me parece que no lo estas entendiendo y te estas liando un poco.

Cuando inyectas código directamente a un programa, no significa que si inyectas un shellexecute, el exe que ejecutes tenga las credenciales/permisos/etc del programa al que estas inyectando.

Lo que haces es que "tu" código lo ejecute otro programa (al que estas inyectando). Es decir, tu código funciona y funciona bien, hace lo que se supone que tiene que hacer, hace que explorer.exe ejecute otro programa, sin mas.

Para aprovechar el "fallo" para el uac, tienes que programar una función que (una vez inyectada) haga que explorer.exe (o el programa que sea) use esa pequeña ventaja de permisos que tiene para poder crear objetos com y bla bla bla etc (esta todo explicado y requete explicado en el POC).

Espero que así lo entiendas, que te des cuenta que no es cuestión de hacer copy&paste de código que vas encontrando por ahí, primero tienes que "entender" lo que quieres hacer y después programarlo. Si no entiendes bien lo que quieres hacer no conseguirás nada y probando código de otros modificando una linea no vas a entender nada, no sabrás como ni porque hace las cosas que hace. A parte, te aconsejo que por lo menos te leas un par de manuales de asm para poder depurar la inyeccion porque solo así sabrás si tu código funciona bien o mal y por que y donde falla si no nunca sabras lo que estás haciendo mal.

Saludos.
Todos los refranes deberían acabar en , patada en los cojones ...
ahora caigo sobre el tema de la inyeccion,
estoy revizando un code de inyeccion con argumentos como lo hace el poc
por ahi va el tema.
el ifileopearion de copiar y eliminar ya lo manejo
es cierto no todo es copy paste pero , pero de ves en cuando busco info en msdn, me ayudo a entender los SetOperationFlags
gracias velario
proba mi ejecutable y decime como va.
lo de asm no me gusta , mejor le doy el codigo a pink (que me parece que algo entiende) y que lo depure,
"si alguien quiere coperar en el codigo que me avise y le envio el source"
saludos
paresco malo ,pero soy bueno
muy ofuscado escribió: lo de asm no me gusta , mejor le doy el codigo a pink (que me parece que algo entiende) y que lo depure,
"si alguien quiere coperar en el codigo que me avise y le envio el source"
saludos
Pues te debería gustar porque a parte de entender que es lo que le estas inyectando al ejecutable, también sirve para pasar cualquier función a opcodes, con todo lo que ello conlleva.
Todos los refranes deberían acabar en , patada en los cojones ...
gracias por la ayuda a los dos.
encontre referencias para comenzar desde cero,
[Enlace externo eliminado para invitados]
  • inyeccion sin dll
    ----
    Aquí la cosa se complica. Las diferencias entre un método y otro son:
    - Ahora no podemos utilizar cadenas de texto directamente como argumentos a funciones. Ya veremos por qué.
    - No podemos llamar a ninguna función que no carguemos previamente con LoadLibrary + GetProcAddress. Esas
    dos están cargadas en todos los ejecutables de Windows desde kernel32, así que podemos usar un puntero a ellas.
    - Tenemos que escribir todo el código de nuestras funciones en el espacio de memoria del proceso.
    - Necesitaremos estructuras mas complejas como argumento de nuestros hilos remotos.

    Así que el proceso de inyección quedaría así:
    - Crear una estructura de datos con TODAS las cadenas de texto que vayamos a usar en el código inyectado, y
    con un puntero a LoadLibrary y GetProcAddress.
    - Abrir el proceso.
    - Reservar memoria para la estructura de datos. Escribirla.
    - Reservar memoria para nuestro código. Escribirlo.
    - Lanzar el hilo remoto, dando como punto de entrada el puntero a neustro código y como argumento el puntero
    a nuestra estructura de datos.
y tambienen esta pagina
[Enlace externo eliminado para invitados]
ahora queda solo aprender y probar (muy ofuscado nunca se rinde ,)
paresco malo ,pero soy bueno
Responder

Volver a “Delphi”