Атака "человек посередине" SLL_Accept не удалась, выдается ошибка: 140760FC: подпрограммы SSL: SSL23_GET_CLIENT_HELLO: неизвестный протокол: - PullRequest
0 голосов
/ 13 ноября 2018

Я пытался провести атаку «Человек посередине» с C, успешно получить целевой хост HTTPS, SSL_connect к серверу и создать фальшивый сертификат успешно, когда я пытаюсь SSL_accept клиентский сокет, он потерпел неудачу и SSL_error: error:140760FC: подпрограммы SSL: SSL23_GET_CLIENT_HELLO: неизвестный протокол

 int socket_to_server = open_client_socket(p->client, p->host, p->port);
    // create ssl connect by server socket
    ssl_to_server = SSL_to_server_init(socket_to_server);
    if (SSL_connect(ssl_to_server) < 0)
        SSL_Error("Fail to connect server with ssl!");
    printf("%d, SSL to server\n", sum);

    // get server cert and fake 
    fake_x509 = create_fake_certificate(ssl_to_server, p->key);
    // use fake cert create client SLL connect
    ssl_to_client = SSL_to_client_init(p->client, fake_x509, p->key);

    if(ssl_to_client == 0)
    {
        SSL_Error("SSL to client Failed!\n");
    }
    if (SSL_accept(ssl_to_client) <= 0) // failed there, error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
        SSL_Error("Fail to accept client with ssl!");
...