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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [PROBLEMA] Ejecución de comandos en consola (dir vs ipconfig) Qué puede ocurrir?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PROBLEMA] Ejecución de comandos en consola (dir vs ipconfig) Qué puede ocurrir?  (Leído 1,689 veces)
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
[PROBLEMA] Ejecución de comandos en consola (dir vs ipconfig) Qué puede ocurrir?
« en: 3 Enero 2013, 19:36 pm »

Hola! Les expongo un problema con el que me he encontrado mientras desarrollaba una app.

Dispongo de una app web en asp que envia instrucciones de CMD a un agente C desplegado en una máquina Windows.

Las instrucciones que recibe el agente las ejecuta utilizando las siguientes funciones, y el resultado es enviado de nuevo a la aplicación web asp:

Código:
char* ReadAndHandleOutput(HANDLE hPipeRead)
{
    char lpBuffer[256]="";
    DWORD nBytesRead;
    char *partialResult;
    char result[10000]="";
    while(1)
    {
        if (!ReadFile(hPipeRead,lpBuffer,sizeof(lpBuffer),&nBytesRead,NULL) || !nBytesRead)
        {
            if (GetLastError() == ERROR_BROKEN_PIPE)
                break;
        }
        partialResult = (char *) malloc(10000);
        strncpy(partialResult,lpBuffer,nBytesRead);
        sprintf(result,"%s%s",result,partialResult);
    }
    return result;
}

//Ejecuta un comando de CMD
char* execute(char *argument)
{
    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;

    CreateProcess(0,argument,0,0,TRUE,0,NULL,NULL,&si,&pi);

    CloseHandle(escribir);

    return ReadAndHandleOutput(leer);
}

Funciona correctamente si le solicito comandos como "ipconfig", "arp -a" o "systeminfo" (me devuelve el resultado del comando perfectamente) pero si le solicito que me haga un "dir" o un "powershell ls", no los ejecuta.

¿Alguna idea de que puede ocurrir? Me estoy rayando :S

gracias!


En línea

Python <3 Python
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Automatizar ejecución de comandos
Hacking
Gambinoh 2 4,296 Último mensaje 26 Abril 2011, 22:49 pm
por .:UND3R:.
Ejecución de comandos en WebSVN
Noticias
wolfbcn 0 1,553 Último mensaje 7 Junio 2011, 17:23 pm
por wolfbcn
[VB6] Consola de comandos
Análisis y Diseño de Malware
noele1995 2 3,345 Último mensaje 11 Abril 2012, 17:31 pm
por noele1995
Un software predice cuándo y dónde pueden ocurrir brotes de enfermedades en ...
Noticias
wolfbcn 0 1,244 Último mensaje 7 Febrero 2013, 01:28 am
por wolfbcn
¿Qué me puede ocurrir por descargar series o crackear programas?
Seguridad
pcout 5 3,427 Último mensaje 10 Octubre 2019, 05:16 am
por lilyei
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines