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


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  Shell Remota en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Shell Remota en C  (Leído 1,524 veces)
mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Shell Remota en C
« en: 27 Marzo 2011, 14:48 »

Buenas, estoi intentando hacer una Shell Remota en C  ya que nunca hice una en este lenguaje y me pica la curiosidad  :xD el caso es que no me sale...

El código que tengo es este:

Código
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
   PHANDLE leer;
   PHANDLE escribir;
 
   SECURITY_ATTRIBUTES sa;
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
 
   DWORD bytes;
 
   CreatePipe(leer,escribir,&sa,0);
 
   si.cb = 68;
   si.dwFlags = 257;
 
   si.hStdError = escribir;
   si.hStdOutput = escribir;
 
   CreateProcessA(0,"cmd.exe /c ping 127.0.0.1", &sa, &sa, 1, NORMAL_PRIORITY_CLASS, 0, 0, &si, &pi);
   Sleep(100);
   CloseHandle(escribir);
 
   char buffer[1024];
   char total[1024];
 
   int ret = ReadFile(leer,buffer,250,&bytes,0);
 
   lstrcat(total,buffer);
 
   while(ret != 0)
   {
       ret = ReadFile(leer,buffer,250,&bytes,0);
       lstrcat(total,buffer);      
   }
 
   MessageBoxA(0,total,0,0);
   system("PAUSE");
 
   return 0;
}
 

Alguien sabe que hago mal?

salu2!
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Shell Remota en C
« Respuesta #1 en: 27 Marzo 2011, 15:31 »

Esta es la buen forma de hacerlo:
Código:
http://goodfellas.shellcode.com.ar/docz/asm/WritingSmallShellcode.pdf
:D
En línea

mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #2 en: 27 Marzo 2011, 15:36 »

Muchas gracias Karcrack sin duda lo leeré pero tambien me gustaria saber que ago mal en el código que postee.

salu2!
En línea
[Zero]
Moderador
***
Desconectado Desconectado

Mensajes: 1.059


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #3 en: 27 Marzo 2011, 16:53 »

¿No tendrías que crear el pipe luego de iniciar la shell? Estas llamando a CreatePipe con dos handles nulos (o ni eso, que no están inicializados a 0), al igual que tampoco inicializaste a 0 los miembros de PROCESS_INFORMATION y STARTUPINFO (salvo cb, que sí lo pusiste bien).

Saludos
« Última modificación: 27 Marzo 2011, 17:19 por [Zero] » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #4 en: 27 Marzo 2011, 18:02 »

Muchas gracias a los dos, ya lo consegui hacer... el caso es que me quedo así:

Código
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
   SECURITY_ATTRIBUTES sa;
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
 
   void * leer;
   void * escribir;
 
   ZeroMemory(&sa,sizeof(&sa));
 
   sa.nLength = sizeof(SECURITY_ATTRIBUTES);
   sa.bInheritHandle = TRUE;
   sa.lpSecurityDescriptor = NULL;
 
   CreatePipe(&leer,&escribir,&sa,0);
 
   GetStartupInfoA(&si);
 
   si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
   si.wShowWindow = SW_HIDE;
   si.hStdOutput = escribir;
   si.hStdError  = escribir;
   si.hStdInput = leer;
 
   CreateProcessA(0,"c:\\windows\\system32\\cmd.exe /c dir",0,0,TRUE,0,0,0,&si,&pi);
   Sleep(200);
   CloseHandle(escribir);
 
   char buffer[1024];
   DWORD bleidos;
   ReadFile(leer,buffer,1024,&bleidos,0);
   MessageBoxA(0,buffer,0,0);
 
   system("PAUSE");
   return 0;
}


No es una "MegaShell" pero su "apaño" hace  :P
salu2!
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Shell Remota en C
« Respuesta #5 en: 27 Marzo 2011, 19:11 »

@Drinky94: Mejor seria que en vez de utilizar una ruta hardcodeada pusieses la variable de entorno adecuada; %ComSpec% :) Y eso de usar Sleeps es muy cutre :P :P
En línea

mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #6 en: 27 Marzo 2011, 20:34 »

Te refieres a esperar a que se cree el proceso usando WaitForSingleObject, no?

salu2!
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Shell Remota en C
« Respuesta #7 en: 27 Marzo 2011, 21:26 »

Hasta que el proceso no se crea no continua la ejecución de tu programa :D
En línea

mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #8 en: 27 Marzo 2011, 23:42 »

Hasta que el proceso no se crea no continua la ejecución de tu programa :D

No se me ocurre como hacerlo... de una forma rápida, alguna pista?

salu2!
En línea
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Shell Remota en C
« Respuesta #9 en: 28 Marzo 2011, 16:14 »

No hay que hacer nada :huh: Con hacer CreateProces() sobra... hasta que el proceso no se ha creado no vuelve la ejecución a tu programa...
En línea

mDrinky

Desconectado Desconectado

Mensajes: 277


Miauuuuuuuuuuuuu dice el gato XD


Ver Perfil WWW
Re: Shell Remota en C
« Respuesta #10 en: 31 Marzo 2011, 15:19 »

Ah, vale...   ;D

thanks...
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
shell remota y .NET
.NET
moe88 5 2,061 Último mensaje 4 Junio 2006, 01:49
por ByteCoderz
Shell Remota
Hacking Básico
ruben_new 6 1,111 Último mensaje 27 Julio 2006, 15:41
por
Shell Remota
Programación Visual Basic
xDie 3 414 Último mensaje 4 Octubre 2006, 19:25
por ~~
Shell remota.
Hacking Básico
DrraZ 3 640 Último mensaje 18 Agosto 2007, 00:23
por HaDeS, -
Shell remota
Hacking Básico
kilimaktome 3 905 Último mensaje 30 Abril 2009, 15:08
por kilimaktome
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines