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 - Solid Water

#181
Fíjate si te sirve:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos Frijolito
#182
Dudas y pedidos generales / Re:Puertos cerrados
Octubre 30, 2018, 06:06:54 PM
Cuando tu entras a una página de internet tu te conectas al servidor, por lo que no tienes puertos abiertos.

En cambio cuando ellos se conectan a tu página web tu eres quien escucha los puertos.

Por eso cuando tu montas un servidor debes redireccionar los puertos en el router, en cambio cuando tu te conectas a una no.

Piensa en los troyanos de conexiones normales y los de conexiones inversas.

Saludos,
#183
Si pones:

cliente = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();

Qué pasa?
#184
Dudas y pedidos generales / Re:Problema de red local
Octubre 26, 2018, 04:12:44 PM
Chequea esto:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos,

#185
Haceme un favor subile los tiempos de espera en el server y el client a ver que pasa:

struct timeval tv;
tv.tv_sec = 6;
tv.tv_usec = 3000;
setsockopt(sock_client, SOL_SOCKET, SO_RCVTIMEO, (const char*)&tv, sizeof tv);

Me parece que puede ser el mismo problema que tenía yo.

Saludos,
#186
Qué te muestra el client cuando entras a shell?
#187
Lo primero que veo es que nunca lee los datos del servidor por que llegada esa instancia la variable intentos nunca es mayor a 0:

Código: c
   int intentos = 0;

                        if(intentos > 0){

                                read(sock_client, PC,   512);
                                read(sock_client, USER, 512);
                                read(sock_client, OS,   512);
                                read(sock_client, IP,   512);
                        }

                        intentos++;


Saludos,
#188
El error podría ser que en el select obtenes una imagen y cuando hace el fill y quiere meter la imagen en el datagridview te explota.

Probá de sacar del select el campo de imagen, creando un SQLCommand y pasandoselo a tu adaptador:

Me.FechaConsultaTableAdapter.SelectCommand = new SqlCommand("SELECT id, fecha, nombre, etc from tabla where id=" + d_id_datos.ToString(), _Conexion);

También podrías poner un

try{

}catch(Exception ex)

}

Para que no explote y ver que pasa.
En caso como este es bueno debuguear pasando línea por linéa para ver cual crashea.
Si sin la imagen no crashea, entonces ya sabes donde esta el problema.

Saludos,
#189
Claro tu programa comienza por el main, y lo cierras sin hacer nada.
Fíjate que las llaves del main {} abren y cierran el método sin ninguna acción.
Dentro del main tendrás que llamar a las funciones que declaraste luego, siguiendo la lógica del programa.
De dónde estás sacando todo eso ?

Saludos,
#190
Presentaciones y cumpleaños / Re:Aprendiendo desde 0
Octubre 22, 2018, 03:23:32 PM
Me alegra que estés aprendiendo, si necesitas un manual de programación desde 0 avisame que tengo uno online, te lo envío por MP.

Saludos,
#191
Esta lindo cuando se cuelga el entorno gráfico aprietas alt + ctrl + f2 y entras al modo consola, matas los procesos o restableces el GUI y aprietas alt+ctrl+f7  para volver al entorno gráfico con el problema solucionado.
#192
Hola, no estoy del todo seguro pero en ubuntu con cuenta de administrador que te dan normalmente, solo necesitas poner sudo passwd, entonces siendo administrador puedes cambiar la password de la cuenta root.

Avisenme si estoy equivocado o que.
Ademas una vez una amiga perdió la password root en otra distro y le pase ese método y me dijo que le funcionó.

Saludos,
#193
Con auriculares funciona?
#194
Probá registrar el ocx no solo desde system32 si no también desde SysWOW64.
En qué lenguaje hiciste el programa?

Probá instalar el Visual C++ Redistributable. Es requerido por muchas aplicaciones.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Del mismo modo si la aplicación fue creada en visual basic 6.0 seguramente requiera del common controls y el service pack 6.0

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos,
#195
No sé como se usa Dendroid, pero suponiendo tu tienes el server y que pusiste tu ip pública en el client, me pregunto si hiciste la re dirección de puertos correspondiente para que el client pueda conectarse al server.

Saludos,
#196
Eso es por que vos no tenes un bucle en un proceso padre que espere clientes, vos esperas uno solo y seguís el flujo de tu programa hacia el final.
En internet tenés ejemplos de como aceptar múltiples clientes y usar fork.

Por ejemplo mira este: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


Mira si lo pones así logras que el server no se cierre y vuelva a aceptar clientes: (Pero seguis aceptando solo 1 cliente por vez no podes aceptar muchos simultaneos si no implementas lo que te dije antes):

Código: c++
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h>               //Sirve para poder enviar archivos
#include <sys/types.h>                  //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h>                  // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h>                             // Cliente en cuention

#define BUFFSIZE 1
#define ERROR -1

// Funciones //

int login(int socket_cliente, char user[9], char pass[8]);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
void enviar(int socket_cliente, FILE* archivo);
int intentos = 0;

