¿se puede usar SOCK5 con SSL?

Iniciado por proxy_lainux, Enero 31, 2021, 01:27:22 AM

Tema anterior - Siguiente tema

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

Hola.

Mientras estaba esperando alguna respuesta en un post anterior, sobre socket en x64 sobre nasm, les dejo el link por si pueden ayudarme ahí xP...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

... estaba revisando el foro a ver que cosas nuevas se han publicado y encontre un post de d3adly, sobre " Sockets usando la red TOR C++ ", el cual se me hizo interesante ya que había usado socat y curl, pero no me había puesto a investigar como hacer esa conexión, les dejo el link también para darle credito a su trabajo...
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

... hice el mio, pero en C, y funcionó muy bien, pero me di cuenta que al usarlo en el puerto 80, causa un problema ya muy general, y es el descontinuo uso de HTTP por HTTPS, y cada que intentaba hacer una prueba con una página, me bloqueaba un firewall o simplemente no me permitia ver algo si no usaba HTTPS, solo unas cuantas páginas me permitieron el uso de HTTP, así que decidí colocarle la librería de openssl.

Se lo agregué al código, esperando que después del intercambio de handshake, se realice la petición mediante el puerto 443 a una página HTTPS, pero me aparecé un error, les dejó el código que hice.

Código: c
SSL_library_init();
SSL_load_error_strings();

SSL_CTX *ctx = SSL_CTX_new (SSLv23_client_method());
SSL *conn = SSL_new(ctx);

SSL_set_fd(conn, sock);
int err = SSL_connect(conn);

if(err<=0){
  printf("Error err= %d\n", err);
  SSL_shutdown(conn);}


se compila bien, se ejecuta bien, pero hay un problema que no logró entender; al revisar SSL_connect, me aparece un error. En la documentación de openssl, menciona que si SSL_connect regresa 0, es que no hubo exito, si regresa 1 es que hubo exito, y <0 es que hubo un error, y a mi me aparece -1, lo que significa que hubo un error en el attach de los descriptores de (conn y sock), me puse a googlear pero encontré poca información, y hubo alguien que preguntó lo mismo hace más de 1 año, les dejo el link.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Pero no tuvo muchas respuestas, segun menciona que se cierra la conexión, lo que me hace pensar que al copiar el descriptor con SSL_set_fd, posiblemente cierra la conexión inicial provocando que el descriptor que va a utilizar SSL obtenga un error.

Pero no se me ocurre que más podría ser, ya intenté cambiar un poco el código pero no lo logré, la única manera de que funcione es si ataco el descriptor de socket con el de SSL antes de que inicie, pero obviamente no sirve de nada, porque no manda nada.

Espero que alguno de ustedes sepa algo al respecto, o sepa si sock5 es o no es capaz de aceptar HTTPS, o se usa otro método y yo lo estoy intentando de una manera imposible de hacer.

Saludos.