• [^] # Re: Ma méthode

    Posté par (site web personnel) . En réponse au journal Légalité de l'interception du flux SSL au sein d'une entreprise. Évalué à 10.

    Je crois qu'en analysant le trafic on peut détecter l'utilisation de sslh. (le traffic ssh n'est pas le même qu'https). Je propose une autre solution, qui nécessite un peu plus de configuration, mais permet d'être complètement invisible : faire passer le traffic ssh dans une connexion https standard (Si tu n'as pas peur d'encapsuler les couches, et que tu as validé l'étape 4)

    Configuration apache

    Tu crée une conf apache qui ressemble à ça :

    <VirtualHost *:443>
     Use ssl_conf
     SSLCertificateFile /etc/letsencrypt/live/....pem
     SSLCertificateKeyFile /etc/letsencrypt/live/....pem
     ServerName localhost
     DocumentRoot /var/www
     ProxyRequests On
     AllowConnect 22
     <Proxy *>
     Order deny,allow
     Deny from all
     </Proxy>
     <Proxy mydest>
     Order deny,allow
     #Deny from all
     Allow from "IP de l'entreprise"
     </Proxy>
    </VirtualHost>
    

    Cette conf permettre d'ouvrir une connexion sur le port 22 (ssh), seulement pour une seule destination, et en provenance des ips autorisées.

    configuration ssh

    Ensuite, installe proxytunnel (par exemple) et mets dans ta conf ssh :

    Host mydest
     ProxyCommand proxytunnel -X -p proxy_interne_de_lentreprise:8080 -r webmail.domain.tld:443 -d mydest:22 -H 'Host: webmail.domain.tld:443' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0'
    

    Cette commande va utiliser les relais proxy que tu souhaites (proxytunnel peut en prendre en charge deux ce qui est bien utile), et ajouter des headers à la connexion https qui vont faire croire qu'il s'agit d'une requête venant d'un navigateur.

    Tests

    Super important avant de prendre la confiance !

    Tu installes wireshark, et tu compares le traffic de ton navigateur allant consulter son webmail, et ta connexion ssh.

    Ensuite, tu fais un script qui récupère le certificat https de ton webmail, et lève une alerte dès que la signature change (je ressors ça de mon grenier, si ça se trouve le script ne fonctionne plus comme il faut, à tester)

    #!/bin/bash
    if [[ ! -z $https_proxy ]]; then
     proxy=`echo ${https_proxy} | sed -e 's|http://||' -`
     host=$(echo ${proxy} | cut -d: -f 1)
     port=$(echo ${proxy} | cut -d: -f 2)
     echo using proxy : ${host}:${port}
     #socat TCP4-LISTEN:2022 "PROXY:${proxy} |TCP:1ドル" & echo -n | openssl s_client -connect localhost:2022 | openssl x509 -noout -sha1 -fingerprint
     socat TCP4-LISTEN:2022 "PROXY:${host}:1ドル,proxyport=${port}" & echo -n | openssl s_client -connect localhost:2022 | openssl x509 -noout -sha1 -fingerprint
    else
     echo -n | openssl s_client -connect 1ドル | openssl x509 -noout -sha1 -fingerprint
    fi