int main(){

        int socket_servidor;            //Socket del servidor para escuchar mensajes
        int socket_cliente;                     //Socket del cliente para enviar mesajes
        int puerto = 15560;                     //Numero de puerto en /etc/service
        char indicered[100];            //Inidece de red
        char texto[50];                         //Mensaje para usar los comandos
        char pass[8];                           //Contrasena
        char user[9];                           //Usuario
        FILE * archivo;                         //Archivo sin formato

        socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
        socklen_t longc;

        // Declaracion de las escructuras;
        struct sockaddr_in servidor, cliente;           //Creamos las estructuras del cliente y servidor al mismo tiempo
        bzero((char *)&servidor, sizeof(servidor)); //Primero llenamos de 0's la struct
        servidor.sin_family = AF_INET;                          //Asiganamos la estructura
        servidor.sin_port = htons(puerto);                      //Indicamos el puerto
        servidor.sin_addr.s_addr = INADDR_ANY;          //Esta macro especifica nuestra direccion

        if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
                printf("Error al asociar el puerto a la conexion\n");
        return 1;
        }


        listen(socket_servidor,3);                              //Escuchamos por este puero maximo 2 clientes distintos
while(true){
        intentos = 0;
        printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
        longc = sizeof(cliente);                                //Asignamos el tamano de la estructura a esta variable
        socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
        if(socket_cliente == -1){
                printf("Error en al conexion\n");
                return 1;
        }
        printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));

        //Login con el servidor

        int conexion = login(socket_cliente, user, pass);

        //Hablar con el servidor
       if(conexion == 1){
        while(free){
                bzero(texto, sizeof(texto));
                recv(socket_cliente,texto,50,0);
                if(strncmp(texto,"IP",2) == 0){
                        direccip(socket_cliente, cliente);
                }
                if(strncmp(texto,"EXIT", 4) == 0){
                        salir(socket_servidor, socket_cliente);
                }
                if(strncmp(texto,"DESCARGAR", 9) == 0){
                        enviar(socket_cliente, archivo);
                }
        }
}else{
printf("Ingreso 3 veces mal usuario \n\n");
                System("pause");



}
   }
}
int login(int socket_cliente, char user[9], char pass[8]){
       
        bzero(user, 9);
        bzero(pass, 8);

         if(intentos == 3){
                close(socket_cliente);
        return 0;
}

        send(socket_cliente,"Usuario: ",10,0);
        read(socket_cliente,user,9);
        send(socket_cliente, "Contrasena: ", 12, 0);
        read(socket_cliente, pass, 8);

        if(strncmp(user, "frijolito",9) == 0 && strncmp(pass, "abc12345",8) == 0){
             return 1;
}
        else{
                send(socket_cliente,"Error\n", 7,0);
                intentos = intentos + 1;
                login(socket_cliente, user, pass);
       
        }
}

void direccip(int socket_cliente, struct sockaddr_in addr){
    write(socket_cliente, "Tu eres: ",9);
    write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
    write(socket_cliente,"\n",2);
}
void salir(int socket_servidor, int socket_cliente){
        write(socket_cliente, "ADIOS ;)\n", 10);
        close(socket_servidor);
        close(socket_servidor);
        exit(1);
}
void enviar(int socket_cliente, FILE * archivo){
        char buffer[BUFFSIZE];
        char mensaje[80];
        archivo = fopen("lena.png", "rb");
        if(!archivo){
                printf("Error al abrir el archivo\n");
                send(socket_cliente,"error al abrir el archivo",26,0);
        }
        while(!feof(archivo)){
                fread(buffer,sizeof(char),BUFFSIZE, archivo);
                if(send(socket_cliente,buffer,BUFFSIZE,0) == ERROR){
                        perror("Error al enviar el arvhivo:");
                }
        }
}




Saludos,
#197
La función StickyKeys tiene una vulnerabilidad que te permite acceder a la cuenta de administrador por lo que deberías deshabilitarla.
Del mismo modo el servicio programador de tareas también contiene una vulnerabilidad por lo que deberías deshabilitarlo.
También podrías poner en el orden de booteo del bios que no arranquen nunca por CD ni USB y luego de esto colocarle un password si es que el bios trae esa opción.

Con esto no tendrás una seguridad al 100% pero tendrás una seguridad más alta a la hora de que intenten robar la cuenta de administrador.

Saludos.
#198
Qué sistema operativo tenes?
#199
Así funciona bien el login fallido y no tira error.
Lo que si fíjate cuando haces log-in bien, a mi es como que no se me limpia el buffer de entrada y me inserta un salto por lo que no me deja ingresar bien la contraseña nunca, pero si a vos te funcionaba bien esa parte la dejé igual que siempre.

Código: c++

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h>               //Sirve para poder enviar archivos
#include <sys/types.h>                  //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h>                  // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h>                             // Cliente en cuention

#define BUFFSIZE 1
#define ERROR -1

// Funciones //

int login(int socket_cliente, char user[9], char pass[8]);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
void enviar(int socket_cliente, FILE* archivo);
int intentos = 0;

int main(){

        int socket_servidor;            //Socket del servidor para escuchar mensajes
        int socket_cliente;                     //Socket del cliente para enviar mesajes
        int puerto = 15560;                     //Numero de puerto en /etc/service
        char indicered[100];            //Inidece de red
        char texto[50];                         //Mensaje para usar los comandos
        char pass[8];                           //Contrasena
        char user[9];                           //Usuario
        FILE * archivo;                         //Archivo sin formato

        socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
        socklen_t longc;

        // Declaracion de las escructuras;
        struct sockaddr_in servidor, cliente;           //Creamos las estructuras del cliente y servidor al mismo tiempo
        bzero((char *)&servidor, sizeof(servidor)); //Primero llenamos de 0's la struct
        servidor.sin_family = AF_INET;                          //Asiganamos la estructura
        servidor.sin_port = htons(puerto);                      //Indicamos el puerto
        servidor.sin_addr.s_addr = INADDR_ANY;          //Esta macro especifica nuestra direccion

        if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
                printf("Error al asociar el puerto a la conexion\n");
        return 1;
        }
        listen(socket_servidor,3);                              //Escuchamos por este puero maximo 2 clientes distintos
        printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
        longc = sizeof(cliente);                                //Asignamos el tamano de la estructura a esta variable
        socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
        if(socket_cliente == -1){
                printf("Error en al conexion\n");
                return 1;
        }
        printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));

        //Login con el servidor

        int conexion = login(socket_cliente, user, pass);

        //Hablar con el servidor
       if(conexion == 1){
        while(free){
                bzero(texto, sizeof(texto));
                recv(socket_cliente,texto,50,0);
                if(strncmp(texto,"IP",2) == 0){
                        direccip(socket_cliente, cliente);
                }
                if(strncmp(texto,"EXIT", 4) == 0){
                        salir(socket_servidor, socket_cliente);
                }
                if(strncmp(texto,"DESCARGAR", 9) == 0){
                        enviar(socket_cliente, archivo);
                }
        }
        }else{
                printf("Ingreso 3 veces mal usuario");
                system("pause");
                close(socket_servidor);
        }
}
int login(int socket_cliente, char user[9], char pass[8]){

        bzero(user, 9);
        bzero(pass, 8);

         if(intentos == 3){
                close(socket_cliente);
                return 0;
         }

        send(socket_cliente,"Usuario: ",10,0);
        read(socket_cliente,user,9);
        send(socket_cliente, "Contrasena: ", 12, 0);
        read(socket_cliente, pass, 8);

        if(strncmp(user, "frijolito",9) == 0 && strncmp(pass, "abc12345",8) == 0){
             return 1;
        }
        else{
                send(socket_cliente,"Error\n", 7,0);
                intentos = intentos + 1;
                login(socket_cliente, user, pass);

        }
}

void direccip(int socket_cliente, struct sockaddr_in addr){
    write(socket_cliente, "Tu eres: ",9);
    write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
    write(socket_cliente,"\n",2);
}
void salir(int socket_servidor, int socket_cliente){
        write(socket_cliente, "ADIOS ;)\n", 10);
        close(socket_servidor);
        close(socket_servidor);
        exit(1);
}
void enviar(int socket_cliente, FILE * archivo){
        char buffer[BUFFSIZE];
        char mensaje[80];
        archivo = fopen("lena.png", "rb");
        if(!archivo){
                printf("Error al abrir el archivo\n");
                send(socket_cliente,"error al abrir el archivo",26,0);
        }
        while(!feof(archivo)){
                fread(buffer,sizeof(char),BUFFSIZE, archivo);
                if(send(socket_cliente,buffer,BUFFSIZE,0) == ERROR){
                        perror("Error al enviar el arvhivo:");
                }
        }
}


probalo, vas a ver que no crashea y cierra la conexion tras 3 ingresos fallidos.

Saludos,
#200
Hola no estoy seguro que sea esto pero podrías probar.
Cuando le haces un close socket cliente, luego sigues enviandole cosas, deberìas poner un return si fallo 3 veces:

Código: c++

void login(int socket_cliente, char user[9], char pass[8]){
        int intentos = 0;
        bzero(user, 9);
        bzero(pass, 8);

         if(intentos == 3){
                close(socket_cliente);
                return;
        }

        send(socket_cliente,"Usuario: ",10,0);
        read(socket_cliente,user,9);
        send(socket_cliente, "Contrasena: ", 12, 0);
        read(socket_cliente, pass, 8);


Y lo mismo luego, al salir de la función aunque el login haya fallado sigues usando socket_cliente, deberías hacer que en lugar de retornar void, login retorne un int o un bool, que si se conecta bien devuelva 1 y si no 0, entonces si devuelve 0 no utilizas más socket_cliente ya que lo cerraste, si no te sale ahora en un rato vengo y te ayudo a modificarlo.

Saludos,